Function at 0x403570
Capabilities:
Terminate process

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x9c8
mov eax, dword [0x408004]
xor eax, esp
mov dword [esp + 0x9c4], eax
push esi
push edi
mov edi, dword [ebp + 0xc]
push 0x30444
mov dword [esp + 0x14], 0x3c
mov dword [esp + 0x24], 0
mov dword [esp + 0x20], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x2c], 1
mov dword [esp + 0x28], 1
mov dword [esp + 0x18], 0
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov ecx, eax
add esp, 4
mov edx, ecx
mov dword [esp + 0xc], edx
add ecx, 0x30
jne 0x403603
push str.malloc_failed_n
push 2
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
add esp, 4
push eax
call fcn.00401050
add esp, 8
push 1
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll_exit]
mov dword [edx + 8], ecx
add ecx, 0x400
mov dword [edx], ecx
push 4
mov dword [edx + 0x14], 0
lea eax, [ecx + 4]
mov dword [edx + 0x18], 0
add ecx, 0x10006
mov dword [edx + 0x1c], 0
mov dword [edx + 0xc], eax
mov dword [edx + 4], ecx
mov dword [edx + 0x28], 0
mov dword [edx + 0x2c], 0x3e8
call fcn.00404f8a
add esp, 4
mov esi, eax
mov dword [esp + 0x2c], esi
push 8
call fcn.00404f8a
add esp, 4
mov dword [esp + 0x30], eax
mov dword [eax], 0
push 0x406228
mov dword [eax + 4], 0
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov dword [0x408400], eax
test eax, eax
jne 0x4036a1
push section..text
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, dword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
push eax
call dword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______thiscall_std::basic_ostream_char__struct_std::char_traits_char__::operator___unsigned_long_int_]
mov ecx, eax
call dword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______thiscall_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::basic_ostream_char__struct_std::char_traits_char_______cdecl___class_std::basic_ostream_char__struct_std::char_traits_char_____]
jmp 0x4036ca
mov esi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push str.CreateChannel
push eax
call esi
push str.ReleaseChannel
push dword [0x408400]
mov dword [0x4083f8], eax
call esi
mov esi, dword [esp + 0x2c]
mov dword [0x4083fc], eax
mov eax, dword [esp + 0x30]
mov dword [esi], eax
mov eax, dword [esp + 0xc]
mov dword [eax + 0x10], esi
mov esi, dword [ebp + 8]
cmp esi, 1
jle 0x403799
mov eax, dword [edi + 4]
mov ecx, str.__wait
nop dword [eax + eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x403710
test dl, dl
je 0x40370c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x403710
add eax, 2
add ecx, 2
test dl, dl
jne 0x4036f0
xor eax, eax
jmp 0x403715
sbb eax, eax
or eax, 1
test eax, eax
jne 0x403739
cmp esi, 2
jbe 0x40381f
push dword [edi + 8]
add edi, 8
call dword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll_atoi]
add esp, 4
add eax, eax
mov dword [esp + 0x10], eax
jmp 0x40378d
mov eax, dword [edi + 4]
mov ecx, str.__verbose
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x403761
test dl, dl
je 0x40375d
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x403761
add eax, 2
add ecx, 2
test dl, dl
jne 0x403741
xor eax, eax
jmp 0x403766
sbb eax, eax
or eax, 1
test eax, eax
jne 0x403840
cmp esi, 2
jbe 0x40381f
push dword [edi + 8]
add edi, 8
call dword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll_atoi]
mov ecx, dword [esp + 0x10]
add esp, 4
mov dword [ecx + 0x28], eax
add esi, 0xfffffffe
cmp esi, 1
jg 0x4036e3
xor esi, esi
mov dword [esp + 0x30], esi
test esi, esi
jne 0x4037c6
mov eax, dword [esp + 0x10]
cdq
sub eax, edx
sar eax, 1
push eax
push str.Waiting_for_connection___ds__n
push 2
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
add esp, 4
push eax
call fcn.00401050
add esp, 0xc
push 2
xor esi, esi
mov dword [esp + 0xc], 0
push esi
push esi
lea eax, [esp + 0x48]
mov dword [esp + 0x48], 0x4d36e978
push eax
mov dword [esp + 0x50], 0x11cee325
mov dword [esp + 0x54], 0x8c1bf
mov dword [esp + 0x58], 0x1803e12b
call dword [sym.imp.SETUPAPI.dll_SetupDiGetClassDevsW]
mov edi, eax
cmp edi, 0xffffffff
jne 0x40386d
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.Failed_to_get_device_information_set._Error_code:__ld_n
call fcn.00401080
add esp, 8
jmp 0x403929
push str.bad_option_n
push 2
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
add esp, 4
push eax
call fcn.00401050
add esp, 8
push 1
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll_exit]
mov eax, dword [edi + 4]
cmp byte [eax], 0x2d
jne 0x403799
push str.unknown_option_n
push 2
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
add esp, 4
push eax
call fcn.00401050
add esp, 8
push 1
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll_exit]
lea eax, [esp + 0x4c]
mov dword [esp + 0x4c], 0x1c
push eax
push 0
push edi
call dword [sym.imp.SETUPAPI.dll_SetupDiEnumDeviceInfo]
test eax, eax
je 0x403922
nop dword [eax + eax]
lea eax, [esp + 0x38]
mov dword [esp + 0x34], 0
push eax
push 0x104
lea eax, [esp + 0x4e0]
mov dword [esp + 0x40], 0x104
push eax
lea eax, [esp + 0x40]
push eax
push 0xc
lea eax, [esp + 0x60]
push eax
push edi
call dword [sym.imp.SETUPAPI.dll_SetupDiGetDeviceRegistryPropertyA]
lea eax, [esp + 0x4d8]
push str.SPRD_U2S_Diag
push eax
call dword [sym.imp.VCRUNTIME140.dll_strstr]
add esp, 8
test eax, eax
jne 0x4038f3
lea eax, [esp + 0x4c]
inc esi
push eax
push esi
push edi
call dword [sym.imp.SETUPAPI.dll_SetupDiEnumDeviceInfo]
test eax, eax
jne 0x403890
jmp 0x403922
add eax, 0x12
push 3
push eax
lea eax, [esp + 0x34]
push eax
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strncpy]
add esp, 0xc
mov byte [esp + 0x2f], 0
lea eax, [esp + 0x2c]
push 0
push 0
push eax
call dword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll_strtol]
add esp, 0xc
mov dword [esp + 8], eax
push edi
call dword [sym.imp.SETUPAPI.dll_SetupDiDestroyDeviceInfoList]
mov eax, dword [esp + 0xc]
mov edi, dword [esp + 8]
mov esi, dword [esp + 0x30]
cmp dword [eax + 0x28], 0
je 0x403973
movd xmm0, esi
cvtdq2ps xmm0, xmm0
push edi
sub esp, 8
mulss xmm0, dword [0x406d30]
cvtps2pd xmm0, xmm0
movsd qword [esp], xmm0
push str.CurTime:__.1f__CurPort:__d_n
push 2
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
add esp, 4
push eax
call fcn.00401050
mov eax, dword [esp + 0x20]
add esp, 0x14
test edi, edi
jne 0x4039af
cmp esi, dword [esp + 0x10]
jge 0x40398e
push 0x1f4
call dword [sym.imp.KERNEL32.dll_Sleep]
inc esi
jmp 0x40379b
push str.find_port_failed_n
push 2
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
add esp, 4
push eax
call fcn.00401050
add esp, 8
push 1
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll_exit]
mov eax, dword [eax + 0x10]
mov esi, dword [eax]
mov dword [esi], 0
mov eax, dword [0x4083f8]
test eax, eax
je 0x4039fd
lea ecx, [esi + 4]
push 0
push ecx
call eax
add esp, 8
test eax, eax
je 0x4039fd
mov ecx, dword [esi + 4]
lea edx, [esp + 0x3c]
mov dword [esp + 0x3c], 0
mov dword [esp + 0x40], edi
mov dword [esp + 0x44], 0x1c200
mov eax, dword [ecx]
push edx
mov eax, dword [eax + 0x10]
call eax
neg eax
sbb eax, eax
neg eax
mov dword [esi], eax
mov edi, dword [esp + 0xc]
mov ecx, edi
mov eax, dword [edi + 4]
or dword [edi + 0x14], 3
mov byte [eax], 0x7e
mov dword [edi + 0x24], 1
call fcn.00401680
mov ecx, edi
call fcn.00401790
cmp dword [edi + 0x20], 6
jl 0x404e50
mov eax, dword [edi]
movzx ecx, byte [eax + 1]
movzx eax, byte [eax]
shl eax, 8
or ecx, eax
cmp ecx, 0x81
jne 0x404e50
mov esi, dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
push str.CHECK_BAUD_bootrom_n
push 2
call esi
add esp, 4
push eax
call fcn.00401050
add esp, 8
push str.BSL_REP_VER:
push 2
call esi
add esp, 4
push eax
call fcn.00401050
mov esi, dword [edi]
add esp, 8
movzx ecx, byte [esi + 2]
movzx eax, byte [esi + 3]
shl ecx, 8
or ecx, eax
push ecx
push 2
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
add esp, 4
lea edx, [esi + 4]
mov ecx, eax
call fcn.00401270
add esp, 4
xor edx, edx
mov ecx, edi
push 0
push 0
call fcn.00401550
add esp, 8
mov ecx, edi
call fcn.00401680
mov ecx, edi
call fcn.00401790
test eax, eax
jne 0x403adf
push str.timeout_reached_n
push 2
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
add esp, 4
push eax
call fcn.00401050
add esp, 8
push 1
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll_exit]
cmp dword [edi + 0x20], 6
jge 0x403aea
or ecx, 0xffffffff
jmp 0x403b00
mov eax, dword [edi]
movzx ecx, byte [eax + 1]
movzx eax, byte [eax]
shl eax, 8
or ecx, eax
cmp ecx, 0x80
je 0x403b22
push ecx
push str.unexpected_response__0x_04x__n
push 2
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
add esp, 4
push eax
call fcn.00401050
add esp, 0xc
push 1
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll_exit]
push str.CMD_CONNECT_bootrom_n
push 2
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
add esp, 4
push eax
call fcn.00401050
add esp, 8
nop dword [eax + eax]
push 0x3e8
lea eax, [esp + 0x5e4]
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
lea eax, [esp + 0xf0]
push 0x3e8
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
mov dword [esp + 8], 1
push str.input__
call fcn.00401080
add esp, 4
lea eax, [esp + 0x5e0]
push eax
push str.___n_
call fcn.004010c0
add esp, 8
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_getchar]
cmp eax, 0xa
jne 0x403b98
lea eax, [esp + 0x5e0]
push 0x406a1c
push eax
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strtok]
mov esi, eax
add esp, 8
test esi, esi
je 0x403c0a
lea edi, [esp + 0x154]
mov edx, esi
lea ecx, [edx + 1]
nop dword [eax + eax]
mov al, byte [edx]
inc edx
test al, al
jne 0x403bd0
inc dword [esp + 8]
sub edx, ecx
mov ecx, edi
add edi, 0x64
lea eax, [edx + 1]
push eax
push esi
push ecx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
push 0x406a1c
push 0
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strtok]
mov esi, eax
add esp, 8
test esi, esi
jne 0x403bc6
mov edi, dword [esp + 0xc]
mov ecx, str.fdl1
lea eax, [esp + 0x154]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x403c36
test dl, dl
je 0x403c32
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x403c36
add eax, 2
add ecx, 2
test dl, dl
jne 0x403c16
xor eax, eax
jmp 0x403c3b
sbb eax, eax
or eax, 1
test eax, eax
jne 0x403f4d
cmp dword [esp + 8], 3
jg 0x403c5e
mov esi, dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
push str.bad_command_n
push 2
call esi
jmp 0x403b2f
lea eax, [esp + 0x1b8]
push 0x406a38
push eax
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fopen]
add esp, 8
test eax, eax
jne 0x403c82
push str.File_does_not_exist._n
jmp 0x403b27
push eax
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fclose]
lea eax, [esp + 0x220]
add esp, 4
mov ecx, eax
mov dword [esp + 0x2c], eax
cmp word [ecx], 0x6172
jne 0x403caa
cmp byte [ecx + 2], 0x6d
je 0x403fe0
push 0
lea eax, [esp + 0x30]
push eax
lea eax, [esp + 0x224]
push eax
call dword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll_strtoll]
mov ecx, dword [esp + 0x38]
add esp, 0xc
cmp byte [ecx], 0
je 0x403cd5
push str.bad_command_args_n
jmp 0x403b27
cmp dword [esp + 0x20], 0
je 0x403ce6
push str.FDL1_ALREADY_LOADED__SKIP_n
jmp 0x403b27
push 0x210
push dword [esp + 0x28]
lea edx, [esp + 0x1c0]
mov ecx, edi
push eax
call fcn.00401bf0
mov esi, dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
add esp, 0xc
push str.SEND_FDL1_n
push 2
call esi
add esp, 4
push eax
call fcn.00401050
mov eax, dword [esp + 0x20]
add esp, 8
mov ecx, edi
test eax, eax
je 0x403d3f
push 0x210
push 0
push eax
lea edx, [esp + 0xcc]
call fcn.00401bf0
add esp, 0xc
jmp 0x403d8a
push 0
push 0
mov edx, 4
call fcn.00401550
add esp, 8
mov ecx, edi
call fcn.00401680
mov ecx, edi
call fcn.00401790
test eax, eax
je 0x404d3a
cmp dword [edi + 0x20], 6
jl 0x404d28
mov eax, dword [edi]
movzx ecx, byte [eax + 1]
movzx eax, byte [eax]
shl eax, 8
or ecx, eax
cmp ecx, 0x80
jne 0x404d2b
push str.EXEC_FDL1_n
push 2
call esi
add esp, 4
push eax
call fcn.00401050
mov eax, dword [edi + 4]
add esp, 8
and dword [edi + 0x14], 0xfffffffe
mov ecx, edi
xor esi, esi
mov byte [eax], 0x7e
mov dword [edi + 0x24], 1
call fcn.00401680
mov ecx, edi
call fcn.00401790
mov ecx, edi
call fcn.00401af0
cmp eax, 0x81
je 0x403e1a
nop
push str.CHECK_BAUD_FAIL_n
push 2
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
add esp, 4
push eax
call fcn.00401050
inc esi
add esp, 8
cmp esi, 4
jg 0x404cc9
push 0x1f4
call dword [sym.imp.KERNEL32.dll_Sleep]
mov ecx, edi
call fcn.00401680
mov ecx, edi
call fcn.00401790
mov ecx, edi
call fcn.00401af0
cmp eax, 0x81
jne 0x403dd0
mov esi, dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
push str.CHECK_BAUD_FDL1_n
push 2
call esi
add esp, 4
push eax
call fcn.00401050
add esp, 8
push str.BSL_REP_VER:
push 2
call esi
add esp, 4
push eax
call fcn.00401050
mov esi, dword [edi]
add esp, 8
movzx ecx, byte [esi + 2]
movzx eax, byte [esi + 3]
shl ecx, 8
or ecx, eax
push ecx
push 2
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
add esp, 4
lea edx, [esi + 4]
mov ecx, eax
call fcn.00401270
add esp, 4
xor edx, edx
mov ecx, edi
push 0
push 0
call fcn.00401550
add esp, 8
mov ecx, edi
call fcn.00401680
mov ecx, edi
call fcn.00401790
test eax, eax
je 0x403abe
cmp dword [edi + 0x20], 6
jl 0x403ae5
mov eax, dword [edi]
movzx ecx, byte [eax + 1]
movzx eax, byte [eax]
shl eax, 8
or ecx, eax
cmp ecx, 0x80
jne 0x403b00
mov esi, dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
push str.CMD_CONNECT_FDL1_n
push 2
call esi
add esp, 4
push eax
call fcn.00401050
add esp, 8
cmp dword [esp + 0x28], 0
je 0x403f40
push 0
push 0
mov edx, 0x13
mov ecx, edi
call fcn.00401550
add esp, 8
mov ecx, edi
call fcn.00401680
mov ecx, edi
call fcn.00401790
test eax, eax
je 0x404d0b
cmp dword [edi + 0x20], 6
jl 0x404cea
mov eax, dword [edi]
movzx ecx, byte [eax + 1]
movzx eax, byte [eax]
shl eax, 8
or ecx, eax
cmp ecx, 0x80
jne 0x404ced
push str.KEEP_CHARGE_FDL1_n
push 2
call esi
add esp, 4
push eax
call fcn.00401050
add esp, 8
mov dword [esp + 0x20], 1
jmp 0x403b40
mov ecx, str.fdl2
lea eax, [esp + 0x154]
nop dword [eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x403f80
test dl, dl
je 0x403f7c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x403f80
add eax, 2
add ecx, 2
test dl, dl
jne 0x403f60
xor eax, eax
jmp 0x403f85
sbb eax, eax
or eax, 1
test eax, eax
jne 0x40409f
cmp dword [esp + 8], 3
jle 0x404c80
lea eax, [esp + 0x1b8]
push 0x406a38
push eax
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fopen]
add esp, 8
test eax, eax
jne 0x403fbc
push str.File_does_not_exist._n
jmp 0x403b27
push eax
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fclose]
lea eax, [esp + 0x220]
add esp, 4
mov ecx, eax
mov dword [esp + 0x30], eax
cmp word [ecx], 0x6172
jne 0x404005
cmp byte [ecx + 2], 0x6d
jne 0x404005
movsx eax, byte [esp + 0x21f]
cmp eax, 0x2b
je 0x403ffb
test eax, eax
je 0x403ffb
push str.bad_command_args_n
jmp 0x403b27
push str.ram_address_is_unknown_n
jmp 0x403b27
push 0
lea eax, [esp + 0x34]
push eax
lea eax, [esp + 0x224]
push eax
call dword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll_strtoll]
mov ecx, dword [esp + 0x3c]
add esp, 0xc
mov edx, eax
cmp byte [ecx], 0
je 0x404032
push str.bad_command_args_n
jmp 0x403b27
cmp dword [esp + 0x20], 0
jne 0x404043
push str.FDL1_NOT_READY__LOAD_FDL1_FIRST_n
jmp 0x403b27
cmp dword [esp + 0x1c], 0
je 0x404054
push str.FDL2_ALREADY_LOADED__SKIP_n
jmp 0x403b27
mov esi, dword [esp + 0x14]
mov eax, 0x840
test esi, esi
mov ecx, edi
cmovne eax, esi
push eax
push dword [esp + 0x28]
push edx
lea edx, [esp + 0x1c4]
call fcn.00401bf0
add esp, 0xc
lea eax, [esp + 0x1b8]
push eax
push str.SEND__s_n
push 2
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
add esp, 4
push eax
call fcn.00401050
add esp, 0xc
jmp 0x403b40
mov ecx, str.exec
lea eax, [esp + 0x154]
nop dword [eax + eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4040d0
test dl, dl
je 0x4040cc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4040d0
add eax, 2
add ecx, 2
test dl, dl
jne 0x4040b0
xor eax, eax
jmp 0x4040d5
sbb eax, eax
or eax, 1
test eax, eax
jne 0x40418f
cmp dword [esp + 0x1c], eax
je 0x4040ed
push str.FDL2_ALREADY_LOADED__SKIP_n
jmp 0x403b27
cmp dword [esp + 0x20], 0
je 0x403b40
push 0
push 0
mov edx, 4
mov ecx, edi
call fcn.00401550
add esp, 8
mov ecx, edi
call fcn.00401680
mov esi, dword [edi + 0x2c]
mov eax, 0x3a98
cmp esi, eax
mov ecx, edi
cmovg eax, esi
mov dword [edi + 0x2c], eax
call fcn.00401790
mov dword [edi + 0x2c], esi
test eax, eax
je 0x403abe
mov ecx, edi
call fcn.00401af0
cmp eax, 0x96
jne 0x40415f
mov esi, dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
push str.FDL2:_incompatible_partition_n
push 2
call esi
add esp, 4
push eax
call fcn.00401050
add esp, 8
jmp 0x404170
cmp eax, 0x80
jne 0x404d54
mov esi, dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
push str.EXEC_FDL2_n
push 2
call esi
add esp, 4
push eax
call fcn.00401050
mov dword [esp + 0x24], 1
jmp 0x403b38
mov ecx, str.exec_addr
lea eax, [esp + 0x154]
nop dword [eax + eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4041c0
test dl, dl
je 0x4041bc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4041c0
add eax, 2
add ecx, 2
test dl, dl
jne 0x4041a0
xor eax, eax
jmp 0x4041c5
sbb eax, eax
or eax, 1
test eax, eax
jne 0x404295
cmp dword [esp + 8], 2
jle 0x404270
push eax
push eax
lea eax, [esp + 0x1c0]
push eax
call dword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll_strtol]
add esp, 0xc
mov dword [esp + 0x18], eax
xorps xmm0, xmm0
movaps xmmword [esp + 0xc0], xmm0
movaps xmmword [esp + 0xd0], xmm0
push eax
lea eax, [esp + 0xc4]
movq qword [esp + 0xe4], xmm0
push str.custom_exec_no_verify__x.bin
push eax
call fcn.00401100
add esp, 0xc
lea eax, [esp + 0xc0]
push 0x406a38
push eax
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fopen]
add esp, 8
test eax, eax
jne 0x404266
mov esi, dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
lea eax, [esp + 0xc0]
push eax
push str._s_does_not_exist_n
push 2
call esi
add esp, 4
push eax
call fcn.00401050
add esp, 0xc
xor eax, eax
mov dword [esp + 0x18], eax
jmp 0x40427a
push eax
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fclose]
add esp, 4
mov eax, dword [esp + 0x18]
mov esi, dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
push eax
push str.current_exec_addr_is_0x_x_n
push 2
call esi
add esp, 4
push eax
call fcn.00401050
add esp, 0xc
jmp 0x403b40
mov ecx, str.read_flash
lea eax, [esp + 0x154]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4042c1
test dl, dl
je 0x4042bd
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4042c1
add eax, 2
add ecx, 2
test dl, dl
jne 0x4042a1
xor eax, eax
jmp 0x4042c6
sbb eax, eax
or eax, 1
test eax, eax
jne 0x404369
cmp dword [esp + 8], 5
jle 0x404c80
lea ecx, [esp + 0x1b8]
call fcn.00403490
lea ecx, [esp + 0x21c]
mov dword [esp + 0x10], eax
mov dword [esp + 0x34], edx
call fcn.00403490
mov esi, eax
lea ecx, [esp + 0x280]
mov dword [esp + 8], esi
mov edi, edx
call fcn.00403490
mov ecx, eax
mov dword [esp + 0x38], eax
add ecx, esi
mov esi, edx
adc esi, edi
add ecx, dword [esp + 0x10]
adc esi, dword [esp + 0x34]
xor eax, eax
or esi, edx
or esi, edi
or esi, dword [esp + 0x34]
or eax, esi
jne 0x4043e3
mov esi, dword [esp + 0x14]
mov eax, 0x400
mov edi, dword [esp + 0xc]
test esi, esi
mov edx, dword [esp + 0x10]
mov ecx, edi
cmovne eax, esi
push eax
lea eax, [esp + 0x2e8]
push eax
push dword [esp + 0x40]
push dword [esp + 0x14]
call fcn.00401e70
add esp, 0x10
jmp 0x403b40
mov ecx, str.read_mem
lea eax, [esp + 0x154]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x404395
test dl, dl
je 0x404391
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x404395
add eax, 2
add ecx, 2
test dl, dl
jne 0x404375
xor eax, eax
jmp 0x40439a
sbb eax, eax
or eax, 1
test eax, eax
jne 0x404434
cmp dword [esp + 8], 4
jle 0x404c80
lea ecx, [esp + 0x1b8]
call fcn.00403490
mov esi, eax
lea ecx, [esp + 0x21c]
mov dword [esp + 0x38], esi
mov edi, edx
call fcn.00403490
mov ecx, eax
mov dword [esp + 0x34], eax
add ecx, esi
mov esi, edx
adc esi, edi
xor ecx, ecx
or esi, edx
or esi, edi
or ecx, esi
je 0x404402
push str.32_bit_limit_reached_n
push 2
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
add esp, 4
push eax
call fcn.00401050
mov edi, dword [esp + 0x14]
jmp 0x403b38
mov esi, dword [esp + 0x14]
mov eax, 0x400
mov edi, dword [esp + 0xc]
test esi, esi
mov edx, dword [esp + 0x38]
mov ecx, edi
cmovne eax, esi
push eax
lea eax, [esp + 0x284]
push eax
push dword [esp + 0x3c]
call fcn.00402070
add esp, 0xc
jmp 0x403b40
mov ecx, str.part_size
lea eax, [esp + 0x154]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x404460
test dl, dl
je 0x40445c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x404460
add eax, 2
add ecx, 2
test dl, dl
jne 0x404440
xor eax, eax
jmp 0x404465
sbb eax, eax
or eax, 1
test eax, eax
jne 0x404487
cmp dword [esp + 8], 2
jle 0x404c80
lea edx, [esp + 0x1b8]
mov ecx, edi
call fcn.00403270
jmp 0x403b40
mov ecx, str.read_part
lea eax, [esp + 0x154]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4044b3
test dl, dl
je 0x4044af
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4044b3
add eax, 2
add ecx, 2
test dl, dl
jne 0x404493
xor eax, eax
jmp 0x4044b8
sbb eax, eax
or eax, 1
test eax, eax
jne 0x404561
cmp dword [esp + 8], 5
jle 0x404c80
lea ecx, [esp + 0x21c]
call fcn.00403490
lea ecx, [esp + 0x280]
mov dword [esp + 0x34], edx
mov esi, eax
call fcn.00403490
mov ecx, edx
mov dword [esp + 0x10], eax
mov edx, dword [esp + 0x34]
mov edi, eax
add edi, esi
mov dword [esp + 0x38], ecx
adc ecx, edx
cmp ecx, edx
ja 0x404526
jb 0x404507
cmp edi, esi
jae 0x404526
push str.64_bit_limit_reached_n
push 2
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
add esp, 4
push eax
call fcn.00401050
mov edi, dword [esp + 0x14]
jmp 0x403b38
mov ecx, dword [esp + 0x14]
mov eax, 0x1000
mov edi, dword [esp + 0xc]
test ecx, ecx
cmovne eax, ecx
mov ecx, edi
push eax
lea eax, [esp + 0x2e8]
push eax
push dword [esp + 0x40]
push dword [esp + 0x1c]
push edx
push esi
lea edx, [esp + 0x1d0]
call fcn.00402330
add esp, 0x18
jmp 0x403b40
mov ecx, str.partition_list
lea eax, [esp + 0x154]
nop dword [eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x404590
test dl, dl
je 0x40458c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x404590
add eax, 2
add ecx, 2
test dl, dl
jne 0x404570
xor eax, eax
jmp 0x404595
sbb eax, eax
or eax, 1
test eax, eax
jne 0x4045b7
cmp dword [esp + 8], 2
jle 0x404c80
lea edx, [esp + 0x1b8]
mov ecx, edi
call fcn.00402d40
jmp 0x403b40
mov ecx, str.repartition
lea eax, [esp + 0x154]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4045e3
test dl, dl
je 0x4045df
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4045e3
add eax, 2
add ecx, 2
test dl, dl
jne 0x4045c3
xor eax, eax
jmp 0x4045e8
sbb eax, eax
or eax, 1
test eax, eax
jne 0x40469d
cmp dword [esp + 8], 2
jle 0x404c80
lea eax, [esp + 0x1b8]
push 0x406a38
push eax
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fopen]
add esp, 8
test eax, eax
jne 0x40461f
push str.File_does_not_exist._n
jmp 0x403b27
push eax
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fclose]
mov edi, dword [edi + 0xc]
lea ecx, [esp + 0x1bc]
mov edx, edi
call fcn.004029a0
add esp, 4
mov ecx, str.repartition
mov esi, eax
call fcn.00401b10
imul eax, esi, 0x4c
mov edx, 0xb
push eax
push edi
mov edi, dword [esp + 0x14]
mov ecx, edi
call fcn.00401550
add esp, 8
mov ecx, edi
call fcn.00401680
mov ecx, edi
call fcn.00401790
test eax, eax
je 0x403abe
cmp dword [edi + 0x20], 6
jl 0x403ae5
mov eax, dword [edi]
movzx ecx, byte [eax + 1]
movzx eax, byte [eax]
shl eax, 8
or ecx, eax
cmp ecx, 0x80
je 0x403b40
jmp 0x403b00
mov ecx, str.erase_part
lea eax, [esp + 0x154]
nop dword [eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4046d0
test dl, dl
je 0x4046cc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4046d0
add eax, 2
add ecx, 2
test dl, dl
jne 0x4046b0
xor eax, eax
jmp 0x4046d5
sbb eax, eax
or eax, 1
test eax, eax
jne 0x40473c
cmp dword [esp + 8], 2
jle 0x404c80
mov ecx, str.erase_partition
call fcn.00401b10
push 0x58
lea eax, [esp + 0x6c]
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
xor edx, edx
cmp edx, 0x24
jae 0x404d5a
mov al, byte [esp + edx + 0x1b8]
movsx ecx, al
mov byte [esp + edx*2 + 0x68], al
mov eax, ecx
sar eax, 8
mov byte [esp + edx*2 + 0x69], al
inc edx
test ecx, ecx
jne 0x404701
push 0x4c
lea eax, [esp + 0x6c]
mov dword [esp + 0xb4], ecx
push eax
lea edx, [ecx + 0xa]
jmp 0x404654
mov ecx, str.write_part
lea eax, [esp + 0x154]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x404768
test dl, dl
je 0x404764
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x404768
add eax, 2
add ecx, 2
test dl, dl
jne 0x404748
xor eax, eax
jmp 0x40476d
sbb eax, eax
or eax, 1
test eax, eax
jne 0x4047d4
cmp dword [esp + 8], 3
jle 0x404c80
lea eax, [esp + 0x21c]
push 0x406a38
push eax
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fopen]
add esp, 8
test eax, eax
jne 0x4047a0
push str.File_does_not_exist._n
jmp 0x403b27
push eax
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fclose]
mov esi, dword [esp + 0x18]
lea edx, [esp + 0x1bc]
add esp, 4
mov eax, 0x1000
test esi, esi
mov ecx, edi
cmovne eax, esi
push eax
lea eax, [esp + 0x220]
push eax
call fcn.00402fa0
jmp 0x403b38
mov ecx, str.read_pactime
lea eax, [esp + 0x154]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x404800
test dl, dl
je 0x4047fc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x404800
add eax, 2
add ecx, 2
test dl, dl
jne 0x4047e0
xor eax, eax
jmp 0x404805
sbb eax, eax
or eax, 1
test eax, eax
jne 0x404815
mov ecx, edi
call fcn.00402680
jmp 0x403b40
mov ecx, str.blk_size
lea eax, [esp + 0x154]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x404841
test dl, dl
je 0x40483d
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x404841
add eax, 2
add ecx, 2
test dl, dl
jne 0x404821
xor eax, eax
jmp 0x404846
sbb eax, eax
or eax, 1
test eax, eax
jne 0x404892
cmp dword [esp + 8], 2
jle 0x404c80
push eax
push eax
lea eax, [esp + 0x1c0]
push eax
call dword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll_strtol]
mov esi, eax
add esp, 0xc
test esi, esi
jns 0x40487b
mov dword [esp + 0x14], 0
jmp 0x403b40
cmp esi, 0xffff
mov eax, 0xffff
cmovg esi, eax
mov dword [esp + 0x14], esi
jmp 0x403b40
mov ecx, str.chip_uid
lea eax, [esp + 0x154]
nop
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4048c0
test dl, dl
je 0x4048bc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4048c0
add eax, 2
add ecx, 2
test dl, dl
jne 0x4048a0
xor eax, eax
jmp 0x4048c5
sbb eax, eax
or eax, 1
test eax, eax
jne 0x40495d
push eax
push eax
lea edx, [eax + 0x1a]
mov ecx, edi
call fcn.00401550
add esp, 8
mov ecx, edi
call fcn.00401680
mov ecx, edi
call fcn.00401790
mov ecx, edi
call fcn.00401af0
cmp eax, 0xab
je 0x404917
push eax
push str.unexpected_response__0x_04x__n
push 2
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
add esp, 4
push eax
call fcn.00401050
add esp, 0xc
jmp 0x403b40
push str.BSL_REP_READ_CHIP_UID:
push 2
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
add esp, 4
push eax
call fcn.00401050
mov esi, dword [edi]
add esp, 8
movzx ecx, byte [esi + 2]
movzx eax, byte [esi + 3]
shl ecx, 8
or ecx, eax
push ecx
push 2
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
add esp, 4
lea edx, [esi + 4]
mov ecx, eax
call fcn.00401270
add esp, 4
jmp 0x403b40
mov ecx, str.disable_transcode
lea eax, [esp + 0x154]
nop dword [eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x404990
test dl, dl
je 0x40498c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x404990
add eax, 2
add ecx, 2
test dl, dl
jne 0x404970
xor eax, eax
jmp 0x404995
sbb eax, eax
or eax, 1
test eax, eax
jne 0x4049eb
push eax
push eax
lea edx, [eax + 0x21]
mov ecx, edi
call fcn.00401550
add esp, 8
mov ecx, edi
call fcn.00401680
mov ecx, edi
call fcn.00401790
test eax, eax
je 0x403abe
cmp dword [edi + 0x20], 6
jl 0x403ae5
mov eax, dword [edi]
movzx ecx, byte [eax + 1]
movzx eax, byte [eax]
shl eax, 8
or ecx, eax
cmp ecx, 0x80
jne 0x403b00
and dword [edi + 0x14], 0xfffffffd
jmp 0x403b40
mov ecx, str.transcode
lea eax, [esp + 0x154]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x404a17
test dl, dl
je 0x404a13
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x404a17
add eax, 2
add ecx, 2
test dl, dl
jne 0x4049f7
xor eax, eax
jmp 0x404a1c
sbb eax, eax
or eax, 1
test eax, eax
jne 0x404a5e
cmp dword [esp + 8], 2
jle 0x404c80
lea eax, [esp + 0x1b8]
push eax
call dword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll_atoi]
mov ecx, eax
add esp, 4
cmp ecx, 2
jae 0x404c80
mov eax, dword [edi + 0x14]
neg ecx
sbb ecx, ecx
and eax, 0xfffffffd
and ecx, 2
or ecx, eax
mov dword [edi + 0x14], ecx
jmp 0x403b40
mov ecx, str.keep_charge
lea eax, [esp + 0x154]
nop word [eax + eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x404a90
test dl, dl
je 0x404a8c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x404a90
add eax, 2
add ecx, 2
test dl, dl
jne 0x404a70
xor eax, eax
jmp 0x404a95
sbb eax, eax
or eax, 1
test eax, eax
jne 0x404abe
cmp dword [esp + 8], 2
jle 0x404c80
lea eax, [esp + 0x1b8]
push eax
call dword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll_atoi]
add esp, 4
mov dword [esp + 0x28], eax
jmp 0x403b40
mov ecx, str.timeout
lea eax, [esp + 0x154]
nop word [eax + eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x404af0
test dl, dl
je 0x404aec
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x404af0
add eax, 2
add ecx, 2
test dl, dl
jne 0x404ad0
xor eax, eax
jmp 0x404af5
sbb eax, eax
or eax, 1
test eax, eax
jne 0x404b1d
cmp dword [esp + 8], 2
jle 0x404c80
lea eax, [esp + 0x1b8]
push eax
call dword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll_atoi]
add esp, 4
mov dword [edi + 0x2c], eax
jmp 0x403b40
mov ecx, str.end_data
lea eax, [esp + 0x154]
nop dword [eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x404b50
test dl, dl
je 0x404b4c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x404b50
add eax, 2
add ecx, 2
test dl, dl
jne 0x404b30
xor eax, eax
jmp 0x404b55
sbb eax, eax
or eax, 1
test eax, eax
jne 0x404b7e
cmp dword [esp + 8], 2
jle 0x404c80
lea eax, [esp + 0x1b8]
push eax
call dword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll_atoi]
add esp, 4
mov dword [esp + 0x24], eax
jmp 0x403b40
mov ecx, str.reset
lea eax, [esp + 0x154]
nop word [eax + eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x404bb0
test dl, dl
je 0x404bac
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x404bb0
add eax, 2
add ecx, 2
test dl, dl
jne 0x404b90
xor eax, eax
jmp 0x404bb5
sbb eax, eax
or eax, 1
test eax, eax
jne 0x404bf6
cmp dword [esp + 0x1c], eax
je 0x404c35
push eax
push eax
lea edx, [eax + 5]
mov ecx, edi
call fcn.00401550
add esp, 8
mov ecx, edi
call fcn.00401680
mov ecx, edi
call fcn.00401790
test eax, eax
je 0x403abe
cmp dword [edi + 0x20], 6
jge 0x404d78
or ecx, 0xffffffff
jmp 0x404d8e
mov ecx, str.poweroff
lea eax, [esp + 0x154]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x404c22
test dl, dl
je 0x404c1e
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x404c22
add eax, 2
add ecx, 2
test dl, dl
jne 0x404c02
xor eax, eax
jmp 0x404c27
sbb eax, eax
or eax, 1
test eax, eax
jne 0x404c3f
cmp dword [esp + 0x1c], eax
jne 0x404dad
push str.FDL2_NOT_READY_n
jmp 0x403b27
mov ecx, str.verbose
lea eax, [esp + 0x154]
nop dword [eax + eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x404c70
test dl, dl
je 0x404c6c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x404c70
add eax, 2
add ecx, 2
test dl, dl
jne 0x404c50
xor eax, eax
jmp 0x404c75
sbb eax, eax
or eax, 1
test eax, eax
jne 0x404ca3
cmp dword [esp + 8], 2
jg 0x404c8a
push str.bad_command_n
jmp 0x403b27
lea eax, [esp + 0x1b8]
push eax
call dword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll_atoi]
add esp, 4
mov dword [edi + 0x28], eax
jmp 0x403b40
lea ecx, [esp + 0x154]
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x404cb0
sub ecx, edx
je 0x403b40
push str.unknown_command_n
jmp 0x403b27
push str.wrong_command_or_wrong_mode_detected__reboot_your_phone_by_pressing_POWER_and_VOL_UP_for_7_10_seconds._n
push 2
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
add esp, 4
push eax
call fcn.00401050
add esp, 8
push 1
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll_exit]
or ecx, 0xffffffff
push ecx
push str.unexpected_response__0x_04x__n
push 2
call esi
add esp, 4
push eax
call fcn.00401050
add esp, 0xc
push 1
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll_exit]
push str.timeout_reached_n
push 2
call esi
add esp, 4
push eax
call fcn.00401050
add esp, 8
push 1
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll_exit]
or ecx, 0xffffffff
push ecx
push str.unexpected_response__0x_04x__n
push 2
call esi
jmp 0x403b0e
push str.timeout_reached_n
push 2
call esi
add esp, 4
push eax
call fcn.00401050
add esp, 8
jmp 0x403b1a
push eax
jmp 0x403b01
push str.name_too_long_n
push 2
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
add esp, 4
push eax
call fcn.00401050
add esp, 8
jmp 0x403b1a
mov eax, dword [edi]
movzx ecx, byte [eax + 1]
movzx eax, byte [eax]
shl eax, 8
or ecx, eax
cmp ecx, 0x80
je 0x404dbb
push ecx
push str.unexpected_response__0x_04x__n
push 2
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
add esp, 4
push eax
call fcn.00401050
add esp, 0xc
jmp 0x403ad7
push 0
push 0
mov edx, 0x17
jmp 0x404bc4
mov eax, dword [edi + 0x10]
mov esi, dword [eax]
mov ecx, dword [esi + 4]
mov eax, ecx
test ecx, ecx
je 0x404ddc
cmp dword [esi], 0
je 0x404ddc
mov dword [esi], 0
mov eax, dword [ecx]
call dword [eax + 0x14]
mov eax, dword [esi + 4]
test eax, eax
je 0x404df7
mov ecx, dword [0x4083fc]
test ecx, ecx
je 0x404df0
push eax
call ecx
add esp, 4
mov dword [esi + 4], 0
mov edi, dword [edi + 0x10]
mov esi, dword [edi]
test esi, esi
je 0x404e25
mov eax, dword [0x408400]
test eax, eax
je 0x404e1a
push eax
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
mov dword [0x408400], 0
push 8
push esi
call fcn.00404fba
add esp, 8
push 4
push edi
call fcn.00404fba
push dword [esp + 0x14]
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov ecx, dword [esp + 0x9d8]
add esp, 0xc
xor eax, eax
pop edi
pop esi
xor ecx, esp
call fcn.00404e5a
mov esp, ebp
pop ebp
ret
push str.wrong_command_or_wrong_mode_detected__reboot_your_phone_by_pressing_POWER_and_VOL_UP_for_7_10_seconds._n
jmp 0x403ac3