Function at 0x40a990
Capabilities:
Create directory
Query environment variable

Disassembly:
push ebp
mov eax, 0x207c
mov ebp, esp
push edi
push esi
push ebx
call fcn.004b0d60
sub esp, eax
mov ebx, dword [ebp + 0xc]
mov dword [esp], str.ANDROID_PRODUCT_OUT
call sub.msvcrt.dll_getenv
test eax, eax
mov dword [0x4ef264], eax
je 0x40ac61
cmp byte [eax], 0
je 0x40ac61
mov dword [esp], str.ANDROID_SERIAL
call sub.msvcrt.dll_getenv
mov dword [esp], str.ANDROID_ADB_SERVER_PORT
mov dword [ebp - 0x2060], eax
call sub.msvcrt.dll_getenv
mov dword [ebp - 0x2064], 0x13ad
test eax, eax
mov esi, eax
je 0x40a9fe
cmp byte [eax], 0
jne 0x40b0eb
mov eax, dword [ebp + 8]
test eax, eax
jle 0x40ad17
mov dword [ebp - 0x2058], 2
mov dword [ebp - 0x205c], 0
mov dword [ebp - 0x204c], 0
mov dword [ebp - 0x2054], 0
mov dword [ebp - 0x2050], 0
nop
lea esi, [esi]
mov eax, dword [ebx]
mov ecx, 7
mov edi, 0x4c4506
mov esi, eax
repe cmpsb byte [esi], byte es:[edi]
je 0x40ac70
mov edi, str.nodaemon
mov ecx, 9
mov esi, eax
repe cmpsb byte [esi], byte es:[edi]
je 0x40ac91
mov edi, str.fork_server
mov ecx, 0xc
mov esi, eax
repe cmpsb byte [esi], byte es:[edi]
je 0x40aca0
mov edi, str.persist
mov ecx, 8
mov esi, eax
repe cmpsb byte [esi], byte es:[edi]
je 0x40acb0
mov edi, 0x4c1baf
mov ecx, 2
mov esi, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x40acc0
cmp byte [eax + 2], 0
jne 0x40ad00
cmp dword [ebp + 8], 1
je 0x40b053
sub dword [ebp + 8], 1
add ebx, 4
mov esi, dword [ebx]
test esi, esi
je 0x40b0b1
movsx eax, byte [esi]
test al, al
je 0x40b0b1
mov dword [esp], eax
call dword [sym.imp.msvcrt.dll_isalpha]
test eax, eax
je 0x40aaed
cmp byte [esi + 1], 0x3a
je 0x40b134
mov dword [esp + 4], 0x2f
mov dword [esp], esi
call sub.msvcrt.dll_strchr
mov dword [esp + 4], 0x5c
mov dword [esp], esi
mov edi, eax
call sub.msvcrt.dll_strchr
test edi, edi
je 0x40ab1b
cmp edi, eax
jae 0x40ab26
test eax, eax
je 0x40ab26
test eax, eax
lea esi, [esi]
je 0x40b162
mov dword [esp + 4], 0x104
mov dword [esp], 0x4ef160
call sub.msvcrt.dll__getcwd
test eax, eax
je 0x40bf40
mov edi, 0x4ef160
mov edx, dword [edi]
add edi, 4
lea eax, [edx - 0x1010101]
not edx
and eax, edx
and eax, 0x80808080
je 0x40ab47
mov edx, eax
shr edx, 0x10
test eax, 0x8080
cmove eax, edx
lea edx, [edi + 2]
cmove edi, edx
add al, al
mov dword [esp], esi
sbb edi, 3
call sub.msvcrt.dll_strlen
sub edi, 0x4ef160
lea eax, [edi + eax + 1]
cmp eax, 0x103
ja 0x40b230
mov byte [edi + 0x4ef160], 0x5c
add edi, 0x4ef161
mov dword [esp + 4], esi
mov dword [esp], edi
call sub.msvcrt.dll_strcpy
sub dword [ebp + 8], 1
add ebx, 4
mov edi, dword [ebp + 8]
mov dword [0x4ef264], 0x4ef160
test edi, edi
jg 0x40aa40
mov eax, dword [ebp - 0x2060]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x2058]
mov dword [esp], eax
call fcn.0040d4a0
mov eax, dword [ebp - 0x2064]
mov dword [esp], eax
call fcn.0040d4c0
mov esi, dword [ebp - 0x204c]
test esi, esi
je 0x40ad50
mov eax, dword [ebp - 0x2050]
or eax, dword [ebp - 0x2054]
mov eax, dword [ebp - 0x2064]
je 0x40b125
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x2054]
mov dword [esp], eax
call fcn.004035e0
mov ebx, eax
test ebx, ebx
mov dword [ebp - 0x204c], 0
je 0x40ac53
mov eax, dword [sym.imp.msvcrt.dll__iob]
mov dword [esp + 4], str._could_not_start_server__n
add eax, 0x40
mov dword [esp], eax
call fcn.00408e50
mov dword [ebp - 0x204c], ebx
mov eax, dword [ebp - 0x204c]
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [0x4ef264], 0
jmp 0x40a9c7
mov dword [ebp - 0x204c], 1
sub dword [ebp + 8], 1
add ebx, 4
mov edi, dword [ebp + 8]
test edi, edi
jg 0x40aa40
jmp 0x40abc7
mov dword [ebp - 0x2050], 1
jmp 0x40ac7a
mov dword [ebp - 0x2054], 1
jmp 0x40ac7a
mov dword [ebp - 0x205c], 1
jmp 0x40ac7a
cmp byte [eax], 0x2d
je 0x40afd9
mov edi, 0x4c463f
mov ecx, 3
mov esi, eax
repe cmpsb byte [esi], byte es:[edi]
je 0x40ad08
mov edi, 0x4c4642
mov ecx, 3
mov esi, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x40af92
mov dword [ebp - 0x2058], 1
jmp 0x40ac7a
lea esi, [eax + 2]
jmp 0x40aac3
mov dword [ebp - 0x2058], 0
jmp 0x40ac7a
mov eax, dword [ebp - 0x2060]
mov dword [esp], 2
mov dword [esp + 4], eax
call fcn.0040d4a0
mov eax, dword [ebp - 0x2064]
mov dword [esp], eax
call fcn.0040d4c0
mov dword [ebp - 0x2058], 2
mov dword [ebp - 0x205c], 0
nop
mov ecx, dword [ebp + 8]
test ecx, ecx
je 0x40b053
mov dword [ebp + 0xc], ebx
mov eax, dword [ebp + 0xc]
mov ecx, 8
mov edi, str.devices
mov edx, dword [eax]
mov esi, edx
repe cmpsb byte [esi], byte es:[edi]
seta al
setb cl
sub eax, ecx
movsx eax, al
test eax, eax
je 0x40b8fc
mov ecx, 8
mov edi, 0x4c474c
mov esi, edx
repe cmpsb byte [esi], byte es:[edi]
seta al
setb cl
sub eax, ecx
movsx eax, al
test eax, eax
je 0x40b985
mov ecx, 0xb
mov edi, str.disconnect
mov esi, edx
repe cmpsb byte [esi], byte es:[edi]
seta al
setb cl
sub eax, ecx
movsx eax, al
test eax, eax
je 0x40bb65
mov edi, 0x4c47e1
mov ecx, 4
mov esi, edx
repe cmpsb byte [esi], byte es:[edi]
je 0x40bb48
mov edi, str.shell
mov ecx, 6
mov esi, edx
repe cmpsb byte [esi], byte es:[edi]
je 0x40b400
mov edi, str.hell
mov ecx, 5
mov esi, edx
repe cmpsb byte [esi], byte es:[edi]
je 0x40b400
mov ecx, 8
mov edi, str.exec_in
mov esi, edx
repe cmpsb byte [esi], byte es:[edi]
seta al
setb cl
sub eax, ecx
movsx eax, al
test eax, eax
je 0x40b755
mov ecx, 9
mov esi, edx
mov edi, str.exec_out
repe cmpsb byte [esi], byte es:[edi]
seta cl
mov esi, ecx
setb cl
mov ebx, esi
cmp bl, cl
je 0x40b755
mov edi, str.kill_server
mov ecx, 0xc
mov esi, edx
repe cmpsb byte [esi], byte es:[edi]
je 0x40bafb
mov edi, str.sideload
mov ecx, 9
mov esi, edx
repe cmpsb byte [esi], byte es:[edi]
je 0x40bb1d
mov edi, str.remount
mov esi, edx
mov ecx, 8
repe cmpsb byte [esi], byte es:[edi]
je 0x40b859
mov edi, str.reboot
mov ecx, 7
mov esi, edx
repe cmpsb byte [esi], byte es:[edi]
je 0x40b859
mov edi, str.reboot_bootloader
mov ecx, 0x12
mov esi, edx
repe cmpsb byte [esi], byte es:[edi]
je 0x40b870
mov edi, str.tcpip
mov ecx, 6
mov esi, edx
repe cmpsb byte [esi], byte es:[edi]
je 0x40b274
mov edi, 0x4c493b
mov ecx, 4
mov esi, edx
repe cmpsb byte [esi], byte es:[edi]
je 0x40b274
mov edi, str.root
mov ecx, 5
mov esi, edx
repe cmpsb byte [esi], byte es:[edi]
je 0x40b274
mov ecx, 0xa
mov edi, str.bugreport
mov esi, edx
repe cmpsb byte [esi], byte es:[edi]
seta al
setb cl
sub eax, ecx
movsx eax, al
test eax, eax
je 0x40bbdc
mov edi, 0x4c4964
mov ecx, 9
mov esi, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x40bc21
mov edi, str.wait_for_device
mov ecx, 0xf
mov esi, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x40af4b
mov ebx, dword [ebp - 0x2058]
mov edx, str.wait_for_usb
test ebx, ebx
je 0x40af4b
cmp dword [ebp - 0x2058], 1
mov edx, str.wait_for_local
mov eax, str.wait_for_any
cmovne edx, eax
mov eax, dword [ebp - 0x2060]
mov ecx, dword [ebp - 0x2058]
mov dword [esp], eax
lea eax, [ebp - 0x2018]
call fcn.00409850
lea eax, [ebp - 0x2018]
mov dword [esp], eax
call fcn.0040e230
test eax, eax
jne 0x40b2e4
cmp dword [ebp + 8], 1
jle 0x40b8ed
sub dword [ebp + 8], 1
add dword [ebp + 0xc], 4
jmp 0x40ad5e
mov edi, 0x4c1bb2
mov ecx, 3
mov esi, eax
repe cmpsb byte [esi], byte es:[edi]
je 0x40b153
mov edi, 0x4c4645
mov ecx, 2
mov esi, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x40b004
cmp byte [eax + 2], 0
jne 0x40b3f0
cmp dword [ebp + 8], 1
je 0x40b053
mov eax, dword [ebx + 4]
add ebx, 4
sub dword [ebp + 8], 1
jmp 0x40b3f3
cmp byte [eax + 1], 0x73
jne 0x40acc9
movzx edx, byte [eax + 2]
movsx ecx, dl
sub ecx, 0x30
cmp ecx, 9
ja 0x40b24d
add eax, 2
mov dword [ebp - 0x2060], eax
jmp 0x40ac7a
mov edi, 0x4c4648
mov ecx, 2
mov esi, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x40abc7
cmp byte [eax + 2], 0
jne 0x40b3ac
cmp dword [ebp + 8], 1
je 0x40b053
mov esi, dword [ebx + 4]
add ebx, 4
sub dword [ebp + 8], 1
cmp byte [esi], 0
jne 0x40b3af
mov dword [esp + 4], str.adb:_port_number_must_be_a_positive_number_less_than_65536._Got_empty_string._n
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x40
mov dword [esp], eax
call fcn.00408e50
call fcn.00409ae0
mov dword [ebp - 0x204c], 1
mov eax, dword [ebp - 0x204c]
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
call fcn.00409910
test eax, eax
jne 0x40b8a6
mov eax, dword [sym.imp.msvcrt.dll__iob]
mov dword [esp + 8], edi
mov dword [esp + 4], str.adb:_bad_TOP_value___s__n
add eax, 0x40
mov dword [esp], eax
call fcn.00408e50
mov eax, dword [sym.imp.msvcrt.dll__iob]
mov dword [esp + 4], str.adb:_Couldnt_find_top_of_build_tree_n
add eax, 0x40
mov dword [esp], eax
call fcn.00408e50
mov dword [0x4ef264], 0
mov dword [esp + 8], esi
mov dword [esp + 4], str.adb:_could_not_resolve___p__s__n
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x40
mov dword [esp], eax
call fcn.00408e50
call fcn.00409ae0
mov dword [ebp - 0x204c], 1
jmp 0x40b062
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], eax
call sub.msvcrt.dll_strtol
mov dword [ebp - 0x2064], eax
sub eax, 1
cmp eax, 0xfffe
jbe 0x40a9fe
mov dword [esp + 8], esi
mov dword [esp + 4], str.adb:_Env_var_ANDROID_ADB_SERVER_PORT_must_be_a_positive_number_less_than_65535._Got___s__n
jmp 0x40b0c7
mov dword [esp], eax
call fcn.00403260
mov ebx, eax
jmp 0x40ac27
cmp byte [esi + 2], 0x5c
jne 0x40aaed
mov dword [esp + 4], esi
mov dword [esp], 0x4ef160
call sub.msvcrt.dll_strcpy
jmp 0x40abab
mov dword [0x4ef020], 1
jmp 0x40ac7a
mov dword [esp], str.ANDROID_BUILD_TOP
call sub.msvcrt.dll_getenv
test eax, eax
mov edi, eax
je 0x40b17d
cmp byte [eax], 0
jne 0x40b899
mov dword [esp], 0x4c459b
call sub.msvcrt.dll_getenv
test eax, eax
mov edi, eax
je 0x40b198
cmp byte [eax], 0
jne 0x40b070
lea edi, [ebp - 0x1018]
mov dword [esp + 4], 0x104
mov dword [esp], edi
call sub.msvcrt.dll__getcwd
lea edx, [ebp - 0x2018]
call fcn.00409a20
test eax, eax
je 0x40c13d
lea eax, [ebp - 0x2018]
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], eax
mov dword [esp + 8], str._sout_targetproduct_s
mov dword [esp + 4], 0x104
mov dword [esp], 0x4ef160
call fcn.00409740
mov dword [esp + 4], 0
mov dword [esp], 0x4ef160
call sub.msvcrt.dll__access
test eax, eax
jns 0x40abab
mov eax, dword [sym.imp.msvcrt.dll__iob]
mov dword [esp + 0xc], 0x4ef160
mov dword [esp + 8], esi
mov dword [esp + 4], str.adb:_Couldnt_find_a_product_dir_based_on___p__s_____s__doesnt_exist_n
add eax, 0x40
mov dword [esp], eax
call fcn.00408e50
jmp 0x40b0b1
mov eax, dword [sym.imp.msvcrt.dll__iob]
mov dword [esp + 4], str.adb:_Couldnt_assemble_path_n
add eax, 0x40
mov dword [esp], eax
call fcn.00408e50
jmp 0x40b0b1
cmp dword [ebp + 8], 1
je 0x40b053
test dl, dl
jne 0x40b053
mov eax, dword [ebx + 4]
add ebx, 4
sub dword [ebp + 8], 1
mov dword [ebp - 0x2060], eax
jmp 0x40ac7a
mov ebx, dword [ebp + 0xc]
cmp dword [ebp + 8], 1
jle 0x40b9bf
mov eax, dword [ebx + 4]
mov dword [esp + 0xc], edx
mov dword [esp + 8], 0x4c1be0
mov dword [esp + 4], 0x64
mov dword [esp + 0x10], eax
lea eax, [ebp - 0x1018]
mov dword [esp], eax
mov dword [ebp - 0x2050], eax
call fcn.00409740
mov eax, dword [ebp - 0x2050]
mov dword [esp], eax
call fcn.0040de00
test eax, eax
mov ebx, eax
js 0x40b37c
call fcn.00409130
mov dword [esp], ebx
call fcn.004199a0
mov dword [ebp - 0x204c], 0
jmp 0x40ac53
test byte [0x504120], 1
je 0x40b37c
mov ebx, dword [sym.imp.msvcrt.dll__errno]
call ebx
mov esi, dword [eax]
mov dword [esp], 0x504108
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x40
sub esp, 4
mov dword [esp + 0xc], str.adb_commandline
mov dword [esp + 8], str.system_core_adb_commandline.c
mov dword [esp + 4], 0x4c199e
mov dword [esp], eax
call fcn.00408e50
call ebx
mov dword [eax], esi
call fcn.0040d4e0
mov dword [esp + 4], str.failure:__s__n
mov dword [esp + 8], eax
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x40
mov dword [esp], eax
call fcn.00408e50
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x40
mov dword [esp], eax
call sub.msvcrt.dll_fflush
mov dword [esp], 0x504108
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
sub esp, 4
call ebx
mov dword [eax], esi
call fcn.0040d4e0
mov dword [esp + 4], 0x4c4123
mov dword [esp + 8], eax
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x40
mov dword [esp], eax
call fcn.00408e50
mov dword [ebp - 0x204c], 1
jmp 0x40ac53
lea esi, [eax + 2]
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], esi
call sub.msvcrt.dll_strtol
mov dword [ebp - 0x2064], eax
sub eax, 1
cmp eax, 0xfffe
jbe 0x40ac7a
mov dword [esp + 8], esi
mov dword [esp + 4], str.adb:_port_number_must_be_a_positive_number_less_than_65536._Got___s__n
jmp 0x40b0c7
add eax, 2
mov dword [esp], eax
call fcn.0040d4d0
jmp 0x40ac7a
cmp byte [edx], 0x68
mov ebx, dword [ebp + 0xc]
sete byte [ebp - 0x2054]
je 0x40bd2e
cmp dword [ebp + 8], 1
jle 0x40b9ec
mov eax, dword [ebx + 4]
xor esi, esi
mov dword [esp + 8], str.shell:_s
mov dword [esp + 4], 0x1000
mov dword [esp + 0xc], eax
lea eax, [ebp - 0x2018]
mov dword [esp], eax
mov dword [ebp - 0x2050], eax
call fcn.00409740
mov eax, dword [ebp + 8]
sub eax, 2
cmp dword [ebp + 8], 2
mov dword [ebp - 0x204c], eax
je 0x40b4d2
mov eax, dword [ebx + esi*4 + 8]
call fcn.00409950
mov edi, eax
mov eax, dword [ebp - 0x2050]
mov ecx, dword [eax]
add eax, 4
lea edx, [ecx - 0x1010101]
not ecx
and edx, ecx
and edx, 0x80808080
je 0x40b46d
mov ecx, edx
shr ecx, 0x10
test edx, 0x8080
cmove edx, ecx
lea ecx, [eax + 2]
cmove eax, ecx
add dl, dl
sbb eax, 3
mov edx, 0x20
mov word [eax], dx
mov eax, dword [ebp - 0x2050]
add esi, 1
mov dword [esp + 8], 0xfff
mov dword [esp + 4], edi
mov dword [esp], eax
call sub.msvcrt.dll_strncat
mov dword [esp], edi
call sub.msvcrt.dll_free
cmp esi, dword [ebp - 0x204c]
jne 0x40b45c
mov esi, dword [ebp - 0x2050]
jmp 0x40b57b
mov dword [esp], esi
call fcn.0040de00
test eax, eax
mov edi, eax
js 0x40b8bd
test byte [0x504120], 1
jne 0x40b6b5
mov eax, edi
call fcn.00409130
test byte [0x504120], 1
jne 0x40b619
mov dword [esp], edi
xor ebx, ebx
call fcn.004199a0
mov ecx, dword [ebp - 0x205c]
test ecx, ecx
je 0x40ba32
mov eax, dword [sym.imp.msvcrt.dll__iob]
mov dword [esp + 4], str._n__waiting_for_device___n
add eax, 0x40
mov dword [esp], eax
call fcn.00408e50
mov dword [esp], 0x3e8
call dword [sym.imp.KERNEL32.dll_Sleep]
mov eax, dword [ebp - 0x2060]
sub esp, 4
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x2058]
mov dword [esp + 0xc], 0
mov dword [esp + 8], str.wait_for_device
mov dword [esp], eax
call fcn.0040cec0
test byte [0x504120], 1
je 0x40b4e0
call dword [sym.imp.msvcrt.dll__errno]
mov ebx, dword [eax]
mov dword [esp], 0x504108
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x40
sub esp, 4
mov dword [esp + 0xc], str.adb_commandline
mov dword [esp + 8], str.system_core_adb_commandline.c
mov dword [esp + 4], 0x4c199e
mov dword [esp], eax
call fcn.00408e50
call dword [sym.imp.msvcrt.dll__errno]
mov dword [eax], ebx
mov eax, dword [sym.imp.msvcrt.dll__iob]
mov dword [esp + 8], esi
mov dword [esp + 4], str.interactive_shell_loop._buff_s_n
add eax, 0x40
mov dword [esp], eax
call fcn.00408e50
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x40
mov dword [esp], eax
call sub.msvcrt.dll_fflush
mov dword [esp], 0x504108
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
sub esp, 4
call dword [sym.imp.msvcrt.dll__errno]
mov dword [eax], ebx
jmp 0x40b4e0
mov ebx, dword [sym.imp.msvcrt.dll__errno]
call ebx
mov eax, dword [eax]
mov dword [esp], 0x504108
mov dword [ebp - 0x204c], eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ecx, dword [sym.imp.msvcrt.dll__iob]
lea eax, [ecx + 0x40]
sub esp, 4
mov dword [esp + 0xc], str.adb_commandline
mov dword [esp + 8], str.system_core_adb_commandline.c
mov dword [esp + 4], 0x4c199e
mov dword [esp], eax
call fcn.00408e50
call ebx
mov edx, dword [ebp - 0x204c]
mov dword [eax], edx
mov ecx, dword [sym.imp.msvcrt.dll__iob]
mov dword [esp + 4], str.read_and_dump___done._n
lea eax, [ecx + 0x40]
mov dword [esp], eax
call fcn.00408e50
mov ecx, dword [sym.imp.msvcrt.dll__iob]
lea eax, [ecx + 0x40]
mov dword [esp], eax
call sub.msvcrt.dll_fflush
mov dword [esp], 0x504108
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
sub esp, 4
call ebx
mov edx, dword [ebp - 0x204c]
mov dword [eax], edx
jmp 0x40b513
mov ebx, dword [sym.imp.msvcrt.dll__errno]
call ebx
mov eax, dword [eax]
mov dword [esp], 0x504108
mov dword [ebp - 0x204c], eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ecx, dword [sym.imp.msvcrt.dll__iob]
lea eax, [ecx + 0x40]
sub esp, 4
mov dword [esp + 0xc], str.adb_commandline
mov dword [esp + 8], str.system_core_adb_commandline.c
mov dword [esp + 4], 0x4c199e
mov dword [esp], eax
call fcn.00408e50
call ebx
mov edx, dword [ebp - 0x204c]
mov dword [eax], edx
mov ecx, dword [sym.imp.msvcrt.dll__iob]
mov dword [esp + 8], edi
mov dword [esp + 4], str.about_to_read_and_dump_fd_d__n
lea eax, [ecx + 0x40]
mov dword [esp], eax
call fcn.00408e50
mov ecx, dword [sym.imp.msvcrt.dll__iob]
lea eax, [ecx + 0x40]
mov dword [esp], eax
call sub.msvcrt.dll_fflush
mov dword [esp], 0x504108
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
sub esp, 4
call ebx
mov edx, dword [ebp - 0x204c]
mov dword [eax], edx
jmp 0x40b4ff
mov ebx, dword [ebp + 0xc]
xor edi, edi
mov dword [ebp - 0x2054], eax
mov eax, dword [ebx + 4]
mov dword [esp + 8], str.exec:_s
mov dword [esp + 4], 0x1000
mov dword [esp + 0xc], eax
lea eax, [ebp - 0x2018]
mov dword [esp], eax
mov dword [ebp - 0x2050], eax
call fcn.00409740
mov eax, dword [ebp + 8]
sub eax, 2
cmp dword [ebp + 8], 2
mov dword [ebp - 0x204c], eax
jle 0x40b813
mov eax, dword [ebx + edi*4 + 8]
call fcn.00409950
mov ecx, dword [ebp - 0x2050]
mov esi, eax
mov eax, dword [ecx]
add ecx, 4
lea edx, [eax - 0x1010101]
not eax
and edx, eax
and edx, 0x80808080
je 0x40b7ae
mov eax, edx
shr eax, 0x10
test edx, 0x8080
cmove edx, eax
lea eax, [ecx + 2]
cmovne eax, ecx
add dl, dl
sbb eax, 3
mov edx, 0x20
mov word [eax], dx
mov eax, dword [ebp - 0x2050]
add edi, 1
mov dword [esp + 8], 0xfff
mov dword [esp + 4], esi
mov dword [esp], eax
call sub.msvcrt.dll_strncat
mov dword [esp], esi
call sub.msvcrt.dll_free
cmp edi, dword [ebp - 0x204c]
jne 0x40b79d
mov eax, dword [ebp - 0x2050]
mov dword [esp], eax
call fcn.0040de00
test eax, eax
mov esi, eax
js 0x40c09b
mov edi, dword [ebp - 0x2054]
test edi, edi
jne 0x40bbcd
mov edx, eax
xor eax, eax
call fcn.00409330
mov dword [esp], esi
call fcn.004199a0
mov dword [ebp - 0x204c], 0
jmp 0x40ac53
mov edi, str.reboot_bootloader
mov ecx, 0x12
mov ebx, dword [ebp + 0xc]
mov esi, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x40b277
lea eax, [ebp - 0x1018]
mov dword [esp + 8], str.reboot:bootloader
mov dword [esp + 4], 0x64
mov dword [esp], eax
mov dword [ebp - 0x2050], eax
call fcn.00409740
jmp 0x40b2b0
call fcn.00409910
test eax, eax
je 0x40c11c
lea eax, [ebp - 0x2018]
mov dword [esp + 4], edi
mov dword [esp], eax
call sub.msvcrt.dll_strcpy
jmp 0x40b1c1
call fcn.0040d4e0
mov ebx, 0xffffffff
mov dword [esp + 4], 0x4c4123
mov dword [esp + 8], eax
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x40
mov dword [esp], eax
call fcn.00408e50
jmp 0x40b51d
call fcn.00409ae0
mov dword [ebp - 0x204c], 0
jmp 0x40ac53
cmp dword [ebp + 8], 1
mov dword [ebp - 0x204c], eax
mov ebx, dword [ebp + 0xc]
jle 0x40bec1
cmp dword [ebp + 8], 2
jne 0x40bd21
mov eax, dword [ebx + 4]
mov edi, 0x4c4707
mov ecx, 3
mov esi, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x40bd21
lea ebx, [ebp - 0x2018]
mov dword [esp + 0xc], edx
mov dword [esp], ebx
mov dword [esp + 0x10], eax
mov dword [esp + 8], str.host:_s_s
mov dword [esp + 4], 0x1000
call fcn.00409740
mov dword [esp], ebx
call fcn.0040e290
test eax, eax
mov ebx, eax
je 0x40b9b0
mov dword [esp], str.List_of_devices_attached__n
call fcn.00409720
mov dword [esp + 4], ebx
mov dword [esp], 0x4c4748
call fcn.00409720
jmp 0x40ac53
cmp dword [ebp + 8], 2
mov dword [ebp - 0x204c], eax
mov ebx, dword [ebp + 0xc]
je 0x40be87
mov dword [esp + 4], str.Usage:_adb_connect__host__:_port___n
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x40
mov dword [esp], eax
call fcn.00408e50
mov dword [ebp - 0x204c], 1
jmp 0x40ac53
lea eax, [ebp - 0x1018]
mov dword [esp + 0xc], edx
mov dword [esp + 8], 0x4c4956
mov dword [esp + 4], 0x64
mov dword [esp], eax
mov dword [ebp - 0x2050], eax
call fcn.00409740
jmp 0x40b2b0
test byte [0x504120], 1
jne 0x40bfae
call fcn.00409b50
cmp byte [ebp - 0x2054], 0
mov dword [ebp - 0x204c], eax
je 0x40ac53
mov dword [esp], str.e_0m
call fcn.00409720
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x20
mov dword [esp], eax
call sub.msvcrt.dll_fflush
jmp 0x40ac53
cmp byte [ebp - 0x2054], 0
je 0x40ba57
mov dword [esp], str.e_0m
call fcn.00409720
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x20
mov dword [esp], eax
call sub.msvcrt.dll_fflush
test byte [0x504120], 1
mov dword [ebp - 0x204c], ebx
je 0x40ac53
mov ebx, dword [sym.imp.msvcrt.dll__errno]
call ebx
mov esi, dword [eax]
mov dword [esp], 0x504108
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x40
sub esp, 4
mov dword [esp + 0xc], str.adb_commandline
mov dword [esp + 8], str.system_core_adb_commandline.c
mov dword [esp + 4], 0x4c199e
mov dword [esp], eax
call fcn.00408e50
call ebx
mov dword [eax], esi
mov eax, dword [ebp - 0x204c]
mov dword [esp + 4], str.interactive_shell_loop._return_r_d_n
mov dword [esp + 8], eax
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x40
mov dword [esp], eax
call fcn.00408e50
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x40
mov dword [esp], eax
call sub.msvcrt.dll_fflush
mov dword [esp], 0x504108
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
sub esp, 4
call ebx
mov dword [eax], esi
jmp 0x40ac53
mov dword [esp], 0x4c48f2
call fcn.0040d720
cmp eax, 0xffffffff
jne 0x40b8ed
mov dword [esp + 4], str._server_not_running__n
jmp 0x40b9a0
cmp dword [ebp + 8], 2
mov ebx, dword [ebp + 0xc]
jne 0x40b053
mov eax, dword [ebx + 4]
mov dword [esp], eax
call fcn.00409f20
test eax, eax
setne al
movzx eax, al
mov dword [ebp - 0x204c], eax
jmp 0x40ac53
mov ebx, dword [ebp + 0xc]
mov eax, dword [ebp + 8]
mov dword [esp + 4], ebx
mov dword [esp], eax
call fcn.004041d0
mov dword [ebp - 0x204c], eax
jmp 0x40ac53
cmp dword [ebp + 8], 2
mov dword [ebp - 0x204c], eax
mov ebx, dword [ebp + 0xc]
jg 0x40bfa1
je 0x40bf71
lea eax, [ebp - 0x2018]
mov dword [esp + 8], str.host:disconnect:
mov dword [esp + 4], 0x1000
mov dword [esp], eax
mov dword [ebp - 0x2050], eax
call fcn.00409740
mov eax, dword [ebp - 0x2050]
mov dword [esp], eax
call fcn.0040e290
test eax, eax
je 0x40b9b0
mov dword [esp + 4], eax
mov dword [esp], 0x4c4748
call fcn.00409720
jmp 0x40ac53
mov edx, 1
call fcn.00409330
jmp 0x40b842
cmp dword [ebp + 8], 1
mov dword [ebp - 0x204c], eax
jne 0x40b053
mov eax, dword [ebp - 0x2060]
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], str.bugreport
mov dword [esp + 8], str.shell
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x2058]
mov dword [esp], eax
call fcn.0040cec0
jmp 0x40ac53
mov ecx, 8
mov edi, 0x4c4460
mov ebx, dword [ebp + 0xc]
mov esi, edx
repe cmpsb byte [esi], byte es:[edi]
mov edi, 0x4c497d
mov esi, edx
seta cl
setb al
cmp cl, al
mov ecx, 8
jne 0x40bd4f
repe cmpsb byte [esi], byte es:[edi]
setb al
seta dl
sub edx, eax
movsx eax, dl
mov dword [ebp - 0x2050], eax
cmp dword [ebp + 8], 1
jle 0x40c371
mov eax, dword [ebx + 4]
mov byte [ebp - 0x2064], 0
mov byte [ebp - 0x204c], 0
mov byte [ebp - 0x205c], 0
cmp byte [eax], 0x2d
mov byte [ebp - 0x2054], 0
je 0x40bcea
jmp 0x40bdcb
mov edi, str.__remove
mov esi, eax
mov ecx, 9
repe cmpsb byte [esi], byte es:[edi]
je 0x40bd0f
mov edi, str.__remove_all
mov ecx, 0xd
mov esi, eax
repe cmpsb byte [esi], byte es:[edi]
je 0x40bd18
mov edi, str.__no_rebind
mov ecx, 0xc
mov esi, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x40b053
mov byte [ebp - 0x2064], 1
sub dword [ebp + 8], 1
add ebx, 4
cmp dword [ebp + 8], 1
je 0x40bda0
mov eax, dword [ebx + 4]
cmp byte [eax], 0x2d
jne 0x40bda0
mov esi, eax
mov ecx, 7
mov edi, str.__list
repe cmpsb byte [esi], byte es:[edi]
seta cl
mov esi, ecx
setb cl
mov edx, esi
cmp dl, cl
jne 0x40bc92
mov byte [ebp - 0x204c], 1
jmp 0x40bccd
mov byte [ebp - 0x2054], 1
jmp 0x40bccd
mov byte [ebp - 0x205c], 1
jmp 0x40bccd
mov dword [esp + 4], str.Usage:_adb_devices___l__n
jmp 0x40b9a0
mov dword [esp], str.e_41_33m
call fcn.00409720
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x20
mov dword [esp], eax
call sub.msvcrt.dll_fflush
jmp 0x40b413
repe cmpsb byte [esi], byte es:[edi]
setb al
seta cl
sub ecx, eax
movsx eax, cl
test eax, eax
mov dword [ebp - 0x2050], eax
je 0x40bc5f
mov edi, 0x4c4a01
mov ecx, 3
mov esi, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x40becb
cmp dword [ebp + 8], 2
jne 0x40b053
mov eax, dword [ebx + 4]
mov dword [esp], eax
call fcn.004148c0
mov dword [ebp - 0x204c], eax
jmp 0x40ac53
movsx eax, byte [ebp - 0x2054]
movsx edx, byte [ebp - 0x204c]
add edx, eax
movsx eax, byte [ebp - 0x205c]
add edx, eax
movsx eax, byte [ebp - 0x2064]
add eax, edx
cmp eax, 1
jg 0x40b053
mov ecx, dword [ebp - 0x2050]
test ecx, ecx
je 0x40c3f5
mov eax, dword [ebp - 0x2060]
test eax, eax
je 0x40c32d
mov dword [esp + 0xc], eax
lea eax, [ebp - 0x1018]
mov dword [esp + 8], str.host_serial:_s
mov dword [esp + 4], 0x40
mov dword [esp], eax
mov dword [ebp - 0x2050], eax
call fcn.00409740
cmp byte [ebp - 0x204c], 0
je 0x40c035
cmp dword [ebp + 8], 1
jne 0x40b053
mov eax, dword [ebp - 0x2050]
lea ebx, [ebp - 0x2018]
mov dword [esp], ebx
mov dword [esp + 8], str._s:list_forward
mov dword [esp + 4], 0x1000
mov dword [esp + 0xc], eax
call fcn.00409740
mov dword [esp], ebx
call fcn.0040e290
test eax, eax
mov ebx, eax
je 0x40b37c
mov dword [esp + 4], eax
mov dword [esp], 0x4c49cd
call fcn.00409720
mov dword [esp], ebx
call sub.msvcrt.dll_free
mov dword [ebp - 0x204c], 0
jmp 0x40ac53
mov eax, dword [ebx + 4]
lea ebx, [ebp - 0x2018]
mov dword [esp + 8], str.host:connect:_s
mov dword [esp + 4], 0x1000
mov dword [esp], ebx
mov dword [esp + 0xc], eax
call fcn.00409740
mov dword [esp], ebx
call fcn.0040e290
test eax, eax
jne 0x40bbb8
jmp 0x40b9b0
mov eax, 0x4c424c
jmp 0x40b930
mov edi, str.push
mov ecx, 5
mov esi, edx
repe cmpsb byte [esi], byte es:[edi]
je 0x40c24b
mov edi, str.pull
mov ecx, 5
mov esi, edx
repe cmpsb byte [esi], byte es:[edi]
je 0x40c1b3
mov edi, str.install
mov ecx, 8
mov esi, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x40c167
cmp dword [ebp + 8], 1
jle 0x40b053
mov eax, dword [ebp + 8]
mov dword [esp + 0xc], ebx
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x2060]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x2058]
mov dword [esp], eax
call fcn.0040d1d0
mov dword [ebp - 0x204c], eax
jmp 0x40ac53
call dword [sym.imp.msvcrt.dll__errno]
mov eax, dword [eax]
mov dword [esp], eax
call sub.msvcrt.dll_strerror
mov dword [esp + 4], str.adb:_Couldnt_get_CWD:__s_n
mov dword [esp + 8], eax
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x40
mov dword [esp], eax
call fcn.00408e50
jmp 0x40b0b1
mov eax, dword [ebx + 4]
mov dword [esp + 8], str.host:disconnect:_s
mov dword [esp + 4], 0x1000
mov dword [esp + 0xc], eax
lea eax, [ebp - 0x2018]
mov dword [esp], eax
mov dword [ebp - 0x2050], eax
call fcn.00409740
jmp 0x40bba2
mov dword [esp + 4], str.Usage:_adb_disconnect___host__:_port____n
jmp 0x40b9a0
mov ebx, dword [sym.imp.msvcrt.dll__errno]
call ebx
mov esi, dword [eax]
mov dword [esp], 0x504108
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x40
sub esp, 4
mov dword [esp + 0xc], str.adb_commandline
mov dword [esp + 8], str.system_core_adb_commandline.c
mov dword [esp + 4], 0x4c199e
mov dword [esp], eax
call fcn.00408e50
call ebx
mov dword [eax], esi
mov eax, dword [sym.imp.msvcrt.dll__iob]
mov dword [esp + 4], str.starting_interactive_shell_n
add eax, 0x40
mov dword [esp], eax
call fcn.00408e50
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x40
mov dword [esp], eax
call sub.msvcrt.dll_fflush
mov dword [esp], 0x504108
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
sub esp, 4
call ebx
mov dword [eax], esi
jmp 0x40b9f9
cmp byte [ebp - 0x205c], 0
je 0x40c0cb
cmp dword [ebp + 8], 1
jne 0x40b053
mov eax, dword [ebp - 0x2050]
mov dword [esp + 8], str._s:killforward_all
mov dword [esp + 4], 0x1000
mov dword [esp + 0xc], eax
lea eax, [ebp - 0x2018]
mov dword [esp], eax
mov dword [ebp - 0x2050], eax
call fcn.00409740
mov eax, dword [ebp - 0x2050]
mov dword [esp], eax
call fcn.0040e230
test eax, eax
mov dword [ebp - 0x204c], eax
je 0x40ac53
jmp 0x40b37c
call fcn.0040d4e0
mov dword [esp + 4], 0x4c4123
mov dword [esp + 8], eax
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x40
mov dword [esp], eax
call fcn.00408e50
mov dword [ebp - 0x204c], 0xffffffff
jmp 0x40ac53
cmp byte [ebp - 0x2054], 0
je 0x40c392
cmp dword [ebp + 8], 2
jne 0x40b053
mov eax, dword [ebx + 4]
mov dword [esp + 8], str._s:killforward:_s
mov dword [esp + 4], 0x1000
mov dword [esp + 0x10], eax
mov eax, dword [ebp - 0x2050]
mov dword [esp + 0xc], eax
lea eax, [ebp - 0x2018]
mov dword [esp], eax
mov dword [ebp - 0x2050], eax
call fcn.00409740
jmp 0x40c07a
mov eax, dword [sym.imp.msvcrt.dll__iob]
mov dword [esp + 8], edi
mov dword [esp + 4], str.adb:_bad_ANDROID_BUILD_TOP_value___s__n
add eax, 0x40
mov dword [esp], eax
call fcn.00408e50
jmp 0x40b099
mov dword [esp + 4], 0x104
mov dword [esp], edi
call fcn.00415960
lea edx, [ebp - 0x2018]
mov eax, edi
call fcn.00409a20
test eax, eax
je 0x40b099
jmp 0x40b1c1
mov edi, str.install_multiple
mov ecx, 0x11
mov esi, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x40c2e1
cmp dword [ebp + 8], 1
jle 0x40b053
mov eax, dword [ebp + 8]
mov dword [esp + 0xc], ebx
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x2060]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x2058]
mov dword [esp], eax
call fcn.0040a410
mov dword [ebp - 0x204c], eax
jmp 0x40ac53
mov eax, dword [ebp + 8]
lea ecx, [ebp - 0x203c]
mov dword [esp + 8], ecx
lea ecx, [ebp - 0x2040]
mov dword [esp + 4], ecx
lea ecx, [ebp - 0x1018]
mov dword [esp], ecx
lea ecx, [ebp - 0x2038]
lea edx, [eax - 1]
lea eax, [ebx + 4]
mov dword [ebp - 0x2040], 0
mov dword [ebp - 0x203c], 0
mov dword [ebp - 0x2038], 0
mov dword [ebp - 0x1018], 0x4c4a0e
call fcn.004bd010
mov eax, dword [ebp - 0x2038]
test eax, eax
je 0x40b053
mov edx, dword [ebp - 0x203c]
mov dword [esp], eax
mov dword [esp + 0xc], edx
mov edx, dword [ebp - 0x2040]
mov dword [esp + 8], edx
mov edx, dword [ebp - 0x1018]
mov dword [esp + 4], edx
call fcn.004153f0
mov dword [ebp - 0x204c], eax
jmp 0x40ac53
mov eax, dword [ebp + 8]
lea ecx, [ebp - 0x203c]
mov dword [esp + 8], ecx
lea ecx, [ebp - 0x2040]
mov dword [esp + 4], ecx
lea ecx, [ebp - 0x1018]
mov dword [esp], ecx
lea ecx, [ebp - 0x2038]
lea edx, [eax - 1]
lea eax, [ebx + 4]
mov dword [ebp - 0x2040], 0
mov dword [ebp - 0x203c], 0
mov dword [ebp - 0x2038], 0
mov dword [ebp - 0x1018], 0
call fcn.004bd010
mov eax, dword [ebp - 0x2038]
test eax, eax
je 0x40b053
mov edx, dword [ebp - 0x1018]
test edx, edx
je 0x40b053
mov ecx, dword [ebp - 0x2040]
mov dword [esp + 4], edx
mov dword [esp], eax
mov dword [esp + 8], ecx
call fcn.00415170
mov dword [ebp - 0x204c], eax
jmp 0x40ac53
mov edi, str.uninstall
mov ecx, 0xa
mov esi, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x40c402
cmp dword [ebp + 8], 1
jle 0x40b053
mov eax, dword [ebp + 8]
mov dword [esp + 0xc], ebx
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x2060]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x2058]
mov dword [esp], eax
call fcn.0040d0d0
mov dword [ebp - 0x204c], eax
jmp 0x40ac53
mov edx, dword [ebp - 0x2058]
test edx, edx
je 0x40c729
cmp dword [ebp - 0x2058], 1
je 0x40c71c
mov dword [esp + 8], 0x4c1bbe
lea eax, [ebp - 0x1018]
mov dword [esp + 4], 0x40
mov dword [esp], eax
mov dword [ebp - 0x2050], eax
call fcn.00409740
jmp 0x40be0f
mov byte [ebp - 0x2064], 0
mov byte [ebp - 0x204c], 0
mov byte [ebp - 0x205c], 0
mov byte [ebp - 0x2054], 0
jmp 0x40bdcb
cmp dword [ebp + 8], 3
jne 0x40b053
cmp byte [ebp - 0x2064], 0
mov edx, 0x4c4460
mov eax, str.forward:norebind:
cmove eax, edx
mov edx, dword [ebx + 8]
mov dword [esp + 0x18], edx
mov edx, dword [ebx + 4]
mov dword [esp + 0x10], eax
mov eax, dword [ebp - 0x2050]
mov dword [esp + 8], str._s:_s:_s__s
mov dword [esp + 4], 0x1000
mov dword [esp + 0x14], edx
mov dword [esp + 0xc], eax
lea eax, [ebp - 0x2018]
mov dword [esp], eax
mov dword [ebp - 0x2050], eax
call fcn.00409740
jmp 0x40c07a
mov dword [esp + 8], 0x4c497d
jmp 0x40c350
mov edi, str.sync
mov ecx, 5
mov esi, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x40c52a
cmp dword [ebp + 8], 1
jle 0x40c521
mov eax, dword [ebx + 4]
mov edi, 0x4c4707
mov ecx, 3
mov esi, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x40c510
xor eax, eax
mov edi, 1
cmp dword [ebp + 8], 3
jne 0x40c447
mov eax, dword [ebx + 8]
lea edx, [ebp - 0x1018]
mov dword [esp + 0xc], edx
lea edx, [ebp - 0x2038]
mov dword [esp + 8], edx
lea edx, [ebp - 0x203c]
mov dword [esp + 4], edx
mov dword [esp], eax
call fcn.0040a2c0
test eax, eax
mov esi, eax
jne 0x40b053
mov eax, dword [ebp - 0x203c]
test eax, eax
je 0x40c499
mov dword [esp + 8], edi
mov dword [esp + 4], str._system
mov dword [esp], eax
call fcn.00415880
test eax, eax
jne 0x40c4d9
mov eax, dword [ebp - 0x1018]
test eax, eax
je 0x40c4bb
mov dword [esp + 8], edi
mov dword [esp + 4], str._vendor
mov dword [esp], eax
call fcn.00415880
test eax, eax
jne 0x40c4d9
mov eax, dword [ebp - 0x2038]
test eax, eax
je 0x40c4db
mov dword [esp + 8], edi
mov dword [esp + 4], str._data
mov dword [esp], eax
call fcn.00415880
mov esi, eax
mov eax, dword [ebp - 0x203c]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov eax, dword [ebp - 0x1018]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov eax, dword [ebp - 0x2038]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov dword [ebp - 0x204c], esi
jmp 0x40ac53
cmp dword [ebp + 8], 2
jne 0x40b053
xor edi, edi
jmp 0x40c447
xor edi, edi
xor eax, eax
jmp 0x40c447
mov edi, str.get_state
mov ecx, 0xa
mov esi, edx
repe cmpsb byte [esi], byte es:[edi]
je 0x40c55a
mov edi, str.get_serialno
mov ecx, 0xd
mov esi, edx
repe cmpsb byte [esi], byte es:[edi]
je 0x40c55a
mov edi, str.get_devpath
mov ecx, 0xc
mov esi, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x40c5a5
mov eax, dword [ebp - 0x2060]
lea ebx, [ebp - 0x2018]
mov ecx, dword [ebp - 0x2058]
mov dword [esp], eax
mov eax, ebx
call fcn.00409850
mov dword [esp], ebx
call fcn.0040e290
test eax, eax
je 0x40b9b0
mov dword [esp + 4], eax
mov dword [esp], 0x4c4748
call fcn.00409720
mov dword [ebp - 0x204c], 0
jmp 0x40ac53
mov edi, str.status_window
mov ecx, 0xe
mov esi, edx
repe cmpsb byte [esi], byte es:[edi]
je 0x40cd49
mov edi, str.logcat
mov ecx, 7
mov esi, edx
repe cmpsb byte [esi], byte es:[edi]
je 0x40cc2b
mov edi, str.lolcat
mov ecx, 7
mov esi, edx
repe cmpsb byte [esi], byte es:[edi]
je 0x40cc2b
mov edi, str.longcat
mov ecx, 8
mov dword [ebp - 0x204c], edi
mov esi, edx
repe cmpsb byte [esi], byte es:[edi]
je 0x40cc35
mov edi, 0x4c4b04
mov ecx, 4
mov esi, edx
repe cmpsb byte [esi], byte es:[edi]
je 0x40cc1a
mov edi, str.start_server
mov ecx, 0xd
mov esi, edx
repe cmpsb byte [esi], byte es:[edi]
je 0x40c922
mov ecx, 7
mov edi, 0x4c4b27
mov esi, edx
repe cmpsb byte [esi], byte es:[edi]
setb al
seta cl
sub ecx, eax
movsx eax, cl
test eax, eax
mov dword [ebp - 0x204c], eax
je 0x40c7c5
mov ecx, 8
mov edi, str.restore
mov esi, edx
repe cmpsb byte [esi], byte es:[edi]
setb al
seta cl
sub ecx, eax
movsx eax, cl
test eax, eax
mov dword [ebp - 0x204c], eax
je 0x40c75e
mov ecx, 5
mov edi, str.jdwp
mov esi, edx
repe cmpsb byte [esi], byte es:[edi]
setb al
seta cl
sub ecx, eax
movsx eax, cl
test eax, eax
mov dword [ebp - 0x204c], eax
je 0x40c736
mov edi, str.help
mov ecx, 5
mov esi, edx
repe cmpsb byte [esi], byte es:[edi]
je 0x40b8e8
mov edi, 0x4c4c69
mov ecx, 3
mov esi, edx
repe cmpsb byte [esi], byte es:[edi]
je 0x40b8e8
mov esi, edx
mov edi, 0x4c4c6c
mov ecx, 8
repe cmpsb byte [esi], byte es:[edi]
setb al
seta dl
sub edx, eax
movsx eax, dl
test eax, eax
mov dword [ebp - 0x204c], eax
jne 0x40b053
mov eax, dword [sym.imp.msvcrt.dll__iob]
mov dword [esp + 0x10], 0x20
mov dword [esp + 0xc], 0
mov dword [esp + 8], 1
add eax, 0x20
mov dword [esp + 4], str.Android_Debug_Bridge_version__d._d._d_n
mov dword [esp], eax
call fcn.00408e50
jmp 0x40ac53
mov dword [esp + 8], str.host_local
jmp 0x40c350
mov dword [esp + 8], str.host_usb
jmp 0x40c350
mov dword [esp], str.jdwp
call fcn.0040de00
test eax, eax
mov ebx, eax
js 0x40c09b
call fcn.00409130
mov dword [esp], ebx
call fcn.004199a0
jmp 0x40ac53
cmp dword [ebp + 8], 2
jne 0x40b053
mov esi, dword [ebx + 4]
mov dword [esp + 4], 0
mov dword [esp], esi
call fcn.00418e60
test eax, eax
mov ebx, eax
js 0x40cc09
mov dword [esp], str.restore:
call fcn.0040de00
test eax, eax
mov esi, eax
js 0x40cbda
mov dword [esp], str.Now_unlock_your_device_and_confirm_the_restore_operation._n
call fcn.00409720
mov edx, esi
mov eax, ebx
call fcn.00409330
mov dword [esp], esi
call fcn.004199a0
mov dword [esp], ebx
call fcn.004199a0
jmp 0x40ac53
cmp dword [ebp + 8], 1
lea eax, [ebp - 0x2038]
mov dword [ebp - 0x2038], 0x61622f2e
mov dword [ebp - 0x2034], 0x70756b63
mov dword [ebp - 0x2030], 0x62612e
mov dword [ebp - 0x2054], eax
jle 0x40b053
lea eax, [ebx - 4]
mov edx, 1
mov dword [ebp - 0x205c], eax
lea eax, [edx*4]
mov esi, 0x4c4b2e
mov dword [ebp - 0x2050], eax
add eax, ebx
mov ecx, 3
mov edi, dword [eax]
mov dword [ebp - 0x2058], eax
repe cmpsb byte [esi], byte es:[edi]
seta cl
mov esi, ecx
setb cl
mov eax, esi
cmp al, cl
jne 0x40c896
mov eax, dword [ebp + 8]
lea ecx, [eax - 1]
cmp edx, ecx
je 0x40cbcd
mov eax, dword [ebp - 0x2050]
lea ecx, [edx + 2]
cmp ecx, dword [ebp + 8]
mov eax, dword [ebx + eax + 4]
mov dword [ebp - 0x2054], eax
jg 0x40c888
mov edi, dword [ebp - 0x205c]
mov esi, dword [ebp + 8]
mov eax, dword [ebp - 0x2058]
lea ecx, [edi + esi*4]
mov esi, dword [eax + 8]
add eax, 4
mov dword [eax - 4], esi
cmp eax, ecx
jne 0x40c870
mov eax, dword [ebp + 8]
lea eax, [edx + eax - 1]
sub eax, edx
mov edx, eax
sub dword [ebp + 8], 2
mov eax, dword [ebp + 8]
mov dword [ebx + eax*4], 0
add edx, 1
cmp edx, dword [ebp + 8]
jl 0x40c807
cmp dword [ebp + 8], 1
jle 0x40b053
mov eax, dword [ebp - 0x2054]
mov dword [esp], eax
call sub.msvcrt.dll__unlink
cmp eax, 0xffffffff
je 0x40cb41
mov eax, dword [ebp - 0x2054]
lea esi, [eax + 1]
mov dword [esp + 4], 0x2f
mov dword [esp], esi
call sub.msvcrt.dll_strchr
mov dword [esp + 4], 0x5c
mov dword [esp], esi
mov edi, eax
call sub.msvcrt.dll_strchr
test edi, edi
je 0x40c8fa
cmp edi, eax
jae 0x40c904
test eax, eax
je 0x40c904
test eax, eax
lea esi, [esi]
je 0x40c944
mov edi, eax
mov eax, dword [ebp - 0x2054]
mov byte [edi], 0
mov dword [esp], eax
call dword [sym.imp.msvcrt.dll__mkdir]
mov byte [edi], 0x5c
test eax, eax
js 0x40c939
lea esi, [edi + 1]
jmp 0x40c8cc
mov dword [esp], 0x4c4b15
call fcn.0040de00
mov dword [ebp - 0x204c], eax
jmp 0x40ac53
call dword [sym.imp.msvcrt.dll__errno]
cmp dword [eax], 0x11
je 0x40c91d
mov eax, dword [ebp - 0x2054]
mov dword [esp + 4], 0x1a0
mov dword [esp], eax
call fcn.004193b0
test eax, eax
mov dword [ebp - 0x2058], eax
js 0x40cb81
lea eax, [ebp - 0x1018]
xor esi, esi
mov dword [esp + 8], 0x4c4b27
mov edi, 0xfff
mov dword [esp + 4], 0x1000
mov dword [esp], eax
mov dword [ebp - 0x2050], eax
call fcn.00409740
mov eax, dword [ebp + 8]
sub eax, 1
mov dword [ebp - 0x205c], eax
mov edx, dword [ebp - 0x2050]
mov ecx, dword [edx]
add edx, 4
lea eax, [ecx - 0x1010101]
not ecx
and eax, ecx
and eax, 0x80808080
je 0x40c9a5
mov ecx, eax
shr ecx, 0x10
test eax, 0x8080
cmove eax, ecx
lea ecx, [edx + 2]
cmove edx, ecx
mov ecx, dword [ebp - 0x2050]
add al, al
sbb edx, 3
mov eax, edi
mov dword [esp + 4], 0x4c4b72
sub edx, ecx
sub eax, edx
mov dword [esp + 8], eax
mov dword [esp], ecx
call sub.msvcrt.dll_strncat
mov edx, dword [ebp - 0x2050]
mov ecx, dword [edx]
add edx, 4
lea eax, [ecx - 0x1010101]
not ecx
and eax, ecx
and eax, 0x80808080
je 0x40c9f9
mov ecx, eax
shr ecx, 0x10
test eax, 0x8080
cmove eax, ecx
lea ecx, [edx + 2]
cmove edx, ecx
mov ecx, dword [ebp - 0x2050]
add al, al
sbb edx, 3
mov eax, edi
sub edx, ecx
sub eax, edx
mov dword [esp + 8], eax
mov eax, dword [ebx + esi*4 + 4]
add esi, 1
mov dword [esp], ecx
mov dword [esp + 4], eax
call sub.msvcrt.dll_strncat
cmp esi, dword [ebp - 0x205c]
jne 0x40c99f
test byte [0x504120], 1
je 0x40caf9
mov edi, dword [sym.imp.msvcrt.dll__errno]
call edi
mov esi, dword [eax]
mov dword [esp], 0x504108
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x40
sub esp, 4
mov dword [esp + 0xc], str.backup
mov dword [esp + 8], str.system_core_adb_commandline.c
mov dword [esp + 4], 0x4c199e
mov dword [esp], eax
call fcn.00408e50
call edi
mov dword [eax], esi
mov eax, dword [ebp - 0x2050]
mov dword [esp + 4], str.backup._filename_s_buf_s_n
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x2054]
mov dword [esp + 8], eax
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x40
mov dword [esp], eax
call fcn.00408e50
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x40
mov dword [esp], eax
call sub.msvcrt.dll_fflush
mov dword [esp], 0x504108
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
sub esp, 4
call edi
mov dword [eax], esi
mov eax, dword [ebp - 0x2050]
mov dword [esp], eax
call fcn.0040de00
test eax, eax
mov esi, eax
js 0x40cb98
mov dword [esp], str.Now_unlock_your_device_and_confirm_the_backup_operation._n
call fcn.00409720
mov ebx, dword [ebp - 0x2058]
mov eax, esi
mov edx, ebx
call fcn.00409330
mov dword [esp], esi
call fcn.004199a0
mov dword [esp], ebx
call fcn.004199a0
jmp 0x40ac53
call dword [sym.imp.msvcrt.dll__errno]
cmp dword [eax], 0xd
jne 0x40c8c3
mov eax, dword [ebp - 0x2054]
mov dword [esp + 4], 0x180
mov dword [esp], eax
call sub.msvcrt.dll__chmod
test eax, eax
jne 0x40c8c3
mov eax, dword [ebp - 0x2054]
mov dword [esp], eax
call sub.msvcrt.dll__unlink
jmp 0x40c8c3
mov eax, dword [ebp - 0x2054]
mov dword [esp + 4], str.adb:_unable_to_open_file__s_n
mov dword [esp + 8], eax
jmp 0x40c0ac
mov eax, dword [sym.imp.msvcrt.dll__iob]
mov dword [esp + 4], str.adb:_unable_to_connect_for_backup_n
add eax, 0x40
mov dword [esp], eax
call fcn.00408e50
mov eax, dword [ebp - 0x2058]
mov dword [esp], eax
call fcn.004199a0
mov dword [ebp - 0x204c], 0xffffffff
jmp 0x40ac53
mov dword [esp + 4], str.adb:__f_passed_with_no_filename_n
jmp 0x40b043
mov eax, dword [sym.imp.msvcrt.dll__iob]
mov dword [esp + 4], str.adb:_unable_to_connect_for_restore_n
add eax, 0x40
mov dword [esp], eax
call fcn.00408e50
mov dword [esp], ebx
call fcn.004199a0
mov dword [ebp - 0x204c], 0xffffffff
jmp 0x40ac53
mov dword [esp + 8], esi
mov dword [esp + 4], str.adb:_unable_to_open_file__s_n
jmp 0x40c0ac
mov dword [esp + 8], edx
mov dword [esp + 4], str.error:_adb__s_not_implemented_on_Win32_n
jmp 0x40c0ac
mov dword [ebp - 0x204c], str.longcat
mov dword [esp], str.ANDROID_LOG_TAGS
call sub.msvcrt.dll_getenv
mov edx, 0x4c424c
test eax, eax
cmovne edx, eax
mov eax, edx
call fcn.00409950
mov dword [esp + 8], str.shell:export_ANDROID_LOG_TAGS__s___exec_logcat
mov dword [esp + 4], 0x1000
mov esi, eax
mov dword [esp + 0xc], eax
lea eax, [ebp - 0x1018]
mov dword [esp], eax
mov dword [ebp - 0x2050], eax
call fcn.00409740
mov dword [esp], esi
call sub.msvcrt.dll_free
mov esi, dword [ebx]
mov ecx, 8
mov edi, dword [ebp - 0x204c]
repe cmpsb byte [esi], byte es:[edi]
je 0x40ce6c
mov eax, dword [ebp + 8]
xor edi, edi
sub eax, 1
cmp dword [ebp + 8], 1
mov dword [ebp - 0x204c], eax
jle 0x40cd23
mov eax, dword [ebx + edi*4 + 4]
call fcn.00409950
mov ecx, dword [ebp - 0x2050]
mov esi, eax
mov eax, dword [ecx]
add ecx, 4
lea edx, [eax - 0x1010101]
not eax
and edx, eax
and edx, 0x80808080
je 0x40ccbe
mov eax, edx
shr eax, 0x10
test edx, 0x8080
cmove edx, eax
lea eax, [ecx + 2]
cmove ecx, eax
add dl, dl
sbb ecx, 3
mov eax, 0x20
mov word [ecx], ax
mov eax, dword [ebp - 0x2050]
add edi, 1
mov dword [esp + 8], 0xfff
mov dword [esp + 4], esi
mov dword [esp], eax
call sub.msvcrt.dll_strncat
mov dword [esp], esi
call sub.msvcrt.dll_free
cmp edi, dword [ebp - 0x204c]
jne 0x40ccad
mov ecx, dword [ebp - 0x2050]
mov edx, dword [ebp - 0x2060]
mov eax, dword [ebp - 0x2058]
call fcn.0040cf50
mov dword [ebp - 0x204c], 0
jmp 0x40ac53
mov ebx, dword [ebp - 0x2060]
lea eax, [ebp - 0x1018]
mov edx, str.get_state
mov ecx, dword [ebp - 0x2058]
xor esi, esi
mov dword [ebp - 0x2050], eax
mov dword [esp], ebx
call fcn.00409850
mov edi, dword [sym.imp.KERNEL32.dll_Sleep]
mov dword [esp], 0xfa
call edi
sub esp, 4
mov eax, dword [ebp - 0x2050]
mov dword [esp], eax
call fcn.0040e290
test eax, eax
mov ebx, eax
je 0x40ce2f
test esi, esi
je 0x40cdba
mov dword [esp + 4], esi
mov dword [esp], eax
call sub.msvcrt.dll_strcmp
test eax, eax
je 0x40ce5e
mov dword [esp], esi
call sub.msvcrt.dll_free
mov dword [esp], ebx
call sub.msvcrt.dll__strdup
mov dword [esp + 8], 0x1b
mov dword [esp + 4], 0x1b
mov dword [esp], str._c_2J_c_2H
mov esi, eax
call fcn.00409720
mov dword [esp], str.Android_Debug_Bridge_n
call fcn.00409720
mov eax, ebx
mov dword [esp + 4], eax
mov dword [esp], str.State:__s_n
call fcn.00409720
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x20
mov dword [esp], eax
call sub.msvcrt.dll_fflush
mov dword [esp], 0xfa
call edi
sub esp, 4
test ebx, ebx
je 0x40cd82
mov dword [esp], ebx
call sub.msvcrt.dll_free
jmp 0x40cd82
mov dword [esp + 8], 0x1b
mov dword [esp + 4], 0x1b
mov dword [esp], str._c_2J_c_2H
call fcn.00409720
mov dword [esp], str.Android_Debug_Bridge_n
call fcn.00409720
mov eax, str.offline
jmp 0x40cdee
mov dword [esp], 0xfa
call edi
sub esp, 4
jmp 0x40ce22
mov edx, dword [ebp - 0x2050]
mov ecx, dword [edx]
add edx, 4
lea eax, [ecx - 0x1010101]
not ecx
and eax, ecx
and eax, 0x80808080
je 0x40ce72
mov ecx, eax
shr ecx, 0x10
test eax, 0x8080
cmove eax, ecx
lea ecx, [edx + 2]
cmove edx, ecx
add al, al
sbb edx, 3
mov dword [edx], 0x20762d20
mov dword [edx + 4], 0x676e6f6c
mov byte [edx + 8], 0
jmp 0x40cc99