Function at 0x43e645
Capabilities:
Copy file

Disassembly:
push 0x360
mov eax, 0x4c6c87
call fcn.0048b203
mov eax, dword [ebp + 0xc]
mov esi, dword [ebp + 8]
mov edi, dword [ebp + 0x18]
mov dword [ebp - 0x35c], eax
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x368], esi
mov dword [ebp - 0x36c], eax
xor ebx, ebx
mov dword [ebp - 0x5c], 7
xor eax, eax
mov dword [ebp - 4], ebx
mov dword [ebp - 0x60], ebx
mov word [ebp - 0x70], ax
inc eax
push esi
mov dword [ebp - 0x358], eax
mov byte [ebp - 4], al
call fcn.004adf71
pop ecx
push eax
push esi
lea ecx, [ebp - 0x70]
call fcn.00406ee0
push 0xffffffffffffffff
push 0x4eb494
lea ecx, [ebp - 0x70]
call fcn.00444b96
push 7
pop edx
xor ecx, ecx
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x14], edx
mov word [ebp - 0x28], cx
mov dword [ebp - 0x78], ebx
mov dword [ebp - 0x74], edx
mov word [ebp - 0x88], cx
mov dword [ebp - 0x48], ebx
mov dword [ebp - 0x44], edx
mov word [ebp - 0x58], cx
mov byte [ebp - 4], 4
cmp eax, 0xffffffff
je 0x43e84f
push 0xffffffffffffffff
inc eax
mov word [ebp - 0x40], cx
push eax
lea eax, [ebp - 0x70]
mov dword [ebp - 0x30], ebx
push eax
lea ecx, [ebp - 0x40]
mov dword [ebp - 0x2c], edx
call fcn.00428020
lea eax, [ebp - 0x40]
push eax
lea ecx, [ebp - 0x28]
call fcn.004082c0
lea ecx, [ebp - 0x40]
call fcn.00407040
push edi
call fcn.004adf71
pop ecx
push eax
push edi
push ebx
lea ecx, [ebp - 0x28]
call fcn.00444bca
lea eax, [ebp - 0x28]
push eax
lea ecx, [ebp - 0x88]
call fcn.00421bc0
xor esi, esi
inc esi
cmp dword [ebp + 0x14], esi
jne 0x43e763
cmp dword [ebp - 0x14], 8
lea eax, [ebp - 0x28]
cmovae eax, dword [ebp - 0x28]
push eax
lea eax, [ebp - 0x40]
push eax
call fcn.004434dc
pop ecx
pop ecx
push eax
lea ecx, [ebp - 0x28]
call fcn.004082c0
lea ecx, [ebp - 0x40]
call fcn.00407040
cmp dword [ebp + 0x2c], 0
jbe 0x43e775
lea eax, [ebp + 0x1c]
push eax
lea ecx, [ebp - 0x28]
call fcn.00421bc0
cmp dword [ebp - 0x14], 8
lea ecx, [ebp - 0x28]
mov eax, dword [ebp - 0x18]
lea edi, [ebp - 0x28]
cmovae ecx, dword [ebp - 0x28]
cmovae edi, dword [ebp - 0x28]
xor edx, edx
lea eax, [ecx + eax*2]
mov ecx, eax
sub ecx, edi
inc ecx
shr ecx, 1
cmp edi, eax
cmova ecx, edx
test ecx, ecx
je 0x43e7ce
mov esi, ecx
mov ebx, edx
movzx eax, word [edi]
mov ecx, dword [ebp - 0x36c]
mov dword [ebp - 0x364], eax
lea eax, [ebp - 0x364]
push eax
call fcn.0043cf40
inc ebx
lea edi, [edi + 2]
cmp ebx, esi
jne 0x43e7a3
mov esi, dword [ebp - 0x358]
xor ebx, ebx
mov eax, dword [0x4ff004]
cmp eax, esi
jne 0x43e88c
lea eax, [ebp - 0x28]
push eax
push dword [ebp - 0x35c]
lea eax, [ebp - 0xa0]
push eax
call fcn.0043cb00
add esp, 0xc
lea ecx, [ebp - 0x58]
push eax
call fcn.004082c0
lea ecx, [ebp - 0xa0]
call fcn.00407040
lea eax, [ebp - 0x70]
mov ecx, 0x502958
push eax
call fcn.00408300
push eax
lea eax, [ebp - 0x40]
push eax
call fcn.0043cb00
add esp, 0xc
lea ecx, [ebp - 0x58]
cmp dword [ebp - 0x44], 8
lea eax, [ebp - 0x40]
cmovae ecx, dword [ebp - 0x58]
cmp dword [ebp - 0x2c], 8
push ebx
cmovae eax, dword [ebp - 0x40]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileW]
test eax, eax
lea ecx, [ebp - 0x40]
setne bl
call fcn.00407040
mov byte [ebp - 0x358], bl
lea ecx, [ebp - 0x58]
call fcn.00407040
lea ecx, [ebp - 0x88]
call fcn.00407040
lea ecx, [ebp - 0x28]
call fcn.00407040
lea ecx, [ebp - 0x70]
call fcn.00407040
lea ecx, [ebp + 0x1c]
call fcn.00407040
mov al, byte [ebp - 0x358]
call fcn.0048b1be
ret
cmp eax, 4
jne 0x43e84f
lea eax, [ebp - 0x28]
push eax
push dword [ebp - 0x35c]
lea eax, [ebp - 0xa0]
push eax
call fcn.0043cb00
add esp, 0xc
lea ecx, [ebp - 0x58]
push eax
call fcn.004082c0
lea ecx, [ebp - 0xa0]
call fcn.00407040
call fcn.0043f5d3
test al, al
je 0x43e84f
call fcn.0043f341
mov edi, eax
test edi, edi
je 0x43e84f
push 0xffffffffffffffff
push dword [ebp - 0x368]
lea ecx, [ebp - 0x124]
mov dword [ebp - 0x35c], ebx
call fcn.004366b5
push 0x4ccf20
push 0x4eb494
lea ecx, [ebp - 0x124]
mov byte [ebp - 4], 5
call fcn.0043706c
lea eax, [ebp - 0x354]
push eax
lea eax, [ebp - 0x35c]
push eax
push esi
lea ecx, [ebp - 0x124]
call fcn.00408300
push eax
push edi
call fcn.00474598
add esp, 0x14
test eax, eax
jne 0x43e987
mov eax, dword [ebp - 0x128]
mov dword [ebp - 0x360], eax
test eax, eax
je 0x43e987
cmp eax, 0x400000
ja 0x43e987
push eax
call fcn.0048b1a0
push dword [ebp - 0x360]
mov esi, eax
push esi
push dword [ebp - 0x35c]
push edi
call fcn.00475009
add esp, 0x14
test eax, eax
je 0x43e99d
cmp eax, 0x600
je 0x43e99d
push esi
call fcn.0048b19b
pop ecx
call fcn.0043f5d3
test al, al
jne 0x43e987
push edi
call fcn.0047437b
pop ecx
mov byte [ebp - 0x358], bl
lea ecx, [ebp - 0x124]
call fcn.004367b7
jmp 0x43e855
call fcn.0043f5d3
test al, al
jne 0x43e9ad
push edi
call fcn.0047437b
pop ecx
push dword [ebp - 0x360]
lea eax, [ebp - 0x58]
push esi
sub esp, 0x18
mov ecx, esp
push eax
mov dword [ecx + 0x10], ebx
mov dword [ecx + 0x14], ebx
call fcn.00405d70
call fcn.0043e5dd
add esp, 0x20
push esi
test al, al
jne 0x43e9dc
call fcn.0048b19b
jmp 0x43e986
call fcn.0048b19b
pop ecx
jmp 0x43e98d