Function at 0x1004f970
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x101a12d6
mov eax, dword fs:[0]
push eax
sub esp, 0x70
push ebx
push ebp
push esi
push edi
mov eax, dword [0x10279264]
xor eax, esp
push eax
lea eax, [esp + 0x84]
mov dword fs:[0], eax
mov edi, dword [esp + 0xa0]
movzx esi, cx
mov ecx, dword [edi + 0x10]
sub ecx, dword [edi + 0xc]
mov eax, 0x2aaaaaab
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esp + 0x1c], 0
cmp esi, eax
jb 0x1004f9cc
call fcn.1016d669
lea ebp, [esi + esi*2]
shl ebp, 5
add ebp, dword [edi + 0xc]
cmp byte [ebp + 0x48], 0
jne 0x1004f9e5
mov eax, 1
jmp 0x10050a47
mov eax, dword [edi + 0x18]
add eax, 2
mov dword [esp + 0x5c], vtable.ArrayObj_unsigned_char_.0
mov ebx, 1
test eax, eax
jle 0x1004f9fe
mov ebx, eax
push ebx
mov dword [esp + 0x68], ebx
mov byte [esp + 0x6c], 0
call fcn.1016bba0
add esp, 4
mov dword [esp + 0x60], eax
test eax, eax
je 0x1004fa2b
push ebx
mov ecx, eax
push 0
push ecx
mov byte [esp + 0x74], 1
call fcn.10173270
add esp, 0xc
xor edx, edx
mov dword [esp + 0x8c], edx
mov ebx, dword [esp + 0x60]
cmp ebx, edx
jne 0x1004fa89
mov edx, dword [edi + 0x18]
add edx, 2
push edx
push str.not_enough_memory__request__u_bytes_buffer_fail.
lea edi, [esp + 0x74]
mov dword [esp + 0x74], str.FlashToolLib_sv5_common_generic_src_da_cmd.cpp
mov dword [esp + 0x78], 0x8e4
mov byte [esp + 0x7c], 0xff
mov dword [esp + 0x80], str._ERROR:
mov dword [esp + 0x84], str.DA_cmd::CMD_ReadBack
call fcn.10017c90
add esp, 8
mov eax, 2
jmp 0x10050a47
mov eax, dword [esp + 0x9c]
cmp eax, 2
je 0x1004fa9e
cmp eax, 3
jne 0x1004fb80
mov eax, dword [ebp + 0x30]
mov ecx, dword [ebp + 0x34]
mov edi, eax
and edi, 0x1ff
mov dword [esp + 0x54], edi
jne 0x1004fab6
test edx, edx
je 0x1004fb0b
push ecx
push eax
push esi
push str.rb_handle__m_rb_list__d_.m_readback_addr_0x_08X__is_not_512B_alignment_
lea edi, [esp + 0x7c]
mov dword [esp + 0x7c], str.FlashToolLib_sv5_common_generic_src_da_cmd.cpp
mov dword [esp + 0x80], 0x8eb
mov byte [esp + 0x84], 0xff
mov dword [esp + 0x88], str._ERROR:
mov dword [esp + 0x8c], str.DA_cmd::CMD_ReadBack
call fcn.10017c90
push ebx
call fcn.1016dfc5
add esp, 0x14
mov eax, 0xfb0
jmp 0x10050a47
mov eax, dword [ebp + 0x38]
mov ecx, dword [ebp + 0x3c]
mov edx, eax
and edx, 0x1ff
mov dword [esp + 0x54], edx
mov edx, 0
jne 0x1004fb28
test edx, edx
je 0x1004fb80
push ecx
push eax
push esi
push str.rb_handle__m_rb_list__d_.m_readback_len_0x_08X__is_not_512B_alignment_
lea edi, [esp + 0x7c]
mov dword [esp + 0x7c], str.FlashToolLib_sv5_common_generic_src_da_cmd.cpp
mov dword [esp + 0x80], 0x8f1
mov byte [esp + 0x84], 0xff
mov dword [esp + 0x88], str._ERROR:
mov dword [esp + 0x8c], str.DA_cmd::CMD_ReadBack
call fcn.10017c90
add esp, 0x10
lea ecx, [esp + 0x5c]
call fcn.10063540
mov eax, 0xfb1
jmp 0x10050a47
mov dword [esp + 0x18], 0
mov byte [esp + 0x8c], 1
cmp dword [ebp], 0
jne 0x1004fbe0
push 0x50
call fcn.1016d7a5
add esp, 4
mov dword [esp + 0x28], eax
mov byte [esp + 0x8c], 2
test eax, eax
je 0x1004fc7e
cmp dword [ebp + 0x1c], 0x10
jb 0x1004fbcd
mov ecx, dword [ebp + 8]
push 0x102243a0
push eax
call fcn.1013d1c0
jmp 0x1004fc80
push 0x102243a0
lea ecx, [ebp + 8]
push eax
call fcn.1013d1c0
jmp 0x1004fc80
mov eax, dword [ebp + 0x3c]
mov ecx, dword [ebp + 0x2c]
mov edx, dword [ebp + 0x38]
mov edi, dword [ebp + 0x28]
cmp eax, ecx
jb 0x1004fc56
ja 0x1004fbf6
cmp edx, edi
jbe 0x1004fc56
push ecx
push edi
push eax
push edx
push esi
push str.rb_handle__m_rb_list__d_:_m_readback_len_0x_08X____m_buf_len_0x_08X_.
lea edi, [esp + 0x84]
mov dword [esp + 0x84], str.FlashToolLib_sv5_common_generic_src_da_cmd.cpp
mov dword [esp + 0x88], 0x903
mov byte [esp + 0x8c], 0xff
mov dword [esp + 0x90], str._ERROR:
mov dword [esp + 0x94], str.DA_cmd::CMD_ReadBack
call fcn.10017c90
add esp, 0x18
lea ecx, [esp + 0x5c]
call fcn.10063540
mov eax, 0x3f2
jmp 0x10050a47
push 0x20
call fcn.1016d7a5
add esp, 4
mov dword [esp + 0x28], eax
mov byte [esp + 0x8c], 3
test eax, eax
je 0x1004fc7e
mov edx, dword [ebp + 0x28]
mov ecx, dword [ebp + 0x20]
push eax
call fcn.1013dd10
jmp 0x1004fc80
xor eax, eax
push eax
lea esi, [esp + 0x1c]
mov byte [esp + 0x90], 1
call fcn.10063570
mov edi, dword [esp + 0x18]
call fcn.1013d140
test al, al
jne 0x1004fcc7
mov byte [esp + 0x8c], al
test edi, edi
je 0x1004fcb4
mov eax, dword [edi]
mov edx, dword [eax]
push 1
mov ecx, edi
call edx
lea ecx, [esp + 0x5c]
call fcn.10063540
mov eax, 3
jmp 0x10050a47
mov esi, dword [esp + 0xa8]
mov ebx, str._DEBUG:
test esi, esi
je 0x1004fdcb
push esi
push str.CALLBACK_READBACK_PROGRESS_INIT_0x_08X_:_enter_...
lea edi, [esp + 0x74]
mov dword [esp + 0x74], str.FlashToolLib_sv5_common_generic_src_da_cmd.cpp
mov dword [esp + 0x78], 0x912
mov byte [esp + 0x7c], 0
mov dword [esp + 0x80], ebx
mov dword [esp + 0x84], str.DA_cmd::CMD_ReadBack
call fcn.10017c90
mov eax, dword [esp + 0xa4]
add esp, 8
push eax
mov dword [esp + 0x70], str.FlashToolLib_sv5_common_generic_src_da_cmd.cpp
mov dword [esp + 0x74], 0x913
mov byte [esp + 0x78], 0
mov dword [esp + 0x7c], ebx
mov dword [esp + 0x80], str.DA_cmd::CMD_ReadBack
call sym.FlashToolLib.v1.dll_HWStorageTypeToString
push eax
push str.storage_type__s_.
lea edi, [esp + 0x74]
call fcn.10017c90
add esp, 8
cmp dword [ebp], 0
jne 0x1004fd6d
cmp dword [ebp + 0x1c], 0x10
jb 0x1004fd68
mov eax, dword [ebp + 8]
jmp 0x1004fd6f
lea eax, [ebp + 8]
jmp 0x1004fd6f
xor eax, eax
mov ecx, dword [esp + 0xac]
mov edx, dword [ebp + 0x3c]
push ecx
mov ecx, dword [ebp + 0x34]
push eax
mov eax, dword [ebp + 0x38]
push edx
mov edx, dword [ebp + 0x30]
push eax
mov eax, dword [esp + 0xac]
push ecx
push edx
push eax
call esi
push esi
push str.CALLBACK_READBACK_PROGRESS_INIT_0x_08X_:_OK.
lea edi, [esp + 0x74]
mov dword [esp + 0x74], str.FlashToolLib_sv5_common_generic_src_da_cmd.cpp
mov dword [esp + 0x78], 0x915
mov byte [esp + 0x7c], 0
mov dword [esp + 0x80], ebx
mov dword [esp + 0x84], str.DA_cmd::CMD_ReadBack
call fcn.10017c90
add esp, 8
mov esi, dword [esp + 0x60]
push 0xd6
push str.send_DA_READ_CMD_0x_02X_.
lea edi, [esp + 0x74]
mov byte [esi], 0xd6
mov dword [esp + 0x74], str.FlashToolLib_sv5_common_generic_src_da_cmd.cpp
mov dword [esp + 0x78], 0x91a
mov byte [esp + 0x7c], 0
mov dword [esp + 0x80], str._DEBUG:
mov dword [esp + 0x84], str.DA_cmd::CMD_ReadBack
call fcn.10017c90
mov ecx, dword [esp + 0xa0]
mov eax, dword [ecx + 8]
mov edx, dword [esp + 0x9c]
add esp, 8
push 1
push 1
push esi
push eax
push edx
mov ebx, 1
call fcn.1004a550
test eax, eax
je 0x1004fe63
mov byte [esp + 0x8c], 0
mov ecx, dword [esp + 0x18]
test ecx, ecx
je 0x1004fe50
mov eax, dword [ecx]
mov edx, dword [eax]
push ebx
call edx
lea ecx, [esp + 0x5c]
call fcn.10063540
mov eax, 4
jmp 0x10050a47
push str.Windows
push str.send_HOST_OS__s
lea edi, [esp + 0x74]
mov byte [esi], 0xb
mov dword [esp + 0x74], str.FlashToolLib_sv5_common_generic_src_da_cmd.cpp
mov dword [esp + 0x78], 0x921
mov byte [esp + 0x7c], 0
mov dword [esp + 0x80], str._DEBUG:
mov dword [esp + 0x84], str.DA_cmd::CMD_ReadBack
call fcn.10017c90
mov eax, dword [esp + 0xa0]
mov eax, dword [eax + 8]
mov ecx, dword [esp + 0x9c]
add esp, 8
push 1
push 1
push esi
push eax
push ecx
call fcn.1004a550
test eax, eax
je 0x1004fef3
mov byte [esp + 0x8c], 0
mov ecx, dword [esp + 0x18]
test ecx, ecx
je 0x1004fee0
mov edx, dword [ecx]
mov eax, dword [edx]
push 1
call eax
lea ecx, [esp + 0x5c]
call fcn.10063540
mov eax, 5
jmp 0x10050a47
mov al, byte [esp + 0x9c]
movzx ecx, al
push ecx
mov byte [esi], al
mov dword [esp + 0x70], str.FlashToolLib_sv5_common_generic_src_da_cmd.cpp
mov dword [esp + 0x74], 0x928
mov byte [esp + 0x78], 0
mov dword [esp + 0x7c], str._DEBUG:
mov dword [esp + 0x80], str.DA_cmd::CMD_ReadBack
call sym.FlashToolLib.v1.dll_HWStorageTypeToString
push eax
push ecx
push str.send_STORAGE_TYPE_0x_02X___s_
lea edi, [esp + 0x78]
call fcn.10017c90
mov ecx, dword [esp + 0xa4]
mov eax, dword [ecx + 8]
mov edx, dword [esp + 0xa0]
add esp, 0xc
push 1
push 1
push esi
push eax
push edx
call fcn.1004a550
test eax, eax
je 0x1004ff8c
mov byte [esp + 0x8c], 0
mov ecx, dword [esp + 0x18]
test ecx, ecx
je 0x1004ff79
mov eax, dword [ecx]
mov edx, dword [eax]
push 1
call edx
lea ecx, [esp + 0x5c]
call fcn.10063540
mov eax, 5
jmp 0x10050a47
mov eax, dword [ebp + 0x34]
mov ecx, dword [ebp + 0x30]
push eax
push ecx
push str._32___64__send_READBACK_ADDR_0x_016I64X_.
lea edi, [esp + 0x78]
mov dword [esp + 0x78], str.FlashToolLib_sv5_common_generic_src_da_cmd.cpp
mov dword [esp + 0x7c], 0x92f
mov byte [esp + 0x80], 0
mov dword [esp + 0x84], str._DEBUG:
mov dword [esp + 0x88], str.DA_cmd::CMD_ReadBack
call fcn.10017c90
mov edx, dword [ebp + 0x34]
mov eax, dword [ebp + 0x30]
mov ebx, dword [esp + 0xa4]
mov edi, dword [ebx + 8]
mov esi, dword [esp + 0xa0]
add esp, 0xc
push edx
push eax
call fcn.1004ac10
test eax, eax
je 0x10050020
mov byte [esp + 0x8c], 0
mov ecx, dword [esp + 0x18]
test ecx, ecx
je 0x1005000d
mov edx, dword [ecx]
mov eax, dword [edx]
push 1
call eax
lea ecx, [esp + 0x5c]
call fcn.10063540
mov eax, 6
jmp 0x10050a47
mov ecx, dword [ebp + 0x3c]
mov edx, dword [ebp + 0x38]
push ecx
push edx
push str._32___64__send_READBACK_LENGTH_0x_016I64X_.
lea edi, [esp + 0x78]
mov dword [esp + 0x78], str.FlashToolLib_sv5_common_generic_src_da_cmd.cpp
mov dword [esp + 0x7c], 0x936
mov byte [esp + 0x80], 0
mov dword [esp + 0x84], str._DEBUG:
mov dword [esp + 0x88], str.DA_cmd::CMD_ReadBack
call fcn.10017c90
mov eax, dword [ebp + 0x3c]
mov ecx, dword [ebp + 0x38]
mov edi, dword [ebx + 8]
add esp, 0xc
push eax
push ecx
call fcn.1004ac10
test eax, eax
je 0x100500a6
mov byte [esp + 0x8c], 0
mov ecx, dword [esp + 0x18]
test ecx, ecx
je 0x10050093
mov edx, dword [ecx]
mov eax, dword [edx]
push 1
call eax
lea ecx, [esp + 0x5c]
call fcn.10063540
mov eax, 7
jmp 0x10050a47
push str.wait_for_addr_and_length_check_...
lea edi, [esp + 0x70]
mov dword [esp + 0x70], str.FlashToolLib_sv5_common_generic_src_da_cmd.cpp
mov dword [esp + 0x74], 0x93d
mov byte [esp + 0x78], 0
mov dword [esp + 0x7c], str._DEBUG:
mov dword [esp + 0x80], str.DA_cmd::CMD_ReadBack
call fcn.10017c90
mov edi, dword [esp + 0x64]
add esp, 4
push 1
push 0x2710
push 1
mov ecx, ebx
mov eax, dword [ecx + 8]
push edi
push eax
push esi
mov ebx, 1
call fcn.1004a830
test eax, eax
je 0x1005012c
mov byte [esp + 0x8c], 0
mov ecx, dword [esp + 0x18]
test ecx, ecx
je 0x10050119
mov edx, dword [ecx]
mov eax, dword [edx]
push ebx
call eax
lea ecx, [esp + 0x5c]
call fcn.10063540
mov eax, 8
jmp 0x10050a47
cmp byte [edi], 0x5a
je 0x10050227
mov ecx, dword [esp + 0x98]
mov eax, dword [ecx + 8]
push 1
push 0x2710
push 1
lea edx, [esp + 0xa4]
push edx
push eax
push esi
mov ebx, 4
call fcn.1004a830
xor ebx, ebx
cmp eax, ebx
jne 0x100501fd
mov eax, dword [esp + 0x98]
movzx ecx, byte [esp + 0x9a]
movzx edx, byte [esp + 0x9b]
movzx esi, al
shl esi, 8
movzx eax, ah
or esi, eax
shl esi, 8
or esi, ecx
shl esi, 8
or esi, edx
push esi
push esi
mov dword [esp + 0x74], str.FlashToolLib_sv5_common_generic_src_da_cmd.cpp
mov dword [esp + 0x78], 0x945
mov byte [esp + 0x7c], 0xff
mov dword [esp + 0x80], str._ERROR:
mov dword [esp + 0x84], str.DA_cmd::CMD_ReadBack
call sym.FlashToolLib.v1.dll_StatusToString
push eax
push 0x10223800
lea edi, [esp + 0x78]
call fcn.10017c90
mov byte [esp + 0x98], bl
mov ecx, dword [esp + 0x24]
add esp, 0xc
cmp ecx, ebx
je 0x100501ed
mov eax, dword [ecx]
mov edx, dword [eax]
push 1
call edx
lea ecx, [esp + 0x5c]
call fcn.10063540
mov eax, esi
jmp 0x10050a47
mov byte [esp + 0x8c], bl
mov ecx, dword [esp + 0x18]
cmp ecx, ebx
je 0x10050214
mov eax, dword [ecx]
mov edx, dword [eax]
push 1
call edx
lea ecx, [esp + 0x5c]
call fcn.10063540
mov eax, 9
jmp 0x10050a47
push str.check_is_done_
lea edi, [esp + 0x70]
mov dword [esp + 0x70], str.FlashToolLib_sv5_common_generic_src_da_cmd.cpp
mov dword [esp + 0x74], 0x948
mov byte [esp + 0x78], 0
mov dword [esp + 0x7c], str._DEBUG:
mov dword [esp + 0x80], str.DA_cmd::CMD_ReadBack
call fcn.10017c90
mov eax, dword [esp + 0xa0]
add esp, 4
cmp eax, 2
je 0x100502c5
cmp eax, 3
je 0x100502c5
mov ebx, dword [esp + 0xa0]
mov eax, dword [ebx + 0x18]
push eax
push eax
push 0x10224554
lea edi, [esp + 0x78]
mov dword [esp + 0x78], str.FlashToolLib_sv5_common_generic_src_da_cmd.cpp
mov dword [esp + 0x7c], 0x950
mov byte [esp + 0x80], 0
mov dword [esp + 0x84], str._DEBUG:
mov dword [esp + 0x88], str.DA_cmd::CMD_ReadBack
call fcn.10017c90
mov eax, dword [esp + 0xa4]
mov eax, dword [eax + 8]
jmp 0x10050317
mov ebx, dword [esp + 0xa0]
mov eax, dword [ebx + 0x18]
push eax
push eax
push str.send_SDMMC_PACKET_LENGTH_0x_08X__u.
lea edi, [esp + 0x78]
mov dword [esp + 0x78], str.FlashToolLib_sv5_common_generic_src_da_cmd.cpp
mov dword [esp + 0x7c], 0x94c
mov byte [esp + 0x80], 0
mov dword [esp + 0x84], str._DEBUG:
mov dword [esp + 0x88], str.DA_cmd::CMD_ReadBack
call fcn.10017c90
mov ecx, dword [esp + 0xa4]
mov eax, dword [ecx + 8]
add esp, 0xc
push eax
mov eax, dword [ebx + 0x18]
push esi
call fcn.1004ab60
test eax, eax
je 0x10050353
mov byte [esp + 0x8c], 0
mov ecx, dword [esp + 0x18]
test ecx, ecx
je 0x10050340
mov edx, dword [ecx]
mov eax, dword [edx]
push 1
call eax
lea ecx, [esp + 0x5c]
call fcn.10063540
mov eax, 0xb
jmp 0x10050a47
mov eax, dword [esp + 0xa4]
xor edi, edi
cmp eax, edi
jne 0x1005036f
mov ecx, dword [ebp + 0x3c]
mov edx, dword [ebp + 0x38]
push ecx
push edx
mov eax, esi
call fcn.1004a500
mov dword [esp + 0xac], eax
mov dword [esp + 0x2c], edi
mov dword [esp + 0x30], edi
mov dword [esp + 0xa8], edi
cmp dword [ebp + 0x3c], edi
jb 0x10050920
ja 0x10050399
cmp dword [ebp + 0x38], edi
jbe 0x10050920
mov esi, dword [esp + 0x60]
mov eax, dword [esp + 0xa0]
mov ebx, dword [esp + 0x2c]
mov edi, dword [eax + 0x18]
mov ecx, dword [ebp + 0x38]
mov eax, dword [ebp + 0x3c]
sub ecx, ebx
sbb eax, dword [esp + 0x30]
xor edx, edx
lea esp, [esp]
cmp edx, eax
jb 0x100503cf
ja 0x100503ca
cmp edi, ecx
jbe 0x100503cf
mov edi, dword [ebp + 0x38]
sub edi, ebx
mov ecx, dword [esp + 0x98]
mov eax, dword [ecx + 8]
mov edx, dword [esp + 0x94]
push 1
push 0x2710
push 1
push esi
push eax
lea ebx, [edi + 2]
push edx
call fcn.1004a830
cmp eax, 0x3e8
je 0x10050a60
xor ecx, ecx
cmp eax, ecx
je 0x10050576
mov ebx, str.DA_cmd::CMD_ReadBack
push str.ReadData___incomplete_
lea edi, [esp + 0x70]
mov dword [esp + 0x70], str.FlashToolLib_sv5_common_generic_src_da_cmd.cpp
mov dword [esp + 0x74], 0x97a
mov byte [esp + 0x78], 0xd2
mov dword [esp + 0x7c], str._WARN:
mov dword [esp + 0x80], ebx
call fcn.10017c90
mov esi, dword [esp + 0x9c]
add esp, 4
lea eax, [esp + 0x20]
push eax
lea eax, [esp + 0x28]
call fcn.1003db60
test eax, eax
jne 0x10050ac1
mov ecx, esi
call fcn.1003d890
test eax, eax
jne 0x10050bb2
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x24]
push ecx
call fcn.1003d940
test eax, eax
je 0x10050635
mov ecx, dword [ebp + 0x3c]
fild dword [esp + 0xa8]
mov edx, dword [ebp + 0x38]
mov eax, dword [esp + 0x30]
push ecx
mov ecx, dword [esp + 0x30]
push edx
mov edx, dword [esp + 0xb0]
push eax
mov dword [esp + 0x78], str.FlashToolLib_sv5_common_generic_src_da_cmd.cpp
mov dword [esp + 0x7c], 0x98c
mov byte [esp + 0x80], 0
mov dword [esp + 0x84], str._DEBUG:
mov dword [esp + 0x88], ebx
push ecx
test edx, edx
jge 0x100504d9
fadd dword [0x1024b9e8]
mov eax, dword [esp + 0xbc]
fild dword [esp + 0xbc]
test eax, eax
jge 0x100504f1
fadd dword [0x1024b9e8]
fdivp st(1)
lea edi, [esp + 0x7c]
fmul qword [0x1024b9e0]
fnstcw word [esp + 0xa8]
movzx eax, word [esp + 0xa8]
or eax, 0xc00
mov dword [esp + 0xa4], eax
mov eax, dword [esp + 0x2c]
fldcw word [esp + 0xa4]
fistp dword [esp + 0xa4]
mov cx, word [esp + 0xa4]
movzx edx, cx
push edx
fldcw word [esp + 0xac]
push eax
push str.Retry__u_:___u___:__llu__llu_bytes_read.
call fcn.10017c90
mov byte [esp + 0xa8], 0
mov ecx, dword [esp + 0x34]
add esp, 0x1c
test ecx, ecx
je 0x10050563
mov edx, dword [ecx]
mov eax, dword [edx]
push 1
call eax
lea ecx, [esp + 0x5c]
call fcn.10063540
mov eax, 0xe
jmp 0x10050a47
xor eax, eax
cmp edi, 2
mov dword [esp + 0x9c], ecx
mov dword [esp + 0xa4], ecx
jl 0x100505ae
movzx edx, byte [esi + eax]
add word [esp + 0x9c], dx
movzx edx, byte [esi + eax + 1]
add word [esp + 0xa4], dx
add eax, 2
lea edx, [edi - 1]
cmp eax, edx
jb 0x1005058b
cmp eax, edi
jae 0x100505ba
movzx ax, byte [esi + eax]
movzx ecx, ax
mov eax, dword [esp + 0xa4]
mov edx, dword [esp + 0x9c]
add edx, eax
add ecx, edx
movzx edx, byte [esi + edi]
movzx eax, dx
movzx edx, byte [esi + edi + 1]
shl eax, 8
or edx, eax
movzx eax, dx
cmp cx, ax
je 0x1005070b
movzx eax, ax
movzx ecx, cx
push eax
push ecx
push str.checksum_fail:_buf_checksum_0x_04X____packet_checksum_0x_04X_.
lea edi, [esp + 0x78]
mov dword [esp + 0x78], str.FlashToolLib_sv5_common_generic_src_da_cmd.cpp
mov dword [esp + 0x7c], 0x9a7
mov byte [esp + 0x80], 0xd2
mov dword [esp + 0x84], str._WARN:
mov dword [esp + 0x88], str.DA_cmd::CMD_ReadBack
call fcn.10017c90
add esp, 0xc
mov ebx, str.DA_cmd::CMD_ReadBack
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x6c], str.FlashToolLib_sv5_common_generic_src_da_cmd.cpp
lea edi, [esp + 0x6c]
cmp esi, 3
jae 0x10050d72
inc esi
push 0xa5
push esi
push str.Retry__u_:_send_NACK_0x_02X__to_inform_DA_to_re_transmit.
mov dword [esp + 0x28], esi
mov byte [esp + 0x23], 0xa5
mov dword [esp + 0x7c], 0x9b6
mov byte [esp + 0x80], 0
mov dword [esp + 0x84], str._DEBUG:
mov dword [esp + 0x88], str.DA_cmd::CMD_ReadBack
call fcn.10017c90
mov edx, dword [esp + 0xa4]
mov eax, dword [edx + 8]
mov edx, dword [esp + 0xa0]
add esp, 0xc
push 1
push 1
lea ecx, [esp + 0x1f]
push ecx
push eax
push edx
mov ebx, 1
call fcn.1004a550
test eax, eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x6c], str.FlashToolLib_sv5_common_generic_src_da_cmd.cpp
mov dword [esp + 0x78], str._DEBUG:
mov dword [esp + 0x7c], str.DA_cmd::CMD_ReadBack
jne 0x10050ca3
mov ecx, dword [esp + 0x2c]
push eax
push ecx
push esi
push str.Retry__u_:_re_transmission_this_frame__offset__llu_.
lea edi, [esp + 0x7c]
mov dword [esp + 0x80], 0x9bd
mov byte [esp + 0x84], 0
call fcn.10017c90
add esp, 0x10
jmp 0x10050399
mov ecx, dword [esp + 0x94]
mov eax, dword [ecx + 4]
test eax, eax
je 0x10050725
cmp dword [eax], 0x2694
je 0x10050e90
mov ebx, dword [esp + 0x18]
mov edx, dword [ebx]
mov edx, dword [edx + 8]
lea eax, [esp + 0x28]
push eax
push edi
push esi
mov ecx, ebx
call edx
test eax, eax
mov eax, dword [esp + 0x28]
jne 0x10051047
cmp edi, eax
jne 0x10051047
mov eax, dword [esp + 0x2c]
mov edx, dword [ebp + 0x38]
xor ecx, ecx
add eax, edi
adc dword [esp + 0x30], ecx
mov edi, dword [ebp + 0x3c]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0xac]
mov ebx, ecx
mov dword [esp + 0x9c], ebx
fild dword [esp + 0x9c]
mov dword [esp + 0x2c], eax
test ebx, ebx
jge 0x10050788
fadd qword [0x1024b9f8]
mov dword [esp + 0x34], eax
fnstcw word [esp + 0x9c]
mov eax, dword [esp + 0x30]
mov ebx, eax
and eax, 0x7fffffff
mov dword [esp + 0x38], eax
fild qword [esp + 0x34]
and ebx, 0x80000000
mov dword [esp + 0x40], ebx
mov eax, edi
mov ebx, edi
mov dword [esp + 0x3c], 0
fild qword [esp + 0x3c]
and eax, 0x7fffffff
and ebx, 0x80000000
mov dword [esp + 0x48], eax
fchs
mov dword [esp + 0x50], ebx
faddp st(1)
xor ebx, ebx
mov dword [esp + 0x44], edx
fild qword [esp + 0x44]
mov dword [esp + 0x4c], ebx
fild qword [esp + 0x4c]
movzx eax, word [esp + 0x9c]
or eax, 0xc00
mov dword [esp + 0xa4], eax
fchs
faddp st(1)
fdivp st(1)
fmul st(1)
fldcw word [esp + 0xa4]
fistp qword [esp + 0x54]
mov eax, dword [esp + 0x54]
fldcw word [esp + 0x9c]
cmp ecx, eax
jae 0x10050821
mov eax, ecx
mov ecx, dword [esp + 0x94]
mov ecx, dword [ecx + 4]
cmp ecx, ebx
je 0x1005083b
cmp dword [ecx], 0x2694
je 0x10050ee6
mov ecx, eax
sub ecx, dword [esp + 0xa8]
je 0x100508cf
mov ecx, dword [esp + 0xb0]
mov dword [esp + 0xa8], eax
cmp ecx, ebx
je 0x100508cf
mov ebx, dword [esp + 0xb4]
push ebx
push edi
push edx
mov edx, dword [esp + 0x3c]
push edx
mov edx, dword [esp + 0x3c]
mov dword [esp + 0xac], eax
fild dword [esp + 0xac]
push edx
test eax, eax
jge 0x10050888
fadd qword [0x1024b9f8]
fdivrp st(1)
fmul qword [0x1024b9e0]
fnstcw word [esp + 0xb0]
movzx eax, word [esp + 0xb0]
or eax, 0xc00
mov dword [esp + 0xb8], eax
fldcw word [esp + 0xb8]
fistp dword [esp + 0xb8]
mov al, byte [esp + 0xb8]
movzx edx, al
push edx
fldcw word [esp + 0xb4]
call ecx
jmp 0x100508d1
fstp st(0)
mov eax, dword [esp + 0x98]
mov eax, dword [eax + 8]
mov edx, dword [esp + 0x94]
push 1
push 1
lea ecx, [esp + 0x1f]
push ecx
push eax
push edx
mov ebx, 1
mov byte [esp + 0x2b], 0x5a
call fcn.1004a550
test eax, eax
jne 0x10050f5a
mov eax, dword [esp + 0x30]
cmp eax, dword [ebp + 0x3c]
jb 0x1005039d
ja 0x10050920
mov ecx, dword [esp + 0x2c]
cmp ecx, dword [ebp + 0x38]
jb 0x1005039d
mov eax, dword [ebp + 0x3c]
fild dword [esp + 0xa8]
mov ecx, dword [ebp + 0x38]
mov edx, dword [esp + 0x30]
push eax
mov eax, dword [esp + 0x30]
push ecx
mov ecx, dword [esp + 0xb0]
mov esi, str.FlashToolLib_sv5_common_generic_src_da_cmd.cpp
mov ebx, str._DEBUG:
push edx
mov dword [esp + 0x78], esi
mov dword [esp + 0x7c], 0x9ee
mov byte [esp + 0x80], 0
mov dword [esp + 0x84], ebx
mov dword [esp + 0x88], str.DA_cmd::CMD_ReadBack
push eax
test ecx, ecx
jge 0x1005097a
fadd dword [0x1024b9e8]
mov edx, dword [esp + 0xbc]
fild dword [esp + 0xbc]
test edx, edx
jge 0x10050992
fadd dword [0x1024b9e8]
fdivp st(1)
lea edi, [esp + 0x7c]
fmul qword [0x1024b9e0]
fnstcw word [esp + 0xa8]
movzx eax, word [esp + 0xa8]
or eax, 0xc00
mov dword [esp + 0xa4], eax
fldcw word [esp + 0xa4]
fistp dword [esp + 0xa4]
mov ax, word [esp + 0xa4]
movzx ecx, ax
push ecx
fldcw word [esp + 0xac]
push str.__u___:__llu__llu_bytes_read.
call fcn.10017c90
push 0x102135a4
lea edi, [esp + 0x88]
mov dword [esp + 0x88], esi
mov dword [esp + 0x8c], 0x9f0
mov byte [esp + 0x90], 0
mov dword [esp + 0x94], ebx
mov dword [esp + 0x98], str.DA_cmd::CMD_ReadBack
call fcn.10017c90
mov byte [esp + 0xa8], 0
mov ecx, dword [esp + 0x34]
add esp, 0x1c
test ecx, ecx
je 0x10050a3c
mov edx, dword [ecx]
mov eax, dword [edx]
push 1
call eax
lea ecx, [esp + 0x5c]
call fcn.10063540
xor eax, eax
mov ecx, dword [esp + 0x84]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x7c
ret 0x24
xor ebx, ebx
push str.ReadData___stop_
lea edi, [esp + 0x70]
mov dword [esp + 0x70], str.FlashToolLib_sv5_common_generic_src_da_cmd.cpp
mov dword [esp + 0x74], 0x975
mov byte [esp + 0x78], bl
mov dword [esp + 0x7c], str._DEBUG:
mov dword [esp + 0x80], str.DA_cmd::CMD_ReadBack
call fcn.10017c90
mov byte [esp + 0x90], bl
mov ecx, dword [esp + 0x1c]
add esp, 4
cmp ecx, ebx
je 0x10050ab1
mov edx, dword [ecx]
mov eax, dword [edx]
push 1
call eax
lea ecx, [esp + 0x5c]
call fcn.10063540
mov eax, 0x3e8
jmp 0x10050a47
mov ecx, dword [ebp + 0x3c]
fild dword [esp + 0xa8]
mov edx, dword [ebp + 0x38]
mov eax, dword [esp + 0x30]
push ecx
mov ecx, dword [esp + 0x30]
push edx
mov edx, dword [esp + 0xb0]
push eax
mov dword [esp + 0x78], str.FlashToolLib_sv5_common_generic_src_da_cmd.cpp
mov dword [esp + 0x7c], 0x980
mov byte [esp + 0x80], 0
mov dword [esp + 0x84], str._DEBUG:
mov dword [esp + 0x88], ebx
push ecx
test edx, edx
jge 0x10050b15
fadd dword [0x1024b9e8]
mov eax, dword [esp + 0xbc]
fild dword [esp + 0xbc]
test eax, eax
jge 0x10050b2d
fadd dword [0x1024b9e8]
fdivp st(1)
lea edi, [esp + 0x7c]
fmul qword [0x1024b9e0]
fnstcw word [esp + 0xa8]
movzx eax, word [esp + 0xa8]
or eax, 0xc00
mov dword [esp + 0xa4], eax
mov eax, dword [esp + 0x2c]
fldcw word [esp + 0xa4]
fistp dword [esp + 0xa4]
mov cx, word [esp + 0xa4]
movzx edx, cx
push edx
fldcw word [esp + 0xac]
push eax
push str.Retry__u_:___u___:__llu__llu_bytes_read.
call fcn.10017c90
mov byte [esp + 0xa8], 0
mov ecx, dword [esp + 0x34]
add esp, 0x1c
test ecx, ecx
je 0x10050b9f
mov edx, dword [ecx]
mov eax, dword [edx]
push 1
call eax
lea ecx, [esp + 0x5c]
call fcn.10063540
mov eax, 0xc
jmp 0x10050a47
mov ecx, dword [ebp + 0x3c]
fild dword [esp + 0xa8]
mov edx, dword [ebp + 0x38]
mov eax, dword [esp + 0x30]
push ecx
mov ecx, dword [esp + 0x30]
push edx
mov edx, dword [esp + 0xb0]
push eax
mov dword [esp + 0x78], str.FlashToolLib_sv5_common_generic_src_da_cmd.cpp
mov dword [esp + 0x7c], 0x986
mov byte [esp + 0x80], 0
mov dword [esp + 0x84], str._DEBUG:
mov dword [esp + 0x88], ebx
push ecx
test edx, edx
jge 0x10050c06
fadd dword [0x1024b9e8]
mov eax, dword [esp + 0xbc]
fild dword [esp + 0xbc]
test eax, eax
jge 0x10050c1e
fadd dword [0x1024b9e8]
fdivp st(1)
lea edi, [esp + 0x7c]
fmul qword [0x1024b9e0]
fnstcw word [esp + 0xa8]
movzx eax, word [esp + 0xa8]
or eax, 0xc00
mov dword [esp + 0xa4], eax
mov eax, dword [esp + 0x2c]
fldcw word [esp + 0xa4]
fistp dword [esp + 0xa4]
mov cx, word [esp + 0xa4]
movzx edx, cx
push edx
fldcw word [esp + 0xac]
push eax
push str.Retry__u_:___u___:__llu__llu_bytes_read.
call fcn.10017c90
mov byte [esp + 0xa8], 0
mov ecx, dword [esp + 0x34]
add esp, 0x1c
test ecx, ecx
je 0x10050c90
mov edx, dword [ecx]
mov eax, dword [edx]
push 1
call eax
lea ecx, [esp + 0x5c]
call fcn.10063540
mov eax, 0xd
jmp 0x10050a47
mov ecx, dword [ebp + 0x3c]
fild dword [esp + 0xa8]
mov edx, dword [ebp + 0x38]
push ecx
mov ecx, dword [esp + 0x30]
push edx
mov edx, dword [esp + 0xb0]
xor ebx, ebx
push eax
mov dword [esp + 0x7c], 0x9b8
mov byte [esp + 0x80], bl
push ecx
test edx, edx
jge 0x10050cda
fadd dword [0x1024b9e8]
mov eax, dword [esp + 0xbc]
fild dword [esp + 0xbc]
test eax, eax
jge 0x10050cf2
fadd dword [0x1024b9e8]
fdivp st(1)
lea edi, [esp + 0x7c]
fmul qword [0x1024b9e0]
fnstcw word [esp + 0xa8]
movzx eax, word [esp + 0xa8]
or eax, 0xc00
mov dword [esp + 0xa4], eax
fldcw word [esp + 0xa4]
fistp dword [esp + 0xa4]
mov cx, word [esp + 0xa4]
movzx edx, cx
push edx
fldcw word [esp + 0xac]
push esi
push str.Retry__u_:___u___:__llu__llu_bytes_read.
call fcn.10017c90
mov byte [esp + 0xa8], bl
mov ecx, dword [esp + 0x34]
add esp, 0x1c
cmp ecx, ebx
je 0x10050d5f
mov eax, dword [ecx]
mov edx, dword [eax]
push 1
call edx
lea ecx, [esp + 0x5c]
call fcn.10063540
mov eax, 0x10
jmp 0x10050a47
push esi
push esi
push str.Retry__u_:_stop_to_re_transmit__retry__u_times_fail_
mov dword [esp + 0x7c], 0x9af
mov byte [esp + 0x80], 0xff
mov dword [esp + 0x84], str._ERROR:
mov dword [esp + 0x88], ebx
call fcn.10017c90
fild dword [esp + 0xb4]
mov eax, dword [ebp + 0x3c]
mov ecx, dword [ebp + 0x38]
mov edx, dword [esp + 0x3c]
add esp, 0xc
push eax
mov eax, dword [esp + 0x30]
push ecx
mov ecx, dword [esp + 0xb0]
push edx
mov dword [esp + 0x78], str.FlashToolLib_sv5_common_generic_src_da_cmd.cpp
mov dword [esp + 0x7c], 0x9b0
mov byte [esp + 0x80], 0
mov dword [esp + 0x84], str._DEBUG:
mov dword [esp + 0x88], ebx
push eax
test ecx, ecx
jge 0x10050df7
fadd dword [0x1024b9e8]
mov edx, dword [esp + 0xbc]
fild dword [esp + 0xbc]
test edx, edx
jge 0x10050e0f
fadd dword [0x1024b9e8]
fdivp st(1)
lea edi, [esp + 0x7c]
fmul qword [0x1024b9e0]
fnstcw word [esp + 0xa8]
movzx eax, word [esp + 0xa8]
or eax, 0xc00
mov dword [esp + 0xa4], eax
fldcw word [esp + 0xa4]
fistp dword [esp + 0xa4]
mov ax, word [esp + 0xa4]
movzx ecx, ax
push ecx
fldcw word [esp + 0xac]
push esi
push str.Retry__u_:___u___:__llu__llu_bytes_read.
call fcn.10017c90
mov byte [esp + 0xa8], 0
mov ecx, dword [esp + 0x34]
add esp, 0x1c
test ecx, ecx
je 0x10050e7d
mov edx, dword [ecx]
mov eax, dword [edx]
push 1
call eax
lea ecx, [esp + 0x5c]
call fcn.10063540
mov eax, 0xf
jmp 0x10050a47
mov ecx, dword [eax]
push ecx
push eax
push str.m_p_stopflag_0x_08X__lu__force_to_stop_
lea edi, [esp + 0x78]
mov dword [esp + 0x78], str.FlashToolLib_sv5_common_generic_src_da_cmd.cpp
mov dword [esp + 0x7c], 0x9c5
mov byte [esp + 0x80], 0
mov dword [esp + 0x84], str._DEBUG:
mov dword [esp + 0x88], str.DA_cmd::CMD_ReadBack
call fcn.10017c90
mov byte [esp + 0x98], 0
mov ecx, dword [esp + 0x24]
add esp, 0xc
test ecx, ecx
jmp 0x10050aa7
mov ecx, dword [esp + 0x94]
fstp st(0)
mov eax, dword [ecx + 4]
mov edx, dword [eax]
push edx
push eax
push str.m_p_stopflag_0x_08X__lu__force_to_stop_
lea edi, [esp + 0x78]
mov dword [esp + 0x78], str.FlashToolLib_sv5_common_generic_src_da_cmd.cpp
mov dword [esp + 0x7c], 0x9db
mov byte [esp + 0x80], bl
mov dword [esp + 0x84], str._DEBUG:
mov dword [esp + 0x88], str.DA_cmd::CMD_ReadBack
call fcn.10017c90
mov byte [esp + 0x98], bl
mov ecx, dword [esp + 0x24]
mov eax, dword [ecx]
mov edx, dword [eax]
add esp, 0xc
push 1
call edx
lea ecx, [esp + 0x5c]
call fcn.10063540
mov eax, 0x3e8
jmp 0x10050a47
mov eax, dword [ebp + 0x3c]
fild dword [esp + 0xa8]
mov ecx, dword [ebp + 0x38]
mov edx, dword [esp + 0x30]
push eax
mov eax, dword [esp + 0x30]
push ecx
mov ecx, dword [esp + 0xb0]
xor ebx, ebx
push edx
mov dword [esp + 0x78], str.FlashToolLib_sv5_common_generic_src_da_cmd.cpp
mov dword [esp + 0x7c], 0x9ea
mov byte [esp + 0x80], bl
mov dword [esp + 0x84], str._DEBUG:
mov dword [esp + 0x88], str.DA_cmd::CMD_ReadBack
push eax
test ecx, ecx
jge 0x10050fb3
fadd dword [0x1024b9e8]
mov edx, dword [esp + 0xbc]
fild dword [esp + 0xbc]
test edx, edx
jge 0x10050fcb
fadd dword [0x1024b9e8]
fdivp st(1)
lea edi, [esp + 0x7c]
fmul qword [0x1024b9e0]
fnstcw word [esp + 0xa8]
movzx eax, word [esp + 0xa8]
or eax, 0xc00
mov dword [esp + 0xa4], eax
fldcw word [esp + 0xa4]
fistp dword [esp + 0xa4]
mov ax, word [esp + 0xa4]
movzx ecx, ax
push ecx
fldcw word [esp + 0xac]
push ebx
push str.Retry__u_:___u___:__llu__llu_bytes_read.
call fcn.10017c90
mov byte [esp + 0xa8], bl
mov ecx, dword [esp + 0x34]
mov edx, dword [ecx]
mov eax, dword [edx]
add esp, 0x1c
push 1
call eax
lea ecx, [esp + 0x5c]
call fcn.10063540
mov eax, 0x12
jmp 0x10050a47
mov esi, dword [esp + 0x1c]
push edi
push eax
push esi
push str.Retry__u_:_fwrite__lu__lu__fail_
lea edi, [esp + 0x7c]
mov dword [esp + 0x7c], str.FlashToolLib_sv5_common_generic_src_da_cmd.cpp
mov dword [esp + 0x80], 0x9ca
mov byte [esp + 0x84], 0xff
mov dword [esp + 0x88], str._ERROR:
mov dword [esp + 0x8c], str.DA_cmd::CMD_ReadBack
call fcn.10017c90
fild dword [esp + 0xb8]
mov ecx, dword [ebp + 0x3c]
mov edx, dword [ebp + 0x38]
mov eax, dword [esp + 0x40]
push ecx
mov ecx, dword [esp + 0x40]
push edx
mov edx, dword [esp + 0xc0]
push eax
mov dword [esp + 0x88], str.FlashToolLib_sv5_common_generic_src_da_cmd.cpp
mov dword [esp + 0x8c], 0x9cb
mov byte [esp + 0x90], 0
mov dword [esp + 0x94], str._DEBUG:
mov dword [esp + 0x98], str.DA_cmd::CMD_ReadBack
push ecx
test edx, edx
jge 0x100510eb
fadd dword [0x1024b9e8]
mov eax, dword [esp + 0xcc]
fild dword [esp + 0xcc]
test eax, eax
jge 0x10051103
fadd dword [0x1024b9e8]
fdivp st(1)
lea edi, [esp + 0x8c]
fmul qword [0x1024b9e0]
fnstcw word [esp + 0xb8]
movzx eax, word [esp + 0xb8]
or eax, 0xc00
mov dword [esp + 0xb4], eax
fldcw word [esp + 0xb4]
fistp dword [esp + 0xb4]
mov cx, word [esp + 0xb4]
movzx edx, cx
push edx
fldcw word [esp + 0xbc]
push esi
push str.Retry__u_:___u___:__llu__llu_bytes_read.
call fcn.10017c90
mov byte [esp + 0xb8], 0
mov eax, dword [ebx]
mov edx, dword [eax]
add esp, 0x2c
push 1
mov ecx, ebx
call edx
lea ecx, [esp + 0x5c]
call fcn.10063540
mov eax, 0x11
jmp 0x10050a47