Function at 0x439100
Capabilities:
Query environment variable

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
mov esi, 0x43b020
push ebx
and esp, 0xfffffff0
sub esp, 0xe0
lea ebx, [esp + 0x50]
call fcn.00429f60
mov edi, ebx
mov ecx, 0x24
rep movsd dword es:[edi], dword [esi]
lea esi, [esp + 0x48]
mov dword [esp], str.ANDROID_SERIAL
call sub.msvcrt.dll_getenv
mov dword [esp + 0x30], 1
mov dword [esp + 0x2c], 0
mov dword [0x44c078], eax
nop
lea esi, [esi]
mov eax, dword [ebp + 0xc]
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], ebx
mov dword [esp + 8], str.wub:k:n:r:t:s:S:lp:c:i:m:h
mov dword [esp + 4], eax
mov eax, dword [ebp + 8]
mov dword [esp], eax
call fcn.0042c050
test eax, eax
js 0x439445
cmp eax, 0x77
ja case.0x439183.1
jmp dword [eax*4 + 0x441608]
mov eax, dword [sym.imp.msvcrt.dll__iob]
mov edi, 1
mov dword [esp + 4], str.usage:_fastboot____option_____command__n_ncommands:_n__update__filename_________________________reflash_device_from_update.zip_n__flashall_________________________________flash_boot__system__vendor_and_if_found__n___________________________________________recovery_n__flash__partition_____filename____________write_a_file_to_a_flash_partition_n__flashing_lock____________________________locks_the_device._Prevents_flashing___________________________________________partitions_n__flashing_unlock__________________________unlocks_the_device._Allows_user_to___________________________________________flash_any_partition_except_the_ones___________________________________________that_are_related_to_bootloader_n__flashing_lock_critical___________________Prevents_flashing_bootloader_related___________________________________________partitions_n__flashing_unlock_critical_________________Enables_flashing_bootloader_related___________________________________________partitions_n__flashing_get_unlock_ability______________Queries_bootloader_to_see_if_the___________________________________________device_is_unlocked_n__erase__partition_________________________erase_a_flash_partition_n__format_:__fs_type___:__size_____partition__format_a_flash_partition._n___________________________________________Can_override_the_fs_type_and_or_n___________________________________________size_the_bootloader_reports._n__getvar__variable_________________________display_a_bootloader_variable_n__boot__kernel_____ramdisk_________________download_and_boot_kernel_n__flash:raw_boot__kernel_____ramdisk_______create_bootimage_and_flash_it_n__devices__________________________________list_all_connected_devices_n__continue_________________________________continue_with_autoboot_n__reboot__bootloader_______________________reboot_device__optionally_into_bootloader_n__reboot_bootloader________________________reboot_device_into_bootloader_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_first_erase_partition_before_n___________________________________________formatting_n___s__specific_device______________________specify_device_serial_number_n___________________________________________or_path_to_device_port_n___l_______________________________________with__devices___lists_device_paths_n___p__product______________________________specify_product_name_n___c__cmdline______________________________override_kernel_commandline_n___i__vendor_id____________________________specify_a_custom_USB_vendor_id_n___b__base_addr____________________________specify_a_custom_kernel_base_address._n___________________________________________default:_0x10000000_n___n__page_size____________________________specify_the_nand_page_size._n___________________________________________default:_2048_n___S__size__KMG__________________________automatically_sparse_files_greater_n___________________________________________than_size.__0_to_disable_n
add eax, 0x40
mov dword [esp], eax
call fcn.00431b40
lea esp, [ebp - 0xc]
mov eax, edi
pop ebx
pop esi
pop edi
pop ebp
ret
mov edi, 1
jmp 0x4391a7
mov dword [esp + 0x2c], 1
jmp 0x439150
mov dword [esp + 0x30], 0
jmp 0x439150
mov eax, dword [0x44d420]
mov dword [0x44c070], eax
jmp 0x439150
mov eax, dword [esp + 0x48]
shl eax, 4
mov edi, dword [esp + eax + 0x50]
mov dword [esp], str.unbuffered
mov dword [esp + 4], edi
call sub.msvcrt.dll_strcmp
test eax, eax
je 0x43955c
mov dword [esp + 4], edi
mov dword [esp], str.version
call sub.msvcrt.dll_strcmp
test eax, eax
jne 0x439150
mov edi, eax
mov eax, dword [sym.imp.msvcrt.dll__iob]
mov dword [esp + 8], str.eac51f2bb6a8_android
mov dword [esp + 4], str.fastboot_version__s_n
add eax, 0x20
mov dword [esp], eax
call fcn.00431b40
jmp 0x4391a7
mov eax, dword [0x44d420]
mov dword [esp + 8], 0x10
mov dword [esp + 4], 0
mov dword [esp], eax
call sub.msvcrt.dll_strtoul
mov dword [0x43b160], eax
jmp 0x439150
mov edi, dword [0x44d420]
lea eax, [esp + 0x4c]
mov dword [esp + 8], 0
mov dword [esp + 4], eax
mov dword [esp], edi
call fcn.0042c4d0
mov ecx, dword [esp + 0x4c]
cmp edi, ecx
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], edx
je 0x4392b0
movzx edi, byte [ecx]
and edi, 0xffffffdf
mov eax, edi
cmp al, 0x4b
jne 0x4393fd
cmp dword [esp + 0x3c], 0x3fffff
jbe 0x4395b1
mov dword [esp], str.invalid_sparse_limit
mov dword [0x43b170], 0xffffffff
mov dword [0x43b174], 0xffffffff
call fcn.00404120
mov eax, dword [0x44d420]
mov dword [esp + 8], 0x10
mov dword [esp + 4], 0
mov dword [esp], eax
call sub.msvcrt.dll_strtoul
mov dword [0x43b150], eax
jmp 0x439150
mov eax, dword [0x44d420]
mov dword [0x44c078], eax
jmp 0x439150
mov eax, dword [0x44d420]
mov dword [esp + 8], 0x10
mov dword [esp + 4], 0
mov dword [esp], eax
call sub.msvcrt.dll_strtoul
mov dword [0x43b158], eax
jmp 0x439150
mov eax, dword [0x44d420]
mov dword [0x44c074], eax
jmp 0x439150
mov eax, dword [0x44d420]
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], eax
call sub.msvcrt.dll_strtoul
test eax, eax
mov dword [0x43b164], eax
jne 0x439150
mov dword [esp], str.invalid_page_size
call fcn.00404120
mov dword [0x44c068], 1
jmp 0x439150
mov eax, dword [0x44d420]
mov dword [esp + 8], 0x10
mov dword [esp + 4], 0
mov dword [esp], eax
call sub.msvcrt.dll_strtoul
mov dword [0x43b15c], eax
jmp 0x439150
lea eax, [esp + 0x4c]
mov dword [esp + 4], eax
mov eax, dword [0x44d420]
mov dword [esp + 8], 0
mov dword [esp + 0x4c], 0
mov dword [esp], eax
call sub.msvcrt.dll_strtoul
mov edx, dword [esp + 0x4c]
test edx, edx
je 0x439db4
cmp byte [edx], 0
jne 0x439db4
test eax, 0xffff0000
jne 0x439db4
mov word [0x44c06c], ax
jmp 0x439150
call sub.msvcrt.dll_abort
mov eax, edi
cmp al, 0x4d
jne 0x4395fe
cmp dword [esp + 0x3c], 0xfff
ja 0x4392b0
jb 0x439422
cmp dword [esp + 0x38], 0xfffffffe
ja 0x4392b0
mov eax, dword [esp + 0x38]
add ecx, 1
mov edx, dword [esp + 0x3c]
mov dword [esp + 0x4c], ecx
shld edx, eax, 0x14
shl eax, 0x14
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], edx
jmp 0x4395d5
mov eax, dword [0x43b278]
mov edx, dword [ebp + 8]
mov ecx, dword [esp + 0x2c]
sub edx, eax
or ecx, edx
mov dword [esp + 0x38], edx
je case.0x439183.104
cmp dword [esp + 0x38], 0
jle 0x4399f8
mov edx, dword [ebp + 0xc]
lea ebx, [edx + eax*4]
mov esi, dword [ebx]
mov dword [esp + 4], str.devices
mov dword [esp], esi
call sub.msvcrt.dll_strcmp
test eax, eax
mov edi, eax
je 0x43966a
mov dword [esp + 4], str.help
mov dword [esp], esi
call sub.msvcrt.dll_strcmp
test eax, eax
mov edi, eax
je 0x43964d
call fcn.00402220
mov dword [esp + 0x20], 0
mov dword [esp + 0x24], 0
mov dword [esp + 0x28], eax
jmp 0x4394ef
cmp dword [esp + 0x38], 1
je 0x439d90
mov eax, dword [ebx + 4]
add ebx, 8
mov dword [esp + 4], eax
mov dword [esp], eax
call fcn.00403d50
sub dword [esp + 0x38], 2
mov eax, dword [esp + 0x38]
test eax, eax
jle 0x4398d3
mov esi, dword [ebx]
mov edi, str.getvar
mov ecx, 7
mov dword [esp + 0x34], esi
repe cmpsb byte [esi], byte es:[edi]
je 0x4394c1
mov esi, dword [esp + 0x34]
mov edi, str.erase
mov ecx, 6
repe cmpsb byte [esi], byte es:[edi]
jne 0x439680
cmp dword [esp + 0x38], 1
je 0x439d90
mov dword [esp + 8], 0
mov eax, dword [ebx + 4]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x28]
mov dword [esp], eax
call fcn.00403ac0
test eax, eax
jne 0x4397ba
mov eax, dword [ebx + 4]
add ebx, 8
mov dword [esp], eax
call fcn.00403b90
sub dword [esp + 0x38], 2
jmp 0x4394e3
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 0x439150
jae 0x43963d
mov eax, dword [esp + 0x38]
add ecx, 1
mov edx, dword [esp + 0x3c]
mov dword [esp + 0x4c], ecx
shld edx, eax, 0xa
shl eax, 0xa
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], edx
cmp byte [ecx], 0
jne 0x4392b0
mov ecx, dword [esp + 0x3c]
test ecx, ecx
js 0x4392b0
mov eax, dword [esp + 0x38]
mov dword [0x43b174], ecx
mov dword [0x43b170], eax
jmp 0x439150
mov eax, edi
cmp al, 0x47
jne 0x4395d5
cmp dword [esp + 0x3c], 3
ja 0x4392b0
nop
jb 0x43961d
cmp dword [esp + 0x38], 0xfffffffe
ja 0x4392b0
mov eax, dword [esp + 0x38]
add ecx, 1
mov edx, dword [esp + 0x3c]
mov dword [esp + 0x4c], ecx
shld edx, eax, 0x1e
shl eax, 0x1e
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], edx
jmp 0x4395d5
cmp dword [esp + 0x38], 0xfffffffe
ja 0x4392b0
jmp 0x4395b7
mov eax, dword [sym.imp.msvcrt.dll__iob]
mov dword [esp + 4], str.usage:_fastboot____option_____command__n_ncommands:_n__update__filename_________________________reflash_device_from_update.zip_n__flashall_________________________________flash_boot__system__vendor_and_if_found__n___________________________________________recovery_n__flash__partition_____filename____________write_a_file_to_a_flash_partition_n__flashing_lock____________________________locks_the_device._Prevents_flashing___________________________________________partitions_n__flashing_unlock__________________________unlocks_the_device._Allows_user_to___________________________________________flash_any_partition_except_the_ones___________________________________________that_are_related_to_bootloader_n__flashing_lock_critical___________________Prevents_flashing_bootloader_related___________________________________________partitions_n__flashing_unlock_critical_________________Enables_flashing_bootloader_related___________________________________________partitions_n__flashing_get_unlock_ability______________Queries_bootloader_to_see_if_the___________________________________________device_is_unlocked_n__erase__partition_________________________erase_a_flash_partition_n__format_:__fs_type___:__size_____partition__format_a_flash_partition._n___________________________________________Can_override_the_fs_type_and_or_n___________________________________________size_the_bootloader_reports._n__getvar__variable_________________________display_a_bootloader_variable_n__boot__kernel_____ramdisk_________________download_and_boot_kernel_n__flash:raw_boot__kernel_____ramdisk_______create_bootimage_and_flash_it_n__devices__________________________________list_all_connected_devices_n__continue_________________________________continue_with_autoboot_n__reboot__bootloader_______________________reboot_device__optionally_into_bootloader_n__reboot_bootloader________________________reboot_device_into_bootloader_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_first_erase_partition_before_n___________________________________________formatting_n___s__specific_device______________________specify_device_serial_number_n___________________________________________or_path_to_device_port_n___l_______________________________________with__devices___lists_device_paths_n___p__product______________________________specify_product_name_n___c__cmdline______________________________override_kernel_commandline_n___i__vendor_id____________________________specify_a_custom_USB_vendor_id_n___b__base_addr____________________________specify_a_custom_kernel_base_address._n___________________________________________default:_0x10000000_n___n__page_size____________________________specify_the_nand_page_size._n___________________________________________default:_2048_n___S__size__KMG__________________________automatically_sparse_files_greater_n___________________________________________than_size.__0_to_disable_n
add eax, 0x40
mov dword [esp], eax
call fcn.00431b40
jmp 0x4391a7
mov dword [esp], 0x402170
call fcn.004048a0
jmp 0x4391a7
mov esi, dword [esp + 0x34]
mov edi, str.format
mov ecx, 6
repe cmpsb byte [esi], byte es:[edi]
jne 0x439738
cmp dword [esp + 0x38], 1
je 0x439d90
mov eax, dword [esp + 0x34]
mov dword [esp + 4], 0x3a
mov dword [esp], eax
call sub.msvcrt.dll_strchr
test eax, eax
mov edi, eax
je 0x439932
lea esi, [eax + 1]
mov dword [esp + 4], 0x3a
mov dword [esp], esi
call sub.msvcrt.dll_strchr
test eax, eax
mov edx, eax
je 0x4396de
mov byte [eax], 0
add edx, 1
test esi, esi
je 0x4396ee
cmp byte [edi + 1], 0
mov eax, 0
cmove esi, eax
test edx, edx
je 0x4396fd
cmp byte [edx], 0
mov eax, 0
cmove edx, eax
cmp dword [esp + 0x30], 0
jne 0x439843
mov dword [esp + 0x10], edx
add ebx, 8
mov dword [esp + 0xc], esi
mov dword [esp + 8], 0
mov eax, dword [ebx - 4]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x28]
mov dword [esp], eax
call fcn.00402b20
sub dword [esp + 0x38], 2
jmp 0x4394e3
mov eax, dword [esp + 0x34]
mov dword [esp + 4], str.signature
mov dword [esp], eax
call sub.msvcrt.dll_strcmp
test eax, eax
jne 0x4397d7
cmp dword [esp + 0x38], 1
je 0x439d90
mov eax, dword [ebx + 4]
lea edx, [esp + 0x4c]
call fcn.004016d0
test eax, eax
je 0x439dee
cmp dword [esp + 0x4c], 0x100
jne 0x439de2
mov dword [esp + 4], eax
add ebx, 8
mov dword [esp + 8], 0x100
mov dword [esp], str.signature
call fcn.00403e40
mov dword [esp + 4], str.installing_signature
mov dword [esp], str.signature
call fcn.00403e10
sub dword [esp + 0x38], 2
jmp 0x4394e3
mov eax, dword [sym.imp.msvcrt.dll__iob]
mov dword [esp + 4], str._Did_you_mean_to_fastboot_format_this_partition__n
add eax, 0x40
mov dword [esp], eax
call fcn.00431b40
jmp 0x439547
mov eax, dword [esp + 0x34]
mov dword [esp + 4], 0x4414a1
mov dword [esp], eax
call sub.msvcrt.dll_strcmp
test eax, eax
jne 0x439886
mov esi, dword [esp + 0x38]
sub esi, 1
je 0x43991e
mov dword [esp + 4], str.bootloader
mov eax, dword [ebx + 4]
mov dword [esp], eax
call sub.msvcrt.dll_strcmp
test eax, eax
jne 0x43991e
sub dword [esp + 0x38], 2
add ebx, 8
cmp dword [esp + 0x38], 0xffffffff
je 0x439d90
mov dword [esp + 0x20], 1
mov dword [esp + 0x24], 0
jmp 0x4394e3
mov dword [esp + 8], 0
mov eax, dword [ebx + 4]
mov dword [esp + 0x34], edx
mov dword [esp + 4], eax
mov eax, dword [esp + 0x28]
mov dword [esp], eax
call fcn.00403ac0
mov edx, dword [esp + 0x34]
test eax, eax
je 0x439708
mov eax, dword [ebx + 4]
mov dword [esp + 0x34], edx
mov dword [esp], eax
call fcn.00403b90
mov edx, dword [esp + 0x34]
jmp 0x439708
mov eax, dword [esp + 0x34]
mov dword [esp + 4], str.reboot_bootloader
mov dword [esp], eax
call sub.msvcrt.dll_strcmp
test eax, eax
jne 0x43993b
sub dword [esp + 0x38], 1
add ebx, 4
mov dword [esp + 0x20], 1
jmp 0x4394e3
mov eax, dword [esp + 0x28]
mov dword [esp + 4], str.update.zip
mov dword [esp], eax
call fcn.004025f0
mov dword [esp + 0x24], 1
cmp dword [esp + 0x2c], 0
jne 0x439a25
cmp dword [esp + 0x24], 0
jne 0x439a16
cmp dword [esp + 0x20], 0
jne 0x439b23
call fcn.004040b0
xor edi, edi
test eax, eax
jne 0x4391a7
mov eax, dword [esp + 0x28]
mov dword [esp], eax
call fcn.00403ee0
test eax, eax
setne al
movzx eax, al
mov edi, eax
jmp 0x4391a7
add ebx, 4
mov dword [esp + 0x38], esi
mov dword [esp + 0x24], 1
jmp 0x4394e3
xor esi, esi
xor edx, edx
jmp 0x4396fd
mov eax, dword [esp + 0x34]
mov dword [esp + 4], str.continue
mov dword [esp], eax
call sub.msvcrt.dll_strcmp
test eax, eax
je 0x439b02
mov eax, dword [esp + 0x34]
mov dword [esp + 4], str.boot
mov dword [esp], eax
call sub.msvcrt.dll_strcmp
test eax, eax
jne 0x439a96
cmp dword [esp + 0x38], 1
je 0x439bbf
mov eax, dword [esp + 0x38]
mov edx, dword [ebx + 4]
lea esi, [eax - 2]
test esi, esi
jle 0x439e25
mov esi, dword [esp + 0x38]
add ebx, 0xc
mov eax, dword [ebx - 4]
sub esi, 3
mov ecx, dword [0x44c070]
mov dword [esp + 4], eax
mov dword [esp], edx
mov dword [esp + 0xc], ecx
lea ecx, [esp + 0x4c]
mov dword [esp + 8], ecx
call fcn.004022d0
test eax, eax
je case.0x439183.63
mov edx, dword [esp + 0x4c]
mov dword [esp + 4], eax
mov dword [esp], str.boot.img
mov dword [esp + 8], edx
call fcn.00403e40
mov dword [esp + 4], str.booting
mov dword [esp], str.boot
call fcn.00403e10
mov dword [esp + 0x38], esi
jmp 0x4394e3
call fcn.00402220
mov dword [esp + 0x20], 0
mov dword [esp + 0x24], 0
mov dword [esp + 0x28], eax
jmp 0x4398d3
call fcn.00403de0
call fcn.00403ec0
jmp 0x4398f4
mov dword [esp], str.userdata
call fcn.00403b90
mov ebx, dword [esp + 0x28]
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 1
mov dword [esp + 4], str.userdata
mov dword [esp], ebx
call fcn.00402b20
mov dword [esp], str.cache
call fcn.00403b90
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 1
mov dword [esp + 4], str.cache
mov dword [esp], ebx
call fcn.00402b20
jmp 0x4398de
mov eax, dword [esp + 0x34]
mov dword [esp + 4], str.flash
mov dword [esp], eax
call sub.msvcrt.dll_strcmp
test eax, eax
jne 0x439b41
mov eax, dword [esp + 0x38]
mov edi, dword [ebx + 4]
cmp eax, 1
je 0x439d90
cmp eax, 2
je 0x439c50
sub dword [esp + 0x38], 3
add ebx, 0xc
mov esi, dword [ebx - 4]
test esi, esi
je 0x439e15
cmp dword [esp + 0x30], 0
jne 0x439c73
mov eax, dword [esp + 0x28]
mov dword [esp + 8], esi
mov dword [esp + 4], edi
mov dword [esp], eax
call fcn.00402540
jmp 0x4394e3
mov dword [esp + 4], str.resuming_boot
add ebx, 4
mov dword [esp], str.continue
call fcn.00403e10
sub dword [esp + 0x38], 1
jmp 0x4394e3
mov dword [esp + 4], str.rebooting_into_bootloader
mov dword [esp], str.reboot_bootloader
call fcn.00403e10
call fcn.00403ec0
jmp 0x4398f4
mov eax, dword [esp + 0x34]
mov dword [esp + 4], str.flash:raw
mov dword [esp], eax
call sub.msvcrt.dll_strcmp
test eax, eax
jne 0x439bcb
mov eax, dword [esp + 0x38]
mov esi, dword [ebx + 4]
mov edx, dword [ebx + 8]
cmp eax, 2
jle 0x439d90
cmp eax, 3
je 0x439c3e
sub dword [esp + 0x38], 4
add ebx, 0x10
mov eax, dword [ebx - 4]
mov ecx, dword [0x44c070]
mov dword [esp + 4], eax
mov dword [esp], edx
mov dword [esp + 0xc], ecx
lea ecx, [esp + 0x4c]
mov dword [esp + 8], ecx
call fcn.004022d0
test eax, eax
je 0x439e2f
mov edx, dword [esp + 0x4c]
mov dword [esp + 4], eax
mov dword [esp], esi
mov dword [esp + 8], edx
call fcn.00403bd0
jmp 0x4394e3
add ebx, 4
xor edx, edx
xor esi, esi
jmp 0x43999d
mov eax, dword [esp + 0x34]
mov dword [esp + 4], str.flashall
mov dword [esp], eax
call sub.msvcrt.dll_strcmp
test eax, eax
je 0x439d67
mov eax, dword [esp + 0x34]
mov dword [esp + 4], str.update
mov dword [esp], eax
call sub.msvcrt.dll_strcmp
test eax, eax
jne 0x439ca0
mov eax, dword [esp + 0x30]
cmp dword [esp + 0x38], 1
mov dword [esp + 8], eax
je 0x4398b7
mov eax, dword [ebx + 4]
add ebx, 8
mov dword [esp + 4], eax
mov eax, dword [esp + 0x28]
mov dword [esp], eax
call fcn.004025f0
sub dword [esp + 0x38], 2
mov dword [esp + 0x24], 1
jmp 0x4394e3
add ebx, 0xc
xor eax, eax
mov dword [esp + 0x38], 0
jmp 0x439b80
mov eax, dword [0x44c074]
add ebx, 8
mov dword [esp], edi
mov dword [esp + 4], eax
call fcn.00401e70
mov dword [esp + 0x38], 0
mov esi, eax
jmp 0x439ad6
mov eax, dword [esp + 0x28]
mov dword [esp + 8], 0
mov dword [esp + 4], edi
mov dword [esp], eax
call fcn.00403ac0
test eax, eax
je 0x439ae9
mov dword [esp], edi
call fcn.00403b90
jmp 0x439ae9
mov eax, dword [esp + 0x34]
mov dword [esp + 4], 0x441555
mov dword [esp], eax
call sub.msvcrt.dll_strcmp
test eax, eax
je 0x439dc9
mov eax, dword [esp + 0x34]
mov dword [esp + 4], str.flashing
mov dword [esp], eax
call sub.msvcrt.dll_strcmp
test eax, eax
jne case.0x439183.104
cmp dword [esp + 0x38], 2
jne case.0x439183.104
mov esi, dword [ebx + 4]
mov dword [esp + 4], str.unlock
mov dword [esp], esi
call sub.msvcrt.dll_strcmp
test eax, eax
je 0x439d4e
mov dword [esp + 4], str.lock
mov dword [esp], esi
call sub.msvcrt.dll_strcmp
test eax, eax
je 0x439d4e
mov dword [esp + 4], str.unlock_critical
mov dword [esp], esi
call sub.msvcrt.dll_strcmp
test eax, eax
je 0x439d4e
mov dword [esp + 4], str.lock_critical
mov dword [esp], esi
call sub.msvcrt.dll_strcmp
test eax, eax
je 0x439d4e
mov dword [esp + 4], str.get_unlock_ability
mov dword [esp], esi
call sub.msvcrt.dll_strcmp
test eax, eax
jne case.0x439183.104
mov dword [esp + 4], ebx
mov dword [esp], 2
call fcn.00402a80
mov dword [esp + 0x38], eax
jmp 0x4394e3
mov eax, dword [esp + 0x30]
add ebx, 4
sub dword [esp + 0x38], 1
mov dword [esp + 4], eax
mov eax, dword [esp + 0x28]
mov dword [esp], eax
call fcn.00402930
mov dword [esp + 0x24], 1
jmp 0x4394e3
mov eax, dword [sym.imp.msvcrt.dll__iob]
mov dword [esp + 4], str.usage:_fastboot____option_____command__n_ncommands:_n__update__filename_________________________reflash_device_from_update.zip_n__flashall_________________________________flash_boot__system__vendor_and_if_found__n___________________________________________recovery_n__flash__partition_____filename____________write_a_file_to_a_flash_partition_n__flashing_lock____________________________locks_the_device._Prevents_flashing___________________________________________partitions_n__flashing_unlock__________________________unlocks_the_device._Allows_user_to___________________________________________flash_any_partition_except_the_ones___________________________________________that_are_related_to_bootloader_n__flashing_lock_critical___________________Prevents_flashing_bootloader_related___________________________________________partitions_n__flashing_unlock_critical_________________Enables_flashing_bootloader_related___________________________________________partitions_n__flashing_get_unlock_ability______________Queries_bootloader_to_see_if_the___________________________________________device_is_unlocked_n__erase__partition_________________________erase_a_flash_partition_n__format_:__fs_type___:__size_____partition__format_a_flash_partition._n___________________________________________Can_override_the_fs_type_and_or_n___________________________________________size_the_bootloader_reports._n__getvar__variable_________________________display_a_bootloader_variable_n__boot__kernel_____ramdisk_________________download_and_boot_kernel_n__flash:raw_boot__kernel_____ramdisk_______create_bootimage_and_flash_it_n__devices__________________________________list_all_connected_devices_n__continue_________________________________continue_with_autoboot_n__reboot__bootloader_______________________reboot_device__optionally_into_bootloader_n__reboot_bootloader________________________reboot_device_into_bootloader_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_first_erase_partition_before_n___________________________________________formatting_n___s__specific_device______________________specify_device_serial_number_n___________________________________________or_path_to_device_port_n___l_______________________________________with__devices___lists_device_paths_n___p__product______________________________specify_product_name_n___c__cmdline______________________________override_kernel_commandline_n___i__vendor_id____________________________specify_a_custom_USB_vendor_id_n___b__base_addr____________________________specify_a_custom_kernel_base_address._n___________________________________________default:_0x10000000_n___n__page_size____________________________specify_the_nand_page_size._n___________________________________________default:_2048_n___S__size__KMG__________________________automatically_sparse_files_greater_n___________________________________________than_size.__0_to_disable_n
add eax, 0x40
mov dword [esp], eax
call fcn.00431b40
mov dword [esp], 1
call sub.msvcrt.dll_exit
mov eax, dword [0x44d420]
mov dword [esp], str.invalid_vendor_id__s
mov dword [esp + 4], eax
call fcn.00404120
mov eax, dword [esp + 0x38]
mov dword [esp + 4], ebx
mov dword [esp], eax
call fcn.00402a80
mov dword [esp + 0x38], eax
jmp 0x4394e3
mov dword [esp], str.signature_must_be_256_bytes
call fcn.00404120
call dword [sym.imp.msvcrt.dll__errno]
mov eax, dword [eax]
mov dword [esp], eax
call sub.msvcrt.dll_strerror
mov dword [esp + 8], eax
mov eax, dword [ebx + 4]
mov dword [esp], str.could_not_load__s:__s
mov dword [esp + 4], eax
call fcn.00404120
mov dword [esp + 4], edi
mov dword [esp], str.cannot_determine_image_filename_for__s
call fcn.00404120
add ebx, 8
xor eax, eax
jmp 0x43999d
mov dword [esp], str.cannot_load_bootable_image
call fcn.00404120
nop
nop
nop
nop
nop