Function at 0x4389b2
Capabilities:
Copy file

Disassembly:
push 0x9c
mov eax, 0x4aca3f
call fcn.0043538a
mov ebx, ecx
mov dword [ebp - 0x18], ebx
xor eax, eax
mov dword [ebp - 4], eax
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x34], eax
mov byte [ebp - 4], 2
lea ecx, [ebp - 0xa8]
call fcn.0048f8b0
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x24]
imul eax, dword [ebp + 8], 0xb0
mov edx, dword [ebx + 0xf4]
push 0x4b93d0
add edx, eax
mov dword [ebp - 0x1c], eax
call fcn.00401f34
mov byte [ebp - 4], 4
lea eax, [ebp - 0x14]
and dword [ebp - 0x14], 0
push 0x4b9440
push dword [ebp - 0x24]
push eax
call fcn.0041cc26
add esp, 0xc
cmp dword [ebp - 0x14], 0
je 0x438d11
push ecx
push dword [ebp - 0x14]
lea ecx, [ebp - 0xa8]
call fcn.0048f910
push dword [ebp - 0x14]
mov bl, al
call fcn.0041ca0d
pop ecx
test bl, bl
je 0x438d11
push 0x4b9448
lea ecx, [ebp - 0xa8]
call fcn.0048f6b0
mov edi, eax
test edi, edi
je 0x438d11
mov ebx, str.FileList
mov ecx, edi
push ebx
call fcn.0048f6b0
mov esi, eax
test esi, esi
je 0x438a8a
mov eax, dword [esi]
cmp dword [eax + 0x14], 0x403410
je 0x438a8a
mov eax, esi
jmp 0x438a8c
xor eax, eax
test eax, eax
jne 0x438ab5
push 0x50
call fcn.0041395c
pop ecx
mov dword [ebp - 0x2c], eax
mov byte [ebp - 4], 5
mov ecx, eax
push ebx
call fcn.0048fa20
mov esi, eax
mov byte [ebp - 4], 4
push esi
mov ecx, edi
call fcn.0048fa70
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp + 0xc]
sub eax, ecx
push 0x18
pop ebx
cdq
idiv ebx
and dword [ebp - 0x28], 0
mov dword [ebp - 0x2c], ebx
xor ebx, ebx
inc ebx
test eax, eax
je 0x438cda
xor ebx, ebx
mov eax, dword [ebp - 0x18]
lea edi, [ecx + 4]
add edi, ebx
lea ecx, [ebp - 0x4c]
push edi
push ecx
mov eax, dword [eax + 0xf4]
mov dword [ebp - 0x10], eax
lea ecx, [eax + 0x98]
call fcn.00404566
push edi
mov edi, dword [ebp - 0x44]
push edi
call fcn.0040470d
test al, al
mov eax, dword [ebp - 0x10]
jne 0x438b0f
mov edi, dword [eax + 0x98]
cmp edi, dword [eax + 0x98]
jne 0x438cb7
push 0x50
call fcn.0041395c
mov dword [ebp - 0x40], eax
mov byte [ebp - 4], 6
mov ecx, eax
mov dword [esp], str.FileItem
call fcn.0048fa20
mov edi, eax
mov byte [ebp - 4], 4
test edi, edi
je 0x438b51
mov ecx, dword [edi]
cmp dword [ecx + 0x14], 0x403410
je 0x438b51
mov dword [ebp - 0x10], edi
jmp 0x438b55
and dword [ebp - 0x10], 0
mov eax, dword [ebp + 0xc]
lea ecx, [ebp - 0x3c]
push dword [eax + ebx]
call fcn.00402ddd
mov ecx, dword [ebp - 0x10]
push eax
push str.name
call fcn.0048fb30
test edi, edi
je 0x438b85
mov eax, dword [edi]
cmp dword [eax + 0x14], 0x403410
je 0x438b85
mov dword [ebp - 0x10], edi
jmp 0x438b89
and dword [ebp - 0x10], 0
mov eax, dword [ebp + 0xc]
lea ecx, [ebp - 0x3c]
push dword [eax + ebx + 8]
call fcn.00402ddd
mov ecx, dword [ebp - 0x10]
push eax
push 0x4b9428
call fcn.0048fb30
mov eax, dword [ebp + 0xc]
cmp dword [eax + ebx + 0x10], 0
je 0x438bd4
test edi, edi
je 0x438bc3
mov eax, dword [edi]
cmp dword [eax + 0x14], 0x403410
je 0x438bc3
mov ecx, edi
jmp 0x438bc5
xor ecx, ecx
push 0x4b9434
push str.optional
call fcn.0048fb30
test esi, esi
je 0x438be7
mov eax, dword [esi]
cmp dword [eax + 0x14], 0x403410
je 0x438be7
mov ecx, esi
jmp 0x438be9
xor ecx, ecx
push edi
call fcn.0048fa70
mov edi, dword [ebp + 0xc]
mov eax, dword [ebp - 0x18]
add edi, ebx
mov ecx, dword [ebp - 0x1c]
add ecx, 0x98
mov eax, dword [eax + 0xf4]
add ecx, eax
lea eax, [edi + 4]
push eax
lea eax, [ebp - 0x54]
push eax
call fcn.00403eb1
push edi
mov ecx, dword [eax]
add ecx, 0x14
call fcn.0040385c
mov eax, dword [ebp + 0xc]
add eax, ebx
mov dword [ebp - 0x10], eax
cmp dword [eax + 0xc], 0
je 0x438cb7
mov edi, dword [ebp - 0x18]
lea ecx, [ebp - 0x30]
push 0x4b91e8
mov edx, dword [edi + 0xf4]
add edx, dword [ebp - 0x1c]
call fcn.00401f34
mov byte [ebp - 4], 7
mov edx, eax
push dword [ebp - 0x10]
lea ecx, [ebp - 0x20]
call fcn.00405797
mov byte [ebp - 4], 9
lea ecx, [ebp - 0x30]
call fcn.004019df
mov eax, dword [ebp + 0xc]
push 1
push dword [ebp - 0x20]
push dword [eax + ebx + 4]
call dword [sym.imp.KERNEL32.dll_CopyFileW]
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp - 0x1c]
add eax, 4
add eax, ebx
add ecx, 0x98
add ecx, dword [edi + 0xf4]
push eax
lea eax, [ebp - 0x5c]
push eax
call fcn.00403eb1
lea ecx, [ebp - 0x20]
push ecx
push 0x18
mov ecx, dword [eax]
pop eax
add ecx, eax
call fcn.00402d8e
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x20]
call fcn.004019df
mov ecx, dword [ebp + 0xc]
push 0x18
pop eax
add ebx, eax
mov edi, dword [ebp - 0x28]
mov eax, dword [ebp + 0x10]
inc edi
sub eax, ecx
mov dword [ebp - 0x28], edi
cdq
idiv dword [ebp - 0x2c]
cmp edi, eax
jb 0x438ad7
xor ebx, ebx
inc ebx
push 0x4b94bc
push dword [ebp - 0x24]
lea eax, [ebp - 0x14]
push eax
call fcn.0041cc26
add esp, 0xc
cmp dword [ebp - 0x14], 0
je 0x438d11
push dword [ebp - 0x14]
lea ecx, [ebp - 0xa8]
call fcn.0048fae0
test al, al
je 0x438d11
push dword [ebp - 0x14]
call fcn.0041ca0d
pop ecx
jmp 0x438d13
xor ebx, ebx
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x24]
call fcn.004019df
mov byte [ebp - 4], 2
lea ecx, [ebp - 0xa8]
call fcn.004034c7
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x3c]
call fcn.00401a38
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp + 0xc]
call fcn.004039c7
mov eax, ebx
call fcn.00435353
ret 0x10