Function at 0x42438c
Capabilities:
Copy file

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x524bec
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x888
mov dword [ebp - 0x894], ecx
lea ecx, [ebp - 0x1c]
call fcn.0050ef40
mov dword [ebp - 4], 0
mov dword [ebp - 0x30], 0
push 0x10000
call fcn.004e9f6e
add esp, 4
mov dword [ebp - 0x30], eax
cmp dword [ebp - 0x30], 0
jne 0x424417
push 0
push 0x54d830
push str.Cant_allocate_memory_to_generate_IDtable_binary_file
mov ecx, dword [ebp - 0x894]
call fcn.0050b84e
mov dword [ebp - 0x880], 0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x1c]
call fcn.0050f035
mov eax, dword [ebp - 0x880]
jmp 0x425014
push 0x10000
push 0
mov eax, dword [ebp - 0x30]
push eax
call fcn.004e9480
add esp, 0xc
push 0x208
push 0
lea ecx, [ebp - 0x238]
push ecx
call fcn.004e9480
add esp, 0xc
mov edx, dword [ebp - 0x894]
add edx, 0x2dd
push edx
lea eax, [ebp - 0x238]
push eax
call fcn.004e96e0
add esp, 8
push 0x54d870
lea ecx, [ebp - 0x238]
push ecx
call fcn.004e96f0
add esp, 8
push 0x208
push 0
lea edx, [ebp - 0x650]
push edx
call fcn.004e9480
add esp, 0xc
push 0x10
push 0x56e380
lea eax, [ebp - 0x650]
push eax
call fcn.004e9b20
add esp, 0xc
movsx ecx, byte [ebp - 0x650]
test ecx, ecx
jne 0x4244e9
cmp dword [0x56d5d0], 0x979
jne 0x4244c9
push 0x54d87c
lea edx, [ebp - 0x650]
push edx
call fcn.004e96e0
add esp, 8
jmp 0x4244e9
cmp dword [0x56d5d0], 0x97a
jne 0x4244e9
push 0x54d884
lea eax, [ebp - 0x650]
push eax
call fcn.004e96e0
add esp, 8
cmp dword [0x56e36c], 0
je 0x424555
push 0x54d88c
lea ecx, [ebp - 0x650]
push ecx
call fcn.004e96f0
add esp, 8
mov edx, dword [ebp - 0x894]
add edx, 0x2d6
push edx
lea eax, [ebp - 0x650]
push eax
call fcn.004e96f0
add esp, 8
movsx ecx, byte [0x56e360]
test ecx, ecx
je 0x424555
push 0x54d890
lea edx, [ebp - 0x650]
push edx
call fcn.004e96f0
add esp, 8
push 0x56e360
lea eax, [ebp - 0x650]
push eax
call fcn.004e96f0
add esp, 8
lea ecx, [ebp - 0x650]
push ecx
lea edx, [ebp - 0x238]
push edx
call fcn.004e96f0
add esp, 8
cmp dword [0x56d5d0], 0x979
jne 0x4245b2
mov eax, dword [ebp - 0x894]
cmp dword [eax + 0xe674], 0
je 0x42459c
push 0x54d894
lea ecx, [ebp - 0x238]
push ecx
call fcn.004e96f0
add esp, 8
jmp 0x4245b0
push 0x54d8a4
lea edx, [ebp - 0x238]
push edx
call fcn.004e96f0
add esp, 8
jmp 0x4245f7
cmp dword [0x56d5d0], 0x97a
jne 0x4245f7
mov eax, dword [ebp - 0x894]
cmp dword [eax + 0xe674], 0
je 0x4245e3
push 0x54d8b4
lea ecx, [ebp - 0x238]
push ecx
call fcn.004e96f0
add esp, 8
jmp 0x4245f7
push 0x54d8c4
lea edx, [ebp - 0x238]
push edx
call fcn.004e96f0
add esp, 8
push 0
push 0x80
push 3
push 0
push 1
push SysReAllocStringLen
lea eax, [ebp - 0x238]
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov dword [ebp - 0x87c], eax
cmp dword [ebp - 0x87c], 0xffffffff
jne 0x424730
push 0x208
push 0
lea ecx, [ebp - 0x878]
push ecx
call fcn.004e9480
add esp, 0xc
cmp dword [0x56d5d0], 0x97a
jne 0x424694
mov edx, dword [ebp - 0x894]
cmp dword [edx + 0xe674], 0
je 0x424677
lea eax, [ebp - 0x650]
push eax
push str.Cant_open_.Firmware_sISP2256RDT.bin__please_check.
lea ecx, [ebp - 0x878]
push ecx
call fcn.004e998d
add esp, 0xc
jmp 0x424692
lea edx, [ebp - 0x650]
push edx
push str.Cant_open_.Firmware_sISP2256.bin__please_check.
lea eax, [ebp - 0x878]
push eax
call fcn.004e998d
add esp, 0xc
jmp 0x4246e7
cmp dword [0x56d5d0], 0x979
jne 0x4246e7
mov ecx, dword [ebp - 0x894]
cmp dword [ecx + 0xe674], 0
je 0x4246cc
lea edx, [ebp - 0x650]
push edx
push str.Cant_open_.Firmware_sISP2258RDT.bin__please_check.
lea eax, [ebp - 0x878]
push eax
call fcn.004e998d
add esp, 0xc
jmp 0x4246e7
lea ecx, [ebp - 0x650]
push ecx
push str.Cant_open_.Firmware_sISP2258.bin__please_check.
lea edx, [ebp - 0x878]
push edx
call fcn.004e998d
add esp, 0xc
push 0
push 0x54d9ac
lea eax, [ebp - 0x878]
push eax
mov ecx, dword [ebp - 0x894]
call fcn.0050b84e
mov ecx, dword [ebp - 0x30]
push ecx
call fcn.004e9e5d
add esp, 4
mov dword [ebp - 0x884], 0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x1c]
call fcn.0050f035
mov eax, dword [ebp - 0x884]
jmp 0x425014
mov edx, dword [ebp - 0x87c]
mov dword [ebp - 0x18], edx
lea ecx, [ebp - 0x1c]
call fcn.004274b0
push 0x10000
mov eax, dword [ebp - 0x30]
push eax
lea ecx, [ebp - 0x1c]
call fcn.0050f20f
push 0x10
push 0
lea ecx, [ebp - 0x66c]
push ecx
call fcn.004e9480
add esp, 0xc
push 0x10
mov edx, dword [ebp - 0x30]
add edx, 0xeff0
push edx
lea eax, [ebp - 0x66c]
push eax
call fcn.004e9b20
add esp, 0xc
mov ecx, dword [ebp - 0x87c]
push ecx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push 0x208
push 0
lea edx, [ebp - 0x238]
push edx
call fcn.004e9480
add esp, 0xc
mov eax, dword [ebp - 0x894]
add eax, 0x2dd
push eax
lea ecx, [ebp - 0x238]
push ecx
call fcn.004e96e0
add esp, 8
push 0x54d9b4
lea edx, [ebp - 0x238]
push edx
call fcn.004e96f0
add esp, 8
lea eax, [ebp - 0x650]
push eax
lea ecx, [ebp - 0x238]
push ecx
call fcn.004e96f0
add esp, 8
push str.IDtable.bin
lea edx, [ebp - 0x238]
push edx
call fcn.004e96f0
add esp, 8
push 0x208
push 0
lea eax, [ebp - 0x448]
push eax
call fcn.004e9480
add esp, 0xc
mov ecx, dword [ebp - 0x894]
add ecx, 0x2dd
push ecx
lea edx, [ebp - 0x448]
push edx
call fcn.004e96e0
add esp, 8
push 0x54d9d0
lea eax, [ebp - 0x448]
push eax
call fcn.004e96f0
add esp, 8
push 0
lea ecx, [ebp - 0x448]
push ecx
lea edx, [ebp - 0x238]
push edx
call dword [sym.imp.KERNEL32.dll_CopyFileA]
test eax, eax
jne 0x4248ed
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x65c], eax
push 0x208
push 0
lea eax, [ebp - 0x878]
push eax
call fcn.004e9480
add esp, 0xc
mov ecx, dword [ebp - 0x65c]
push ecx
lea edx, [ebp - 0x650]
push edx
push str.Cant_copy_file_from_.Firmware_sIDtable.bin_to_.DriveSettingMP_IDtable.bin__errorcode___d
lea eax, [ebp - 0x878]
push eax
call fcn.004e998d
add esp, 0x10
push 0
push 0x54da50
lea ecx, [ebp - 0x878]
push ecx
mov ecx, dword [ebp - 0x894]
call fcn.0050b84e
mov edx, dword [ebp - 0x30]
push edx
call fcn.004e9e5d
add esp, 4
mov dword [ebp - 0x888], 0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x1c]
call fcn.0050f035
mov eax, dword [ebp - 0x888]
jmp 0x425014
push 0
push 0x80
push 3
push 0
push 1
push 0xc0000000
lea eax, [ebp - 0x448]
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov dword [ebp - 0x87c], eax
cmp dword [ebp - 0x87c], 0xffffffff
jne 0x424978
push 0x208
push 0
lea ecx, [ebp - 0x878]
push ecx
call fcn.004e9480
add esp, 0xc
push 0
push 0x54da58
push str.Cant_open_.DriveSettingMP_IDtable.bin__please_check.
mov ecx, dword [ebp - 0x894]
call fcn.0050b84e
mov edx, dword [ebp - 0x30]
push edx
call fcn.004e9e5d
add esp, 4
mov dword [ebp - 0x88c], 0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x1c]
call fcn.0050f035
mov eax, dword [ebp - 0x88c]
jmp 0x425014
push 0x10000
push 0
mov eax, dword [ebp - 0x30]
push eax
call fcn.004e9480
add esp, 0xc
mov ecx, dword [ebp - 0x87c]
mov dword [ebp - 0x18], ecx
lea ecx, [ebp - 0x1c]
call fcn.0050f3ec
mov dword [ebp - 0x654], eax
mov edx, dword [ebp - 0x654]
push edx
mov eax, dword [ebp - 0x30]
push eax
lea ecx, [ebp - 0x1c]
call fcn.0050f20f
mov ecx, dword [ebp - 0x894]
cmp dword [ecx + 0xe7cc], 0
jne 0x4249d3
mov edx, dword [ebp - 0x30]
mov byte [edx], 0x40
mov eax, dword [ebp - 0x30]
mov byte [eax + 1], 0
jmp 0x424a0d
mov ecx, dword [ebp - 0x894]
cmp dword [ecx + 0xe7cc], 1
jne 0x4249f1
mov edx, dword [ebp - 0x30]
mov byte [edx], 0x4a
mov eax, dword [ebp - 0x30]
mov byte [eax + 1], 4
jmp 0x424a0d
mov ecx, dword [ebp - 0x894]
cmp dword [ecx + 0xe7cc], 2
jne 0x424a0d
mov edx, dword [ebp - 0x30]
mov byte [edx], 0x8a
mov eax, dword [ebp - 0x30]
mov byte [eax + 1], 0x84
cmp dword [0x56d5a0], 1
jne 0x424a23
mov ecx, dword [ebp - 0x30]
mov byte [ecx], 0x40
mov edx, dword [ebp - 0x30]
mov byte [edx + 1], 0
push 8
push 0
lea eax, [ebp - 0x240]
push eax
call fcn.004e9480
add esp, 0xc
mov ecx, dword [ebp - 0x894]
movsx edx, byte [ecx + 0xe7c0]
test edx, edx
je 0x424a69
push 8
mov eax, dword [ebp - 0x894]
add eax, 0xe7c0
push eax
lea ecx, [ebp - 0x240]
push ecx
call fcn.004e9b20
add esp, 0xc
jmp 0x424b3a
mov edx, dword [ebp - 0x66c]
and edx, 0xff
cmp edx, 0x30
jl 0x424b22
mov eax, dword [ebp - 0x66c]
and eax, 0xff
cmp eax, 0x39
jg 0x424b22
push 0x10
push 0
lea ecx, [ebp - 0x2c]
push ecx
call fcn.004e9480
add esp, 0xc
push 4
lea edx, [ebp - 0x66c]
push edx
lea eax, [ebp - 0x2c]
push eax
call fcn.004e9b20
add esp, 0xc
lea ecx, [ebp - 0x2c]
push ecx
call fcn.004e98d7
add esp, 4
mov dword [ebp - 0x670], eax
push 0x10
push 0
lea edx, [ebp - 0x2c]
push edx
call fcn.004e9480
add esp, 0xc
push 6
lea eax, [ebp - 0x668]
push eax
lea ecx, [ebp - 0x2c]
push ecx
call fcn.004e9b20
add esp, 0xc
movsx edx, byte [ebp - 0x27]
cmp edx, 0x5f
jne 0x424afb
mov byte [ebp - 0x27], 0x20
lea eax, [ebp - 0x2c]
push eax
mov ecx, dword [ebp - 0x670]
sub ecx, 0x790
push ecx
push 0x54da98
lea edx, [ebp - 0x240]
push edx
call fcn.004e998d
add esp, 0x10
jmp 0x424b3a
push 7
lea eax, [ebp - 0x66c]
push eax
lea ecx, [ebp - 0x240]
push ecx
call fcn.004e9b20
add esp, 0xc
mov dword [ebp - 0x658], 0
jmp 0x424b55
mov edx, dword [ebp - 0x658]
add edx, 2
mov dword [ebp - 0x658], edx
cmp dword [ebp - 0x658], 8
jge 0x424bd3
mov eax, dword [ebp - 0x30]
add eax, dword [ebp - 0x658]
mov ecx, dword [ebp - 0x658]
mov dl, byte [ebp + ecx - 0x23f]
mov byte [eax + 0x2e], dl
mov eax, dword [ebp - 0x30]
add eax, dword [ebp - 0x658]
mov ecx, dword [ebp - 0x658]
mov dl, byte [ebp + ecx - 0x240]
mov byte [eax + 0x2f], dl
mov eax, dword [ebp - 0x30]
add eax, dword [ebp - 0x658]
xor ecx, ecx
mov cl, byte [eax + 0x2e]
test ecx, ecx
jne 0x424baf
mov edx, dword [ebp - 0x30]
add edx, dword [ebp - 0x658]
mov byte [edx + 0x2e], 0x20
mov eax, dword [ebp - 0x30]
add eax, dword [ebp - 0x658]
xor ecx, ecx
mov cl, byte [eax + 0x2f]
test ecx, ecx
jne 0x424bce
mov edx, dword [ebp - 0x30]
add edx, dword [ebp - 0x658]
mov byte [edx + 0x2f], 0x20
jmp 0x424b46
mov eax, dword [ebp - 0x894]
cmp dword [eax + 0xe83c], 0
je 0x424c4a
mov dword [ebp - 0x658], 0
jmp 0x424bfd
mov ecx, dword [ebp - 0x658]
add ecx, 2
mov dword [ebp - 0x658], ecx
cmp dword [ebp - 0x658], 0x10
jge 0x424c4a
mov edx, dword [ebp - 0x30]
add edx, dword [ebp - 0x658]
mov eax, dword [ebp - 0x894]
add eax, dword [ebp - 0x658]
mov cl, byte [eax + 0xe852]
mov byte [edx + 0xd8], cl
mov edx, dword [ebp - 0x30]
add edx, dword [ebp - 0x658]
mov eax, dword [ebp - 0x894]
add eax, dword [ebp - 0x658]
mov cl, byte [eax + 0xe851]
mov byte [edx + 0xd9], cl
jmp 0x424bee
mov edx, dword [ebp - 0x894]
cmp dword [edx + 0xe838], 0
jne 0x424ca6
mov eax, dword [ebp - 0x894]
cmp dword [eax + 0xe83c], 0
jne 0x424ca6
cmp dword [0x56e334], 0
jne 0x424ca6
cmp dword [0x56e328], 0
jne 0x424ca6
mov ecx, dword [ebp - 0x30]
mov dl, byte [ecx + 0xa9]
and dl, 0xfe
mov eax, dword [ebp - 0x30]
mov byte [eax + 0xa9], dl
mov ecx, dword [ebp - 0x30]
mov dl, byte [ecx + 0xaf]
and dl, 0xfe
mov eax, dword [ebp - 0x30]
mov byte [eax + 0xaf], dl
jmp 0x424cd0
mov ecx, dword [ebp - 0x30]
mov dl, byte [ecx + 0xa9]
or dl, 1
mov eax, dword [ebp - 0x30]
mov byte [eax + 0xa9], dl
mov ecx, dword [ebp - 0x30]
mov dl, byte [ecx + 0xaf]
or dl, 1
mov eax, dword [ebp - 0x30]
mov byte [eax + 0xaf], dl
push 0x208
push 0
lea ecx, [ebp - 0x650]
push ecx
call fcn.004e9480
add esp, 0xc
mov edx, dword [ebp - 0x894]
add edx, 0xe781
push edx
call fcn.004ea2e0
add esp, 4
push eax
mov eax, dword [ebp - 0x894]
add eax, 0xe781
push eax
lea ecx, [ebp - 0x650]
push ecx
call fcn.004e9b20
add esp, 0xc
mov dword [ebp - 0x658], 0
jmp 0x424d32
mov edx, dword [ebp - 0x658]
add edx, 2
mov dword [ebp - 0x658], edx
cmp dword [ebp - 0x658], 0x3e
jge 0x424d75
mov eax, dword [ebp - 0x30]
add eax, dword [ebp - 0x658]
mov ecx, dword [ebp - 0x658]
mov dl, byte [ebp + ecx - 0x64f]
mov byte [eax + 0x102], dl
mov eax, dword [ebp - 0x30]
add eax, dword [ebp - 0x658]
mov ecx, dword [ebp - 0x658]
mov dl, byte [ebp + ecx - 0x650]
mov byte [eax + 0x103], dl
jmp 0x424d23
mov eax, dword [ebp - 0x894]
cmp dword [eax + 0xeb70], 0
je 0x424d9b
mov ecx, dword [ebp - 0x30]
mov dl, byte [ecx + 0x152]
or dl, 1
mov eax, dword [ebp - 0x30]
mov byte [eax + 0x152], dl
jmp 0x424db0
mov ecx, dword [ebp - 0x30]
mov dl, byte [ecx + 0x152]
and dl, 0xfe
mov eax, dword [ebp - 0x30]
mov byte [eax + 0x152], dl
mov ecx, dword [ebp - 0x894]
cmp dword [ecx + 0xeb74], 0
je 0x424dd5
mov edx, dword [ebp - 0x30]
mov al, byte [edx + 0xa4]
or al, 2
mov ecx, dword [ebp - 0x30]
mov byte [ecx + 0xa4], al
jmp 0x424dfd
mov edx, dword [ebp - 0x30]
mov al, byte [edx + 0xa4]
and al, 0xfd
mov ecx, dword [ebp - 0x30]
mov byte [ecx + 0xa4], al
mov edx, dword [ebp - 0x30]
mov al, byte [edx + 0xaa]
and al, 0xfd
mov ecx, dword [ebp - 0x30]
mov byte [ecx + 0xaa], al
mov edx, dword [ebp - 0x894]
cmp dword [edx + 0xeb78], 0
je 0x424e23
mov eax, dword [ebp - 0x30]
mov cl, byte [eax + 0x9d]
or cl, 1
mov edx, dword [ebp - 0x30]
mov byte [edx + 0x9d], cl
jmp 0x424e4d
mov eax, dword [ebp - 0x30]
mov cl, byte [eax + 0x9d]
and cl, 0xfe
mov edx, dword [ebp - 0x30]
mov byte [edx + 0x9d], cl
mov eax, dword [ebp - 0x30]
mov cl, byte [eax + 0x9f]
and cl, 0xfe
mov edx, dword [ebp - 0x30]
mov byte [edx + 0x9f], cl
mov eax, dword [ebp - 0x894]
cmp dword [eax + 0xeb7c], 0
je 0x424e73
mov ecx, dword [ebp - 0x30]
mov dl, byte [ecx + 0x99]
and dl, 0xfd
mov eax, dword [ebp - 0x30]
mov byte [eax + 0x99], dl
jmp 0x424e88
mov ecx, dword [ebp - 0x30]
mov dl, byte [ecx + 0x99]
or dl, 2
mov eax, dword [ebp - 0x30]
mov byte [eax + 0x99], dl
mov ecx, dword [ebp - 0x894]
cmp dword [ecx + 0xeb80], 0
je 0x424ec1
mov edx, dword [ebp - 0x30]
mov al, byte [edx + 0x9c]
and al, 0xf7
mov ecx, dword [ebp - 0x30]
mov byte [ecx + 0x9c], al
mov edx, dword [ebp - 0x30]
mov al, byte [edx + 0x9e]
and al, 0xf7
mov ecx, dword [ebp - 0x30]
mov byte [ecx + 0x9e], al
jmp 0x424ed5
mov edx, dword [ebp - 0x30]
mov al, byte [edx + 0x9c]
or al, 8
mov ecx, dword [ebp - 0x30]
mov byte [ecx + 0x9c], al
mov edx, dword [ebp - 0x894]
cmp dword [edx + 0xeb84], 0
je 0x424f10
mov eax, dword [ebp - 0x30]
mov cl, byte [eax + 0xa4]
and cl, 0xdf
mov edx, dword [ebp - 0x30]
mov byte [edx + 0xa4], cl
mov eax, dword [ebp - 0x30]
mov cl, byte [eax + 0xaa]
and cl, 0xdf
mov edx, dword [ebp - 0x30]
mov byte [edx + 0xaa], cl
jmp 0x424f25
mov eax, dword [ebp - 0x30]
mov cl, byte [eax + 0xa4]
or cl, 0x20
mov edx, dword [ebp - 0x30]
mov byte [edx + 0xa4], cl
cmp dword [0x56d5a0], 1
jne 0x424f42
mov eax, dword [ebp - 0x30]
mov byte [eax + 0xd4], 3
mov ecx, dword [ebp - 0x30]
mov byte [ecx + 0xd5], 0x60
cmp dword [0x56e308], 0
je 0x424fc1
mov edx, dword [ebp - 0x894]
cmp dword [edx + 0xeb88], 0
je 0x424f71
mov eax, dword [ebp - 0x30]
mov cl, byte [eax + 0x8a]
or cl, 0x20
mov edx, dword [ebp - 0x30]
mov byte [edx + 0x8a], cl
jmp 0x424f86
mov eax, dword [ebp - 0x30]
mov cl, byte [eax + 0x8a]
and cl, 0xdf
mov edx, dword [ebp - 0x30]
mov byte [edx + 0x8a], cl
mov eax, dword [ebp - 0x894]
cmp dword [eax + 0xeb8c], 0
je 0x424fac
mov ecx, dword [ebp - 0x30]
mov dl, byte [ecx + 0xee]
or dl, 4
mov eax, dword [ebp - 0x30]
mov byte [eax + 0xee], dl
jmp 0x424fc1
mov ecx, dword [ebp - 0x30]
mov dl, byte [ecx + 0xee]
and dl, 0xfb
mov eax, dword [ebp - 0x30]
mov byte [eax + 0xee], dl
lea ecx, [ebp - 0x1c]
call fcn.004274b0
mov ecx, dword [ebp - 0x654]
push ecx
mov edx, dword [ebp - 0x30]
push edx
lea ecx, [ebp - 0x1c]
call fcn.0050f249
mov eax, dword [ebp - 0x87c]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, dword [ebp - 0x30]
push ecx
call fcn.004e9e5d
add esp, 4
mov dword [ebp - 0x890], 1
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x1c]
call fcn.0050f035
mov eax, dword [ebp - 0x890]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret