Function at 0x419480
Capabilities:
Query environment variable

Disassembly:
push ebp
push edi
mov ecx, 0x1c
push esi
push ebx
mov esi, 0x4250c0
sub esp, 0xcc
lea ebx, [esp + 0x50]
mov ebp, dword [esp + 0xe0]
mov edi, ebx
rep movsd dword es:[edi], dword [esi]
mov dword [esp], str.ANDROID_SERIAL
call sub.msvcrt.dll_getenv
mov dword [esp + 0x28], 1
mov dword [0x43631c], eax
mov dword [esp + 0x2c], 0
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x10], 0
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], ebp
mov dword [esp + 4], eax
call fcn.0041db40
test eax, eax
js 0x4197c0
sub eax, 0x3f
cmp eax, 0x38
ja case.0x4194ff.64
jmp dword [eax*4 + 0x42d708]
mov eax, dword [sym.imp.msvcrt.dll__iob]
mov dword [esp + 4], str.wm_fastboot:_1.0_nusage:_fastboot____option_____command__n_ncommands:_n__update__filename_________________________reflash_device_from_update.zip_n__flashall_________________________________flash_boot__system__and_if_found__n___________________________________________recovery__tos_n__flash__partition_____filename____________write_a_file_to_a_flash_partition_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___________________________________reboot_device_normally_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.00417b60
mov ecx, 1
add esp, 0xcc
mov eax, ecx
pop ebx
pop esi
pop edi
pop ebp
ret
add esp, 0xcc
mov ecx, 1
pop ebx
mov eax, ecx
pop esi
pop edi
pop ebp
ret
mov dword [esp + 0x28], 0
jmp 0x4194c4
mov eax, dword [0x436370]
mov dword [0x436314], eax
jmp 0x4194c4
mov eax, dword [0x436370]
mov dword [esp + 8], 0x10
mov dword [esp + 4], 0
mov dword [esp], eax
call sub.msvcrt.dll_strtoul
mov dword [0x4251e0], eax
jmp 0x4194c4
mov esi, dword [0x436370]
lea eax, [esp + 0x4c]
mov dword [esp + 8], 0
mov dword [esp + 4], eax
mov dword [esp], esi
call fcn.0041bdd0
mov edi, dword [esp + 0x4c]
cmp esi, edi
mov dword [esp + 0x30], edi
je 0x4195e9
movzx esi, byte [edi]
mov edi, esi
and edi, 0xffffffdf
mov ecx, edi
cmp cl, 0x4b
jne 0x419780
cmp edx, 0x3fffff
jbe 0x419914
mov dword [esp], str.invalid_sparse_limit
mov dword [0x4251f0], 0xffffffff
mov dword [0x4251f4], 0xffffffff
call fcn.0041a070
jmp 0x4194c4
mov dword [esp + 0x2c], 1
jmp 0x4194c4
mov eax, dword [0x436370]
mov dword [esp + 8], 0x10
mov dword [esp + 4], 0
mov dword [esp], eax
call sub.msvcrt.dll_strtoul
mov dword [0x4251d0], eax
jmp 0x4194c4
mov eax, dword [0x436370]
mov dword [0x43631c], eax
jmp 0x4194c4
mov eax, dword [0x436370]
mov dword [esp + 8], 0x10
mov dword [esp + 4], 0
mov dword [esp], eax
call sub.msvcrt.dll_strtoul
mov dword [0x4251d8], eax
jmp 0x4194c4
mov eax, dword [0x436370]
mov dword [0x436318], eax
jmp 0x4194c4
mov eax, dword [0x436370]
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], eax
call sub.msvcrt.dll_strtoul
test eax, eax
mov dword [0x4251e4], eax
jne 0x4194c4
mov dword [esp], str.invalid_page_size
call fcn.0041a070
jmp 0x4194c4
mov dword [0x43630c], 1
jmp 0x4194c4
mov eax, dword [0x436370]
mov dword [esp + 8], 0x10
mov dword [esp + 4], 0
mov dword [esp], eax
call sub.msvcrt.dll_strtoul
mov dword [0x4251dc], eax
jmp 0x4194c4
lea eax, [esp + 0x4c]
mov dword [esp + 8], 0
mov dword [esp + 0x4c], 0
mov dword [esp + 4], eax
mov eax, dword [0x436370]
mov dword [esp], eax
call sub.msvcrt.dll_strtoul
mov edx, dword [esp + 0x4c]
mov esi, eax
test edx, edx
je 0x419754
cmp byte [edx], 0
je 0x4197b0
mov eax, dword [0x436370]
mov dword [esp], str.invalid_vendor_id__s
mov dword [esp + 4], eax
call fcn.0041a070
mov word [0x436310], si
jmp 0x4194c4
call sub.msvcrt.dll_abort
lea esi, [esi]
mov ecx, edi
cmp cl, 0x4d
jne 0x4198f0
cmp edx, 0xfff
ja 0x4195e9
jb 0x4197a2
cmp eax, 0xfffffffe
ja 0x4195e9
shld edx, eax, 0x14
shl eax, 0x14
jmp 0x419926
test eax, 0xffff0000
je 0x419769
jmp 0x419754
mov eax, dword [0x425214]
mov edx, dword [esp + 0xe4]
sub ebp, eax
lea ebx, [edx + eax*4]
mov eax, dword [esp + 0x2c]
or eax, ebp
je case.0x4194ff.104
test ebp, ebp
jle 0x419959
mov edx, dword [ebx]
mov ecx, 8
mov edi, str.devices
mov esi, edx
repe cmpsb byte [esi], byte es:[edi]
seta cl
setb al
sub ecx, eax
movsx ecx, cl
test ecx, ecx
je 0x419da3
mov ecx, 5
mov edi, str.help
mov esi, edx
repe cmpsb byte [esi], byte es:[edi]
seta cl
setb al
sub ecx, eax
movsx ecx, cl
test ecx, ecx
je 0x419a41
mov eax, dword [0x436308]
test eax, eax
je 0x419ed2
mov dword [0x436320], eax
mov eax, dword [sym.imp.msvcrt.dll__iob]
mov dword [esp + 0x3c], 0
mov dword [esp + 0x34], 0
add eax, 0x40
mov dword [esp + 0x30], eax
jmp 0x419886
cmp ebp, 1
je 0x419f82
mov eax, dword [ebx + 4]
sub ebp, 2
add ebx, 8
mov dword [esp + 4], eax
mov dword [esp], eax
call fcn.004176c0
test ebp, ebp
jle 0x419c50
mov eax, dword [ebx]
mov ecx, 7
mov edi, str.getvar
mov esi, eax
repe cmpsb byte [esi], byte es:[edi]
je 0x419860
mov edi, str.erase
mov ecx, 6
mov esi, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x419a70
cmp ebp, 1
je 0x419f82
mov dword [esp + 8], 0
mov eax, dword [ebx + 4]
mov dword [esp + 4], eax
mov eax, dword [0x436320]
mov dword [esp], eax
call fcn.00417450
test eax, eax
jne 0x419ba0
mov eax, dword [ebx + 4]
sub ebp, 2
add ebx, 8
mov dword [esp], eax
call fcn.004174e0
jmp 0x41987e
mov ecx, edi
cmp cl, 0x47
jne 0x419937
cmp edx, 3
ja 0x4195e9
jb 0x41990b
cmp eax, 0xfffffffe
ja 0x4195e9
shld edx, eax, 0x1e
shl eax, 0x1e
jmp 0x419926
jb 0x41991f
cmp eax, 0xfffffffe
ja 0x4195e9
shld edx, eax, 0xa
shl eax, 0xa
mov edi, dword [esp + 0x30]
mov esi, edi
add esi, 1
mov dword [esp + 0x4c], esi
movzx esi, byte [edi + 1]
mov ecx, esi
test cl, cl
jne 0x4195e9
test edx, edx
js 0x4195e9
mov dword [0x4251f0], eax
mov dword [0x4251f4], edx
jmp 0x4194c4
mov eax, dword [0x436308]
test eax, eax
je 0x419e68
mov dword [0x436320], eax
mov eax, dword [esp + 0x2c]
test eax, eax
jne 0x41999b
call fcn.00417a40
xor ecx, ecx
test eax, eax
jne 0x41952d
mov eax, dword [0x436320]
mov dword [esp], eax
call fcn.00417860
xor ecx, ecx
test eax, eax
setne cl
jmp 0x41952d
mov dword [esp + 0x3c], 0
mov dword [esp + 0x34], 0
mov dword [esp], str.userdata
call fcn.004174e0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 1
mov dword [esp], str.userdata
call fcn.00419190
mov dword [esp], str.cache
call fcn.004174e0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 1
mov dword [esp], str.cache
call fcn.00419190
mov ecx, dword [esp + 0x34]
test ecx, ecx
jne 0x419d1a
mov edx, dword [esp + 0x3c]
test edx, edx
je 0x419973
mov dword [esp + 4], str.rebooting_into_bootloader
mov dword [esp], str.reboot_bootloader
call fcn.00417790
call fcn.00417840
jmp 0x419973
mov eax, dword [sym.imp.msvcrt.dll__iob]
mov dword [esp + 4], str.wm_fastboot:_1.0_nusage:_fastboot____option_____command__n_ncommands:_n__update__filename_________________________reflash_device_from_update.zip_n__flashall_________________________________flash_boot__system__and_if_found__n___________________________________________recovery__tos_n__flash__partition_____filename____________write_a_file_to_a_flash_partition_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___________________________________reboot_device_normally_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
mov dword [esp + 0x28], ecx
add eax, 0x40
mov dword [esp], eax
call fcn.00417b60
mov ecx, dword [esp + 0x28]
jmp 0x41952d
mov edi, str.format
mov ecx, 6
mov esi, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x419b14
cmp ebp, 1
je 0x419f82
mov dword [esp + 4], 0x3a
mov dword [esp], eax
call sub.msvcrt.dll_strchr
test eax, eax
mov edi, eax
je 0x419c61
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 0x419c6a
mov byte [eax], 0
cmp byte [edi + 1], 1
mov ecx, edx
sbb eax, eax
not eax
and esi, eax
add ecx, 1
je 0x419ae2
cmp byte [edx + 1], 1
sbb eax, eax
not eax
and ecx, eax
mov eax, dword [esp + 0x28]
test eax, eax
jne 0x419be3
mov dword [esp + 0xc], ecx
mov dword [esp + 8], esi
sub ebp, 2
mov dword [esp + 4], 0
mov eax, dword [ebx + 4]
add ebx, 8
mov dword [esp], eax
call fcn.00419190
jmp 0x41987e
mov edi, str.signature
mov ecx, 0xa
mov esi, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x419bc0
cmp ebp, 1
je 0x419f82
mov eax, dword [ebx + 4]
lea edx, [esp + 0x4c]
call fcn.00417ca0
test eax, eax
mov esi, eax
je 0x419dbc
mov edx, dword [esp + 0x4c]
cmp edx, 0x100
je 0x419b63
mov dword [esp], str.signature_must_be_256_bytes
call fcn.0041a070
mov edx, dword [esp + 0x4c]
mov dword [esp + 8], edx
mov dword [esp + 4], esi
sub ebp, 2
mov dword [esp], str.signature
add ebx, 8
call fcn.004177c0
mov dword [esp + 4], str.installing_signature
mov dword [esp], str.signature
call fcn.00417790
jmp 0x41987e
mov eax, dword [esp + 0x30]
mov dword [esp + 4], str._Did_you_mean_to_fastboot_format_this_partition__n
mov dword [esp], eax
call fcn.00417b60
jmp 0x4198d9
mov edi, str.reboot
mov ecx, 7
mov esi, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x419c23
sub ebp, 1
add ebx, 4
mov dword [esp + 0x34], 1
jmp 0x41987e
mov dword [esp + 8], 0
mov eax, dword [ebx + 4]
mov dword [esp + 0x38], ecx
mov dword [esp + 4], eax
mov eax, dword [0x436320]
mov dword [esp], eax
call fcn.00417450
test eax, eax
mov ecx, dword [esp + 0x38]
je 0x419aee
mov eax, dword [ebx + 4]
mov dword [esp], eax
call fcn.004174e0
mov ecx, dword [esp + 0x38]
jmp 0x419aee
mov edi, str.reboot_bootloader
mov ecx, 0x12
mov esi, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x419c7b
sub ebp, 1
add ebx, 4
mov dword [esp + 0x3c], 1
jmp 0x41987e
mov ebx, dword [esp + 0x2c]
test ebx, ebx
je 0x419a0b
jmp 0x4199ab
xor esi, esi
xor ecx, ecx
jmp 0x419ae2
xor ecx, ecx
cmp byte [edi + 1], 1
sbb eax, eax
not eax
and esi, eax
jmp 0x419ae2
mov edi, str.continue
mov ecx, 9
mov esi, eax
repe cmpsb byte [esi], byte es:[edi]
je 0x419d84
mov edi, str.boot
mov ecx, 5
mov esi, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x419d24
cmp ebp, 1
je 0x419e59
lea eax, [ebp - 2]
mov edx, dword [ebx + 4]
test eax, eax
jle 0x419ff9
mov eax, dword [ebx + 8]
sub ebp, 3
add ebx, 0xc
mov ecx, dword [0x436314]
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.004187b0
test eax, eax
je case.0x4194ff.63
mov edx, dword [esp + 0x4c]
mov dword [esp + 4], eax
mov dword [esp], str.boot.img
mov dword [esp + 8], edx
call fcn.004177c0
mov dword [esp + 4], str.booting
mov dword [esp], str.boot
call fcn.00417790
jmp 0x41987e
call fcn.00417760
jmp 0x419973
mov edi, str.flash
mov ecx, 6
mov esi, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x419de7
cmp ebp, 1
mov esi, dword [ebx + 4]
je 0x419f82
cmp ebp, 2
je 0x419edc
mov edi, dword [ebx + 8]
sub ebp, 3
add ebx, 0xc
test edi, edi
je 0x419fd3
mov eax, dword [esp + 0x28]
test eax, eax
jne 0x419ef9
mov eax, dword [0x436320]
mov dword [esp + 8], edi
mov dword [esp + 4], esi
mov dword [esp], eax
call fcn.00418b50
jmp 0x41987e
mov dword [esp + 4], str.resuming_boot
mov dword [esp], str.continue
sub ebp, 1
call fcn.00417790
add ebx, 4
jmp 0x41987e
mov dword [esp], 0x4186b0
mov dword [esp + 0x28], ecx
call fcn.0041a7d0
mov ecx, dword [esp + 0x28]
jmp 0x41952d
call sub.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.0041a070
jmp 0x419b47
mov edi, str.flash:raw
mov ecx, 0xa
mov esi, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x419e72
cmp ebp, 2
mov edi, dword [ebx + 4]
mov edx, dword [ebx + 8]
jle 0x419f82
cmp ebp, 3
je 0x419f27
mov eax, dword [ebx + 0xc]
sub ebp, 4
add ebx, 0x10
mov ecx, dword [0x436314]
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.004187b0
test eax, eax
mov esi, eax
je 0x419fe8
mov eax, dword [esp + 0x4c]
mov dword [esp + 4], esi
mov dword [esp], edi
mov dword [esp + 8], eax
call fcn.00417520
jmp 0x41987e
add ebx, 4
xor edx, edx
xor eax, eax
xor bp, bp
jmp 0x419cc3
call fcn.00418330
jmp 0x419966
mov edi, str.flashall
mov ecx, 9
mov esi, eax
repe cmpsb byte [esi], byte es:[edi]
je 0x419f5a
mov edi, str.update
mov ecx, 7
mov esi, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x419f33
mov eax, dword [esp + 0x28]
cmp ebp, 1
mov dword [esp + 8], eax
je 0x419fa6
mov eax, dword [ebx + 4]
sub ebp, 2
add ebx, 8
mov dword [esp + 4], eax
mov eax, dword [0x436320]
mov dword [esp], eax
call fcn.00418c10
mov dword [esp + 0x34], 1
jmp 0x41987e
call fcn.00418330
jmp 0x419836
mov eax, dword [0x436318]
mov dword [esp], esi
add ebx, 8
xor ebp, ebp
mov dword [esp + 4], eax
call fcn.00418390
mov edi, eax
jmp 0x419d56
mov eax, dword [0x436320]
mov dword [esp + 8], 0
mov dword [esp + 4], esi
mov dword [esp], eax
call fcn.00417450
test eax, eax
je 0x419d6a
mov dword [esp], esi
call fcn.004174e0
jmp 0x419d6a
add ebx, 0xc
xor eax, eax
xor ebp, ebp
jmp 0x419e18
mov edi, 0x42d69d
mov ecx, 4
mov esi, eax
repe cmpsb byte [esi], byte es:[edi]
jne case.0x4194ff.104
mov dword [esp], ebp
mov dword [esp + 4], ebx
call fcn.00419100
mov ebp, eax
jmp 0x41987e
mov eax, dword [esp + 0x28]
sub ebp, 1
add ebx, 4
mov dword [esp + 4], eax
mov eax, dword [0x436320]
mov dword [esp], eax
call fcn.00418f90
mov dword [esp + 0x34], 1
jmp 0x41987e
mov eax, dword [sym.imp.msvcrt.dll__iob]
mov dword [esp + 4], str.wm_fastboot:_1.0_nusage:_fastboot____option_____command__n_ncommands:_n__update__filename_________________________reflash_device_from_update.zip_n__flashall_________________________________flash_boot__system__and_if_found__n___________________________________________recovery__tos_n__flash__partition_____filename____________write_a_file_to_a_flash_partition_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___________________________________reboot_device_normally_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.00417b60
mov dword [esp], 1
call sub.msvcrt.dll_exit
mov eax, dword [0x436320]
mov dword [esp + 4], str.update.zip
mov dword [esp], eax
call fcn.00418c10
cmp dword [esp + 0x2c], 0
je 0x419d1a
mov dword [esp + 0x34], 1
jmp 0x4199ab
mov dword [esp + 4], esi
mov dword [esp], str.cannot_determine_image_filename_for__s
call fcn.0041a070
jmp 0x419d5e
mov dword [esp], str.cannot_load_bootable_image
call fcn.0041a070
jmp 0x419e40
mov ebp, eax
add ebx, 8
xor eax, eax
jmp 0x419cc3