	.file	"744785.c"
	.intel_syntax noprefix
	.text
	.globl	UDEV_ACTION
	.bss
	.align 8
	.type	UDEV_ACTION, @object
	.size	UDEV_ACTION, 8
UDEV_ACTION:
	.zero	8
	.globl	UDEV_SUBSYSTEM
	.align 8
	.type	UDEV_SUBSYSTEM, @object
	.size	UDEV_SUBSYSTEM, 8
UDEV_SUBSYSTEM:
	.zero	8
	.globl	UDEV_DEVNAME
	.align 8
	.type	UDEV_DEVNAME, @object
	.size	UDEV_DEVNAME, 8
UDEV_DEVNAME:
	.zero	8
	.globl	UDEV_ID_USB_INTERFACE_NUM
	.align 8
	.type	UDEV_ID_USB_INTERFACE_NUM, @object
	.size	UDEV_ID_USB_INTERFACE_NUM, 8
UDEV_ID_USB_INTERFACE_NUM:
	.zero	8
	.section	.rodata
.LC0:
	.string	"ACTION"
.LC1:
	.string	"SUBSYSTEM"
.LC2:
	.string	"DEVNAME"
.LC3:
	.string	"ID_USB_INTERFACE_NUM"
.LC4:
	.string	"UDEV_ACTION not defined."
.LC5:
	.string	"UDEV_SUBSYSTEM not defined."
.LC6:
	.string	"UDEV_DEVNAME not defined."
.LC7:
	.string	"add"
.LC8:
	.string	"Error %i opening %s: %s\n"
	.align 8
.LC9:
	.string	"ATZ not replied back with OK for device \"%s\""
	.align 8
.LC10:
	.string	"ATE0 not replied back with OK for device \"%s\""
	.align 8
.LC11:
	.string	"AT+CGSN not replied back with OK for device \"%s\""
.LC12:
	.string	"remove"
.LC13:
	.string	"Action \"%s\" detected.\n"
.LC14:
	.string	"/dev/serial/by-imei"
	.align 8
.LC15:
	.string	"Couldn't open dir \"%s\". opendir exit with \"%s\"."
	.align 8
.LC16:
	.string	"Unknown udev action '%s' detected. Must be 'add' or 'remove'."
	.text
	.globl	main
	.type	main, @function
main:
.LFB6:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	r12
	push	rbx
	sub	rsp, 4096
	or	QWORD PTR [rsp], 0
	sub	rsp, 4096
	or	QWORD PTR [rsp], 0
	sub	rsp, 224
	.cfi_offset 12, -24
	.cfi_offset 3, -32
	mov	DWORD PTR -8420[rbp], edi
	mov	QWORD PTR -8432[rbp], rsi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -24[rbp], rax
	xor	eax, eax
	mov	edi, 1025
	call	malloc@PLT
	mov	QWORD PTR -8392[rbp], rax
	mov	rax, QWORD PTR -8432[rbp]
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	__xpg_basename@PLT
	mov	edx, 40
	mov	esi, 2
	mov	rdi, rax
	call	openlog@PLT
	lea	rdi, .LC0[rip]
	call	getenv@PLT
	mov	QWORD PTR UDEV_ACTION[rip], rax
	lea	rdi, .LC1[rip]
	call	getenv@PLT
	mov	QWORD PTR UDEV_SUBSYSTEM[rip], rax
	lea	rdi, .LC2[rip]
	call	getenv@PLT
	mov	QWORD PTR UDEV_DEVNAME[rip], rax
	lea	rdi, .LC3[rip]
	call	getenv@PLT
	mov	QWORD PTR UDEV_ID_USB_INTERFACE_NUM[rip], rax
	mov	rax, QWORD PTR UDEV_ACTION[rip]
	test	rax, rax
	jne	.L2
	lea	rsi, .LC4[rip]
	mov	edi, 3
	mov	eax, 0
	call	syslog@PLT
	call	print_help
	mov	edi, 1
	call	exit@PLT
.L2:
	mov	rax, QWORD PTR UDEV_SUBSYSTEM[rip]
	test	rax, rax
	jne	.L3
	lea	rsi, .LC5[rip]
	mov	edi, 3
	mov	eax, 0
	call	syslog@PLT
	call	print_help
	mov	edi, 1
	call	exit@PLT
.L3:
	mov	rax, QWORD PTR UDEV_DEVNAME[rip]
	test	rax, rax
	jne	.L4
	lea	rsi, .LC6[rip]
	mov	edi, 3
	mov	eax, 0
	call	syslog@PLT
	call	print_help
	mov	edi, 1
	call	exit@PLT
.L4:
	mov	rax, QWORD PTR UDEV_ACTION[rip]
	lea	rsi, .LC7[rip]
	mov	rdi, rax
	call	strcmp@PLT
	test	eax, eax
	jne	.L5
	mov	rax, QWORD PTR UDEV_DEVNAME[rip]
	mov	esi, 1052930
	mov	rdi, rax
	mov	eax, 0
	call	open@PLT
	mov	DWORD PTR -8396[rbp], eax
	cmp	DWORD PTR -8396[rbp], 0
	jns	.L6
	call	__errno_location@PLT
	mov	eax, DWORD PTR [rax]
	mov	edi, eax
	call	strerror@PLT
	mov	r12, rax
	mov	rbx, QWORD PTR UDEV_DEVNAME[rip]
	call	__errno_location@PLT
	mov	eax, DWORD PTR [rax]
	mov	rcx, r12
	mov	rdx, rbx
	mov	esi, eax
	lea	rdi, .LC8[rip]
	mov	eax, 0
	call	printf@PLT
	mov	eax, 1
	jmp	.L7
.L6:
	mov	eax, DWORD PTR -8396[rbp]
	mov	edx, 0
	mov	esi, 13
	mov	edi, eax
	call	set_interface_attribs
	mov	eax, DWORD PTR -8396[rbp]
	mov	esi, 0
	mov	edi, eax
	call	set_blocking
	mov	rsi, QWORD PTR -8392[rbp]
	mov	eax, DWORD PTR -8396[rbp]
	mov	ecx, 500
	mov	edx, 1024
	mov	edi, eax
	call	GSM_AT
	test	eax, eax
	je	.L8
	mov	DWORD PTR -8404[rbp], 0
	jmp	.L13
.L8:
	mov	rsi, QWORD PTR -8392[rbp]
	mov	eax, DWORD PTR -8396[rbp]
	mov	ecx, 500
	mov	edx, 1024
	mov	edi, eax
	call	GSM_ATZ
	test	eax, eax
	je	.L10
	mov	rax, QWORD PTR UDEV_DEVNAME[rip]
	mov	rdx, rax
	lea	rsi, .LC9[rip]
	mov	edi, 3
	mov	eax, 0
	call	syslog@PLT
	mov	DWORD PTR -8404[rbp], 1
	jmp	.L13
.L10:
	mov	rsi, QWORD PTR -8392[rbp]
	mov	eax, DWORD PTR -8396[rbp]
	mov	ecx, 500
	mov	edx, 1024
	mov	edi, eax
	call	GSM_ATE0
	test	eax, eax
	je	.L11
	mov	rax, QWORD PTR UDEV_DEVNAME[rip]
	mov	rdx, rax
	lea	rsi, .LC10[rip]
	mov	edi, 3
	mov	eax, 0
	call	syslog@PLT
	mov	DWORD PTR -8404[rbp], 1
	jmp	.L13
.L11:
	lea	rdx, -4128[rbp]
	mov	rsi, QWORD PTR -8392[rbp]
	mov	eax, DWORD PTR -8396[rbp]
	mov	r8d, 500
	mov	rcx, rdx
	mov	edx, 1024
	mov	edi, eax
	call	GSM_ATCGSN
	test	eax, eax
	je	.L12
	mov	rax, QWORD PTR UDEV_DEVNAME[rip]
	mov	rdx, rax
	lea	rsi, .LC11[rip]
	mov	edi, 3
	mov	eax, 0
	call	syslog@PLT
	mov	DWORD PTR -8404[rbp], 1
	jmp	.L13
.L12:
	mov	eax, DWORD PTR -8396[rbp]
	mov	edi, eax
	call	close@PLT
	mov	DWORD PTR -8404[rbp], 0
	jmp	.L13
.L5:
	mov	rax, QWORD PTR UDEV_ACTION[rip]
	lea	rsi, .LC12[rip]
	mov	rdi, rax
	call	strcmp@PLT
	test	eax, eax
	jne	.L14
	mov	rax, QWORD PTR UDEV_ACTION[rip]
	mov	rsi, rax
	lea	rdi, .LC13[rip]
	mov	eax, 0
	call	printf@PLT
	lea	rax, -8368[rbp]
	mov	rsi, rax
	lea	rdi, .LC14[rip]
	call	lstat@PLT
	mov	DWORD PTR -8400[rbp], eax
	mov	eax, DWORD PTR -8344[rbp]
	and	eax, 61440
	cmp	eax, 16384
	jne	.L15
	lea	rdi, .LC14[rip]
	call	opendir@PLT
	mov	QWORD PTR -8384[rbp], rax
	cmp	QWORD PTR -8384[rbp], 0
	jne	.L17
	call	__errno_location@PLT
	mov	eax, DWORD PTR [rax]
	mov	edi, eax
	call	strerror@PLT
	mov	rcx, rax
	lea	rdx, .LC14[rip]
	lea	rsi, .LC15[rip]
	mov	edi, 3
	mov	eax, 0
	call	syslog@PLT
	jmp	.L15
