Function at 0x423abd
Capabilities:
Copy file

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x523b3c
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.0050df00
mov dword [ebp - 4], 0
mov dword [ebp - 0x30], 0
push 0x10000
call fcn.004e8f2e
add esp, 4
mov dword [ebp - 0x30], eax
cmp dword [ebp - 0x30], 0
jne 0x423b48
push 0
push 0x54c6c4
push str.Cant_allocate_memory_to_generate_IDtable_binary_file
mov ecx, dword [ebp - 0x894]
call fcn.0050a80e
mov dword [ebp - 0x880], 0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x1c]
call fcn.0050dff5
mov eax, dword [ebp - 0x880]
jmp 0x424745
push 0x10000
push 0
mov eax, dword [ebp - 0x30]
push eax
call fcn.004e8440
add esp, 0xc
push 0x208
push 0
lea ecx, [ebp - 0x238]
push ecx
call fcn.004e8440
add esp, 0xc
mov edx, dword [ebp - 0x894]
add edx, 0x86
push edx
lea eax, [ebp - 0x238]
push eax
call fcn.004e86a0
add esp, 8
push 0x54c704
lea ecx, [ebp - 0x238]
push ecx
call fcn.004e86b0
add esp, 8
push 0x208
push 0
lea edx, [ebp - 0x650]
push edx
call fcn.004e8440
add esp, 0xc
push 0x10
push 0x56ceec
lea eax, [ebp - 0x650]
push eax
call fcn.004e8ae0
add esp, 0xc
movsx ecx, byte [ebp - 0x650]
test ecx, ecx
jne 0x423c1a
cmp dword [0x56c138], 0x979
jne 0x423bfa
push 0x54c710
lea edx, [ebp - 0x650]
push edx
call fcn.004e86a0
add esp, 8
jmp 0x423c1a
cmp dword [0x56c138], 0x97a
jne 0x423c1a
push 0x54c718
lea eax, [ebp - 0x650]
push eax
call fcn.004e86a0
add esp, 8
cmp dword [0x56ced8], 0
je 0x423c86
push 0x54c720
lea ecx, [ebp - 0x650]
push ecx
call fcn.004e86b0
add esp, 8
mov edx, dword [ebp - 0x894]
add edx, 0xb01c
push edx
lea eax, [ebp - 0x650]
push eax
call fcn.004e86b0
add esp, 8
movsx ecx, byte [0x56cecc]
test ecx, ecx
je 0x423c86
push 0x54c724
lea edx, [ebp - 0x650]
push edx
call fcn.004e86b0
add esp, 8
push 0x56cecc
lea eax, [ebp - 0x650]
push eax
call fcn.004e86b0
add esp, 8
lea ecx, [ebp - 0x650]
push ecx
lea edx, [ebp - 0x238]
push edx
call fcn.004e86b0
add esp, 8
cmp dword [0x56c138], 0x979
jne 0x423ce3
mov eax, dword [ebp - 0x894]
cmp dword [eax + 0xb06c], 0
je 0x423ccd
push 0x54c728
lea ecx, [ebp - 0x238]
push ecx
call fcn.004e86b0
add esp, 8
jmp 0x423ce1
push 0x54c738
lea edx, [ebp - 0x238]
push edx
call fcn.004e86b0
add esp, 8
jmp 0x423d28
cmp dword [0x56c138], 0x97a
jne 0x423d28
mov eax, dword [ebp - 0x894]
cmp dword [eax + 0xb06c], 0
je 0x423d14
push 0x54c748
lea ecx, [ebp - 0x238]
push ecx
call fcn.004e86b0
add esp, 8
jmp 0x423d28
push 0x54c758
lea edx, [ebp - 0x238]
push edx
call fcn.004e86b0
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 0x423e61
push 0x208
push 0
lea ecx, [ebp - 0x878]
push ecx
call fcn.004e8440
add esp, 0xc
cmp dword [0x56c138], 0x97a
jne 0x423dc5
mov edx, dword [ebp - 0x894]
cmp dword [edx + 0xb06c], 0
je 0x423da8
lea eax, [ebp - 0x650]
push eax
push str.Cant_open_.Firmware_sISP2256RDT.bin__please_check.
lea ecx, [ebp - 0x878]
push ecx
call fcn.004e894d
add esp, 0xc
jmp 0x423dc3
lea edx, [ebp - 0x650]
push edx
push str.Cant_open_.Firmware_sISP2256.bin__please_check.
lea eax, [ebp - 0x878]
push eax
call fcn.004e894d
add esp, 0xc
jmp 0x423e18
cmp dword [0x56c138], 0x979
jne 0x423e18
mov ecx, dword [ebp - 0x894]
cmp dword [ecx + 0xb06c], 0
je 0x423dfd
lea edx, [ebp - 0x650]
push edx
push str.Cant_open_.Firmware_sISP2258RDT.bin__please_check.
lea eax, [ebp - 0x878]
push eax
call fcn.004e894d
add esp, 0xc
jmp 0x423e18
lea ecx, [ebp - 0x650]
push ecx
push str.Cant_open_.Firmware_sISP2258.bin__please_check.
lea edx, [ebp - 0x878]
push edx
call fcn.004e894d
add esp, 0xc
push 0
push 0x54c840
lea eax, [ebp - 0x878]
push eax
mov ecx, dword [ebp - 0x894]
call fcn.0050a80e
mov ecx, dword [ebp - 0x30]
push ecx
call fcn.004e8e1d
add esp, 4
mov dword [ebp - 0x884], 0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x1c]
call fcn.0050dff5
mov eax, dword [ebp - 0x884]
jmp 0x424745
mov edx, dword [ebp - 0x87c]
mov dword [ebp - 0x18], edx
lea ecx, [ebp - 0x1c]
call fcn.00426bb0
push 0x10000
mov eax, dword [ebp - 0x30]
push eax
lea ecx, [ebp - 0x1c]
call fcn.0050e1cf
push 0x10
push 0
lea ecx, [ebp - 0x66c]
push ecx
call fcn.004e8440
add esp, 0xc
push 0x10
mov edx, dword [ebp - 0x30]
add edx, 0xeff0
push edx
lea eax, [ebp - 0x66c]
push eax
call fcn.004e8ae0
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.004e8440
add esp, 0xc
mov eax, dword [ebp - 0x894]
add eax, 0x86
push eax
lea ecx, [ebp - 0x238]
push ecx
call fcn.004e86a0
add esp, 8
push 0x54c848
lea edx, [ebp - 0x238]
push edx
call fcn.004e86b0
add esp, 8
lea eax, [ebp - 0x650]
push eax
lea ecx, [ebp - 0x238]
push ecx
call fcn.004e86b0
add esp, 8
push str.IDtable.bin
lea edx, [ebp - 0x238]
push edx
call fcn.004e86b0
add esp, 8
push 0x208
push 0
lea eax, [ebp - 0x448]
push eax
call fcn.004e8440
add esp, 0xc
mov ecx, dword [ebp - 0x894]
add ecx, 0x86
push ecx
lea edx, [ebp - 0x448]
push edx
call fcn.004e86a0
add esp, 8
push 0x54c864
lea eax, [ebp - 0x448]
push eax
call fcn.004e86b0
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 0x42401e
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x65c], eax
push 0x208
push 0
lea eax, [ebp - 0x878]
push eax
call fcn.004e8440
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.004e894d
add esp, 0x10
push 0
push 0x54c8e4
lea ecx, [ebp - 0x878]
push ecx
mov ecx, dword [ebp - 0x894]
call fcn.0050a80e
mov edx, dword [ebp - 0x30]
push edx
call fcn.004e8e1d
add esp, 4
mov dword [ebp - 0x888], 0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x1c]
call fcn.0050dff5
mov eax, dword [ebp - 0x888]
jmp 0x424745
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 0x4240a9
push 0x208
push 0
lea ecx, [ebp - 0x878]
push ecx
call fcn.004e8440
add esp, 0xc
push 0
push 0x54c8ec
push str.Cant_open_.DriveSettingMP_IDtable.bin__please_check.
mov ecx, dword [ebp - 0x894]
call fcn.0050a80e
mov edx, dword [ebp - 0x30]
push edx
call fcn.004e8e1d
add esp, 4
mov dword [ebp - 0x88c], 0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x1c]
call fcn.0050dff5
mov eax, dword [ebp - 0x88c]
jmp 0x424745
push 0x10000
push 0
mov eax, dword [ebp - 0x30]
push eax
call fcn.004e8440
add esp, 0xc
mov ecx, dword [ebp - 0x87c]
mov dword [ebp - 0x18], ecx
lea ecx, [ebp - 0x1c]
call fcn.0050e3ac
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.0050e1cf
mov ecx, dword [ebp - 0x894]
cmp dword [ecx + 0xb1c4], 0
jne 0x424104
mov edx, dword [ebp - 0x30]
mov byte [edx], 0x40
mov eax, dword [ebp - 0x30]
mov byte [eax + 1], 0
jmp 0x42413e
mov ecx, dword [ebp - 0x894]
cmp dword [ecx + 0xb1c4], 1
jne 0x424122
mov edx, dword [ebp - 0x30]
mov byte [edx], 0x4a
mov eax, dword [ebp - 0x30]
mov byte [eax + 1], 4
jmp 0x42413e
mov ecx, dword [ebp - 0x894]
cmp dword [ecx + 0xb1c4], 2
jne 0x42413e
mov edx, dword [ebp - 0x30]
mov byte [edx], 0x8a
mov eax, dword [ebp - 0x30]
mov byte [eax + 1], 0x84
cmp dword [0x56c108], 1
jne 0x424154
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.004e8440
add esp, 0xc
mov ecx, dword [ebp - 0x894]
movsx edx, byte [ecx + 0xb1b8]
test edx, edx
je 0x42419a
push 8
mov eax, dword [ebp - 0x894]
add eax, 0xb1b8
push eax
lea ecx, [ebp - 0x240]
push ecx
call fcn.004e8ae0
add esp, 0xc
jmp 0x42426b
mov edx, dword [ebp - 0x66c]
and edx, 0xff
cmp edx, 0x30
jl 0x424253
mov eax, dword [ebp - 0x66c]
and eax, 0xff
cmp eax, 0x39
jg 0x424253
push 0x10
push 0
lea ecx, [ebp - 0x2c]
push ecx
call fcn.004e8440
add esp, 0xc
push 4
lea edx, [ebp - 0x66c]
push edx
lea eax, [ebp - 0x2c]
push eax
call fcn.004e8ae0
add esp, 0xc
lea ecx, [ebp - 0x2c]
push ecx
call fcn.004e8897
add esp, 4
mov dword [ebp - 0x670], eax
push 0x10
push 0
lea edx, [ebp - 0x2c]
push edx
call fcn.004e8440
add esp, 0xc
push 6
lea eax, [ebp - 0x668]
push eax
lea ecx, [ebp - 0x2c]
push ecx
call fcn.004e8ae0
add esp, 0xc
movsx edx, byte [ebp - 0x27]
cmp edx, 0x5f
jne 0x42422c
mov byte [ebp - 0x27], 0x20
lea eax, [ebp - 0x2c]
push eax
mov ecx, dword [ebp - 0x670]
sub ecx, 0x790
push ecx
push 0x54c92c
lea edx, [ebp - 0x240]
push edx
call fcn.004e894d
add esp, 0x10
jmp 0x42426b
push 7
lea eax, [ebp - 0x66c]
push eax
lea ecx, [ebp - 0x240]
push ecx
call fcn.004e8ae0
add esp, 0xc
mov dword [ebp - 0x658], 0
jmp 0x424286
mov edx, dword [ebp - 0x658]
add edx, 2
mov dword [ebp - 0x658], edx
cmp dword [ebp - 0x658], 8
jge 0x424304
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 0x4242e0
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 0x4242ff
mov edx, dword [ebp - 0x30]
add edx, dword [ebp - 0x658]
mov byte [edx + 0x2f], 0x20
jmp 0x424277
mov eax, dword [ebp - 0x894]
cmp dword [eax + 0xb234], 0
je 0x42437b
mov dword [ebp - 0x658], 0
jmp 0x42432e
mov ecx, dword [ebp - 0x658]
add ecx, 2
mov dword [ebp - 0x658], ecx
cmp dword [ebp - 0x658], 0x10
jge 0x42437b
mov edx, dword [ebp - 0x30]
add edx, dword [ebp - 0x658]
mov eax, dword [ebp - 0x894]
add eax, dword [ebp - 0x658]
mov cl, byte [eax + 0xb24a]
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 + 0xb249]
mov byte [edx + 0xd9], cl
jmp 0x42431f
mov edx, dword [ebp - 0x894]
cmp dword [edx + 0xb230], 0
jne 0x4243d7
mov eax, dword [ebp - 0x894]
cmp dword [eax + 0xb234], 0
jne 0x4243d7
cmp dword [0x56cea0], 0
jne 0x4243d7
cmp dword [0x56ce94], 0
jne 0x4243d7
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 0x424401
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.004e8440
add esp, 0xc
mov edx, dword [ebp - 0x894]
add edx, 0xb179
push edx
call fcn.004e9200
add esp, 4
push eax
mov eax, dword [ebp - 0x894]
add eax, 0xb179
push eax
lea ecx, [ebp - 0x650]
push ecx
call fcn.004e8ae0
add esp, 0xc
mov dword [ebp - 0x658], 0
jmp 0x424463
mov edx, dword [ebp - 0x658]
add edx, 2
mov dword [ebp - 0x658], edx
cmp dword [ebp - 0x658], 0x3e
jge 0x4244a6
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 0x424454
mov eax, dword [ebp - 0x894]
cmp dword [eax + 0xb568], 0
je 0x4244cc
mov ecx, dword [ebp - 0x30]
mov dl, byte [ecx + 0x152]
or dl, 1
mov eax, dword [ebp - 0x30]
mov byte [eax + 0x152], dl
jmp 0x4244e1
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 + 0xb56c], 0
je 0x424506
mov edx, dword [ebp - 0x30]
mov al, byte [edx + 0xa4]
or al, 2
mov ecx, dword [ebp - 0x30]
mov byte [ecx + 0xa4], al
jmp 0x42452e
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 + 0xb570], 0
je 0x424554
mov eax, dword [ebp - 0x30]
mov cl, byte [eax + 0x9d]
or cl, 1
mov edx, dword [ebp - 0x30]
mov byte [edx + 0x9d], cl
jmp 0x42457e
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 + 0xb574], 0
je 0x4245a4
mov ecx, dword [ebp - 0x30]
mov dl, byte [ecx + 0x99]
and dl, 0xfd
mov eax, dword [ebp - 0x30]
mov byte [eax + 0x99], dl
jmp 0x4245b9
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 + 0xb578], 0
je 0x4245f2
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 0x424606
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 + 0xb57c], 0
je 0x424641
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 0x424656
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 [0x56c108], 1
jne 0x424673
mov eax, dword [ebp - 0x30]
mov byte [eax + 0xd4], 3
mov ecx, dword [ebp - 0x30]
mov byte [ecx + 0xd5], 0x60
cmp dword [0x56ce74], 0
je 0x4246f2
mov edx, dword [ebp - 0x894]
cmp dword [edx + 0xb580], 0
je 0x4246a2
mov eax, dword [ebp - 0x30]
mov cl, byte [eax + 0x8a]
or cl, 0x20
mov edx, dword [ebp - 0x30]
mov byte [edx + 0x8a], cl
jmp 0x4246b7
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 + 0xb584], 0
je 0x4246dd
mov ecx, dword [ebp - 0x30]
mov dl, byte [ecx + 0xee]
or dl, 4
mov eax, dword [ebp - 0x30]
mov byte [eax + 0xee], dl
jmp 0x4246f2
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.00426bb0
mov ecx, dword [ebp - 0x654]
push ecx
mov edx, dword [ebp - 0x30]
push edx
lea ecx, [ebp - 0x1c]
call fcn.0050e209
mov eax, dword [ebp - 0x87c]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, dword [ebp - 0x30]
push ecx
call fcn.004e8e1d
add esp, 4
mov dword [ebp - 0x890], 1
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x1c]
call fcn.0050dff5
mov eax, dword [ebp - 0x890]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret