Function at 0x4aa79a
Capabilities:
Query environment variable

Disassembly:
lea ecx, [esp + 4]
and esp, 0xfffffff0
push dword [ecx - 4]
push ebp
mov ebp, esp
push edi
push esi
mov esi, 0x4af020
push ebx
push ecx
sub esp, 0x228
mov eax, dword [ecx]
lea ebx, [ebp - 0x158]
mov edi, ebx
mov dword [ebp - 0x1ec], eax
mov eax, dword [ecx + 4]
mov dword [ebp - 0x1f0], eax
call fcn.00436ae0
mov ecx, 0x50
rep movsd dword es:[edi], dword [esi]
lea esi, [ebp - 0x1d8]
mov dword [esp], str.ANDROID_SERIAL
mov byte [ebp - 0x1e1], 1
mov dword [ebp - 0x1d4], 0x4b50bc
mov dword [ebp - 0x1d0], 0x4b50bc
call sub.msvcrt.dll_getenv
mov byte [ebp - 0x1fb], 0
mov byte [ebp - 0x1fa], 0
mov byte [ebp - 0x1fc], 0
mov byte [ebp - 0x1f9], 0
mov dword [0x4ca09c], eax
nop
mov eax, dword [ebp - 0x1f0]
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], ebx
mov dword [esp + 8], str.wub:k:n:r:t:s:S:lc:i:m:ha::
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x1ec]
mov dword [esp], eax
call fcn.00439990
test eax, eax
js 0x4aac2e
cmp eax, 0x77
ja case.0x4aa859.1
jmp dword [eax*4 + 0x4b8f00]
mov byte [ebp - 0x1f9], 1
jmp 0x4aa820
mov edx, 1
lea esi, [ebp - 0x178]
mov eax, dword [ebp - 0x1d0]
mov dword [esp], esi
mov dword [ebp - 0x1ec], edx
lea ecx, [eax - 0xc]
call fcn.00478810
mov eax, dword [ebp - 0x1d4]
lea ecx, [eax - 0xc]
sub esp, 4
mov dword [esp], esi
call fcn.00478810
mov edx, dword [ebp - 0x1ec]
mov eax, edx
sub esp, 4
lea esp, [ebp - 0x10]
pop ecx
pop ebx
pop esi
pop edi
pop ebp
lea esp, [ecx - 4]
ret
mov byte [ebp - 0x1e1], 0
jmp 0x4aa820
mov eax, dword [ebp - 0x1d8]
mov dword [esp], str.unbuffered
shl eax, 4
mov edi, dword [ebp + eax - 0x158]
mov dword [esp + 4], edi
call sub.msvcrt.dll_strcmp
test eax, eax
je 0x4ab246
mov dword [esp + 4], edi
mov dword [esp], str.version
call sub.msvcrt.dll_strcmp
test eax, eax
je 0x4abe05
mov dword [esp + 4], edi
mov dword [esp], str.slot
call sub.msvcrt.dll_strcmp
test eax, eax
je 0x4aabdd
mov dword [esp + 4], edi
mov dword [esp], str.skip_secondary
call sub.msvcrt.dll_strcmp
test eax, eax
je 0x4ab342
mov dword [esp + 4], edi
mov dword [esp], str.skip_reboot
call sub.msvcrt.dll_strcmp
test eax, eax
je 0x4ab3fc
mov dword [esp + 4], edi
mov dword [esp], str.disable_verity
call sub.msvcrt.dll_strcmp
test eax, eax
jne 0x4ab822
mov byte [0x4ca08d], 1
jmp 0x4aa820
mov eax, dword [0x4cbfa0]
mov dword [0x4ca098], eax
jmp 0x4aa820
mov eax, dword [0x4cbfa0]
mov dword [esp + 8], 0x10
mov dword [esp + 4], 0
mov dword [esp], eax
call sub.msvcrt.dll_strtoul
mov dword [0x4af16c], eax
jmp 0x4aa820
mov eax, dword [0x4cbfa0]
test eax, eax
je 0x4aa9bc
mov dword [esp], eax
lea ecx, [ebp - 0x1d0]
call fcn.00479040
push eax
mov byte [ebp - 0x1fa], 1
jmp 0x4aa820
mov edi, dword [0x4cbfa0]
lea eax, [ebp - 0x178]
mov dword [esp + 8], 0
mov dword [esp + 4], eax
mov dword [esp], edi
call fcn.0043dde0
mov ecx, dword [ebp - 0x178]
cmp edi, ecx
mov dword [ebp - 0x1f8], eax
mov dword [ebp - 0x1f4], edx
je 0x4aaa1e
movzx edi, byte [ecx]
and edi, 0xffffffdf
mov eax, edi
cmp al, 0x4b
jne 0x4aab87
cmp dword [ebp - 0x1f4], 0x3fffff
jbe 0x4ab29b
mov dword [esp], str.invalid_sparse_limit
mov dword [0x4af180], 0xffffffff
mov dword [0x4af184], 0xffffffff
call fcn.00408fc0
mov eax, dword [0x4cbfa0]
mov dword [esp + 8], 0x10
mov dword [esp + 4], 0
mov dword [esp], eax
call sub.msvcrt.dll_strtoul
mov dword [0x4af160], eax
jmp 0x4aa820
mov eax, dword [0x4cbfa0]
mov dword [0x4ca09c], eax
jmp 0x4aa820
mov eax, dword [0x4cbfa0]
mov dword [esp + 8], 0x10
mov dword [esp + 4], 0
mov dword [esp], eax
call sub.msvcrt.dll_strtoul
mov dword [0x4af164], eax
jmp 0x4aa820
mov eax, dword [0x4cbfa0]
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], eax
call sub.msvcrt.dll_strtoul
test eax, eax
mov dword [0x4af170], eax
jne 0x4aa820
mov dword [esp], str.invalid_page_size
call fcn.00408fc0
mov dword [0x4ca090], 1
jmp 0x4aa820
mov eax, dword [0x4cbfa0]
mov dword [esp + 8], 0x10
mov dword [esp + 4], 0
mov dword [esp], eax
call sub.msvcrt.dll_strtoul
mov dword [0x4af168], eax
jmp 0x4aa820
lea eax, [ebp - 0x178]
mov dword [esp + 4], eax
mov eax, dword [0x4cbfa0]
mov dword [esp + 8], 0
mov dword [ebp - 0x178], 0
mov dword [esp], eax
call sub.msvcrt.dll_strtoul
mov edx, dword [ebp - 0x178]
test edx, edx
je 0x4ac300
cmp byte [edx], 0
jne 0x4ac300
test eax, 0xffff0000
jne 0x4ac300
mov word [0x4ca094], ax
jmp 0x4aa820
mov eax, dword [sym.imp.msvcrt.dll__iob]
lea esi, [ebp - 0x178]
mov dword [esp + 4], str.usage:_fastboot____option_____command__n_ncommands:_n__update__filename_________________________Reflash_device_from_update.zip._n___________________________________________Sets_the_flashed_slot_as_active._n__flashall_________________________________Flash_boot__system__vendor__and____n___________________________________________if_found____recovery._If_the_device_n___________________________________________supports_slots__the_slot_that_has_n___________________________________________been_flashed_to_is_set_as_active._n___________________________________________Secondary_images_may_be_flashed_to_n___________________________________________an_inactive_slot._n__flash__partition_____filename____________Write_a_file_to_a_flash_partition._n__flashing_lock____________________________Locks_the_device._Prevents_flashing._n__flashing_unlock__________________________Unlocks_the_device._Allows_flashing_n___________________________________________any_partition_except_n___________________________________________bootloader_related_partitions._n__flashing_lock_critical___________________Prevents_flashing_bootloader_related_n___________________________________________partitions._n__flashing_unlock_critical_________________Enables_flashing_bootloader_related_n___________________________________________partitions._n__flashing_get_unlock_ability______________Queries_bootloader_to_see_if_the_n___________________________________________device_is_unlocked._n__flashing_get_unlock_bootloader_nonce_____Queries_the_bootloader_to_get_the_n___________________________________________unlock_nonce._n__flashing_unlock_bootloader__request______Issue_unlock_bootloader_using_request._n__flashing_lock_bootloader_________________Locks_the_bootloader_to_prevent_n___________________________________________bootloader_version_rollback._n__erase__partition_________________________Erase_a_flash_partition._n__format_:__fs_type___:__size_____partition__n___________________________________________Format_a_flash_partition._Can_n___________________________________________override_the_fs_type_and_or_size_n___________________________________________the_bootloader_reports._n__getvar__variable_________________________Display_a_bootloader_variable._n__set_active__slot_________________________Sets_the_active_slot._If_slots_are_n___________________________________________not_supported__this_does_nothing._n__boot__kernel_____ramdisk_____second______Download_and_boot_kernel._n__flash:raw__bootable_partition___kernel_____ramdisk_____second______n___________________________________________Create_bootimage_and_flash_it._n__devices___l______________________________List_all_connected_devices__with_n___________________________________________device_paths_._n__continue_________________________________Continue_with_autoboot._n__reboot__bootloaderemergency_____________Reboot_device__into_bootloader_or_emergency_mode_._n__reboot_bootloader________________________Reboot_device_into_bootloader._n__oem__parameter1__...__parameterN_________Executes_oem_specific_command._n__stage__infile____________________________Sends_contents_of__infile__to_stage_for_n___________________________________________the_next_command._Supported_only_on_n___________________________________________Android_Things_devices._n__get_staged__outfile______________________Receives_data_to__outfile__staged_by_the_n___________________________________________last_command._Supported_only_on_Android_n___________________________________________Things_devices._n__help_____________________________________Show_this_help_message._n_noptions:_n___w_______________________________________Erase_userdata_and_cache__and_format_n___________________________________________if_supported_by_partition_type_._n___u_______________________________________Do_not_erase_partition_before_n___________________________________________formatting._n___s__specific_device______________________Specify_a_device._For_USB__provide_either_n___________________________________________a_serial_number_or_path_to_device_port._n
add eax, 0x20
mov dword [esp], eax
call fcn.0044ae30
xor edx, edx
jmp 0x4aa874
call sub.msvcrt.dll_abort
mov eax, edi
cmp al, 0x4d
jne 0x4ab2f6
cmp dword [ebp - 0x1f4], 0xfff
ja 0x4aaa1e
jb 0x4aabb0
cmp dword [ebp - 0x1f8], 0xfffffffe
ja 0x4aaa1e
mov eax, dword [ebp - 0x1f8]
add ecx, 1
mov edx, dword [ebp - 0x1f4]
mov dword [ebp - 0x178], ecx
shld edx, eax, 0x14
shl eax, 0x14
mov dword [ebp - 0x1f8], eax
mov dword [ebp - 0x1f4], edx
jmp 0x4ab2c9
lea eax, [ebp - 0x194]
mov dword [esp + 4], eax
mov eax, dword [0x4cbfa0]
lea ecx, [ebp - 0x178]
mov dword [esp], eax
call fcn.00479f20
lea ecx, [ebp - 0x1d4]
push eax
push eax
lea eax, [ebp - 0x178]
mov dword [esp], eax
call fcn.00478a80
push eax
mov eax, dword [ebp - 0x178]
lea ecx, [eax - 0xc]
lea eax, [ebp - 0x188]
mov dword [esp], eax
call fcn.00478810
push eax
jmp 0x4aa820
mov eax, dword [0x4af488]
mov edi, dword [ebp - 0x1ec]
sub edi, eax
mov dword [ebp - 0x1f8], edi
mov edi, dword [ebp - 0x1f0]
cmp byte [ebp - 0x1f9], 0
lea ebx, [edi + eax*4]
jne 0x4aac60
cmp dword [ebp - 0x1f8], 0
je 0x4aaf08
cmp dword [ebp - 0x1f8], 0
jle 0x4aac9b
mov esi, dword [ebx]
mov dword [esp + 4], str.devices
mov dword [esp], esi
call sub.msvcrt.dll_strcmp
test eax, eax
je 0x4aba60
mov dword [esp + 4], str.help
mov dword [esp], esi
call sub.msvcrt.dll_strcmp
test eax, eax
je 0x4ab8b8
mov eax, dword [0x4ca084]
test eax, eax
je 0x4ab8e7
mov dword [ebp - 0x1cc], eax
call fcn.00402fe0
sub eax, 1
jle 0x4abc64
mov dword [esp], 0x4b62a8
lea ecx, [ebp - 0x1d4]
call fcn.00450c70
test eax, eax
push edi
jne 0x4ab75a
mov dword [esp], 0x4b62a8
lea ecx, [ebp - 0x1d0]
call fcn.00450c70
test eax, eax
push edx
jne 0x4ab7a6
cmp byte [ebp - 0x1fa], 0
jne 0x4ab674
mov eax, dword [ebp - 0x1f8]
xor esi, esi
mov dword [ebp - 0x194], 0
mov dword [ebp - 0x190], 0
mov dword [ebp - 0x18c], 0
lea eax, [ebx + eax*4]
mov edi, eax
sub edi, ebx
sar edi, 2
test edi, edi
mov dword [ebp - 0x1ec], eax
jne 0x4ab408
lea edx, [esi + edi*4]
mov dword [ebp - 0x194], esi
lea edi, [ebp - 0x178]
mov dword [ebp - 0x18c], edx
jmp 0x4aad70
test esi, esi
mov edx, dword [ebx]
je 0x4aad6a
mov dword [esp + 4], edi
mov ecx, esi
mov dword [esp], edx
call fcn.00479f20
push eax
push eax
add ebx, 4
add esi, 4
cmp dword [ebp - 0x1ec], ebx
jne 0x4aad54
cmp esi, dword [ebp - 0x194]
lea eax, [ebp - 0x194]
mov dword [ebp - 0x190], esi
mov byte [ebp - 0x206], 0
mov byte [ebp - 0x205], 0
mov byte [ebp - 0x204], 0
mov dword [ebp - 0x1ec], eax
je 0x4ab34e
movzx eax, byte [ebp - 0x1fb]
lea edi, [ebp - 0x1c8]
mov dword [ebp - 0x20c], eax
jmp 0x4aae26
mov edx, dword [ebp - 0x1ec]
lea esi, [ebp - 0x178]
mov eax, esi
call fcn.00403260
mov eax, dword [ebp - 0x178]
mov dword [esp + 4], eax
mov dword [esp], eax
call fcn.00401f90
mov eax, dword [ebp - 0x178]
lea ebx, [ebp - 0x188]
mov dword [esp], ebx
lea ecx, [eax - 0xc]
call fcn.00478810
sub esp, 4
mov eax, dword [ebp - 0x1c8]
lea ecx, [eax - 0xc]
cmp ecx, 0x4b50b0
jne 0x4ac2dc
mov eax, dword [ebp - 0x194]
cmp dword [ebp - 0x190], eax
je 0x4ab34e
mov edx, dword [ebp - 0x1ec]
mov eax, edi
call fcn.00403260
mov ecx, edi
mov dword [esp], str.getvar
call fcn.00450c70
sub esp, 4
test eax, eax
je 0x4aadc0
mov dword [esp], str.erase
mov ecx, edi
call fcn.00450c70
sub esp, 4
test eax, eax
jne 0x4aaf21
mov edx, dword [ebp - 0x1ec]
lea ebx, [ebp - 0x188]
mov eax, ebx
lea esi, [ebp - 0x178]
call fcn.00403260
mov dword [esp], 4
mov dword [ebp - 0x170], 0
call fcn.004a86b0
lea edx, [ebp - 0x1cc]
lea ecx, [ebp - 0x1d4]
mov dword [eax], edx
mov edx, ebx
mov dword [ebp - 0x178], eax
mov eax, dword [ebp - 0x1cc]
mov dword [esp + 4], 1
mov dword [esp], esi
mov dword [ebp - 0x16c], 0x403680
mov dword [ebp - 0x170], 0x402a30
call fcn.00404650
mov eax, dword [ebp - 0x170]
test eax, eax
je 0x4aaeef
mov dword [esp + 8], 3
mov dword [esp + 4], esi
mov dword [esp], esi
call eax
mov eax, dword [ebp - 0x188]
mov dword [esp], esi
lea ecx, [eax - 0xc]
call fcn.00478810
sub esp, 4
jmp 0x4aadff
cmp byte [ebp - 0x1fa], 0
jne 0x4aac9b
mov dword [esp], str.no_command
call fcn.004aa30f
mov dword [esp + 4], str.format
mov dword [esp], edi
call fcn.00427070
test al, al
je 0x4ab116
lea eax, [ebp - 0x1ac]
lea esi, [ebp - 0x178]
mov dword [esp + 4], eax
mov ecx, esi
mov dword [esp], 0x4b8978
lea ebx, [ebp - 0x188]
mov dword [ebp - 0x1f8], eax
call fcn.00479f20
push edx
push edx
mov dword [esp + 8], esi
mov dword [esp + 4], edi
mov dword [esp], ebx
call fcn.00427140
mov eax, dword [ebp - 0x178]
lea ecx, [eax - 0xc]
lea eax, [ebp - 0x1a0]
mov dword [esp], eax
call fcn.00478810
mov edx, dword [ebp - 0x184]
mov eax, dword [ebp - 0x188]
mov dword [ebp - 0x1b4], 0x4b50bc
push ecx
mov ecx, edx
sub ecx, eax
mov dword [ebp - 0x1f0], ecx
lea ecx, [ebp - 0x1b4]
cmp dword [ebp - 0x1f0], 7
mov dword [ebp - 0x200], ecx
jbe 0x4aafda
mov eax, dword [eax + 4]
mov dword [esp], eax
call fcn.00479040
mov edx, dword [ebp - 0x184]
push eax
mov eax, dword [ebp - 0x188]
sub edx, eax
lea ecx, [ebp - 0x1b0]
cmp edx, 0xb
mov dword [ebp - 0x1b0], 0x4b50bc
mov dword [ebp - 0x1f0], ecx
ja 0x4ab235
mov edx, dword [ebp - 0x1ec]
mov eax, dword [ebp - 0x1f8]
call fcn.00403260
mov dword [esp], 0x10
mov dword [ebp - 0x170], 0
call fcn.004a86b0
lea edx, [ebp - 0x1e1]
lea ecx, [ebp - 0x1a0]
mov dword [eax], edx
lea edx, [ebp - 0x1cc]
mov dword [eax + 4], edx
mov edx, dword [ebp - 0x200]
mov dword [eax + 8], edx
mov edx, dword [ebp - 0x1f0]
mov dword [eax + 0xc], edx
mov dword [ebp - 0x178], eax
lea eax, [ebp - 0x1bc]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x1ac]
mov dword [ebp - 0x16c], 0x405740
mov dword [ebp - 0x170], 0x4027c0
mov dword [esp], eax
call fcn.00479f20
lea ecx, [ebp - 0x1d4]
lea edx, [ebp - 0x1a0]
push eax
push eax
mov eax, dword [ebp - 0x1cc]
mov dword [esp + 4], 1
mov dword [esp], esi
call fcn.00404650
mov eax, dword [ebp - 0x1a0]
lea ecx, [eax - 0xc]
lea eax, [ebp - 0x1b8]
mov dword [esp], eax
call fcn.00478810
push eax
mov eax, dword [ebp - 0x170]
test eax, eax
je 0x4ab0d4
mov dword [esp + 8], 3
mov dword [esp + 4], esi
mov dword [esp], esi
call eax
mov eax, dword [ebp - 0x1ac]
mov dword [esp], esi
lea ecx, [eax - 0xc]
call fcn.00478810
mov eax, dword [ebp - 0x1b0]
push ecx
lea ecx, [eax - 0xc]
mov dword [esp], esi
call fcn.00478810
push eax
mov eax, dword [ebp - 0x1b4]
mov dword [esp], esi
lea ecx, [eax - 0xc]
call fcn.00478810
mov ecx, ebx
push eax
call fcn.0049cb20
jmp 0x4aadff
mov dword [esp], str.signature
mov ecx, edi
call fcn.00450c70
test eax, eax
push edx
jne 0x4ab1e5
mov edx, dword [ebp - 0x1ec]
lea ebx, [ebp - 0x188]
mov eax, ebx
lea esi, [ebp - 0x178]
call fcn.00403260
lea eax, [ebp - 0x1ac]
mov ecx, esi
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x188]
mov dword [esp], eax
call fcn.00479f20
lea edx, [ebp - 0x1a8]
push eax
push eax
mov eax, esi
call fcn.004025a0
mov dword [ebp - 0x1dc], eax
mov eax, dword [ebp - 0x178]
lea ecx, [eax - 0xc]
lea eax, [ebp - 0x1a0]
mov dword [esp], eax
call fcn.00478810
push eax
mov eax, dword [ebp - 0x1dc]
test eax, eax
je 0x4acd9c
mov ecx, dword [ebp - 0x1a8]
mov edx, dword [ebp - 0x1a4]
mov ebx, ecx
xor bh, 1
or ebx, edx
jne 0x4acc99
mov dword [esp + 8], 0x100
mov dword [esp + 4], eax
mov dword [esp], str.signature
call fcn.00402080
mov dword [esp + 4], str.installing_signature
mov dword [esp], str.signature
call fcn.00402050
jmp 0x4aaeef
mov dword [esp], str.reboot
mov ecx, edi
call fcn.00450c70
test eax, eax
push ebx
jne 0x4ab3c7
mov edx, dword [ebp - 0x190]
mov byte [ebp - 0x204], 1
mov eax, edx
sub eax, dword [ebp - 0x194]
sar eax, 2
sub eax, 1
je 0x4ab846
cmp edx, dword [ebp - 0x194]
je 0x4aadff
mov dword [esp], str.junk_after_reboot_command
call fcn.004aa30f
mov eax, dword [eax + 8]
mov dword [esp], eax
call fcn.00479040
push eax
jmp 0x4aaffb
mov eax, dword [sym.imp.msvcrt.dll__iob]
mov dword [esp + 0xc], 0
mov dword [esp + 8], 4
mov dword [esp + 4], 0
add eax, 0x20
mov dword [esp], eax
call sub.msvcrt.dll_setvbuf
mov eax, dword [sym.imp.msvcrt.dll__iob]
mov dword [esp + 0xc], 0
mov dword [esp + 8], 4
mov dword [esp + 4], 0
add eax, 0x40
mov dword [esp], eax
call sub.msvcrt.dll_setvbuf
jmp 0x4aa820
jae 0x4ab3ea
mov eax, dword [ebp - 0x1f8]
add ecx, 1
mov edx, dword [ebp - 0x1f4]
mov dword [ebp - 0x178], ecx
shld edx, eax, 0xa
shl eax, 0xa
mov dword [ebp - 0x1f8], eax
mov dword [ebp - 0x1f4], edx
cmp byte [ecx], 0
jne 0x4aaa1e
mov ecx, dword [ebp - 0x1f4]
test ecx, ecx
js 0x4aaa1e
mov eax, dword [ebp - 0x1f8]
mov dword [0x4af184], ecx
mov dword [0x4af180], eax
jmp 0x4aa820
mov eax, edi
cmp al, 0x47
jne 0x4ab2c9
cmp dword [ebp - 0x1f4], 3
ja 0x4aaa1e
jb 0x4ab318
cmp dword [ebp - 0x1f8], 0xfffffffe
ja 0x4aaa1e
mov eax, dword [ebp - 0x1f8]
add ecx, 1
mov edx, dword [ebp - 0x1f4]
mov dword [ebp - 0x178], ecx
shld edx, eax, 0x1e
shl eax, 0x1e
mov dword [ebp - 0x1f8], eax
mov dword [ebp - 0x1f4], edx
jmp 0x4ab2c9
mov byte [ebp - 0x1fb], 1
jmp 0x4aa820
cmp byte [ebp - 0x1f9], 0
lea esi, [ebp - 0x178]
jne 0x4ab43d
cmp byte [ebp - 0x1fa], 0
jne 0x4ab42a
cmp byte [ebp - 0x204], 0
jne 0x4ab73e
cmp byte [ebp - 0x205], 0
jne 0x4abc1c
cmp byte [ebp - 0x206], 0
jne 0x4abc3a
mov eax, dword [ebp - 0x1cc]
mov dword [esp], eax
call fcn.004021d0
mov ecx, dword [ebp - 0x1ec]
or eax, edx
setne dl
movzx edx, dl
mov dword [ebp - 0x1f0], edx
call fcn.0049cb20
mov edx, dword [ebp - 0x1f0]
jmp 0x4aa874
mov dword [esp], str.reboot_bootloader
mov ecx, edi
call fcn.00450c70
test eax, eax
push ebx
jne 0x4ab7f2
mov byte [ebp - 0x205], 1
jmp 0x4aadff
cmp dword [ebp - 0x1f8], 0xfffffffe
ja 0x4aaa1e
jmp 0x4ab2a1
mov byte [ebp - 0x1fc], 1
jmp 0x4aa820
cmp edi, 0x3fffffff
ja 0x4acd1a
lea eax, [edi*4]
mov dword [esp], eax
call fcn.004a86b0
mov esi, eax
jmp 0x4aad3d
mov eax, dword [ebp - 0x1d0]
mov dword [esp], eax
call fcn.00401cf0
jmp 0x4ab36e
mov eax, dword [sym.imp.msvcrt.dll__iob]
lea ebx, [ebp - 0x1a0]
mov dword [esp + 4], str.wiping_userdata..._n
add eax, 0x40
mov dword [esp], eax
call fcn.0044ae30
mov dword [esp], str.userdata
call fcn.00401d30
lea eax, [ebp - 0x1b0]
mov ecx, esi
mov dword [esp + 4], eax
mov dword [esp], 0x4b62a8
call fcn.00479f20
lea eax, [ebp - 0x188]
mov ecx, eax
mov dword [ebp - 0x1f0], eax
push edi
push edi
lea edi, [ebp - 0x1b4]
mov dword [esp + 4], edi
mov edi, eax
mov dword [esp], 0x4b62a8
call fcn.00479f20
mov ecx, ebx
push eax
push eax
lea eax, [ebp - 0x1b8]
mov dword [esp + 4], eax
mov dword [esp], 0x4b62a8
call fcn.00479f20
mov edx, str.userdata
mov ecx, 1
push eax
push eax
mov eax, dword [ebp - 0x1cc]
mov dword [esp + 8], esi
mov dword [esp + 4], edi
mov dword [esp], ebx
call fcn.00404e70
mov eax, dword [ebp - 0x1a0]
lea ecx, [eax - 0xc]
lea eax, [ebp - 0x1ac]
mov dword [esp], eax
mov dword [ebp - 0x1f8], eax
call fcn.00478810
push eax
mov eax, dword [ebp - 0x188]
mov dword [esp], ebx
lea ecx, [eax - 0xc]
call fcn.00478810
push eax
mov eax, dword [ebp - 0x178]
mov dword [esp], edi
lea ecx, [eax - 0xc]
call fcn.00478810
mov ecx, esi
mov dword [ebp - 0x1ac], 0x4b50bc
push eax
mov dword [esp + 4], ebx
mov dword [esp], str.partition_type:cache
call fcn.00479f20
push eax
push eax
mov eax, dword [ebp - 0x1f8]
mov dword [esp + 4], esi
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x1cc]
mov dword [esp], eax
call fcn.00401bf0
test al, al
je 0x4aba83
mov eax, dword [ebp - 0x1ac]
cmp dword [eax - 0xc], 0
je 0x4aba83
mov eax, dword [ebp - 0x178]
mov edi, dword [ebp - 0x1f0]
lea ecx, [eax - 0xc]
mov dword [esp], edi
call fcn.00478810
push eax
mov eax, dword [sym.imp.msvcrt.dll__iob]
mov dword [esp + 4], str.wiping_cache..._n
add eax, 0x40
mov dword [esp], eax
call fcn.0044ae30
mov dword [esp], str.cache
call fcn.00401d30
lea eax, [ebp - 0x1b4]
mov ecx, esi
mov dword [esp + 4], eax
mov dword [esp], 0x4b62a8
call fcn.00479f20
mov ecx, edi
push eax
push eax
lea eax, [ebp - 0x1b8]
mov dword [esp + 4], eax
mov dword [esp], 0x4b62a8
call fcn.00479f20
mov ecx, ebx
push eax
push eax
lea eax, [ebp - 0x1bc]
mov dword [esp + 4], eax
mov dword [esp], 0x4b62a8
call fcn.00479f20
mov edx, str.cache
mov ecx, 1
push eax
push eax
mov eax, dword [ebp - 0x1cc]
mov dword [esp + 8], esi
mov dword [esp + 4], edi
mov dword [esp], ebx
call fcn.00404e70
mov eax, dword [ebp - 0x1a0]
lea ecx, [eax - 0xc]
lea eax, [ebp - 0x1b0]
mov dword [esp], eax
call fcn.00478810
push eax
mov eax, dword [ebp - 0x188]
mov dword [esp], ebx
lea ecx, [eax - 0xc]
call fcn.00478810
push eax
mov eax, dword [ebp - 0x178]
mov dword [esp], edi
lea ecx, [eax - 0xc]
call fcn.00478810
push edx
mov eax, dword [ebp - 0x1ac]
mov dword [esp], esi
lea ecx, [eax - 0xc]
call fcn.00478810
push ebx
jmp 0x4ab361
mov dword [esp], 0x4b62a8
lea ecx, [ebp - 0x1d0]
call fcn.00450c70
test eax, eax
push edi
jne 0x4aacff
mov dword [esp], 0x4b62a8
lea ecx, [ebp - 0x1d4]
call fcn.00450c70
test eax, eax
push esi
jne 0x4ac042
lea eax, [ebp - 0x1a0]
lea esi, [ebp - 0x178]
mov ecx, esi
mov dword [esp + 4], eax
mov dword [esp], str.current_slot
mov dword [ebp - 0x188], 0x4b50bc
call fcn.00479f20
lea eax, [ebp - 0x188]
mov dword [ebp - 0x1f0], eax
push edx
push edx
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x1cc]
mov dword [esp + 4], esi
mov dword [esp], eax
call fcn.00401bf0
mov edi, eax
mov eax, dword [ebp - 0x178]
lea ecx, [eax - 0xc]
lea eax, [ebp - 0x194]
mov dword [esp], eax
mov dword [ebp - 0x1ec], eax
call fcn.00478810
mov eax, edi
test al, al
push ecx
jne 0x4ac341
mov byte [ebp - 0x1fa], 0
mov eax, dword [ebp - 0x188]
mov dword [esp], esi
lea ecx, [eax - 0xc]
call fcn.00478810
push eax
jmp 0x4aacff
cmp byte [ebp - 0x1fc], 0
jne 0x4ab37b
call fcn.00402020
call fcn.004021b0
jmp 0x4ab395
mov edx, dword [ebp - 0x1cc]
lea esi, [ebp - 0x178]
mov eax, esi
mov dword [esp], 1
lea ecx, [ebp - 0x1d4]
call fcn.00403c80
lea ecx, [ebp - 0x1d4]
mov dword [esp], esi
call fcn.00478a80
mov eax, dword [ebp - 0x178]
push ecx
lea ecx, [eax - 0xc]
lea eax, [ebp - 0x188]
mov dword [esp], eax
call fcn.00478810
push esi
jmp 0x4aacd7
mov edx, dword [ebp - 0x1cc]
lea esi, [ebp - 0x178]
mov eax, esi
mov dword [esp], 0
lea ecx, [ebp - 0x1d0]
call fcn.00403c80
lea ecx, [ebp - 0x1d0]
mov dword [esp], esi
call fcn.00478a80
push eax
mov eax, dword [ebp - 0x178]
lea ecx, [eax - 0xc]
lea eax, [ebp - 0x188]
mov dword [esp], eax
call fcn.00478810
push eax
jmp 0x4aacf2
mov ecx, edi
mov dword [esp], str.continue
call fcn.00450c70
test eax, eax
push ecx
jne 0x4abc94
mov dword [esp + 4], str.resuming_boot
mov dword [esp], str.continue
call fcn.00402050
jmp 0x4aadff
mov dword [esp + 4], edi
mov dword [esp], str.disable_verification
call sub.msvcrt.dll_strcmp
test eax, eax
jne 0x4ac315
mov byte [0x4ca08c], 1
jmp 0x4aa820
mov edx, dword [ebp - 0x1ec]
lea esi, [ebp - 0x178]
mov eax, esi
call fcn.00403260
mov ecx, esi
mov dword [esp], str.bootloader
call fcn.00450c70
test eax, eax
push ecx
je 0x4abc58
mov dword [esp], str.emergency
mov ecx, esi
call fcn.00450c70
test eax, eax
push edx
jne 0x4ac943
mov byte [ebp - 0x206], 1
mov eax, dword [ebp - 0x178]
lea ebx, [ebp - 0x188]
mov dword [esp], ebx
lea ecx, [eax - 0xc]
call fcn.00478810
mov edx, dword [ebp - 0x190]
mov byte [ebp - 0x204], 0
push esi
jmp 0x4ab21d
mov dword [ebp - 0x1ec], eax
mov eax, dword [sym.imp.msvcrt.dll__iob]
lea esi, [ebp - 0x178]
mov dword [esp + 4], str.usage:_fastboot____option_____command__n_ncommands:_n__update__filename_________________________Reflash_device_from_update.zip._n___________________________________________Sets_the_flashed_slot_as_active._n__flashall_________________________________Flash_boot__system__vendor__and____n___________________________________________if_found____recovery._If_the_device_n___________________________________________supports_slots__the_slot_that_has_n___________________________________________been_flashed_to_is_set_as_active._n___________________________________________Secondary_images_may_be_flashed_to_n___________________________________________an_inactive_slot._n__flash__partition_____filename____________Write_a_file_to_a_flash_partition._n__flashing_lock____________________________Locks_the_device._Prevents_flashing._n__flashing_unlock__________________________Unlocks_the_device._Allows_flashing_n___________________________________________any_partition_except_n___________________________________________bootloader_related_partitions._n__flashing_lock_critical___________________Prevents_flashing_bootloader_related_n___________________________________________partitions._n__flashing_unlock_critical_________________Enables_flashing_bootloader_related_n___________________________________________partitions._n__flashing_get_unlock_ability______________Queries_bootloader_to_see_if_the_n___________________________________________device_is_unlocked._n__flashing_get_unlock_bootloader_nonce_____Queries_the_bootloader_to_get_the_n___________________________________________unlock_nonce._n__flashing_unlock_bootloader__request______Issue_unlock_bootloader_using_request._n__flashing_lock_bootloader_________________Locks_the_bootloader_to_prevent_n___________________________________________bootloader_version_rollback._n__erase__partition_________________________Erase_a_flash_partition._n__format_:__fs_type___:__size_____partition__n___________________________________________Format_a_flash_partition._Can_n___________________________________________override_the_fs_type_and_or_size_n___________________________________________the_bootloader_reports._n__getvar__variable_________________________Display_a_bootloader_variable._n__set_active__slot_________________________Sets_the_active_slot._If_slots_are_n___________________________________________not_supported__this_does_nothing._n__boot__kernel_____ramdisk_____second______Download_and_boot_kernel._n__flash:raw__bootable_partition___kernel_____ramdisk_____second______n___________________________________________Create_bootimage_and_flash_it._n__devices___l______________________________List_all_connected_devices__with_n___________________________________________device_paths_._n__continue_________________________________Continue_with_autoboot._n__reboot__bootloaderemergency_____________Reboot_device__into_bootloader_or_emergency_mode_._n__reboot_bootloader________________________Reboot_device_into_bootloader._n__oem__parameter1__...__parameterN_________Executes_oem_specific_command._n__stage__infile____________________________Sends_contents_of__infile__to_stage_for_n___________________________________________the_next_command._Supported_only_on_n___________________________________________Android_Things_devices._n__get_staged__outfile______________________Receives_data_to__outfile__staged_by_the_n___________________________________________last_command._Supported_only_on_Android_n___________________________________________Things_devices._n__help_____________________________________Show_this_help_message._n_noptions:_n___w_______________________________________Erase_userdata_and_cache__and_format_n___________________________________________if_supported_by_partition_type_._n___u_______________________________________Do_not_erase_partition_before_n___________________________________________formatting._n___s__specific_device______________________Specify_a_device._For_USB__provide_either_n___________________________________________a_serial_number_or_path_to_device_port._n
add eax, 0x20
mov dword [esp], eax
call fcn.0044ae30
mov edx, dword [ebp - 0x1ec]
jmp 0x4aa874
mov eax, dword [0x4ca09c]
lea esi, [ebp - 0x178]
mov dword [ebp - 0x1a0], 0x4b50bc
mov dword [ebp - 0x194], 0
test eax, eax
je 0x4abdf6
lea edi, [ebp - 0x188]
mov ecx, esi
mov dword [esp + 4], edi
mov dword [esp], eax
mov dword [ebp - 0x1f0], edi
call fcn.00479f20
push edi
push edi
lea edi, [ebp - 0x1a8]
mov dword [esp + 4], str.tcp:
mov dword [esp], esi
call fcn.00427070
mov dword [esp], edi
mov dword [ebp - 0x1ec], eax
mov eax, dword [ebp - 0x178]
lea ecx, [eax - 0xc]
call fcn.00478810
push eax
mov eax, dword [ebp - 0x1ec]
test al, al
je 0x4abfd0
mov eax, dword [0x4ca09c]
mov dword [ebp - 0x194], 0x15b2
mov dword [ebp - 0x1ec], 0
lea edx, [eax + 4]
test edx, edx
je 0x4abaac
mov dword [esp], edx
mov ecx, esi
mov dword [esp + 4], edi
mov dword [ebp - 0x200], edx
mov dword [ebp - 0x188], 0x4b50bc
call fcn.00479f20
push eax
push eax
mov eax, dword [ebp - 0x1f0]
mov dword [esp + 0xc], 0
mov dword [esp], esi
mov dword [esp + 0x10], eax
lea eax, [ebp - 0x194]
mov dword [esp + 8], eax
lea eax, [ebp - 0x1a0]
mov dword [esp + 4], eax
call fcn.00426910
mov edi, eax
mov eax, dword [ebp - 0x178]
lea ecx, [eax - 0xc]
lea eax, [ebp - 0x1ac]
mov dword [esp], eax
call fcn.00478810
mov edx, dword [ebp - 0x200]
push eax
mov eax, edi
test al, al
mov eax, dword [ebp - 0x188]
jne 0x4abaa0
mov dword [esp + 0xc], eax
mov eax, dword [sym.imp.msvcrt.dll__iob]
mov dword [esp + 8], edx
mov dword [esp + 4], str.error:_Invalid_network_address__s:__s_n
add eax, 0x40
mov dword [esp], eax
call fcn.0044ae30
mov eax, dword [ebp - 0x188]
mov dword [esp], esi
lea ecx, [eax - 0xc]
call fcn.00478810
push eax
mov eax, dword [ebp - 0x1a0]
mov dword [esp], esi
lea ecx, [eax - 0xc]
call fcn.00478810
mov edx, 1
mov dword [ebp - 0x1cc], 0
push eax
jmp 0x4aa874
mov dword [esp], 0x403ec0
lea esi, [ebp - 0x178]
mov dword [ebp - 0x1ec], eax
call fcn.004097a0
mov edx, dword [ebp - 0x1ec]
jmp 0x4aa874
mov eax, dword [ebp - 0x178]
lea ecx, [eax - 0xc]
mov eax, dword [ebp - 0x1f0]
mov dword [esp], eax
call fcn.00478810
push ecx
jmp 0x4ab65d
lea ecx, [eax - 0xc]
mov dword [esp], esi
call fcn.00478810
push eax
mov edi, 1
mov dword [ebp - 0x1f0], ebx
mov ebx, edi
mov edi, dword [ebp - 0x1ec]
jmp 0x4abb89
lea eax, [ebp - 0x188]
test edi, edi
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x194]
mov dword [ebp - 0x188], 0x4b50bc
mov dword [esp], esi
mov dword [esp + 8], eax
lea eax, [ebp - 0x1a0]
mov dword [esp + 4], eax
je 0x4abbaf
call fcn.00408f30
mov eax, dword [ebp - 0x178]
mov dword [0x4ca084], eax
cmp dword [0x4ca084], 0
je 0x4abbc4
mov eax, dword [ebp - 0x188]
mov dword [esp], esi
lea ecx, [eax - 0xc]
call fcn.00478810
push eax
mov eax, dword [0x4ca084]
test eax, eax
jne 0x4abbf3
test bl, bl
je 0x4abb63
mov edx, dword [0x4ca09c]
mov eax, str.any_device
mov dword [esp + 4], str.__waiting_for__s___n
test edx, edx
cmovne eax, edx
mov dword [esp + 8], eax
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x40
mov dword [esp], eax
call fcn.0044ae30
mov dword [esp + 8], 0xf4240
xor ebx, ebx
mov dword [esp + 0xc], 0
mov dword [esp], 0
mov dword [esp + 4], 0
call fcn.0047d890
mov eax, dword [ebp - 0x1a0]
cmp dword [eax - 0xc], 0
jne 0x4abac4
mov dword [esp], 0x402520
call fcn.004097a0
mov dword [0x4ca084], eax
jmp 0x4abb26
call fcn.00408370
mov eax, dword [ebp - 0x178]
mov dword [0x4ca084], eax
jmp 0x4abb07
test bl, bl
je 0x4abb14
mov eax, dword [ebp - 0x188]
mov dword [esp + 4], str.error:__s_n
mov dword [esp + 8], eax
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x40
mov dword [esp], eax
call fcn.0044ae30
jmp 0x4abb14
mov dword [ebp - 0x1ec], eax
mov eax, dword [ebp - 0x1a0]
mov dword [esp], esi
mov ebx, dword [ebp - 0x1f0]
lea ecx, [eax - 0xc]
call fcn.00478810
mov eax, dword [ebp - 0x1ec]
push edx
jmp 0x4aaca8
mov dword [esp + 4], str.rebooting_into_bootloader
mov dword [esp], str.reboot_bootloader
call fcn.00402050
call fcn.004021b0
jmp 0x4ab395
mov dword [esp + 4], str.rebooting_into_emergency_download__EDL__mode
mov dword [esp], str.reboot_emergency
call fcn.00402050
call fcn.004021b0
jmp 0x4ab395
mov byte [ebp - 0x205], 1
jmp 0x4ab88e
mov eax, dword [ebp - 0x1cc]
call fcn.00402de0
test al, al
je 0x4aacbc
mov eax, dword [sym.imp.msvcrt.dll__iob]
mov dword [esp + 4], str.Warning:_Device_A_B_support_is_outdated._Bootloader_update_required._n
add eax, 0x40
mov dword [esp], eax
call fcn.0044ae30
jmp 0x4aacbc
mov dword [esp], str.boot
mov ecx, edi
call fcn.00450c70
test eax, eax
push edx
jne 0x4abe7e
mov edx, dword [ebp - 0x1ec]
lea eax, [ebp - 0x1ac]
mov dword [ebp - 0x1f8], eax
lea esi, [ebp - 0x178]
lea ebx, [ebp - 0x188]
call fcn.00403260
mov edx, dword [ebp - 0x190]
cmp edx, dword [ebp - 0x194]
mov dword [ebp - 0x1a0], 0x4b50bc
je 0x4abd20
mov edx, dword [ebp - 0x1ec]
mov eax, esi
lea ebx, [ebp - 0x188]
call fcn.00403260
lea ecx, [ebp - 0x1a0]
mov dword [esp], esi
call fcn.00478a80
push eax
mov eax, dword [ebp - 0x178]
mov dword [esp], ebx
lea ecx, [eax - 0xc]
call fcn.00478810
mov edx, dword [ebp - 0x190]
push eax
cmp edx, dword [ebp - 0x194]
mov dword [ebp - 0x188], 0x4b50bc
je 0x4abd62
mov edx, dword [ebp - 0x1ec]
mov eax, esi
call fcn.00403260
mov ecx, ebx
mov dword [esp], esi
call fcn.00478a80
push eax
mov eax, dword [ebp - 0x178]
lea ecx, [eax - 0xc]
lea eax, [ebp - 0x1b0]
mov dword [esp], eax
call fcn.00478810
push eax
mov eax, dword [0x4ca098]
mov ecx, ebx
lea edx, [ebp - 0x1a0]
mov dword [esp + 4], eax
lea eax, [ebp - 0x1a8]
mov dword [esp], eax
mov eax, dword [ebp - 0x1f8]
call fcn.00403300
mov edx, dword [ebp - 0x1a8]
mov dword [esp], str.boot.img
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov dword [ebp - 0x1dc], eax
call fcn.00402080
mov dword [esp + 4], str.booting
mov dword [esp], str.boot
call fcn.00402050
mov eax, dword [ebp - 0x188]
mov dword [esp], esi
lea ecx, [eax - 0xc]
call fcn.00478810
push ecx
mov eax, dword [ebp - 0x1a0]
mov dword [esp], esi
lea ecx, [eax - 0xc]
call fcn.00478810
mov eax, dword [ebp - 0x1ac]
push ecx
lea ecx, [eax - 0xc]
mov dword [esp], esi
call fcn.00478810
push ebx
jmp 0x4aadff
mov dword [ebp - 0x1ec], 0
jmp 0x4abaac
mov dword [ebp - 0x1ec], eax
mov eax, dword [sym.imp.msvcrt.dll__iob]
lea esi, [ebp - 0x178]
mov dword [esp + 8], str.0.0.1_4500957
mov dword [esp + 4], str.fastboot_version__s_n
add eax, 0x20
mov dword [esp], eax
call fcn.0044ae30
mov dword [esp], esi
call fcn.00425850
mov eax, dword [ebp - 0x178]
mov dword [esp + 4], str.Installed_as__s_n
mov dword [esp + 8], eax
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x20
mov dword [esp], eax
call fcn.0044ae30
mov eax, dword [ebp - 0x178]
lea ecx, [eax - 0xc]
lea eax, [ebp - 0x188]
mov dword [esp], eax
call fcn.00478810
mov edx, dword [ebp - 0x1ec]
push eax
jmp 0x4aa874
mov dword [esp], str.flash
mov ecx, edi
call fcn.00450c70
test eax, eax
push edx
jne 0x4ac08e
mov ebx, dword [ebp - 0x1ec]
lea eax, [ebp - 0x1ac]
mov dword [ebp - 0x1f8], eax
mov edx, ebx
call fcn.00403260
mov eax, dword [ebp - 0x194]
cmp dword [ebp - 0x190], eax
mov dword [ebp - 0x1a0], 0x4b50bc
je 0x4accad
lea esi, [ebp - 0x178]
mov edx, ebx
mov eax, esi
call fcn.00403260
lea ecx, [ebp - 0x1a0]
mov dword [esp], esi
lea ebx, [ebp - 0x188]
call fcn.00478a80
mov eax, dword [ebp - 0x178]
push ecx
lea ecx, [eax - 0xc]
mov dword [esp], ebx
call fcn.00478810
push eax
mov eax, dword [ebp - 0x1a0]
cmp dword [eax - 0xc], 0
je 0x4ac959
mov dword [esp], 0xc
mov dword [ebp - 0x170], 0
call fcn.004a86b0
lea edx, [ebp - 0x1e1]
mov ecx, ebx
mov dword [eax], edx
lea edx, [ebp - 0x1cc]
mov dword [eax + 4], edx
lea edx, [ebp - 0x1a0]
mov dword [eax + 8], edx
mov dword [ebp - 0x178], eax
lea eax, [ebp - 0x1b4]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x1ac]
mov dword [ebp - 0x16c], 0x404b50
mov dword [ebp - 0x170], 0x402860
mov dword [esp], eax
call fcn.00479f20
lea ecx, [ebp - 0x1d4]
mov edx, ebx
push eax
push eax
mov eax, dword [ebp - 0x1cc]
mov dword [esp + 4], 1
mov dword [esp], esi
call fcn.00404650
mov eax, dword [ebp - 0x188]
lea ecx, [eax - 0xc]
lea eax, [ebp - 0x1b0]
mov dword [esp], eax
call fcn.00478810
push eax
mov eax, dword [ebp - 0x170]
test eax, eax
je 0x4abdcd
mov dword [esp + 8], 3
mov dword [esp + 4], esi
mov dword [esp], esi
call eax
jmp 0x4abdcd
mov eax, dword [ebp - 0x1f0]
mov ecx, esi
mov dword [esp + 4], eax
mov eax, dword [0x4ca09c]
mov dword [esp], eax
call fcn.00479f20
push edx
push edx
mov dword [esp + 4], str.udp:
mov dword [esp], esi
call fcn.00427070
mov dword [esp], edi
mov dword [ebp - 0x1ec], eax
mov eax, dword [ebp - 0x178]
lea ecx, [eax - 0xc]
call fcn.00478810
mov eax, dword [ebp - 0x1ec]
test al, al
push ecx
je 0x4abdf6
mov eax, dword [0x4ca09c]
mov dword [ebp - 0x194], 0x15b2
mov dword [ebp - 0x1ec], 1
lea edx, [eax + 4]
jmp 0x4ab982
mov edx, dword [ebp - 0x1cc]
lea esi, [ebp - 0x178]
mov eax, esi
mov dword [esp], 0
lea ecx, [ebp - 0x1d4]
call fcn.00403c80
lea ecx, [ebp - 0x1d0]
mov dword [esp], esi
call fcn.00478a80
push eax
mov eax, dword [ebp - 0x178]
lea ecx, [eax - 0xc]
lea eax, [ebp - 0x188]
mov dword [esp], eax
call fcn.00478810
push eax
jmp 0x4aacff
mov dword [esp], str.flash:raw
mov ecx, edi
call fcn.00450c70
test eax, eax
push ebx
jne 0x4ac267
mov ebx, dword [ebp - 0x1ec]
lea eax, [ebp - 0x1b0]
mov dword [ebp - 0x1f0], eax
lea esi, [ebp - 0x178]
mov edx, ebx
call fcn.00403260
mov edx, ebx
lea eax, [ebp - 0x1ac]
mov dword [ebp - 0x1f8], eax
lea ebx, [ebp - 0x188]
call fcn.00403260
mov edx, dword [ebp - 0x190]
cmp edx, dword [ebp - 0x194]
mov dword [ebp - 0x1a0], 0x4b50bc
je 0x4ac12f
mov edx, dword [ebp - 0x1ec]
mov eax, esi
lea ebx, [ebp - 0x188]
call fcn.00403260
lea ecx, [ebp - 0x1a0]
mov dword [esp], esi
call fcn.00478a80
mov eax, dword [ebp - 0x178]
lea ecx, [eax - 0xc]
push edx
mov dword [esp], ebx
call fcn.00478810
mov edx, dword [ebp - 0x190]
push ecx
cmp edx, dword [ebp - 0x194]
mov dword [ebp - 0x188], 0x4b50bc
je 0x4ac171
mov edx, dword [ebp - 0x1ec]
mov eax, esi
call fcn.00403260
mov ecx, ebx
mov dword [esp], esi
call fcn.00478a80
push eax
mov eax, dword [ebp - 0x178]
lea ecx, [eax - 0xc]
lea eax, [ebp - 0x1b4]
mov dword [esp], eax
call fcn.00478810
push eax
mov eax, dword [0x4ca098]
mov ecx, ebx
lea edx, [ebp - 0x1a0]
lea ebx, [ebp - 0x1a8]
mov dword [esp + 4], eax
lea eax, [ebp - 0x1a8]
mov dword [esp], eax
mov eax, dword [ebp - 0x1f8]
call fcn.00403300
mov dword [esp], 8
mov dword [ebp - 0x170], 0
mov dword [ebp - 0x1dc], eax
call fcn.004a86b0
lea edx, [ebp - 0x1dc]
lea ecx, [ebp - 0x1d4]
mov dword [eax], edx
mov edx, dword [ebp - 0x1f0]
mov dword [eax + 4], ebx
mov dword [ebp - 0x178], eax
mov eax, dword [ebp - 0x1cc]
mov dword [esp + 4], 1
mov dword [esp], esi
mov dword [ebp - 0x16c], 0x402730
mov dword [ebp - 0x170], 0x402ab0
call fcn.00404650
mov eax, dword [ebp - 0x170]
test eax, eax
je 0x4ac21a
mov dword [esp + 8], 3
mov dword [esp + 4], esi
mov dword [esp], esi
call eax
mov eax, dword [ebp - 0x188]
mov dword [esp], esi
lea ecx, [eax - 0xc]
call fcn.00478810
push eax
mov eax, dword [ebp - 0x1a0]
mov dword [esp], esi
lea ecx, [eax - 0xc]
call fcn.00478810
push eax
mov eax, dword [ebp - 0x1ac]
mov dword [esp], esi
lea ecx, [eax - 0xc]
call fcn.00478810
push eax
mov eax, dword [ebp - 0x1b0]
mov dword [esp], esi
lea ecx, [eax - 0xc]
call fcn.00478810
push eax
jmp 0x4aadff
mov dword [esp], str.flashall
mov ecx, edi
call fcn.00450c70
test eax, eax
push esi
jne 0x4ac387
mov dword [esp], 0x4b6653
lea ecx, [ebp - 0x1d4]
call fcn.00450c70
test eax, eax
push ebx
jne 0x4acdc6
mov eax, dword [sym.imp.msvcrt.dll__iob]
mov dword [esp + 4], str.Warning:_slot_set_to_all._Secondary_slots_will_not_be_flashed._n
add eax, 0x40
mov dword [esp], eax
call fcn.0044ae30
movzx ecx, byte [ebp - 0x1e1]
lea edx, [ebp - 0x1d4]
mov eax, dword [ebp - 0x1cc]
mov dword [esp], 1
call fcn.004aa427
mov byte [ebp - 0x204], 1
jmp 0x4aadff
or edx, 0xffffffff
lock xadd dword [eax - 4], edx
test edx, edx
jg 0x4aae14
lea esi, [ebp - 0x178]
mov dword [esp], esi
call fcn.004787f0
push edx
jmp 0x4aae14
mov eax, dword [0x4cbfa0]
mov dword [esp], str.invalid_vendor_id__s
mov dword [esp + 4], eax
call fcn.00408fc0
mov eax, dword [sym.imp.msvcrt.dll__iob]
lea esi, [ebp - 0x178]
mov dword [esp + 8], edi
mov dword [esp + 4], str.Internal_error_in_options_processing_for__s_n
add eax, 0x40
mov dword [esp], eax
call fcn.0044ae30
mov edx, 1
jmp 0x4aa874
mov edx, dword [ebp - 0x1cc]
mov eax, esi
mov ecx, dword [ebp - 0x1f0]
mov dword [esp], 0
call fcn.00403c80
lea ecx, [ebp - 0x1d0]
mov dword [esp], esi
call fcn.00478a80
push eax
mov eax, dword [ebp - 0x178]
lea ecx, [eax - 0xc]
mov eax, dword [ebp - 0x1ec]
mov dword [esp], eax
call fcn.00478810
push eax
jmp 0x4ab727
mov ecx, edi
mov dword [esp], str.update
call fcn.00450c70
test eax, eax
push ecx
jne 0x4ac96f
mov dword [esp], 0x4b6653
lea ecx, [ebp - 0x1d4]
call fcn.00450c70
test eax, eax
push edx
sete byte [ebp - 0x1f0]
jne 0x4ac3d4
mov eax, dword [sym.imp.msvcrt.dll__iob]
mov dword [esp + 4], str.Warning:_slot_set_to_all._Secondary_slots_will_not_be_flashed._n
add eax, 0x40
mov dword [esp], eax
call fcn.0044ae30
lea esi, [ebp - 0x178]
mov dword [esp + 4], esi
lea ecx, [ebp - 0x1c4]
mov dword [esp], str.update.zip
call fcn.00479f20
push eax
push eax
mov eax, dword [ebp - 0x194]
cmp dword [ebp - 0x190], eax
je 0x4ac434
mov edx, dword [ebp - 0x1ec]
mov eax, esi
call fcn.00403260
lea ecx, [ebp - 0x1c4]
mov dword [esp], esi
call fcn.00478a80
mov eax, dword [ebp - 0x178]
lea ecx, [eax - 0xc]
push ebx
lea ebx, [ebp - 0x188]
mov dword [esp], ebx
call fcn.00478810
push eax
movzx eax, byte [ebp - 0x1f0]
or al, byte [ebp - 0x1fb]
mov ebx, dword [ebp - 0x1c4]
mov byte [ebp - 0x1f0], al
mov eax, dword [ebp - 0x1cc]
mov dword [ebp - 0x1c0], eax
movzx eax, byte [ebp - 0x1e1]
mov byte [ebp - 0x1e0], al
call fcn.004a9eca
mov dword [esp + 8], 0x41
mov dword [esp + 4], 0x4ca040
mov dword [esp], str.product
call fcn.00401fe0
lea eax, [ebp - 0x1bc]
mov dword [esp + 4], eax
mov dword [esp], ebx
call fcn.0040b910
test eax, eax
jne 0x4ac927
mov eax, dword [ebp - 0x1bc]
lea ecx, [ebp - 0x1a0]
mov edx, str.android_info.txt
call fcn.00403140
test eax, eax
je 0x4ac917
mov edx, dword [ebp - 0x1a0]
mov ecx, dword [ebp - 0x19c]
call fcn.004a9f7c
cmp byte [ebp - 0x1f0], 0
mov dword [ebp - 0x1b8], 0x4b50bc
je 0x4ac7a2
mov byte [ebp - 0x1f8], 1
mov dword [ebp - 0x1b4], 0
xor eax, eax
jmp 0x4ac720
lea ecx, [ebp - 0x188]
mov dword [esp], ebx
call fcn.00409de0
push eax
lea eax, [ebp - 0x188]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x204]
mov dword [esp + 8], esi
mov dword [esp], eax
call fcn.0040a660
test eax, eax
jne 0x4acbf0
mov eax, dword [ebp - 0x164]
mov dword [esp + 8], ebx
mov dword [esp + 4], str.extracting__s___u_MB__to_disk...
shr eax, 0x14
mov dword [esp + 0xc], eax
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x40
mov dword [esp], eax
call fcn.0044ae30
call fcn.00408f90
mov eax, dword [ebp - 0x1f0]
mov dword [esp + 4], esi
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x204]
fstp qword [ebp - 0x218]
mov dword [esp], eax
call fcn.0040ac00
test eax, eax
jne 0x4acbd4
mov eax, dword [ebp - 0x1f0]
mov dword [esp + 0xc], 0
mov dword [esp + 4], 0
mov dword [esp + 8], 0
mov dword [esp], eax
call fcn.0043ed20
or edx, eax
jne 0x4acbb0
call fcn.00408f90
mov eax, dword [sym.imp.msvcrt.dll__iob]
mov dword [esp + 4], str._took__.3fs_n
add eax, 0x40
mov dword [esp], eax
fsub qword [ebp - 0x218]
fstp qword [esp + 8]
call fcn.0044ae30
mov edx, dword [ebp - 0x1f0]
mov ecx, esi
mov eax, dword [ebp - 0x1c0]
call fcn.004037c0
test al, al
je 0x4aca34
mov dword [esp], 0x14
lea ebx, [ebp - 0x1bc]
mov dword [ebp - 0x180], 0
call fcn.004a86b0
lea edx, [ebp - 0x1e0]
lea ecx, [ebp - 0x1ac]
mov dword [eax], ebx
lea ebx, [ebp - 0x1b4]
mov dword [eax + 8], edx
lea edx, [ebp - 0x1c0]
mov dword [eax + 0xc], edx
mov dword [eax + 4], ebx
lea ebx, [ebp - 0x1b0]
mov dword [eax + 0x10], esi
mov dword [ebp - 0x188], eax
lea eax, [ebp - 0x1dd]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x200]
mov dword [ebp - 0x17c], 0x404dd0
mov dword [ebp - 0x180], 0x402990
mov dword [esp], eax
call fcn.00479f20
lea eax, [ebp - 0x1de]
push ecx
push ecx
mov ecx, ebx
mov dword [esp + 4], eax
imul eax, dword [ebp - 0x1b4], 0x14
mov eax, dword [eax + 0x4b92cc]
mov dword [esp], eax
call fcn.00479f20
mov edx, ebx
lea ecx, [ebp - 0x1ac]
push eax
push eax
lea eax, [ebp - 0x188]
mov dword [esp], eax
mov eax, dword [ebp - 0x1c0]
mov dword [esp + 4], 0
call fcn.00404650
mov eax, dword [ebp - 0x1b0]
lea ecx, [eax - 0xc]
lea eax, [ebp - 0x1df]
mov dword [esp], eax
call fcn.00478810
push eax
mov eax, dword [ebp - 0x1ac]
mov dword [esp], ebx
lea ecx, [eax - 0xc]
call fcn.00478810
push eax
mov eax, dword [ebp - 0x180]
test eax, eax
je 0x4ac708
lea ebx, [ebp - 0x188]
mov dword [esp + 8], 3
mov dword [esp + 4], ebx
mov dword [esp], ebx
call eax
mov eax, dword [ebp - 0x1b4]
add eax, 1
cmp eax, 9
mov dword [ebp - 0x1b4], eax
ja 0x4ac85b
imul edx, eax, 0x14
mov ebx, dword [ebp - 0x1d4]
cmp byte [edx + 0x4b92d1], 0
mov dword [ebp - 0x200], ebx
je 0x4ac74d
cmp byte [ebp - 0x1f8], 0
jne 0x4ac708
mov ebx, dword [ebp - 0x1b8]
mov dword [ebp - 0x200], ebx
imul eax, eax, 0x14
mov ebx, dword [eax + 0x4b92c4]
mov eax, dword [ebp - 0x1bc]
mov dword [ebp - 0x204], eax
call fcn.00402690
mov dword [esp], eax
call sub.msvcrt.dll__fileno_1
mov dword [ebp - 0x1f0], eax
add eax, 1
jne 0x4ac4ff
call dword [sym.imp.msvcrt.dll__errno]
mov eax, dword [eax]
mov dword [esp], eax
call sub.msvcrt.dll_strerror
mov dword [esp + 4], ebx
mov dword [esp], str.failed_to_create_temporary_file_for__s:__s
mov dword [esp + 8], eax
call fcn.00408fc0
lea ecx, [ebp - 0x1d4]
mov dword [esp], 0x4b62a8
call fcn.00450c70
test eax, eax
push ecx
je 0x4ac8c1
mov eax, dword [ebp - 0x1c0]
call fcn.00402fe0
lea edx, [ebp - 0x1d4]
mov ecx, eax
mov eax, esi
call fcn.00402760
lea eax, [ebp - 0x1b8]
mov ecx, eax
mov dword [esp], esi
lea ebx, [ebp - 0x188]
mov dword [ebp - 0x1f0], eax
call fcn.00478a80
push eax
mov eax, dword [ebp - 0x178]
mov dword [esp], ebx
lea ecx, [eax - 0xc]
call fcn.00478810
push eax
mov eax, dword [ebp - 0x1f0]
mov dword [esp], 0x4b62a8
mov ecx, eax
call fcn.00450c70
mov byte [ebp - 0x1f8], 0
test eax, eax
push edx
jne 0x4ac4ee
mov eax, dword [ebp - 0x1c0]
call fcn.00402fe0
sub eax, 1
jle 0x4ac4e7
mov eax, dword [sym.imp.msvcrt.dll__iob]
mov dword [esp + 4], str.Warning:_Could_not_determine_slot_for_secondary_images._Ignoring._n
add eax, 0x40
mov dword [esp], eax
call fcn.0044ae30
jmp 0x4ac4e7
mov dword [esp], 0x4b6653
lea ecx, [ebp - 0x1d4]
call fcn.00450c70
test eax, eax
push edx
je 0x4ac8d3
mov eax, dword [ebp - 0x1c0]
lea edx, [ebp - 0x1d4]
call fcn.004aa1f9
mov eax, dword [ebp - 0x1bc]
mov dword [esp], eax
call fcn.004098b0
mov eax, dword [ebp - 0x1b8]
mov dword [esp], esi
lea ecx, [eax - 0xc]
call fcn.00478810
mov eax, dword [ebp - 0x1c4]
lea ecx, [eax - 0xc]
push ebx
mov dword [esp], esi
call fcn.00478810
mov byte [ebp - 0x204], 1
push esi
jmp 0x4aadff
mov edx, dword [ebp - 0x1c0]
mov eax, esi
call fcn.004aa1b1
jmp 0x4ac7d7
lea ebx, [ebp - 0x188]
mov ecx, esi
mov dword [esp + 4], ebx
mov dword [esp], 0x4b639a
call fcn.00479f20
mov edx, esi
push eax
push eax
mov eax, dword [ebp - 0x1c0]
call fcn.004aa1f9
mov eax, dword [ebp - 0x178]
lea ecx, [eax - 0xc]
lea eax, [ebp - 0x1ac]
mov dword [esp], eax
call fcn.00478810
push eax
jmp 0x4ac883
mov dword [esp + 4], ebx
mov dword [esp], str.update_package__s_has_no_android_info.txt
call fcn.00408fc0
mov dword [esp], eax
call fcn.00409da0
mov dword [esp + 4], ebx
mov dword [esp], str.failed_to_open_zip_file__s:__s
mov dword [esp + 8], eax
call fcn.00408fc0
mov eax, dword [ebp - 0x178]
mov dword [esp], str.unknown_reboot_target__s
mov dword [esp + 4], eax
call fcn.004aa30f
mov eax, dword [ebp - 0x1ac]
mov dword [esp], str.cannot_determine_image_filename_for__s
mov dword [esp + 4], eax
call fcn.00408fc0
mov ecx, edi
mov dword [esp], 0x4b8c39
call fcn.00450c70
test eax, eax
push ecx
jne 0x4acb19
mov edx, dword [ebp - 0x1ec]
lea esi, [ebp - 0x178]
mov eax, esi
lea ebx, [ebp - 0x188]
call fcn.00403260
mov edx, dword [ebp - 0x1cc]
mov ecx, esi
mov dword [esp], 0
lea eax, [ebp - 0x1ac]
call fcn.00403c80
mov eax, dword [ebp - 0x178]
mov dword [esp], ebx
lea ecx, [eax - 0xc]
call fcn.00478810
mov ecx, ebx
mov dword [ebp - 0x1a0], 0x4b50bc
push eax
lea eax, [ebp - 0x1b8]
mov dword [esp + 4], eax
mov dword [esp], str.slot_count
call fcn.00479f20
lea eax, [ebp - 0x1a0]
push edx
push edx
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x1cc]
mov dword [esp + 4], ebx
mov dword [esp], eax
call fcn.00401bf0
test al, al
je 0x4aca65
mov eax, dword [ebp - 0x188]
mov dword [esp], esi
lea ecx, [eax - 0xc]
call fcn.00478810
push eax
mov eax, dword [ebp - 0x1ac]
mov dword [esp], eax
call fcn.00401cf0
jmp 0x4abdcd
call dword [sym.imp.msvcrt.dll__errno]
mov eax, dword [eax]
mov dword [esp], eax
call sub.msvcrt.dll_strerror
mov dword [esp], str.cannot_load__s_from_flash:__s
mov dword [esp + 8], eax
imul eax, dword [ebp - 0x1b4], 0x14
mov eax, dword [eax + 0x4b92c4]
mov dword [esp + 4], eax
call fcn.00408fc0
lea eax, [ebp - 0x1b4]
mov ecx, esi
mov dword [esp + 4], eax
mov dword [esp], str.slot_suffixes
call fcn.00479f20
push eax
push eax
lea eax, [ebp - 0x1a0]
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x1cc]
mov dword [esp + 4], esi
mov dword [esp], eax
call fcn.00401bf0
mov dword [ebp - 0x1f0], eax
mov eax, dword [ebp - 0x178]
lea ecx, [eax - 0xc]
lea eax, [ebp - 0x1b0]
mov dword [esp], eax
call fcn.00478810
push eax
mov eax, dword [ebp - 0x188]
mov dword [esp], esi
lea ecx, [eax - 0xc]
call fcn.00478810
push eax
mov eax, dword [ebp - 0x1f0]
test al, al
je 0x4aca21
lea eax, [ebp - 0x1ac]
mov dword [esp + 8], eax
mov dword [esp + 4], 0x4b63d1
mov dword [esp], esi
call fcn.004a67e0
lea ecx, [ebp - 0x1ac]
mov dword [esp], esi
call fcn.00478a80
push eax
mov eax, dword [ebp - 0x178]
mov dword [esp], ebx
lea ecx, [eax - 0xc]
call fcn.00478810
push eax
jmp 0x4aca21
mov dword [esp], str.stage
mov ecx, edi
call fcn.00450c70
test eax, eax
push edx
jne 0x4acc5c
mov edx, dword [ebp - 0x1ec]
lea ebx, [ebp - 0x188]
mov eax, ebx
lea esi, [ebp - 0x178]
call fcn.00403260
mov edx, dword [ebp - 0x188]
mov ecx, esi
mov eax, dword [ebp - 0x1cc]
call fcn.00403bd0
test al, al
je 0x4acc46
cmp dword [ebp - 0x178], 0
jne 0x4acc46
mov eax, dword [ebp - 0x170]
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x168]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x188]
mov dword [esp], eax
call fcn.004020d0
mov eax, dword [ebp - 0x188]
lea ecx, [eax - 0xc]
lea eax, [ebp - 0x1a0]
mov dword [esp], eax
call fcn.00478810
push ecx
jmp 0x4aadff
call dword [sym.imp.msvcrt.dll__errno]
mov eax, dword [eax]
mov dword [esp], eax
call sub.msvcrt.dll_strerror
mov dword [esp + 4], ebx
mov dword [esp], str._nlseek_on_extracted_file__s_failed:__s
mov dword [esp + 8], eax
call fcn.00408fc0
mov dword [esp], eax
call fcn.00409da0
mov dword [esp + 4], ebx
mov dword [esp], str._nfailed_to_extract__s:__s
mov dword [esp + 8], eax
call fcn.00408fc0
mov eax, dword [sym.imp.msvcrt.dll__iob]
mov dword [esp + 8], ebx
mov dword [esp + 4], str.archive_does_not_contain__s_n
add eax, 0x40
mov dword [esp], eax
call fcn.0044ae30
mov eax, dword [ebp - 0x1f0]
mov dword [esp], eax
call sub.msvcrt.dll__close
mov eax, dword [ebp - 0x1b4]
imul edx, eax, 0x14
cmp byte [edx + 0x4b92d0], 0
jne 0x4ac70e
mov eax, dword [edx + 0x4b92c4]
mov dword [esp], str.non_optional_file__s_missing
mov dword [esp + 4], eax
call fcn.00408fc0
mov eax, dword [ebp - 0x188]
mov dword [esp], str.cannot_load__s
mov dword [esp + 4], eax
call fcn.00408fc0
mov dword [esp], str.get_staged
mov ecx, edi
call fcn.00450c70
test eax, eax
push esi
jne 0x4acdf3
mov edx, dword [ebp - 0x1ec]
lea esi, [ebp - 0x178]
mov eax, esi
call fcn.00403260
mov eax, dword [ebp - 0x178]
mov dword [esp], eax
call fcn.00402120
jmp 0x4aade5
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov dword [esp], str.signature_must_be_256_bytes__got__lld_
call fcn.00408fc0
xor ebx, ebx
jmp 0x4accb9
add ebx, 1
cmp ebx, 0xa
je 0x4acd1f
imul esi, ebx, 0x14
mov eax, dword [esi + 0x4b92c0]
test eax, eax
je 0x4accb1
mov ecx, dword [ebp - 0x1f8]
mov dword [esp], eax
call fcn.00450c70
test eax, eax
push edx
jne 0x4accb1
mov edx, esi
mov edx, dword [edx + 0x4b92c4]
lea esi, [ebp - 0x178]
mov eax, esi
lea ebx, [ebp - 0x188]
call fcn.004a9e80
lea ecx, [ebp - 0x1a0]
mov dword [esp], esi
call fcn.00478a80
push eax
mov eax, dword [ebp - 0x178]
mov dword [esp], ebx
lea ecx, [eax - 0xc]
call fcn.00478810
push eax
jmp 0x4abf00
call fcn.004a2d90
mov ecx, dword [ebp - 0x1f8]
mov dword [esp], str.userdata
call fcn.00450c70
test eax, eax
push ecx
je 0x4ace55
mov ecx, dword [ebp - 0x1f8]
mov dword [esp], str.cache
call fcn.00450c70
test eax, eax
push edx
je 0x4ace38
mov eax, dword [ebp - 0x1ac]
lea esi, [ebp - 0x178]
mov dword [esp + 4], str.unknown_partition__s_n
lea ebx, [ebp - 0x188]
mov dword [esp + 8], eax
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x40
mov dword [esp], eax
call fcn.0044ae30
mov ecx, esi
mov dword [esp + 4], ebx
mov dword [esp], 0x4b62a8
call fcn.00479f20
push eax
push eax
jmp 0x4accf4
call dword [sym.imp.msvcrt.dll__errno]
mov eax, dword [eax]
mov dword [esp], eax
call sub.msvcrt.dll_strerror
mov dword [esp], str.could_not_load__s:__s
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x188]
mov dword [esp + 4], eax
call fcn.00408fc0
mov eax, dword [ebp - 0x20c]
lea edx, [ebp - 0x1d4]
movzx ecx, byte [ebp - 0x1e1]
mov dword [esp], eax
mov eax, dword [ebp - 0x1cc]
call fcn.004aa427
mov byte [ebp - 0x204], 1
jmp 0x4aadff
mov dword [esp], 0x4b8c55
mov ecx, edi
call fcn.00450c70
test eax, eax
push ebx
jne 0x4ace72
lea eax, [ebp - 0x1a0]
lea esi, [ebp - 0x178]
mov dword [esp + 4], eax
mov dword [esp], 0x4b8c55
mov ecx, esi
call fcn.00479f20
mov edx, dword [ebp - 0x1ec]
mov eax, esi
push ecx
push ecx
call fcn.004aa36e
jmp 0x4aade5
lea esi, [ebp - 0x178]
mov edx, str.cache.img
mov eax, esi
call fcn.004a9e80
lea ebx, [ebp - 0x188]
jmp 0x4accf4
lea esi, [ebp - 0x178]
mov edx, str.userdata.img
mov eax, esi
call fcn.004a9e80
lea ebx, [ebp - 0x188]
jmp 0x4accf4
mov dword [esp], str.flashing
mov ecx, edi
call fcn.00450c70
test eax, eax
push edx
jne 0x4acecb
mov edx, dword [ebp - 0x190]
mov ecx, dword [ebp - 0x194]
cmp edx, ecx
je 0x4acfda
mov eax, edx
sub eax, ecx
sar eax, 2
sub eax, 1
je 0x4acfad
sub edx, ecx
sar edx, 2
cmp edx, 2
je 0x4acee1
mov eax, dword [ebp - 0x194]
mov eax, dword [eax]
mov dword [esp], str.unknown_flashing_command__s
mov dword [esp + 4], eax
call fcn.004aa30f
mov eax, dword [ebp - 0x1c8]
mov dword [esp], str.unknown_command__s
mov dword [esp + 4], eax
call fcn.004aa30f
mov dword [esp], str.unlock_bootloader
call fcn.00450c70
test eax, eax
push edx
jne 0x4aceb3
mov eax, dword [ebp - 0x194]
cmp dword [ebp - 0x190], eax
je 0x4ad0b7
mov edx, dword [ebp - 0x1ec]
lea eax, [ebp - 0x1a0]
lea ebx, [ebp - 0x188]
call fcn.00403260
lea eax, [ebp - 0x1ac]
mov ecx, ebx
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x1a0]
mov dword [esp], eax
call fcn.00479f20
mov eax, ebx
push esi
push esi
lea esi, [ebp - 0x178]
mov edx, esi
call fcn.004025a0
mov esi, eax
mov eax, dword [ebp - 0x188]
lea ecx, [eax - 0xc]
lea eax, [ebp - 0x1b0]
mov dword [esp], eax
call fcn.00478810
test esi, esi
push eax
je 0x4ad08d
mov eax, dword [ebp - 0x178]
mov dword [esp + 4], esi
mov dword [esp], str.unlock_message
mov dword [esp + 8], eax
call fcn.00402080
mov dword [esp + 4], str.unlocking_bootloader
mov dword [esp], str.flashing_unlock_bootloader
call fcn.00402050
mov eax, dword [ebp - 0x1a0]
mov dword [esp], ebx
lea ecx, [eax - 0xc]
call fcn.00478810
push ecx
jmp 0x4aadff
mov dword [esp], str.unlock
call fcn.00450c70
test eax, eax
push esi
jne 0x4acfe6
lea eax, [ebp - 0x1a0]
lea esi, [ebp - 0x178]
mov dword [esp + 4], eax
mov dword [esp], str.flashing
jmp 0x4ace1d
mov dword [esp], str.missing_flashing_command
call fcn.004aa30f
mov ecx, dword [ebp - 0x194]
mov dword [esp], str.lock
call fcn.00450c70
test eax, eax
push ebx
je 0x4acfbe
mov ecx, dword [ebp - 0x194]
mov dword [esp], str.unlock_critical
call fcn.00450c70
test eax, eax
push ecx
je 0x4acfbe
mov ecx, dword [ebp - 0x194]
mov dword [esp], str.lock_critical
call fcn.00450c70
test eax, eax
push edx
je 0x4acfbe
mov ecx, dword [ebp - 0x194]
mov dword [esp], str.get_unlock_ability
call fcn.00450c70
test eax, eax
push esi
je 0x4acfbe
mov ecx, dword [ebp - 0x194]
mov dword [esp], str.get_unlock_bootloader_nonce
call fcn.00450c70
test eax, eax
push ebx
je 0x4acfbe
mov ecx, dword [ebp - 0x194]
mov dword [esp], str.lock_bootloader
call fcn.00450c70
test eax, eax
push ecx
je 0x4acfbe
mov ecx, dword [ebp - 0x194]
mov edx, dword [ebp - 0x190]
jmp 0x4acea9
call dword [sym.imp.msvcrt.dll__errno]
mov eax, dword [eax]
mov dword [esp], eax
call sub.msvcrt.dll_strerror
mov dword [esp], str.could_not_load__s:__s
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x1a0]
mov dword [esp + 4], eax
call fcn.00408fc0
mov dword [esp], str.missing_unlock_bootloader_request
call fcn.004aa30f
lea esi, [esi]
lea edi, [edi]
push ebp
mov ecx, 0x4ca088
mov ebp, esp
sub esp, 0x28
lea eax, [ebp - 9]
mov dword [esp + 4], eax
mov dword [esp], str.convert_fbe
call fcn.00479f20
sub esp, 8
mov dword [esp], 0x402b40
call fcn.00436a40
leave
ret