.L18:
	lea	rax, -8224[rbp]
	mov	edx, 4096
	mov	esi, 0
	mov	rdi, rax
	call	memset@PLT
	lea	rax, -8224[rbp]
	movabs	rbx, 8243121340658574383
	movabs	rsi, 7578847210543800681
	mov	QWORD PTR [rax], rbx
	mov	QWORD PTR 8[rax], rsi
	mov	DWORD PTR 16[rax], 6907245
	lea	rax, -8224[rbp]
	mov	rdi, rax
	call	strlen@PLT
	mov	rdx, rax
	lea	rax, -8224[rbp]
	add	rax, rdx
	mov	WORD PTR [rax], 47
	mov	rax, QWORD PTR -8376[rbp]
	lea	rcx, 19[rax]
	lea	rax, -8224[rbp]
	mov	edx, 255
	mov	rsi, rcx
	mov	rdi, rax
	call	strncat@PLT
	mov	rax, QWORD PTR -8376[rbp]
	add	rax, 19
	mov	rdi, rax
	call	puts@PLT
	lea	rax, -8224[rbp]
	mov	rdi, rax
	call	puts@PLT
	lea	rdx, -8368[rbp]
	lea	rax, -8224[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	lstat@PLT
	mov	DWORD PTR -8400[rbp], eax
	cmp	DWORD PTR -8400[rbp], 0
	jne	.L17
	mov	eax, DWORD PTR -8344[rbp]
	and	eax, 61440
	cmp	eax, 40960
	jne	.L17
	lea	rax, -4128[rbp]
	mov	edx, 4096
	mov	esi, 0
	mov	rdi, rax
	call	memset@PLT
	lea	rcx, -4128[rbp]
	lea	rax, -8224[rbp]
	mov	edx, 4095
	mov	rsi, rcx
	mov	rdi, rax
	call	readlink@PLT
	mov	DWORD PTR -8400[rbp], eax
	cmp	DWORD PTR -8400[rbp], 0
	jle	.L17
	mov	rdx, QWORD PTR UDEV_DEVNAME[rip]
	lea	rax, -4128[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	strcmp@PLT
	test	eax, eax
	jne	.L17
	lea	rax, -8224[rbp]
	mov	rdi, rax
	call	unlink@PLT
	mov	DWORD PTR -8400[rbp], eax
.L17:
	mov	rax, QWORD PTR -8384[rbp]
	mov	rdi, rax
	call	readdir@PLT
	mov	QWORD PTR -8376[rbp], rax
	cmp	QWORD PTR -8376[rbp], 0
	jne	.L18
	mov	rax, QWORD PTR -8384[rbp]
	mov	rdi, rax
	call	closedir@PLT
.L15:
	mov	DWORD PTR -8400[rbp], 0
	jmp	.L13
.L14:
	mov	rax, QWORD PTR UDEV_ACTION[rip]
	mov	rdx, rax
	lea	rsi, .LC16[rip]
	mov	edi, 3
	mov	eax, 0
	call	syslog@PLT
	mov	DWORD PTR -8404[rbp], 1
.L13:
	call	closelog@PLT
	mov	eax, DWORD PTR -8404[rbp]
.L7:
	mov	rbx, QWORD PTR -24[rbp]
	sub	rbx, QWORD PTR fs:40
	je	.L19
	call	__stack_chk_fail@PLT
.L19:
	add	rsp, 8416
	pop	rbx
	pop	r12
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE6:
	.size	main, .-main
	.section	.rodata
	.align 8
.LC17:
	.string	"Error %i from tcgetattr on %s: %s\n"
	.align 8
.LC18:
	.string	"Error %i from tcsetattr on %s: %s\n"
	.text
	.globl	set_interface_attribs
	.type	set_interface_attribs, @function
set_interface_attribs:
.LFB7:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	r12
	push	rbx
	sub	rsp, 96
	.cfi_offset 12, -24
	.cfi_offset 3, -32
	mov	DWORD PTR -100[rbp], edi
	mov	DWORD PTR -104[rbp], esi
	mov	DWORD PTR -108[rbp], edx
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -24[rbp], rax
	xor	eax, eax
	lea	rax, -96[rbp]
	mov	edx, 60
	mov	esi, 0
	mov	rdi, rax
	call	memset@PLT
	lea	rdx, -96[rbp]
	mov	eax, DWORD PTR -100[rbp]
	mov	rsi, rdx
	mov	edi, eax
	call	tcgetattr@PLT
	test	eax, eax
	je	.L21
	call	__errno_location@PLT
	mov	eax, DWORD PTR [rax]
	mov	edi, eax
	call	strerror@PLT
	mov	r12, rax
	mov	rbx, QWORD PTR UDEV_DEVNAME[rip]
	call	__errno_location@PLT
	mov	eax, DWORD PTR [rax]
	mov	rcx, r12
	mov	rdx, rbx
	mov	esi, eax
	lea	rdi, .LC17[rip]
	mov	eax, 0
	call	printf@PLT
	mov	eax, -1
	jmp	.L24
.L21:
	mov	edx, DWORD PTR -104[rbp]
	lea	rax, -96[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	cfsetospeed@PLT
	mov	edx, DWORD PTR -104[rbp]
	lea	rax, -96[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	cfsetispeed@PLT
	mov	eax, DWORD PTR -88[rbp]
	or	eax, 48
	mov	DWORD PTR -88[rbp], eax
	mov	eax, DWORD PTR -96[rbp]
	and	eax, -2
	mov	DWORD PTR -96[rbp], eax
	mov	DWORD PTR -84[rbp], 0
	mov	DWORD PTR -92[rbp], 0
	mov	BYTE PTR -73[rbp], 0
	mov	BYTE PTR -74[rbp], 5
	mov	eax, DWORD PTR -96[rbp]
	and	ah, -29
	mov	DWORD PTR -96[rbp], eax
	mov	eax, DWORD PTR -88[rbp]
	or	eax, 2176
	mov	DWORD PTR -88[rbp], eax
	mov	eax, DWORD PTR -88[rbp]
	and	ah, -4
	mov	DWORD PTR -88[rbp], eax
	mov	edx, DWORD PTR -88[rbp]
	mov	eax, DWORD PTR -108[rbp]
	or	eax, edx
	mov	DWORD PTR -88[rbp], eax
	mov	eax, DWORD PTR -88[rbp]
	and	eax, -65
	mov	DWORD PTR -88[rbp], eax
	mov	eax, DWORD PTR -88[rbp]
	and	eax, 2147483647
	mov	DWORD PTR -88[rbp], eax
	lea	rdx, -96[rbp]
	mov	eax, DWORD PTR -100[rbp]
	mov	esi, 0
	mov	edi, eax
	call	tcsetattr@PLT
	test	eax, eax
	je	.L23
	call	__errno_location@PLT
	mov	eax, DWORD PTR [rax]
	mov	edi, eax
	call	strerror@PLT
	mov	r12, rax
	mov	rbx, QWORD PTR UDEV_DEVNAME[rip]
	call	__errno_location@PLT
	mov	eax, DWORD PTR [rax]
	mov	rcx, r12
	mov	rdx, rbx
	mov	esi, eax
	lea	rdi, .LC18[rip]
	mov	eax, 0
	call	printf@PLT
	mov	eax, -1
	jmp	.L24
.L23:
	mov	eax, 0
.L24:
	mov	rcx, QWORD PTR -24[rbp]
	sub	rcx, QWORD PTR fs:40
	je	.L25
	call	__stack_chk_fail@PLT
.L25:
	add	rsp, 96
	pop	rbx
	pop	r12
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE7:
	.size	set_interface_attribs, .-set_interface_attribs
	.globl	set_blocking
	.type	set_blocking, @function
set_blocking:
.LFB8:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	r12
	push	rbx
	sub	rsp, 96
	.cfi_offset 12, -24
	.cfi_offset 3, -32
	mov	DWORD PTR -100[rbp], edi
	mov	DWORD PTR -104[rbp], esi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -24[rbp], rax
	xor	eax, eax
	lea	rax, -96[rbp]
	mov	edx, 60
	mov	esi, 0
	mov	rdi, rax
	call	memset@PLT
	lea	rdx, -96[rbp]
	mov	eax, DWORD PTR -100[rbp]
	mov	rsi, rdx
	mov	edi, eax
	call	tcgetattr@PLT
	test	eax, eax
	je	.L27
	call	__errno_location@PLT
	mov	eax, DWORD PTR [rax]
	mov	edi, eax
	call	strerror@PLT
	mov	r12, rax
	mov	rbx, QWORD PTR UDEV_DEVNAME[rip]
	call	__errno_location@PLT
	mov	eax, DWORD PTR [rax]
	mov	rcx, r12
	mov	rdx, rbx
	mov	esi, eax
	lea	rdi, .LC17[rip]
	mov	eax, 0
	call	printf@PLT
	jmp	.L26
.L27:
	cmp	DWORD PTR -104[rbp], 0
	setne	al
	mov	BYTE PTR -73[rbp], al
	mov	BYTE PTR -74[rbp], 5
	lea	rdx, -96[rbp]
	mov	eax, DWORD PTR -100[rbp]
	mov	esi, 0
	mov	edi, eax
	call	tcsetattr@PLT
	test	eax, eax
	je	.L26
	call	__errno_location@PLT
	mov	eax, DWORD PTR [rax]
	mov	edi, eax
	call	strerror@PLT
	mov	r12, rax
	mov	rbx, QWORD PTR UDEV_DEVNAME[rip]
	call	__errno_location@PLT
	mov	eax, DWORD PTR [rax]
	mov	rcx, r12
	mov	rdx, rbx
	mov	esi, eax
	lea	rdi, .LC18[rip]
	mov	eax, 0
	call	printf@PLT
.L26:
	mov	rax, QWORD PTR -24[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L30
	call	__stack_chk_fail@PLT
.L30:
	add	rsp, 96
	pop	rbx
	pop	r12
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE8:
	.size	set_blocking, .-set_blocking
	.section	.rodata
	.align 8
.LC19:
	.string	"Regex error compiling '%s': %s\n"
	.text
	.type	compile_regex, @function
compile_regex:
.LFB9:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 4096
	or	QWORD PTR [rsp], 0
	sub	rsp, 48
	mov	QWORD PTR -4136[rbp], rdi
	mov	QWORD PTR -4144[rbp], rsi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	rcx, QWORD PTR -4144[rbp]
	mov	rax, QWORD PTR -4136[rbp]
	mov	edx, 5
	mov	rsi, rcx
	mov	rdi, rax
	call	regcomp@PLT
	mov	DWORD PTR -4116[rbp], eax
	cmp	DWORD PTR -4116[rbp], 0
	je	.L32
	lea	rdx, -4112[rbp]
	mov	rsi, QWORD PTR -4136[rbp]
	mov	eax, DWORD PTR -4116[rbp]
	mov	ecx, 4096
	mov	edi, eax
	call	regerror@PLT
	lea	rdx, -4112[rbp]
	mov	rax, QWORD PTR -4144[rbp]
	mov	rsi, rax
	lea	rdi, .LC19[rip]
	mov	eax, 0
	call	printf@PLT
	mov	eax, 1
	jmp	.L33
.L32:
	mov	eax, 0
.L33:
	mov	rcx, QWORD PTR -8[rbp]
	sub	rcx, QWORD PTR fs:40
	je	.L34
	call	__stack_chk_fail@PLT
.L34:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE9:
	.size	compile_regex, .-compile_regex
	.section	.rodata
.LC20:
	.string	"OK"
.LC21:
	.string	"COMMAND NOT SUPPORT"
.LC22:
	.string	"ERROR"
.LC23:
	.string	"NO CARRIER"
	.text
	.globl	GSM_Check_Reply
	.type	GSM_Check_Reply, @function
GSM_Check_Reply:
.LFB10:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 112
	mov	QWORD PTR -104[rbp], rdi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	lea	rax, -80[rbp]
	lea	rsi, .LC20[rip]
	mov	rdi, rax
	call	compile_regex
	mov	rsi, QWORD PTR -104[rbp]
	lea	rax, -80[rbp]
	mov	r8d, 0
	mov	ecx, 0
	mov	edx, 0
	mov	rdi, rax
	call	regexec@PLT
	mov	DWORD PTR -84[rbp], eax
	cmp	DWORD PTR -84[rbp], 0
	jne	.L36
	lea	rax, -80[rbp]
	mov	rdi, rax
	call	regfree@PLT
	mov	eax, 0
	jmp	.L41
.L36:
	lea	rax, -80[rbp]
	lea	rsi, .LC21[rip]
	mov	rdi, rax
	call	compile_regex
	mov	rsi, QWORD PTR -104[rbp]
	lea	rax, -80[rbp]
	mov	r8d, 0
	mov	ecx, 0
	mov	edx, 0
	mov	rdi, rax
	call	regexec@PLT
	mov	DWORD PTR -84[rbp], eax
	cmp	DWORD PTR -84[rbp], 0
	jne	.L38
	lea	rax, -80[rbp]
	mov	rdi, rax
	call	regfree@PLT
	mov	eax, 1
	jmp	.L41
.L38:
	lea	rax, -80[rbp]
	lea	rsi, .LC22[rip]
	mov	rdi, rax
	call	compile_regex
	mov	rsi, QWORD PTR -104[rbp]
	lea	rax, -80[rbp]
	mov	r8d, 0
	mov	ecx, 0
	mov	edx, 0
	mov	rdi, rax
	call	regexec@PLT
	mov	DWORD PTR -84[rbp], eax
	cmp	DWORD PTR -84[rbp], 0
	jne	.L39
	lea	rax, -80[rbp]
	mov	rdi, rax
	call	regfree@PLT
	mov	eax, 3
	jmp	.L41
.L39:
	lea	rax, -80[rbp]
	lea	rsi, .LC23[rip]
	mov	rdi, rax
	call	compile_regex
	mov	rsi, QWORD PTR -104[rbp]
	lea	rax, -80[rbp]
	mov	r8d, 0
	mov	ecx, 0
	mov	edx, 0
	mov	rdi, rax
	call	regexec@PLT
	mov	DWORD PTR -84[rbp], eax
	cmp	DWORD PTR -84[rbp], 0
	jne	.L40
	lea	rax, -80[rbp]
	mov	rdi, rax
	call	regfree@PLT
	mov	eax, 2
	jmp	.L41
.L40:
	mov	eax, 1
.L41:
	mov	rdx, QWORD PTR -8[rbp]
	sub	rdx, QWORD PTR fs:40
	je	.L42
	call	__stack_chk_fail@PLT
.L42:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE10:
	.size	GSM_Check_Reply, .-GSM_Check_Reply
	.section	.rodata
.LC24:
	.string	"([[:digit:]]{15})"
	.align 8
.LC25:
	.string	"returned IMEI is longer than maximum allowed characters. IMEI should have exaclty %u characters."
	.text
	.globl	GSM_get_IMEI
	.type	GSM_get_IMEI, @function
GSM_get_IMEI:
.LFB11:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 4096
	or	QWORD PTR [rsp], 0
	sub	rsp, 144
	mov	QWORD PTR -4232[rbp], rdi
	mov	QWORD PTR -4240[rbp], rsi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	lea	rax, .LC24[rip]
	mov	QWORD PTR -4200[rbp], rax
	mov	rcx, QWORD PTR -4200[rbp]
	lea	rax, -4192[rbp]
	mov	edx, 5
	mov	rsi, rcx
	mov	rdi, rax
	call	regcomp@PLT
	mov	DWORD PTR -4216[rbp], eax
	cmp	DWORD PTR -4216[rbp], 0
	je	.L44
	lea	rdx, -4112[rbp]
	lea	rsi, -4192[rbp]
	mov	eax, DWORD PTR -4216[rbp]
	mov	ecx, 4096
	mov	edi, eax
	call	regerror@PLT
	lea	rdx, -4112[rbp]
	mov	rax, QWORD PTR -4200[rbp]
	mov	rcx, rdx
	mov	rdx, rax
	lea	rsi, .LC19[rip]
	mov	edi, 3
	mov	eax, 0
	call	syslog@PLT
	mov	eax, -1
	jmp	.L48
.L44:
	lea	rdx, -4120[rbp]
	mov	rsi, QWORD PTR -4232[rbp]
	lea	rax, -4192[rbp]
	mov	r8d, 0
	mov	rcx, rdx
	mov	edx, 1
	mov	rdi, rax
	call	regexec@PLT
	mov	DWORD PTR -4212[rbp], eax
	cmp	DWORD PTR -4212[rbp], 0
	jne	.L46
	mov	eax, DWORD PTR -4120[rbp]
	mov	DWORD PTR -4208[rbp], eax
	mov	eax, DWORD PTR -4116[rbp]
	mov	edx, DWORD PTR -4120[rbp]
	sub	eax, edx
	mov	DWORD PTR -4204[rbp], eax
	mov	rax, QWORD PTR -4240[rbp]
	mov	edx, 16
	mov	esi, 0
	mov	rdi, rax
	call	memset@PLT
	cmp	DWORD PTR -4204[rbp], 15
	jle	.L47
	mov	edx, 15
	lea	rsi, .LC25[rip]
	mov	edi, 3
	mov	eax, 0
	call	syslog@PLT
	mov	eax, -1
	jmp	.L48
.L47:
	mov	eax, DWORD PTR -4204[rbp]
	movsx	rdx, eax
	mov	eax, DWORD PTR -4208[rbp]
	movsx	rcx, eax
	mov	rax, QWORD PTR -4232[rbp]
	add	rcx, rax
	mov	rax, QWORD PTR -4240[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	strncpy@PLT
	lea	rax, -4192[rbp]
	mov	rdi, rax
	call	regfree@PLT
	mov	eax, 0
	jmp	.L48
.L46:
	mov	eax, 1
.L48:
	mov	rcx, QWORD PTR -8[rbp]
	sub	rcx, QWORD PTR fs:40
	je	.L49
	call	__stack_chk_fail@PLT
.L49:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE11:
	.size	GSM_get_IMEI, .-GSM_get_IMEI
	.globl	trimwhitespace
	.type	trimwhitespace, @function
trimwhitespace:
.LFB12:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	jmp	.L51
.L52:
	add	QWORD PTR -24[rbp], 1
.L51:
	call	__ctype_b_loc@PLT
	mov	rdx, QWORD PTR [rax]
	mov	rax, QWORD PTR -24[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	rax, rax
	add	rax, rdx
	movzx	eax, WORD PTR [rax]
	movzx	eax, ax
	and	eax, 8192
	test	eax, eax
	jne	.L52
	mov	rax, QWORD PTR -24[rbp]
	movzx	eax, BYTE PTR [rax]
	test	al, al
	jne	.L53
	mov	rax, QWORD PTR -24[rbp]
	jmp	.L54
.L53:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	strlen@PLT
	lea	rdx, -1[rax]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, rdx
	mov	QWORD PTR -8[rbp], rax
	jmp	.L55
.L57:
	sub	QWORD PTR -8[rbp], 1
.L55:
	mov	rax, QWORD PTR -8[rbp]
	cmp	rax, QWORD PTR -24[rbp]
	jbe	.L56
	call	__ctype_b_loc@PLT
	mov	rdx, QWORD PTR [rax]
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	rax, rax
	add	rax, rdx
	movzx	eax, WORD PTR [rax]
	movzx	eax, ax
	and	eax, 8192
	test	eax, eax
	jne	.L57
.L56:
	mov	rax, QWORD PTR -8[rbp]
	add	rax, 1
	mov	BYTE PTR [rax], 0
	mov	rax, QWORD PTR -24[rbp]
.L54:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE12:
	.size	trimwhitespace, .-trimwhitespace
	.globl	serial_read
	.type	serial_read, @function
serial_read:
.LFB13:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	rbx
	sub	rsp, 88
	.cfi_offset 3, -24
	mov	DWORD PTR -68[rbp], edi
	mov	QWORD PTR -80[rbp], rsi
	mov	QWORD PTR -88[rbp], rdx
	mov	DWORD PTR -72[rbp], ecx
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -24[rbp], rax
	xor	eax, eax
	mov	rax, rsp
	mov	rbx, rax
	mov	rax, QWORD PTR -88[rbp]
	mov	rdx, rax
	sub	rdx, 1
	mov	QWORD PTR -40[rbp], rdx
	mov	r10, rax
	mov	r11d, 0
	mov	r8, rax
	mov	r9d, 0
	mov	edx, 16
	sub	rdx, 1
	add	rax, rdx
	mov	esi, 16
	mov	edx, 0
	div	rsi
	imul	rax, rax, 16
	mov	rcx, rax
	and	rcx, -4096
	mov	rdx, rsp
	sub	rdx, rcx
.L59:
	cmp	rsp, rdx
	je	.L60
	sub	rsp, 4096
	or	QWORD PTR 4088[rsp], 0
	jmp	.L59
.L60:
	mov	rdx, rax
	and	edx, 4095
	sub	rsp, rdx
	mov	rdx, rax
	and	edx, 4095
	test	rdx, rdx
	je	.L61
	and	eax, 4095
	sub	rax, 8
	add	rax, rsp
	or	QWORD PTR [rax], 0
.L61:
	mov	rax, rsp
	add	rax, 0
	mov	QWORD PTR -32[rbp], rax
	mov	DWORD PTR -52[rbp], 0
	mov	rdx, QWORD PTR -88[rbp]
	mov	rax, QWORD PTR -80[rbp]
	mov	esi, 0
	mov	rdi, rax
	call	memset@PLT
	mov	rdx, QWORD PTR -88[rbp]
	mov	rax, QWORD PTR -32[rbp]
	mov	esi, 0
	mov	rdi, rax
	call	memset@PLT
.L63:
	mov	rdx, QWORD PTR -88[rbp]
	mov	rcx, QWORD PTR -32[rbp]
	mov	eax, DWORD PTR -68[rbp]
	mov	rsi, rcx
	mov	edi, eax
	call	read@PLT
	mov	DWORD PTR -44[rbp], eax
	cmp	DWORD PTR -44[rbp], 0
	jle	.L62
	mov	rdx, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR -80[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	strcat@PLT
	mov	eax, DWORD PTR -44[rbp]
	add	DWORD PTR -48[rbp], eax
.L62:
	mov	edi, 100
	call	usleep@PLT
	add	DWORD PTR -52[rbp], 1
	mov	rdx, QWORD PTR -88[rbp]
	mov	rax, QWORD PTR -32[rbp]
	mov	esi, 0
	mov	rdi, rax
	call	memset@PLT
	cmp	DWORD PTR -44[rbp], 0
	jne	.L63
	mov	eax, DWORD PTR -48[rbp]
	mov	rsp, rbx
	mov	rbx, QWORD PTR -24[rbp]
	sub	rbx, QWORD PTR fs:40
	je	.L65
	call	__stack_chk_fail@PLT
.L65:
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE13:
	.size	serial_read, .-serial_read
	.globl	GSM_AT
	.type	GSM_AT, @function
GSM_AT:
.LFB14:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 192
	mov	DWORD PTR -164[rbp], edi
	mov	QWORD PTR -176[rbp], rsi
	mov	QWORD PTR -184[rbp], rdx
	mov	DWORD PTR -168[rbp], ecx
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	lea	rax, -144[rbp]
	mov	DWORD PTR [rax], 168645697
	mov	BYTE PTR 4[rax], 0
	lea	rax, -144[rbp]
	mov	rdi, rax
	call	strlen@PLT
	mov	rdx, rax
	lea	rcx, -144[rbp]
	mov	eax, DWORD PTR -164[rbp]
	mov	rsi, rcx
	mov	edi, eax
	call	write@PLT
	mov	DWORD PTR -152[rbp], eax
	mov	eax, DWORD PTR -164[rbp]
	mov	edi, eax
	call	tcdrain@PLT
	cmp	DWORD PTR -152[rbp], 0
	jne	.L67
	mov	eax, 3
	jmp	.L71
.L67:
	mov	rsi, QWORD PTR -176[rbp]
	mov	eax, DWORD PTR -164[rbp]
	mov	ecx, 10
	mov	edx, 1024
	mov	edi, eax
	call	serial_read
	mov	DWORD PTR -148[rbp], eax
	cmp	DWORD PTR -148[rbp], 0
	jne	.L69
	mov	eax, 3
	jmp	.L71
.L69:
	mov	rax, QWORD PTR -176[rbp]
	mov	rdi, rax
	call	trimwhitespace
	mov	QWORD PTR -176[rbp], rax
	mov	rax, QWORD PTR -176[rbp]
	mov	rdi, rax
	call	GSM_Check_Reply
	test	eax, eax
	jne	.L70
	mov	eax, 0
	jmp	.L71
.L70:
	mov	eax, 3
.L71:
	mov	rcx, QWORD PTR -8[rbp]
	sub	rcx, QWORD PTR fs:40
	je	.L72
	call	__stack_chk_fail@PLT
.L72:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE14:
	.size	GSM_AT, .-GSM_AT
	.globl	GSM_ATZ
	.type	GSM_ATZ, @function
GSM_ATZ:
.LFB15:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 192
	mov	DWORD PTR -164[rbp], edi
	mov	QWORD PTR -176[rbp], rsi
	mov	QWORD PTR -184[rbp], rdx
	mov	DWORD PTR -168[rbp], ecx
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	lea	rax, -144[rbp]
	mov	DWORD PTR [rax], 224023617
	mov	WORD PTR 4[rax], 10
	lea	rax, -144[rbp]
	mov	rdi, rax
	call	strlen@PLT
	mov	rdx, rax
	lea	rcx, -144[rbp]
	mov	eax, DWORD PTR -164[rbp]
	mov	rsi, rcx
	mov	edi, eax
	call	write@PLT
	mov	DWORD PTR -152[rbp], eax
	mov	eax, DWORD PTR -164[rbp]
	mov	edi, eax
	call	tcdrain@PLT
	cmp	DWORD PTR -152[rbp], 0
	jne	.L74
	mov	eax, 3
	jmp	.L78
.L74:
	mov	rsi, QWORD PTR -176[rbp]
	mov	eax, DWORD PTR -164[rbp]
	mov	ecx, 10
	mov	edx, 1024
	mov	edi, eax
	call	serial_read
	mov	DWORD PTR -148[rbp], eax
	cmp	DWORD PTR -148[rbp], 0
	jne	.L76
	mov	eax, 3
	jmp	.L78
.L76:
	mov	rax, QWORD PTR -176[rbp]
	mov	rdi, rax
	call	trimwhitespace
	mov	QWORD PTR -176[rbp], rax
	mov	rax, QWORD PTR -176[rbp]
	mov	rdi, rax
	call	GSM_Check_Reply
	test	eax, eax
	jne	.L77
	mov	eax, 0
	jmp	.L78
.L77:
	mov	eax, 3
.L78:
	mov	rcx, QWORD PTR -8[rbp]
	sub	rcx, QWORD PTR fs:40
	je	.L79
	call	__stack_chk_fail@PLT
.L79:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE15:
	.size	GSM_ATZ, .-GSM_ATZ
	.globl	GSM_ATE0
	.type	GSM_ATE0, @function
GSM_ATE0:
.LFB16:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 192
	mov	DWORD PTR -164[rbp], edi
	mov	QWORD PTR -176[rbp], rsi
	mov	QWORD PTR -184[rbp], rdx
	mov	DWORD PTR -168[rbp], ecx
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	lea	rax, -144[rbp]
	mov	DWORD PTR [rax], 809849921
	mov	WORD PTR 4[rax], 2573
	mov	BYTE PTR 6[rax], 0
	lea	rax, -144[rbp]
	mov	rdi, rax
	call	strlen@PLT
	mov	rdx, rax
	lea	rcx, -144[rbp]
	mov	eax, DWORD PTR -164[rbp]
	mov	rsi, rcx
	mov	edi, eax
	call	write@PLT
	mov	DWORD PTR -152[rbp], eax
	mov	eax, DWORD PTR -164[rbp]
	mov	edi, eax
	call	tcdrain@PLT
	cmp	DWORD PTR -152[rbp], 0
	jne	.L81
	mov	eax, 3
	jmp	.L85
.L81:
	mov	rsi, QWORD PTR -176[rbp]
	mov	eax, DWORD PTR -164[rbp]
	mov	ecx, 10
	mov	edx, 1024
	mov	edi, eax
	call	serial_read
	mov	DWORD PTR -148[rbp], eax
	cmp	DWORD PTR -148[rbp], 0
	jne	.L83
	mov	eax, 3
	jmp	.L85
.L83:
	mov	rax, QWORD PTR -176[rbp]
	mov	rdi, rax
	call	GSM_Check_Reply
	test	eax, eax
	jne	.L84
	mov	eax, 0
	jmp	.L85
.L84:
	mov	eax, 3
.L85:
	mov	rcx, QWORD PTR -8[rbp]
	sub	rcx, QWORD PTR fs:40
	je	.L86
	call	__stack_chk_fail@PLT
.L86:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE16:
	.size	GSM_ATE0, .-GSM_ATE0
	.globl	GSM_ATCGSN
	.type	GSM_ATCGSN, @function
GSM_ATCGSN:
.LFB17:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 192
	mov	DWORD PTR -164[rbp], edi
	mov	QWORD PTR -176[rbp], rsi
	mov	QWORD PTR -184[rbp], rdx
	mov	QWORD PTR -192[rbp], rcx
	mov	DWORD PTR -168[rbp], r8d
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	lea	rax, -144[rbp]
	movabs	rcx, 958795336211190849
	mov	QWORD PTR [rax], rcx
	mov	WORD PTR 8[rax], 10
	lea	rax, -144[rbp]
	mov	rdi, rax
	call	strlen@PLT
	mov	rdx, rax
	lea	rcx, -144[rbp]
	mov	eax, DWORD PTR -164[rbp]
	mov	rsi, rcx
	mov	edi, eax
	call	write@PLT
	mov	DWORD PTR -152[rbp], eax
	mov	eax, DWORD PTR -164[rbp]
	mov	edi, eax
	call	tcdrain@PLT
	cmp	DWORD PTR -152[rbp], 0
	jne	.L88
	mov	eax, 3
	jmp	.L93
.L88:
	mov	rsi, QWORD PTR -176[rbp]
	mov	eax, DWORD PTR -164[rbp]
	mov	ecx, 10
	mov	edx, 1024
	mov	edi, eax
	call	serial_read
	mov	DWORD PTR -148[rbp], eax
	cmp	DWORD PTR -148[rbp], 0
	jne	.L90
	mov	eax, 3
	jmp	.L93
.L90:
	mov	rax, QWORD PTR -176[rbp]
	mov	rdi, rax
	call	trimwhitespace
	mov	QWORD PTR -176[rbp], rax
	mov	rax, QWORD PTR -176[rbp]
	mov	rdi, rax
	call	GSM_Check_Reply
	test	eax, eax
	jne	.L91
	mov	rdx, QWORD PTR -192[rbp]
	mov	rax, QWORD PTR -176[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	GSM_get_IMEI
	test	eax, eax
	jne	.L92
	mov	rax, QWORD PTR -192[rbp]
	mov	rdi, rax
	call	MODEM_SYMLINK
	cmp	eax, -1
	jne	.L92
	mov	eax, 3
	jmp	.L93
.L92:
	mov	eax, 0
	jmp	.L93
.L91:
	mov	eax, 3
.L93:
	mov	rcx, QWORD PTR -8[rbp]
	sub	rcx, QWORD PTR fs:40
	je	.L94
	call	__stack_chk_fail@PLT
.L94:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE17:
	.size	GSM_ATCGSN, .-GSM_ATCGSN
	.section	.rodata
.LC26:
	.string	"Modem IMEI is \"%s\""
.LC27:
	.string	"%s/usb-%s-%s"
	.align 8
.LC28:
	.string	"Create a symlink \"%s\" which points to \"%s\""
	.align 8
.LC29:
	.string	"Couln't create a symlink \"%s\" pointing to \"%s\""
	.align 8
.LC30:
	.string	"Unlink returned error \"%s\" when deleting path \"%s\""
	.text
	.globl	MODEM_SYMLINK
	.type	MODEM_SYMLINK, @function
MODEM_SYMLINK:
.LFB18:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 1104
	mov	QWORD PTR -1096[rbp], rdi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	lea	rdi, .LC14[rip]
	call	udev_add_DirCheck
	mov	DWORD PTR -1084[rbp], eax
	cmp	DWORD PTR -1084[rbp], 0
	je	.L96
	mov	eax, -1
	jmp	.L104
.L96:
	mov	rax, QWORD PTR -1096[rbp]
	mov	rdx, rax
	lea	rsi, .LC26[rip]
	mov	edi, 6
	mov	eax, 0
	call	syslog@PLT
	mov	rax, QWORD PTR UDEV_ID_USB_INTERFACE_NUM[rip]
	test	rax, rax
	je	.L98
	lea	rax, -1072[rbp]
	mov	edx, 32
	mov	esi, 0
	mov	rdi, rax
	call	memset@PLT
	mov	rcx, QWORD PTR UDEV_ID_USB_INTERFACE_NUM[rip]
	mov	rdx, QWORD PTR -1096[rbp]
	lea	rax, -1040[rbp]
	mov	r9, rcx
	mov	r8, rdx
	lea	rcx, .LC14[rip]
	lea	rdx, .LC27[rip]
	mov	esi, 1024
	mov	rdi, rax
	mov	eax, 0
	call	snprintf@PLT
	lea	rax, -1040[rbp]
	mov	rdi, rax
	call	udev_add_SymlinkCheck
	mov	DWORD PTR -1084[rbp], eax
	cmp	DWORD PTR -1084[rbp], -1
	jne	.L99
	mov	eax, -1
	jmp	.L104
.L99:
	cmp	DWORD PTR -1084[rbp], 0
	jne	.L100
	mov	rax, QWORD PTR UDEV_DEVNAME[rip]
	lea	rdx, -1040[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	symlink@PLT
	mov	DWORD PTR -1076[rbp], eax
	cmp	DWORD PTR -1076[rbp], 0
	jne	.L101
	mov	rdx, QWORD PTR UDEV_DEVNAME[rip]
	lea	rax, -1040[rbp]
	mov	rcx, rdx
	mov	rdx, rax
	lea	rsi, .LC28[rip]
	mov	edi, 6
	mov	eax, 0
	call	syslog@PLT
	mov	eax, 0
	jmp	.L104
.L101:
	mov	rdx, QWORD PTR UDEV_DEVNAME[rip]
	lea	rax, -1040[rbp]
	mov	rcx, rdx
	mov	rdx, rax
	lea	rsi, .LC29[rip]
	mov	edi, 3
	mov	eax, 0
	call	syslog@PLT
	mov	eax, -1
	jmp	.L104
.L100:
	lea	rax, -1040[rbp]
	mov	rdi, rax
	call	unlink@PLT
	mov	DWORD PTR -1084[rbp], eax
	cmp	DWORD PTR -1084[rbp], 0
	je	.L102
	call	__errno_location@PLT
	mov	eax, DWORD PTR [rax]
	mov	edi, eax
	call	strerror@PLT
	mov	rdx, rax
	lea	rax, -1040[rbp]
	mov	rcx, rax
	lea	rsi, .LC30[rip]
	mov	edi, 3
	mov	eax, 0
	call	syslog@PLT
	mov	eax, -1
	jmp	.L104
.L102:
	mov	rax, QWORD PTR UDEV_DEVNAME[rip]
	lea	rdx, -1040[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	symlink@PLT
	mov	DWORD PTR -1080[rbp], eax
	cmp	DWORD PTR -1080[rbp], 0
	jne	.L103
	mov	rdx, QWORD PTR UDEV_DEVNAME[rip]
	lea	rax, -1040[rbp]
	mov	rcx, rdx
	mov	rdx, rax
	lea	rsi, .LC28[rip]
	mov	edi, 6
	mov	eax, 0
	call	syslog@PLT
	mov	eax, 0
	jmp	.L104
.L103:
	mov	rdx, QWORD PTR UDEV_DEVNAME[rip]
	lea	rax, -1040[rbp]
	mov	rcx, rdx
	mov	rdx, rax
	lea	rsi, .LC29[rip]
	mov	edi, 3
	mov	eax, 0
	call	syslog@PLT
	mov	eax, -1
	jmp	.L104
.L98:
	mov	eax, 0
.L104:
	mov	rcx, QWORD PTR -8[rbp]
	sub	rcx, QWORD PTR fs:40
	je	.L105
	call	__stack_chk_fail@PLT
.L105:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE18:
	.size	MODEM_SYMLINK, .-MODEM_SYMLINK
	.section	.rodata
.LC31:
	.string	"755"
	.align 8
.LC32:
	.string	"Couldn't set permission to 0755 for path \"%s\""
	.align 8
.LC33:
	.string	"lstat for path \"%s\" returns error \"%s\".\n"
.LC34:
	.string	"Create path %s."
.LC35:
	.string	"Creating path %s."
	.text
	.globl	udev_add_DirCheck
	.type	udev_add_DirCheck, @function
udev_add_DirCheck:
.LFB19:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	rbx
	sub	rsp, 200
	.cfi_offset 3, -24
	mov	QWORD PTR -200[rbp], rdi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -24[rbp], rax
	xor	eax, eax
	lea	rdx, -176[rbp]
	mov	rax, QWORD PTR -200[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	lstat@PLT
	mov	DWORD PTR -184[rbp], eax
	cmp	DWORD PTR -184[rbp], 0
	jne	.L107
	mov	eax, DWORD PTR -152[rbp]
	and	eax, 61440
	cmp	eax, 16384
	jne	.L108
	mov	eax, DWORD PTR -152[rbp]
	mov	eax, eax
	and	ah, 15
	mov	rbx, rax
	mov	edx, 8
	mov	esi, 0
	lea	rdi, .LC31[rip]
	call	strtoul@PLT
	cmp	rbx, rax
	jne	.L109
	mov	eax, 0
	jmp	.L116
.L109:
	mov	DWORD PTR -180[rbp], 493
	mov	edx, DWORD PTR -180[rbp]
	mov	rax, QWORD PTR -200[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	chmod@PLT
	mov	DWORD PTR -184[rbp], eax
	cmp	DWORD PTR -184[rbp], 0
	jne	.L111
	mov	eax, 0
	jmp	.L116
.L111:
	mov	rax, QWORD PTR -200[rbp]
	mov	rdx, rax
	lea	rsi, .LC32[rip]
	mov	edi, 3
	mov	eax, 0
	call	syslog@PLT
	mov	eax, -1
	jmp	.L116
.L108:
	mov	rax, QWORD PTR -200[rbp]
	mov	rdi, rax
	call	remove@PLT
	mov	DWORD PTR -184[rbp], eax
	cmp	DWORD PTR -184[rbp], 0
	je	.L118
	mov	eax, 0
	jmp	.L116
.L107:
	call	__errno_location@PLT
	mov	eax, DWORD PTR [rax]
	cmp	eax, 2
	je	.L119
	call	__errno_location@PLT
	mov	eax, DWORD PTR [rax]
	mov	edi, eax
	call	strerror@PLT
	mov	rdx, rax
	mov	rax, QWORD PTR -200[rbp]
	mov	rcx, rdx
	mov	rdx, rax
	lea	rsi, .LC33[rip]
	mov	edi, 3
	mov	eax, 0
	call	syslog@PLT
	mov	eax, -1
	jmp	.L116
.L118:
	nop
	jmp	.L113
.L119:
	nop
.L113:
	mov	rax, QWORD PTR -200[rbp]
	mov	esi, 493
	mov	rdi, rax
	call	mkdir@PLT
	mov	DWORD PTR -184[rbp], eax
	cmp	DWORD PTR -184[rbp], 0
	jne	.L115
	mov	rax, QWORD PTR -200[rbp]
	mov	rdx, rax
	lea	rsi, .LC34[rip]
	mov	edi, 6
	mov	eax, 0
	call	syslog@PLT
	mov	eax, 0
	jmp	.L116
.L115:
	mov	rax, QWORD PTR -200[rbp]
	mov	rdx, rax
	lea	rsi, .LC35[rip]
	mov	edi, 3
	mov	eax, 0
	call	syslog@PLT
	mov	eax, -1
.L116:
	mov	rcx, QWORD PTR -24[rbp]
	sub	rcx, QWORD PTR fs:40
	je	.L117
	call	__stack_chk_fail@PLT
.L117:
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE19:
	.size	udev_add_DirCheck, .-udev_add_DirCheck
	.section	.rodata
	.align 8
.LC36:
	.string	"lstat returned error \"%s\" when checking path \"%s\""
	.text
	.globl	udev_add_SymlinkCheck
	.type	udev_add_SymlinkCheck, @function
udev_add_SymlinkCheck:
.LFB20:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 192
	mov	QWORD PTR -184[rbp], rdi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	lea	rdx, -160[rbp]
	mov	rax, QWORD PTR -184[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	lstat@PLT
	mov	DWORD PTR -164[rbp], eax
	cmp	DWORD PTR -164[rbp], 0
	jne	.L121
	mov	eax, DWORD PTR -136[rbp]
	and	eax, 61440
	jmp	.L125
.L121:
	call	__errno_location@PLT
	mov	eax, DWORD PTR [rax]
	cmp	eax, 2
	je	.L128
	call	__errno_location@PLT
	mov	eax, DWORD PTR [rax]
	mov	edi, eax
	call	strerror@PLT
	mov	rdx, rax
	mov	rax, QWORD PTR -184[rbp]
	mov	rcx, rax
	lea	rsi, .LC36[rip]
	mov	edi, 3
	mov	eax, 0
	call	syslog@PLT
	mov	eax, -1
	jmp	.L125
.L128:
	nop
.L124:
	mov	eax, 0
.L125:
	mov	rcx, QWORD PTR -8[rbp]
	sub	rcx, QWORD PTR fs:40
	je	.L126
	call	__stack_chk_fail@PLT
.L126:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE20:
	.size	udev_add_SymlinkCheck, .-udev_add_SymlinkCheck
	.section	.rodata
	.align 8
.LC37:
	.string	"Usage: this software should be run from udev daemon. Check /etc/udev/rules.d/85-usb_modem-by-imein.rules file."
	.text
	.globl	print_help
	.type	print_help, @function
print_help:
.LFB21:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	lea	rdi, .LC37[rip]
	call	puts@PLT
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE21:
	.size	print_help, .-print_help
	.ident	"GCC: (Ubuntu 10.5.0-1ubuntu1~20.04) 10.5.0"
	.section	.note.GNU-stack,"",@progbits
	.section	.note.gnu.property,"a"
	.align 8
	.long	 1f - 0f
	.long	 4f - 1f
	.long	 5
0:
	.string	 "GNU"
1:
	.align 8
	.long	 0xc0000002
	.long	 3f - 2f
2:
	.long	 0x3
3:
	.align 8
4:

	.arch armv5t
	.eabi_attribute 20, 1
	.eabi_attribute 21, 1
	.eabi_attribute 23, 3
	.eabi_attribute 24, 1
	.eabi_attribute 25, 1
	.eabi_attribute 26, 2
	.eabi_attribute 30, 6
	.eabi_attribute 34, 0
	.eabi_attribute 18, 4
	.file	"744785.c"
	.text
	.comm	UDEV_ACTION,4,4
	.comm	UDEV_SUBSYSTEM,4,4
	.comm	UDEV_DEVNAME,4,4
	.comm	UDEV_ID_USB_INTERFACE_NUM,4,4
	.section	.rodata
	.align	2
.LC0:
	.ascii	"ACTION\000"
	.align	2
.LC1:
	.ascii	"SUBSYSTEM\000"
	.align	2
.LC2:
	.ascii	"DEVNAME\000"
	.align	2
.LC3:
	.ascii	"ID_USB_INTERFACE_NUM\000"
	.align	2
.LC4:
	.ascii	"UDEV_ACTION not defined.\000"
	.align	2
.LC5:
	.ascii	"UDEV_SUBSYSTEM not defined.\000"
	.align	2
.LC6:
	.ascii	"UDEV_DEVNAME not defined.\000"
	.align	2
.LC7:
	.ascii	"add\000"
	.align	2
.LC8:
	.ascii	"Error %i opening %s: %s\012\000"
	.align	2
.LC9:
	.ascii	"ATZ not replied back with OK for device \"%s\"\000"
	.align	2
.LC10:
	.ascii	"ATE0 not replied back with OK for device \"%s\"\000"
	.align	2
.LC11:
	.ascii	"AT+CGSN not replied back with OK for device \"%s\"\000"
	.align	2
.LC12:
	.ascii	"remove\000"
	.align	2
.LC13:
	.ascii	"Action \"%s\" detected.\012\000"
	.align	2
.LC14:
	.ascii	"/dev/serial/by-imei\000"
	.align	2
.LC15:
	.ascii	"Couldn't open dir \"%s\". opendir exit with \"%s\"."
	.ascii	"\000"
	.align	2
.LC16:
	.ascii	"/\000"
	.align	2
.LC17:
	.ascii	"Unknown udev action '%s' detected. Must be 'add' or"
	.ascii	" 'remove'.\000"
	.align	2
.LC18:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	main
	.syntax unified
	.arm
	.fpu softvfp
	.type	main, %function
main:
	@ args = 0, pretend = 0, frame = 8320
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, fp, lr}
	add	fp, sp, #12
	sub	sp, sp, #8320
	sub	sp, sp, #8
	sub	r3, fp, #8192
	sub	r3, r3, #12
	str	r0, [r3, #-124]
	sub	r3, fp, #8192
	sub	r3, r3, #12
	str	r1, [r3, #-128]
	ldr	r3, .L20
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	mov	r3,#0
	sub	r3, fp, #8192
	sub	r3, r3, #12
	mov	r4, r3
	ldr	r0, .L20+4
	bl	malloc
	mov	r3, r0
	str	r3, [r4, #-116]
	sub	r3, fp, #8192
	sub	r3, r3, #12
	ldr	r3, [r3, #-128]
	ldr	r3, [r3]
	mov	r0, r3
	bl	__xpg_basename
	mov	r3, r0
	mov	r2, #40
	mov	r1, #2
	mov	r0, r3
	bl	openlog
	ldr	r0, .L20+8
	bl	getenv
	mov	r3, r0
	ldr	r2, .L20+12
	str	r3, [r2]
	ldr	r0, .L20+16
	bl	getenv
	mov	r3, r0
	ldr	r2, .L20+20
	str	r3, [r2]
	ldr	r0, .L20+24
	bl	getenv
	mov	r3, r0
	ldr	r2, .L20+28
	str	r3, [r2]
	ldr	r0, .L20+32
	bl	getenv
	mov	r3, r0
	ldr	r2, .L20+36
	str	r3, [r2]
	ldr	r3, .L20+12
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L2
	ldr	r1, .L20+40
	mov	r0, #3
	bl	syslog
	bl	print_help
	mov	r0, #1
	bl	exit
.L2:
	ldr	r3, .L20+20
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L3
	ldr	r1, .L20+44
	mov	r0, #3
	bl	syslog
	bl	print_help
	mov	r0, #1
	bl	exit
.L3:
	ldr	r3, .L20+28
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L4
	ldr	r1, .L20+48
	mov	r0, #3
	bl	syslog
	bl	print_help
	mov	r0, #1
	bl	exit
.L4:
	ldr	r3, .L20+12
	ldr	r3, [r3]
	ldr	r1, .L20+52
	mov	r0, r3
	bl	strcmp
	mov	r3, r0
	cmp	r3, #0
	bne	.L5
	ldr	r3, .L20+28
	ldr	r3, [r3]
	sub	r2, fp, #8192
	sub	r2, r2, #12
	mov	r4, r2
	ldr	r1, .L20+56
	mov	r0, r3
	bl	open
	str	r0, [r4, #-100]
	sub	r3, fp, #8192
	sub	r3, r3, #12
	ldr	r3, [r3, #-100]
	cmp	r3, #0
	bge	.L6
	bl	__errno_location
	mov	r3, r0
	ldr	r4, [r3]
	ldr	r3, .L20+28
	ldr	r5, [r3]
	bl	__errno_location
	mov	r3, r0
	ldr	r3, [r3]
	mov	r0, r3
	bl	strerror
	mov	r3, r0
	mov	r2, r5
	mov	r1, r4
	ldr	r0, .L20+60
	bl	printf
	mov	r3, #1
	b	.L7
.L6:
	sub	r3, fp, #8192
	sub	r3, r3, #12
	mov	r2, #0
	mov	r1, #13
	ldr	r0, [r3, #-100]
	bl	set_interface_attribs
	sub	r3, fp, #8192
	sub	r3, r3, #12
	mov	r1, #0
	ldr	r0, [r3, #-100]
	bl	set_blocking
	sub	r3, fp, #8192
	sub	r3, r3, #12
	mov	r1, r3
	sub	r3, fp, #8192
	sub	r3, r3, #12
	mov	r0, r3
	mov	r3, #500
	mov	r2, #1024
	ldr	r1, [r1, #-116]
	ldr	r0, [r0, #-100]
	bl	GSM_AT
	mov	r3, r0
	cmp	r3, #0
	beq	.L8
	sub	r3, fp, #8192
	sub	r3, r3, #12
	mov	r2, r3
	mov	r3, #0
	str	r3, [r2, #-120]
	b	.L13
.L8:
	sub	r3, fp, #8192
	sub	r3, r3, #12
	mov	r1, r3
	sub	r3, fp, #8192
	sub	r3, r3, #12
	mov	r0, r3
	mov	r3, #500
	mov	r2, #1024
	ldr	r1, [r1, #-116]
	ldr	r0, [r0, #-100]
	bl	GSM_ATZ
	mov	r3, r0
	cmp	r3, #0
	beq	.L10
	ldr	r3, .L20+28
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r1, .L20+64
	mov	r0, #3
	bl	syslog
	sub	r3, fp, #8192
	sub	r3, r3, #12
	mov	r2, r3
	mov	r3, #1
	str	r3, [r2, #-120]
	b	.L13
.L10:
	sub	r3, fp, #8192
	sub	r3, r3, #12
	mov	r1, r3
	sub	r3, fp, #8192
	sub	r3, r3, #12
	mov	r0, r3
	mov	r3, #500
	mov	r2, #1024
	ldr	r1, [r1, #-116]
	ldr	r0, [r0, #-100]
	bl	GSM_ATE0
	mov	r3, r0
	cmp	r3, #0
	beq	.L11
	ldr	r3, .L20+28
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r1, .L20+68
	mov	r0, #3
	bl	syslog
	sub	r3, fp, #8192
	sub	r3, r3, #12
	mov	r2, r3
	mov	r3, #1
	str	r3, [r2, #-120]
	b	.L13
.L11:
	sub	r3, fp, #4096
	sub	r3, r3, #12
	sub	r3, r3, #4
	sub	r2, fp, #8192
	sub	r2, r2, #12
	mov	r1, r2
	sub	r2, fp, #8192
	sub	r2, r2, #12
	mov	r0, r2
	mov	r2, #500
	str	r2, [sp]
	mov	r2, #1024
	ldr	r1, [r1, #-116]
	ldr	r0, [r0, #-100]
	bl	GSM_ATCGSN
	mov	r3, r0
	cmp	r3, #0
	beq	.L12
	ldr	r3, .L20+28
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r1, .L20+72
	mov	r0, #3
	bl	syslog
	sub	r3, fp, #8192
	sub	r3, r3, #12
	mov	r2, r3
	mov	r3, #1
	str	r3, [r2, #-120]
	b	.L13
.L12:
	sub	r3, fp, #8192
	sub	r3, r3, #12
	ldr	r0, [r3, #-100]
	bl	close
	sub	r3, fp, #8192
	sub	r3, r3, #12
	mov	r2, r3
	mov	r3, #0
	str	r3, [r2, #-120]
	b	.L13
.L5:
	ldr	r3, .L20+12
	ldr	r3, [r3]
	ldr	r1, .L20+76
	mov	r0, r3
	bl	strcmp
	mov	r3, r0
	cmp	r3, #0
	bne	.L14
	ldr	r3, .L20+12
	ldr	r3, [r3]
	mov	r1, r3
	ldr	r0, .L20+80
	bl	printf
	sub	r3, fp, #8192
	sub	r3, r3, #12
	mov	r4, r3
	sub	r3, fp, #8256
	sub	r3, r3, #12
	sub	r3, r3, #32
	mov	r1, r3
	ldr	r0, .L20+84
	bl	lstat
	str	r0, [r4, #-112]
	sub	r3, fp, #8192
	sub	r3, r3, #12
	ldr	r3, [r3, #-80]
	and	r3, r3, #61440
	cmp	r3, #16384
	bne	.L15
	sub	r3, fp, #8192
	sub	r3, r3, #12
	mov	r4, r3
	ldr	r0, .L20+84
	bl	opendir
	str	r0, [r4, #-108]
	sub	r3, fp, #8192
	sub	r3, r3, #12
	ldr	r3, [r3, #-108]
	cmp	r3, #0
	bne	.L17
	bl	__errno_location
	mov	r3, r0
	ldr	r3, [r3]
	mov	r0, r3
	bl	strerror
	mov	r3, r0
	ldr	r2, .L20+84
	ldr	r1, .L20+88
	mov	r0, #3
	bl	syslog
	b	.L15
.L18:
	sub	r3, fp, #8192
	sub	r3, r3, #12
	sub	r3, r3, #4
	mov	r2, #4096
	mov	r1, #0
	mov	r0, r3
	bl	memset
	sub	r3, fp, #8192
	sub	r3, r3, #12
	sub	r3, r3, #4
	ldr	r2, .L20+84
	mov	ip, r3
	mov	lr, r2
	ldmia	lr!, {r0, r1, r2, r3}
	stmia	ip!, {r0, r1, r2, r3}
	ldr	r3, [lr]
	str	r3, [ip]
	sub	r3, fp, #8192
	sub	r3, r3, #12
	sub	r3, r3, #4
	mov	r0, r3
	bl	strlen
	mov	r3, r0
	mov	r2, r3
	sub	r3, fp, #8192
	sub	r3, r3, #12
	sub	r3, r3, #4
	add	r3, r3, r2
	ldr	r2, .L20+92
	mov	r0, r3
	mov	r1, r2
	mov	r3, #2
	mov	r2, r3
	bl	memcpy
	sub	r3, fp, #8192
	sub	r3, r3, #12
	ldr	r3, [r3, #-104]
	add	r1, r3, #11
	sub	r3, fp, #8192
	sub	r3, r3, #12
	sub	r3, r3, #4
	mov	r2, #255
	mov	r0, r3
	bl	strncat
	sub	r3, fp, #8192
	sub	r3, r3, #12
	ldr	r3, [r3, #-104]
	add	r3, r3, #11
	mov	r0, r3
	bl	puts
	sub	r3, fp, #8192
	sub	r3, r3, #12
	sub	r3, r3, #4
	mov	r0, r3
	bl	puts
	sub	r3, fp, #8192
	sub	r3, r3, #12
	mov	r4, r3
	sub	r2, fp, #8256
	sub	r2, r2, #12
	sub	r2, r2, #32
	sub	r3, fp, #8192
	sub	r3, r3, #12
	sub	r3, r3, #4
	mov	r1, r2
	mov	r0, r3
	bl	lstat
	str	r0, [r4, #-112]
	sub	r3, fp, #8192
	sub	r3, r3, #12
	ldr	r3, [r3, #-112]
	cmp	r3, #0
	bne	.L17
	sub	r3, fp, #8192
	sub	r3, r3, #12
	ldr	r3, [r3, #-80]
	and	r3, r3, #61440
	cmp	r3, #40960
	bne	.L17
	sub	r3, fp, #4096
	sub	r3, r3, #12
	sub	r3, r3, #4
	mov	r2, #4096
	mov	r1, #0
	mov	r0, r3
	bl	memset
	sub	r3, fp, #8192
	sub	r3, r3, #12
	mov	r4, r3
	sub	r1, fp, #4096
	sub	r1, r1, #12
	sub	r1, r1, #4
	sub	r3, fp, #8192
	sub	r3, r3, #12
	sub	r3, r3, #4
	ldr	r2, .L20+96
	mov	r0, r3
	bl	readlink
	str	r0, [r4, #-112]
	sub	r3, fp, #8192
	sub	r3, r3, #12
	ldr	r3, [r3, #-112]
	cmp	r3, #0
	ble	.L17
	ldr	r3, .L20+28
	ldr	r2, [r3]
	sub	r3, fp, #4096
	sub	r3, r3, #12
	sub	r3, r3, #4
	mov	r1, r2
	mov	r0, r3
	bl	strcmp
	mov	r3, r0
	cmp	r3, #0
	bne	.L17
	sub	r3, fp, #8192
	sub	r3, r3, #12
	mov	r4, r3
	sub	r3, fp, #8192
	sub	r3, r3, #12
	sub	r3, r3, #4
	mov	r0, r3
	bl	unlink
	str	r0, [r4, #-112]
.L17:
	sub	r3, fp, #8192
	sub	r3, r3, #12
	mov	r4, r3
	sub	r3, fp, #8192
	sub	r3, r3, #12
	ldr	r0, [r3, #-108]
	bl	readdir
	str	r0, [r4, #-104]
	sub	r3, fp, #8192
	sub	r3, r3, #12
	ldr	r3, [r3, #-104]
	cmp	r3, #0
	bne	.L18
	sub	r3, fp, #8192
	sub	r3, r3, #12
	ldr	r0, [r3, #-108]
	bl	closedir
.L15:
	sub	r3, fp, #8192
	sub	r3, r3, #12
	mov	r2, r3
	mov	r3, #0
	str	r3, [r2, #-112]
	b	.L13
.L14:
	ldr	r3, .L20+12
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r1, .L20+100
	mov	r0, #3
	bl	syslog
	sub	r3, fp, #8192
	sub	r3, r3, #12
	mov	r2, r3
	mov	r3, #1
	str	r3, [r2, #-120]
.L13:
	bl	closelog
	sub	r3, fp, #8192
	sub	r3, r3, #12
	ldr	r3, [r3, #-120]
.L7:
	ldr	r2, .L20
	ldr	r1, [r2]
	ldr	r2, [fp, #-16]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L19
	bl	__stack_chk_fail
.L19:
	mov	r0, r3
	sub	sp, fp, #12
	@ sp needed
	pop	{r4, r5, fp, pc}
.L21:
	.align	2
.L20:
	.word	.LC18
	.word	1025
	.word	.LC0
	.word	UDEV_ACTION
	.word	.LC1
	.word	UDEV_SUBSYSTEM
	.word	.LC2
	.word	UDEV_DEVNAME
	.word	.LC3
	.word	UDEV_ID_USB_INTERFACE_NUM
	.word	.LC4
	.word	.LC5
	.word	.LC6
	.word	.LC7
	.word	1052930
	.word	.LC8
	.word	.LC9
	.word	.LC10
	.word	.LC11
	.word	.LC12
	.word	.LC13
	.word	.LC14
	.word	.LC15
	.word	.LC16
	.word	4095
	.word	.LC17
	.size	main, .-main
	.section	.rodata
	.align	2
.LC19:
	.ascii	"Error %i from tcgetattr on %s: %s\012\000"
	.align	2
.LC20:
	.ascii	"Error %i from tcsetattr on %s: %s\012\000"
	.align	2
.LC21:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	set_interface_attribs
	.syntax unified
	.arm
	.fpu softvfp
	.type	set_interface_attribs, %function
set_interface_attribs:
	@ args = 0, pretend = 0, frame = 80
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, fp, lr}
	add	fp, sp, #12
	sub	sp, sp, #80
	str	r0, [fp, #-80]
	str	r1, [fp, #-84]
	str	r2, [fp, #-88]
	ldr	r3, .L28
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	mov	r3,#0
	sub	r3, fp, #76
	mov	r2, #60
	mov	r1, #0
	mov	r0, r3
	bl	memset
	sub	r3, fp, #76
	mov	r1, r3
	ldr	r0, [fp, #-80]
	bl	tcgetattr
	mov	r3, r0
	cmp	r3, #0
	beq	.L23
	bl	__errno_location
	mov	r3, r0
	ldr	r4, [r3]
	ldr	r3, .L28+4
	ldr	r5, [r3]
	bl	__errno_location
	mov	r3, r0
	ldr	r3, [r3]
	mov	r0, r3
	bl	strerror
	mov	r3, r0
	mov	r2, r5
	mov	r1, r4
	ldr	r0, .L28+8
	bl	printf
	mvn	r3, #0
	b	.L26
.L23:
	ldr	r2, [fp, #-84]
	sub	r3, fp, #76
	mov	r1, r2
	mov	r0, r3
	bl	cfsetospeed
	ldr	r2, [fp, #-84]
	sub	r3, fp, #76
	mov	r1, r2
	mov	r0, r3
	bl	cfsetispeed
	ldr	r3, [fp, #-68]
	orr	r3, r3, #48
	str	r3, [fp, #-68]
	ldr	r3, [fp, #-76]
	bic	r3, r3, #1
	str	r3, [fp, #-76]
	mov	r3, #0
	str	r3, [fp, #-64]
	mov	r3, #0
	str	r3, [fp, #-72]
	mov	r3, #0
	strb	r3, [fp, #-53]
	mov	r3, #5
	strb	r3, [fp, #-54]
	ldr	r3, [fp, #-76]
	bic	r3, r3, #7168
	str	r3, [fp, #-76]
	ldr	r3, [fp, #-68]
	orr	r3, r3, #2176
	str	r3, [fp, #-68]
	ldr	r3, [fp, #-68]
	bic	r3, r3, #768
	str	r3, [fp, #-68]
	ldr	r2, [fp, #-68]
	ldr	r3, [fp, #-88]
	orr	r3, r2, r3
	str	r3, [fp, #-68]
	ldr	r3, [fp, #-68]
	bic	r3, r3, #64
	str	r3, [fp, #-68]
	ldr	r3, [fp, #-68]
	bic	r3, r3, #-2147483648
	str	r3, [fp, #-68]
	sub	r3, fp, #76
	mov	r2, r3
	mov	r1, #0
	ldr	r0, [fp, #-80]
	bl	tcsetattr
	mov	r3, r0
	cmp	r3, #0
	beq	.L25
	bl	__errno_location
	mov	r3, r0
	ldr	r4, [r3]
	ldr	r3, .L28+4
	ldr	r5, [r3]
	bl	__errno_location
	mov	r3, r0
	ldr	r3, [r3]
	mov	r0, r3
	bl	strerror
	mov	r3, r0
	mov	r2, r5
	mov	r1, r4
	ldr	r0, .L28+12
	bl	printf
	mvn	r3, #0
	b	.L26
.L25:
	mov	r3, #0
.L26:
	ldr	r2, .L28
	ldr	r1, [r2]
	ldr	r2, [fp, #-16]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L27
	bl	__stack_chk_fail
.L27:
	mov	r0, r3
	sub	sp, fp, #12
	@ sp needed
	pop	{r4, r5, fp, pc}
.L29:
	.align	2
.L28:
	.word	.LC21
	.word	UDEV_DEVNAME
	.word	.LC19
	.word	.LC20
	.size	set_interface_attribs, .-set_interface_attribs
	.section	.rodata
	.align	2
.LC22:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	set_blocking
	.syntax unified
	.arm
	.fpu softvfp
	.type	set_blocking, %function
set_blocking:
	@ args = 0, pretend = 0, frame = 72
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, fp, lr}
	add	fp, sp, #12
	sub	sp, sp, #72
	str	r0, [fp, #-80]
	str	r1, [fp, #-84]
	ldr	r3, .L35
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	mov	r3,#0
	sub	r3, fp, #76
	mov	r2, #60
	mov	r1, #0
	mov	r0, r3
	bl	memset
	sub	r3, fp, #76
	mov	r1, r3
	ldr	r0, [fp, #-80]
	bl	tcgetattr
	mov	r3, r0
	cmp	r3, #0
	beq	.L31
	bl	__errno_location
	mov	r3, r0
	ldr	r4, [r3]
	ldr	r3, .L35+4
	ldr	r5, [r3]
	bl	__errno_location
	mov	r3, r0
	ldr	r3, [r3]
	mov	r0, r3
	bl	strerror
	mov	r3, r0
	mov	r2, r5
	mov	r1, r4
	ldr	r0, .L35+8
	bl	printf
	b	.L30
.L31:
	ldr	r3, [fp, #-84]
	cmp	r3, #0
	movne	r3, #1
	moveq	r3, #0
	and	r3, r3, #255
	strb	r3, [fp, #-53]
	mov	r3, #5
	strb	r3, [fp, #-54]
	sub	r3, fp, #76
	mov	r2, r3
	mov	r1, #0
	ldr	r0, [fp, #-80]
	bl	tcsetattr
	mov	r3, r0
	cmp	r3, #0
	beq	.L30
	bl	__errno_location
	mov	r3, r0
	ldr	r4, [r3]
	ldr	r3, .L35+4
	ldr	r5, [r3]
	bl	__errno_location
	mov	r3, r0
	ldr	r3, [r3]
	mov	r0, r3
	bl	strerror
	mov	r3, r0
	mov	r2, r5
	mov	r1, r4
	ldr	r0, .L35+12
	bl	printf
.L30:
	ldr	r3, .L35
	ldr	r2, [r3]
	ldr	r3, [fp, #-16]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L34
	bl	__stack_chk_fail
.L34:
	sub	sp, fp, #12
	@ sp needed
	pop	{r4, r5, fp, pc}
.L36:
	.align	2
.L35:
	.word	.LC22
	.word	UDEV_DEVNAME
	.word	.LC19
	.word	.LC20
	.size	set_blocking, .-set_blocking
	.section	.rodata
	.align	2
.LC23:
	.ascii	"Regex error compiling '%s': %s\012\000"
	.align	2
.LC24:
	.word	__stack_chk_guard
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	compile_regex, %function
compile_regex:
	@ args = 0, pretend = 0, frame = 4112
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #4096
	sub	sp, sp, #20
	sub	r3, fp, #4096
	sub	r3, r3, #12
	str	r0, [r3, #-12]
	sub	r3, fp, #4096
	sub	r3, r3, #12
	str	r1, [r3, #-16]
	ldr	r3, .L41
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	mov	r3,#0
	sub	r3, fp, #4096
	sub	r3, r3, #12
	mov	r4, r3
	sub	r3, fp, #4096
	sub	r3, r3, #12
	mov	r1, r3
	sub	r3, fp, #4096
	sub	r3, r3, #12
	mov	r2, #5
	ldr	r1, [r1, #-16]
	ldr	r0, [r3, #-12]
	bl	regcomp
	str	r0, [r4, #-8]
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r3, [r3, #-8]
	cmp	r3, #0
	beq	.L38
	sub	r2, fp, #4096
	sub	r2, r2, #12
	sub	r2, r2, #4
	sub	r3, fp, #4096
	sub	r3, r3, #12
	mov	r1, r3
	sub	r3, fp, #4096
	sub	r3, r3, #12
	mov	r0, r3
	mov	r3, #4096
	ldr	r1, [r1, #-12]
	ldr	r0, [r0, #-8]
	bl	regerror
	sub	r3, fp, #4096
	sub	r3, r3, #12
	sub	r3, r3, #4
	sub	r2, fp, #4096
	sub	r2, r2, #12
	mov	r1, r2
	mov	r2, r3
	ldr	r1, [r1, #-16]
	ldr	r0, .L41+4
	bl	printf
	mov	r3, #1
	b	.L39
.L38:
	mov	r3, #0
.L39:
	ldr	r2, .L41
	ldr	r1, [r2]
	ldr	r2, [fp, #-16]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L40
	bl	__stack_chk_fail
.L40:
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L42:
	.align	2
.L41:
	.word	.LC24
	.word	.LC23
	.size	compile_regex, .-compile_regex
	.section	.rodata
	.align	2
.LC25:
	.ascii	"OK\000"
	.align	2
.LC26:
	.ascii	"COMMAND NOT SUPPORT\000"
	.align	2
.LC27:
	.ascii	"ERROR\000"
	.align	2
.LC28:
	.ascii	"NO CARRIER\000"
	.align	2
.LC29:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	GSM_Check_Reply
	.syntax unified
	.arm
	.fpu softvfp
	.type	GSM_Check_Reply, %function
GSM_Check_Reply:
	@ args = 0, pretend = 0, frame = 48
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #56
	str	r0, [fp, #-48]
	ldr	r3, .L51
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	sub	r3, fp, #40
	ldr	r1, .L51+4
	mov	r0, r3
	bl	compile_regex
	sub	r0, fp, #40
	mov	r3, #0
	str	r3, [sp]
	mov	r3, #0
	mov	r2, #0
	ldr	r1, [fp, #-48]
	bl	regexec
	str	r0, [fp, #-44]
	ldr	r3, [fp, #-44]
	cmp	r3, #0
	bne	.L44
	sub	r3, fp, #40
	mov	r0, r3
	bl	regfree
	mov	r3, #0
	b	.L49
.L44:
	sub	r3, fp, #40
	ldr	r1, .L51+8
	mov	r0, r3
	bl	compile_regex
	sub	r0, fp, #40
	mov	r3, #0
	str	r3, [sp]
	mov	r3, #0
	mov	r2, #0
	ldr	r1, [fp, #-48]
	bl	regexec
	str	r0, [fp, #-44]
	ldr	r3, [fp, #-44]
	cmp	r3, #0
	bne	.L46
	sub	r3, fp, #40
	mov	r0, r3
	bl	regfree
	mov	r3, #1
	b	.L49
.L46:
	sub	r3, fp, #40
	ldr	r1, .L51+12
	mov	r0, r3
	bl	compile_regex
	sub	r0, fp, #40
	mov	r3, #0
	str	r3, [sp]
	mov	r3, #0
	mov	r2, #0
	ldr	r1, [fp, #-48]
	bl	regexec
	str	r0, [fp, #-44]
	ldr	r3, [fp, #-44]
	cmp	r3, #0
	bne	.L47
	sub	r3, fp, #40
	mov	r0, r3
	bl	regfree
	mov	r3, #3
	b	.L49
.L47:
	sub	r3, fp, #40
	ldr	r1, .L51+16
	mov	r0, r3
	bl	compile_regex
	sub	r0, fp, #40
	mov	r3, #0
	str	r3, [sp]
	mov	r3, #0
	mov	r2, #0
	ldr	r1, [fp, #-48]
	bl	regexec
	str	r0, [fp, #-44]
	ldr	r3, [fp, #-44]
	cmp	r3, #0
	bne	.L48
	sub	r3, fp, #40
	mov	r0, r3
	bl	regfree
	mov	r3, #2
	b	.L49
.L48:
	mov	r3, #1
.L49:
	ldr	r2, .L51
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L50
	bl	__stack_chk_fail
.L50:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L52:
	.align	2
.L51:
	.word	.LC29
	.word	.LC25
	.word	.LC26
	.word	.LC27
	.word	.LC28
	.size	GSM_Check_Reply, .-GSM_Check_Reply
	.section	.rodata
	.align	2
.LC30:
	.ascii	"([[:digit:]]{15})\000"
	.align	2
.LC31:
	.ascii	"returned IMEI is longer than maximum allowed charac"
	.ascii	"ters. IMEI should have exaclty %u characters.\000"
	.align	2
.LC32:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	GSM_get_IMEI
	.syntax unified
	.arm
	.fpu softvfp
	.type	GSM_get_IMEI, %function
GSM_get_IMEI:
	@ args = 0, pretend = 0, frame = 4168
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #4160
	sub	sp, sp, #20
	sub	r3, fp, #4096
	sub	r3, r3, #12
	str	r0, [r3, #-68]
	sub	r3, fp, #4096
	sub	r3, r3, #12
	str	r1, [r3, #-72]
	ldr	r3, .L60
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	mov	r3,#0
	sub	r3, fp, #4096
	sub	r3, r3, #12
	mov	r2, r3
	ldr	r3, .L60+4
	str	r3, [r2, #-64]
	sub	r3, fp, #4096
	sub	r3, r3, #12
	mov	r4, r3
	sub	r3, fp, #4096
	sub	r3, r3, #12
	mov	r1, r3
	sub	r3, fp, #4096
	sub	r3, r3, #12
	sub	r3, r3, #44
	mov	r2, #5
	ldr	r1, [r1, #-64]
	mov	r0, r3
	bl	regcomp
	str	r0, [r4, #-60]
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r3, [r3, #-60]
	cmp	r3, #0
	beq	.L54
	sub	r2, fp, #4096
	sub	r2, r2, #12
	sub	r2, r2, #4
	sub	r1, fp, #4096
	sub	r1, r1, #12
	sub	r1, r1, #44
	sub	r3, fp, #4096
	sub	r3, r3, #12
	mov	r0, r3
	mov	r3, #4096
	ldr	r0, [r0, #-60]
	bl	regerror
	sub	r3, fp, #4096
	sub	r3, r3, #12
	sub	r3, r3, #4
	sub	r2, fp, #4096
	sub	r2, r2, #12
	ldr	r2, [r2, #-64]
	ldr	r1, .L60+8
	mov	r0, #3
	bl	syslog
	mvn	r3, #0
	b	.L58
.L54:
	sub	r3, fp, #4096
	sub	r3, r3, #12
	mov	r4, r3
	sub	r3, fp, #4096
	sub	r3, r3, #12
	sub	r3, r3, #12
	sub	r2, fp, #4096
	sub	r2, r2, #12
	mov	r1, r2
	sub	r0, fp, #4096
	sub	r0, r0, #12
	sub	r0, r0, #44
	mov	r2, #0
	str	r2, [sp]
	mov	r2, #1
	ldr	r1, [r1, #-68]
	bl	regexec
	str	r0, [r4, #-56]
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r3, [r3, #-56]
	cmp	r3, #0
	bne	.L56
	sub	r3, fp, #4096
	sub	r3, r3, #12
	mov	r2, r3
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r3, [r3, #-12]
	str	r3, [r2, #-52]
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r2, [r3, #-8]
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r3, [r3, #-12]
	sub	r1, fp, #4096
	sub	r1, r1, #12
	sub	r3, r2, r3
	str	r3, [r1, #-48]
	sub	r3, fp, #4096
	sub	r3, r3, #12
	mov	r2, #16
	mov	r1, #0
	ldr	r0, [r3, #-72]
	bl	memset
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r3, [r3, #-48]
	cmp	r3, #15
	ble	.L57
	mov	r2, #15
	ldr	r1, .L60+12
	mov	r0, #3
	bl	syslog
	mvn	r3, #0
	b	.L58
.L57:
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r3, [r3, #-52]
	sub	r2, fp, #4096
	sub	r2, r2, #12
	ldr	r2, [r2, #-68]
	add	r3, r2, r3
	sub	r2, fp, #4096
	sub	r2, r2, #12
	ldr	r2, [r2, #-48]
	sub	r1, fp, #4096
	sub	r1, r1, #12
	mov	r0, r1
	mov	r1, r3
	ldr	r0, [r0, #-72]
	bl	strncpy
	sub	r3, fp, #4096
	sub	r3, r3, #12
	sub	r3, r3, #44
	mov	r0, r3
	bl	regfree
	mov	r3, #0
	b	.L58
.L56:
	mov	r3, #1
.L58:
	ldr	r2, .L60
	ldr	r1, [r2]
	ldr	r2, [fp, #-16]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L59
	bl	__stack_chk_fail
.L59:
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L61:
	.align	2
.L60:
	.word	.LC32
	.word	.LC30
	.word	.LC23
	.word	.LC31
	.size	GSM_get_IMEI, .-GSM_get_IMEI
	.align	2
	.global	trimwhitespace
	.syntax unified
	.arm
	.fpu softvfp
	.type	trimwhitespace, %function
trimwhitespace:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-16]
	b	.L63
.L64:
	ldr	r3, [fp, #-16]
	add	r3, r3, #1
	str	r3, [fp, #-16]
.L63:
	bl	__ctype_b_loc
	mov	r3, r0
	ldr	r2, [r3]
	ldr	r3, [fp, #-16]
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsl	r3, r3, #1
	add	r3, r2, r3
	ldrh	r3, [r3]
	and	r3, r3, #8192
	cmp	r3, #0
	bne	.L64
	ldr	r3, [fp, #-16]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	bne	.L65
	ldr	r3, [fp, #-16]
	b	.L66
.L65:
	ldr	r0, [fp, #-16]
	bl	strlen
	mov	r3, r0
	sub	r3, r3, #1
	ldr	r2, [fp, #-16]
	add	r3, r2, r3
	str	r3, [fp, #-8]
	b	.L67
.L69:
	ldr	r3, [fp, #-8]
	sub	r3, r3, #1
	str	r3, [fp, #-8]
.L67:
	ldr	r2, [fp, #-8]
	ldr	r3, [fp, #-16]
	cmp	r2, r3
	bls	.L68
	bl	__ctype_b_loc
	mov	r3, r0
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsl	r3, r3, #1
	add	r3, r2, r3
	ldrh	r3, [r3]
	and	r3, r3, #8192
	cmp	r3, #0
	bne	.L69
.L68:
	ldr	r3, [fp, #-8]
	add	r3, r3, #1
	mov	r2, #0
	strb	r2, [r3]
	ldr	r3, [fp, #-16]
.L66:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	trimwhitespace, .-trimwhitespace
	.section	.rodata
	.align	2
.LC33:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	serial_read
	.syntax unified
	.arm
	.fpu softvfp
	.type	serial_read, %function
serial_read:
	@ args = 0, pretend = 0, frame = 40
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #44
	str	r0, [fp, #-40]
	str	r1, [fp, #-44]
	str	r2, [fp, #-48]
	str	r3, [fp, #-52]
	ldr	r3, .L75
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	mov	r3,#0
	mov	r3, sp
	mov	r4, r3
	ldr	ip, [fp, #-48]
	mov	r3, ip
	sub	r3, r3, #1
	str	r3, [fp, #-28]
	mov	r0, ip
	mov	r1, #0
	mov	r2, #0
	mov	r3, #0
	lsl	r3, r1, #3
	orr	r3, r3, r0, lsr #29
	lsl	r2, r0, #3
	mov	r0, ip
	mov	r1, #0
	mov	r2, #0
	mov	r3, #0
	lsl	r3, r1, #3
	orr	r3, r3, r0, lsr #29
	lsl	r2, r0, #3
	add	r3, ip, #7
	lsr	r3, r3, #3
	lsl	r3, r3, #3
	sub	sp, sp, r3
	mov	r3, sp
	add	r3, r3, #0
	str	r3, [fp, #-24]
	mov	r3, #0
	str	r3, [fp, #-36]
	ldr	r2, [fp, #-48]
	mov	r1, #0
	ldr	r0, [fp, #-44]
	bl	memset
	ldr	r2, [fp, #-48]
	mov	r1, #0
	ldr	r0, [fp, #-24]
	bl	memset
.L72:
	ldr	r2, [fp, #-48]
	ldr	r1, [fp, #-24]
	ldr	r0, [fp, #-40]
	bl	read
	str	r0, [fp, #-20]
	ldr	r3, [fp, #-20]
	cmp	r3, #0
	ble	.L71
	ldr	r1, [fp, #-24]
	ldr	r0, [fp, #-44]
	bl	strcat
	ldr	r2, [fp, #-32]
	ldr	r3, [fp, #-20]
	add	r3, r2, r3
	str	r3, [fp, #-32]
.L71:
	mov	r0, #100
	bl	usleep
	ldr	r3, [fp, #-36]
	add	r3, r3, #1
	str	r3, [fp, #-36]
	ldr	r2, [fp, #-48]
	mov	r1, #0
	ldr	r0, [fp, #-24]
	bl	memset
	ldr	r3, [fp, #-20]
	cmp	r3, #0
	bne	.L72
	ldr	r3, [fp, #-32]
	mov	sp, r4
	ldr	r2, .L75
	ldr	r1, [r2]
	ldr	r2, [fp, #-16]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L74
	bl	__stack_chk_fail
.L74:
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L76:
	.align	2
.L75:
	.word	.LC33
	.size	serial_read, .-serial_read
	.section	.rodata
	.align	2
.LC34:
	.ascii	"AT\015\012\000"
	.align	2
.LC35:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	GSM_AT
	.syntax unified
	.arm
	.fpu softvfp
	.type	GSM_AT, %function
GSM_AT:
	@ args = 0, pretend = 0, frame = 160
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #160
	str	r0, [fp, #-152]
	str	r1, [fp, #-156]
	str	r2, [fp, #-160]
	str	r3, [fp, #-164]
	ldr	r3, .L84
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	sub	r3, fp, #136
	ldr	r2, .L84+4
	ldm	r2, {r0, r1}
	str	r0, [r3]
	add	r3, r3, #4
	strb	r1, [r3]
	sub	r3, fp, #136
	mov	r0, r3
	bl	strlen
	mov	r2, r0
	sub	r3, fp, #136
	mov	r1, r3
	ldr	r0, [fp, #-152]
	bl	write
	str	r0, [fp, #-144]
	ldr	r0, [fp, #-152]
	bl	tcdrain
	ldr	r3, [fp, #-144]
	cmp	r3, #0
	bne	.L78
	mov	r3, #3
	b	.L82
.L78:
	mov	r3, #10
	mov	r2, #1024
	ldr	r1, [fp, #-156]
	ldr	r0, [fp, #-152]
	bl	serial_read
	str	r0, [fp, #-140]
	ldr	r3, [fp, #-140]
	cmp	r3, #0
	bne	.L80
	mov	r3, #3
	b	.L82
.L80:
	ldr	r0, [fp, #-156]
	bl	trimwhitespace
	str	r0, [fp, #-156]
	ldr	r0, [fp, #-156]
	bl	GSM_Check_Reply
	mov	r3, r0
	cmp	r3, #0
	bne	.L81
	mov	r3, #0
	b	.L82
.L81:
	mov	r3, #3
.L82:
	ldr	r2, .L84
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L83
	bl	__stack_chk_fail
.L83:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L85:
	.align	2
.L84:
	.word	.LC35
	.word	.LC34
	.size	GSM_AT, .-GSM_AT
	.section	.rodata
	.align	2
.LC36:
	.ascii	"ATZ\015\012\000"
	.align	2
.LC37:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	GSM_ATZ
	.syntax unified
	.arm
	.fpu softvfp
	.type	GSM_ATZ, %function
GSM_ATZ:
	@ args = 0, pretend = 0, frame = 160
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #160
	str	r0, [fp, #-152]
	str	r1, [fp, #-156]
	str	r2, [fp, #-160]
	str	r3, [fp, #-164]
	ldr	r3, .L93
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	sub	r3, fp, #136
	ldr	r2, .L93+4
	ldm	r2, {r0, r1}
	str	r0, [r3]
	add	r3, r3, #4
	strh	r1, [r3]	@ movhi
	sub	r3, fp, #136
	mov	r0, r3
	bl	strlen
	mov	r2, r0
	sub	r3, fp, #136
	mov	r1, r3
	ldr	r0, [fp, #-152]
	bl	write
	str	r0, [fp, #-144]
	ldr	r0, [fp, #-152]
	bl	tcdrain
	ldr	r3, [fp, #-144]
	cmp	r3, #0
	bne	.L87
	mov	r3, #3
	b	.L91
.L87:
	mov	r3, #10
	mov	r2, #1024
	ldr	r1, [fp, #-156]
	ldr	r0, [fp, #-152]
	bl	serial_read
	str	r0, [fp, #-140]
	ldr	r3, [fp, #-140]
	cmp	r3, #0
	bne	.L89
	mov	r3, #3
	b	.L91
.L89:
	ldr	r0, [fp, #-156]
	bl	trimwhitespace
	str	r0, [fp, #-156]
	ldr	r0, [fp, #-156]
	bl	GSM_Check_Reply
	mov	r3, r0
	cmp	r3, #0
	bne	.L90
	mov	r3, #0
	b	.L91
.L90:
	mov	r3, #3
.L91:
	ldr	r2, .L93
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L92
	bl	__stack_chk_fail
.L92:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L94:
	.align	2
.L93:
	.word	.LC37
	.word	.LC36
	.size	GSM_ATZ, .-GSM_ATZ
	.section	.rodata
	.align	2
.LC38:
	.ascii	"ATE0\015\012\000"
	.align	2
.LC39:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	GSM_ATE0
	.syntax unified
	.arm
	.fpu softvfp
	.type	GSM_ATE0, %function
GSM_ATE0:
	@ args = 0, pretend = 0, frame = 160
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #160
	str	r0, [fp, #-152]
	str	r1, [fp, #-156]
	str	r2, [fp, #-160]
	str	r3, [fp, #-164]
	ldr	r3, .L102
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	sub	r3, fp, #136
	ldr	r2, .L102+4
	ldm	r2, {r0, r1}
	str	r0, [r3]
	add	r3, r3, #4
	strh	r1, [r3]	@ movhi
	add	r3, r3, #2
	lsr	r2, r1, #16
	strb	r2, [r3]
	sub	r3, fp, #136
	mov	r0, r3
	bl	strlen
	mov	r2, r0
	sub	r3, fp, #136
	mov	r1, r3
	ldr	r0, [fp, #-152]
	bl	write
	str	r0, [fp, #-144]
	ldr	r0, [fp, #-152]
	bl	tcdrain
	ldr	r3, [fp, #-144]
	cmp	r3, #0
	bne	.L96
	mov	r3, #3
	b	.L100
.L96:
	mov	r3, #10
	mov	r2, #1024
	ldr	r1, [fp, #-156]
	ldr	r0, [fp, #-152]
	bl	serial_read
	str	r0, [fp, #-140]
	ldr	r3, [fp, #-140]
	cmp	r3, #0
	bne	.L98
	mov	r3, #3
	b	.L100
.L98:
	ldr	r0, [fp, #-156]
	bl	GSM_Check_Reply
	mov	r3, r0
	cmp	r3, #0
	bne	.L99
	mov	r3, #0
	b	.L100
.L99:
	mov	r3, #3
.L100:
	ldr	r2, .L102
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L101
	bl	__stack_chk_fail
.L101:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L103:
	.align	2
.L102:
	.word	.LC39
	.word	.LC38
	.size	GSM_ATE0, .-GSM_ATE0
	.section	.rodata
	.align	2
.LC40:
	.ascii	"AT+CGSN\015\012\000"
	.align	2
.LC41:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	GSM_ATCGSN
	.syntax unified
	.arm
	.fpu softvfp
	.type	GSM_ATCGSN, %function
GSM_ATCGSN:
	@ args = 4, pretend = 0, frame = 160
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #160
	str	r0, [fp, #-152]
	str	r1, [fp, #-156]
	str	r2, [fp, #-160]
	str	r3, [fp, #-164]
	ldr	r3, .L112
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	sub	r3, fp, #136
	ldr	r2, .L112+4
	ldm	r2, {r0, r1, r2}
	stmia	r3!, {r0, r1}
	strh	r2, [r3]	@ movhi
	sub	r3, fp, #136
	mov	r0, r3
	bl	strlen
	mov	r2, r0
	sub	r3, fp, #136
	mov	r1, r3
	ldr	r0, [fp, #-152]
	bl	write
	str	r0, [fp, #-144]
	ldr	r0, [fp, #-152]
	bl	tcdrain
	ldr	r3, [fp, #-144]
	cmp	r3, #0
	bne	.L105
	mov	r3, #3
	b	.L110
.L105:
	mov	r3, #10
	mov	r2, #1024
	ldr	r1, [fp, #-156]
	ldr	r0, [fp, #-152]
	bl	serial_read
	str	r0, [fp, #-140]
	ldr	r3, [fp, #-140]
	cmp	r3, #0
	bne	.L107
	mov	r3, #3
	b	.L110
.L107:
	ldr	r0, [fp, #-156]
	bl	trimwhitespace
	str	r0, [fp, #-156]
	ldr	r0, [fp, #-156]
	bl	GSM_Check_Reply
	mov	r3, r0
	cmp	r3, #0
	bne	.L108
	ldr	r1, [fp, #-164]
	ldr	r0, [fp, #-156]
	bl	GSM_get_IMEI
	mov	r3, r0
	cmp	r3, #0
	bne	.L109
	ldr	r0, [fp, #-164]
	bl	MODEM_SYMLINK
	mov	r3, r0
	cmn	r3, #1
	bne	.L109
	mov	r3, #3
	b	.L110
.L109:
	mov	r3, #0
	b	.L110
.L108:
	mov	r3, #3
.L110:
	ldr	r2, .L112
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L111
	bl	__stack_chk_fail
.L111:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L113:
	.align	2
.L112:
	.word	.LC41
	.word	.LC40
	.size	GSM_ATCGSN, .-GSM_ATCGSN
	.section	.rodata
	.align	2
.LC42:
	.ascii	"Modem IMEI is \"%s\"\000"
	.align	2
.LC43:
	.ascii	"%s/usb-%s-%s\000"
	.align	2
.LC44:
	.ascii	"Create a symlink \"%s\" which points to \"%s\"\000"
	.align	2
.LC45:
	.ascii	"Couln't create a symlink \"%s\" pointing to \"%s\"\000"
	.align	2
.LC46:
	.ascii	"Unlink returned error \"%s\" when deleting path \"%"
	.ascii	"s\"\000"
	.align	2
.LC47:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	MODEM_SYMLINK
	.syntax unified
	.arm
	.fpu softvfp
	.type	MODEM_SYMLINK, %function
MODEM_SYMLINK:
	@ args = 0, pretend = 0, frame = 1080
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #1088
	str	r0, [fp, #-1080]
	ldr	r3, .L125
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	ldr	r0, .L125+4
	bl	udev_add_DirCheck
	str	r0, [fp, #-1076]
	ldr	r3, [fp, #-1076]
	cmp	r3, #0
	beq	.L115
	mvn	r3, #0
	b	.L123
.L115:
	ldr	r2, [fp, #-1080]
	ldr	r1, .L125+8
	mov	r0, #6
	bl	syslog
	ldr	r3, .L125+12
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L117
	sub	r3, fp, #1056
	sub	r3, r3, #4
	sub	r3, r3, #4
	mov	r2, #32
	mov	r1, #0
	mov	r0, r3
	bl	memset
	ldr	r3, .L125+12
	ldr	r3, [r3]
	sub	r0, fp, #1024
	sub	r0, r0, #4
	sub	r0, r0, #4
	str	r3, [sp, #4]
	ldr	r3, [fp, #-1080]
	str	r3, [sp]
	ldr	r3, .L125+4
	ldr	r2, .L125+16
	mov	r1, #1024
	bl	snprintf
	sub	r3, fp, #1024
	sub	r3, r3, #4
	sub	r3, r3, #4
	mov	r0, r3
	bl	udev_add_SymlinkCheck
	str	r0, [fp, #-1076]
	ldr	r3, [fp, #-1076]
	cmn	r3, #1
	bne	.L118
	mvn	r3, #0
	b	.L123
.L118:
	ldr	r3, [fp, #-1076]
	cmp	r3, #0
	bne	.L119
	ldr	r3, .L125+20
	ldr	r2, [r3]
	sub	r3, fp, #1024
	sub	r3, r3, #4
	sub	r3, r3, #4
	mov	r1, r3
	mov	r0, r2
	bl	symlink
	str	r0, [fp, #-1068]
	ldr	r3, [fp, #-1068]
	cmp	r3, #0
	bne	.L120
	ldr	r3, .L125+20
	ldr	r3, [r3]
	sub	r2, fp, #1024
	sub	r2, r2, #4
	sub	r2, r2, #4
	ldr	r1, .L125+24
	mov	r0, #6
	bl	syslog
	mov	r3, #0
	b	.L123
.L120:
	ldr	r3, .L125+20
	ldr	r3, [r3]
	sub	r2, fp, #1024
	sub	r2, r2, #4
	sub	r2, r2, #4
	ldr	r1, .L125+28
	mov	r0, #3
	bl	syslog
	mvn	r3, #0
	b	.L123
.L119:
	sub	r3, fp, #1024
	sub	r3, r3, #4
	sub	r3, r3, #4
	mov	r0, r3
	bl	unlink
	str	r0, [fp, #-1076]
	ldr	r3, [fp, #-1076]
	cmp	r3, #0
	beq	.L121
	bl	__errno_location
	mov	r3, r0
	ldr	r3, [r3]
	mov	r0, r3
	bl	strerror
	mov	r2, r0
	sub	r3, fp, #1024
	sub	r3, r3, #4
	sub	r3, r3, #4
	ldr	r1, .L125+32
	mov	r0, #3
	bl	syslog
	mvn	r3, #0
	b	.L123
.L121:
	ldr	r3, .L125+20
	ldr	r2, [r3]
	sub	r3, fp, #1024
	sub	r3, r3, #4
	sub	r3, r3, #4
	mov	r1, r3
	mov	r0, r2
	bl	symlink
	str	r0, [fp, #-1072]
	ldr	r3, [fp, #-1072]
	cmp	r3, #0
	bne	.L122
	ldr	r3, .L125+20
	ldr	r3, [r3]
	sub	r2, fp, #1024
	sub	r2, r2, #4
	sub	r2, r2, #4
	ldr	r1, .L125+24
	mov	r0, #6
	bl	syslog
	mov	r3, #0
	b	.L123
.L122:
	ldr	r3, .L125+20
	ldr	r3, [r3]
	sub	r2, fp, #1024
	sub	r2, r2, #4
	sub	r2, r2, #4
	ldr	r1, .L125+28
	mov	r0, #3
	bl	syslog
	mvn	r3, #0
	b	.L123
.L117:
	mov	r3, #0
.L123:
	ldr	r2, .L125
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L124
	bl	__stack_chk_fail
.L124:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L126:
	.align	2
.L125:
	.word	.LC47
	.word	.LC14
	.word	.LC42
	.word	UDEV_ID_USB_INTERFACE_NUM
	.word	.LC43
	.word	UDEV_DEVNAME
	.word	.LC44
	.word	.LC45
	.word	.LC46
	.size	MODEM_SYMLINK, .-MODEM_SYMLINK
	.section	.rodata
	.align	2
.LC48:
	.ascii	"755\000"
	.align	2
.LC49:
	.ascii	"Couldn't set permission to 0755 for path \"%s\"\000"
	.align	2
.LC50:
	.ascii	"lstat for path \"%s\" returns error \"%s\".\012\000"
	.align	2
.LC51:
	.ascii	"Create path %s.\000"
	.align	2
.LC52:
	.ascii	"Creating path %s.\000"
	.align	2
.LC53:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	udev_add_DirCheck
	.syntax unified
	.arm
	.fpu softvfp
	.type	udev_add_DirCheck, %function
udev_add_DirCheck:
	@ args = 0, pretend = 0, frame = 112
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, fp, lr}
	add	fp, sp, #12
	sub	sp, sp, #112
	str	r0, [fp, #-120]
	ldr	r3, .L141
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	mov	r3,#0
	sub	r3, fp, #108
	mov	r1, r3
	ldr	r0, [fp, #-120]
	bl	lstat
	str	r0, [fp, #-116]
	ldr	r3, [fp, #-116]
	cmp	r3, #0
	bne	.L128
	ldr	r3, [fp, #-92]
	and	r3, r3, #61440
	cmp	r3, #16384
	bne	.L129
	ldr	r3, [fp, #-92]
	mov	r2, r3
	mov	r3, #0
	mvn	r0, #61440
	mvn	r1, #0
	and	r4, r2, r0
	and	r5, r3, r1
	mov	r2, #8
	mov	r1, #0
	ldr	r0, .L141+4
	bl	strtoul
	mov	r3, r0
	mov	r2, r3
	mov	r3, #0
	cmp	r5, r3
	cmpeq	r4, r2
	bne	.L130
	mov	r3, #0
	b	.L137
.L130:
	ldr	r3, .L141+8
	str	r3, [fp, #-112]
	ldr	r3, [fp, #-112]
	mov	r1, r3
	ldr	r0, [fp, #-120]
	bl	chmod
	str	r0, [fp, #-116]
	ldr	r3, [fp, #-116]
	cmp	r3, #0
	bne	.L132
	mov	r3, #0
	b	.L137
.L132:
	ldr	r2, [fp, #-120]
	ldr	r1, .L141+12
	mov	r0, #3
	bl	syslog
	mvn	r3, #0
	b	.L137
.L129:
	ldr	r0, [fp, #-120]
	bl	remove
	str	r0, [fp, #-116]
	ldr	r3, [fp, #-116]
	cmp	r3, #0
	beq	.L139
	mov	r3, #0
	b	.L137
.L128:
	bl	__errno_location
	mov	r3, r0
	ldr	r3, [r3]
	cmp	r3, #2
	beq	.L140
	bl	__errno_location
	mov	r3, r0
	ldr	r3, [r3]
	mov	r0, r3
	bl	strerror
	mov	r3, r0
	ldr	r2, [fp, #-120]
	ldr	r1, .L141+16
	mov	r0, #3
	bl	syslog
	mvn	r3, #0
	b	.L137
.L139:
	nop
	b	.L134
.L140:
	nop
.L134:
	ldr	r1, .L141+8
	ldr	r0, [fp, #-120]
	bl	mkdir
	str	r0, [fp, #-116]
	ldr	r3, [fp, #-116]
	cmp	r3, #0
	bne	.L136
	ldr	r2, [fp, #-120]
	ldr	r1, .L141+20
	mov	r0, #6
	bl	syslog
	mov	r3, #0
	b	.L137
.L136:
	ldr	r2, [fp, #-120]
	ldr	r1, .L141+24
	mov	r0, #3
	bl	syslog
	mvn	r3, #0
.L137:
	ldr	r2, .L141
	ldr	r1, [r2]
	ldr	r2, [fp, #-16]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L138
	bl	__stack_chk_fail
.L138:
	mov	r0, r3
	sub	sp, fp, #12
	@ sp needed
	pop	{r4, r5, fp, pc}
.L142:
	.align	2
.L141:
	.word	.LC53
	.word	.LC48
	.word	493
	.word	.LC49
	.word	.LC50
	.word	.LC51
	.word	.LC52
	.size	udev_add_DirCheck, .-udev_add_DirCheck
	.section	.rodata
	.align	2
.LC54:
	.ascii	"lstat returned error \"%s\" when checking path \"%s"
	.ascii	"\"\000"
	.align	2
.LC55:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	udev_add_SymlinkCheck
	.syntax unified
	.arm
	.fpu softvfp
	.type	udev_add_SymlinkCheck, %function
udev_add_SymlinkCheck:
	@ args = 0, pretend = 0, frame = 112
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #112
	str	r0, [fp, #-112]
	ldr	r3, .L152
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	sub	r3, fp, #100
	mov	r1, r3
	ldr	r0, [fp, #-112]
	bl	lstat
	str	r0, [fp, #-104]
	ldr	r3, [fp, #-104]
	cmp	r3, #0
	bne	.L144
	ldr	r3, [fp, #-84]
	and	r3, r3, #61440
	b	.L148
.L144:
	bl	__errno_location
	mov	r3, r0
	ldr	r3, [r3]
	cmp	r3, #2
	beq	.L151
	bl	__errno_location
	mov	r3, r0
	ldr	r3, [r3]
	mov	r0, r3
	bl	strerror
	mov	r2, r0
	ldr	r3, [fp, #-112]
	ldr	r1, .L152+4
	mov	r0, #3
	bl	syslog
	mvn	r3, #0
	b	.L148
.L151:
	nop
.L147:
	mov	r3, #0
.L148:
	ldr	r2, .L152
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L149
	bl	__stack_chk_fail
.L149:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L153:
	.align	2
.L152:
	.word	.LC55
	.word	.LC54
	.size	udev_add_SymlinkCheck, .-udev_add_SymlinkCheck
	.section	.rodata
	.align	2
.LC56:
	.ascii	"Usage: this software should be run from udev daemon"
	.ascii	". Check /etc/udev/rules.d/85-usb_modem-by-imein.rul"
	.ascii	"es file.\000"
	.text
	.align	2
	.global	print_help
	.syntax unified
	.arm
	.fpu softvfp
	.type	print_help, %function
print_help:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	ldr	r0, .L155
	bl	puts
	nop
	pop	{fp, pc}
.L156:
	.align	2
.L155:
	.word	.LC56
	.size	print_help, .-print_help
	.ident	"GCC: (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0"
	.section	.note.GNU-stack,"",%progbits
