Function at 0x59d078
Capabilities:
Copy file

Disassembly:
push ebp
mov ebp, esp
mov ecx, 8
push 0
push 0
dec ecx
jne 0x59d080
push ecx
push ebx
push esi
push edi
mov edi, eax
xor eax, eax
push ebp
push 0x59d4fb
push dword fs:[eax]
mov dword fs:[eax], esp
mov byte [ebp - 1], 0
mov eax, dword [0x5aeb50]
mov eax, dword [eax]
call fcn.00409440
test al, al
jne 0x59d0c0
mov eax, dword [0x5aeb50]
mov eax, dword [eax]
call fcn.004fbba4
jmp 0x59d4e0
mov eax, edi
call fcn.0059d00c
test al, al
je 0x59d27d
mov eax, dword [0x5ae7dc]
mov eax, dword [eax]
cmp byte [eax + 0x335], 0
je 0x59d126
mov eax, dword [0x5ae7dc]
mov eax, dword [eax]
cmp dword [eax + 0x33c], 0
je 0x59d126
mov eax, dword [0x5ae7dc]
mov eax, dword [eax]
mov eax, dword [eax + 0x33c]
cmp dword [eax + 0xc], 0
je 0x59d126
mov eax, dword [0x5ae7dc]
mov eax, dword [eax]
mov eax, dword [eax + 0x33c]
mov edx, dword [eax + 0xc]
mov eax, dword [0x5ae7dc]
mov eax, dword [eax]
call fcn.0052d7dc
test al, al
je 0x59d4e0
lea eax, [ebp - 0x10]
call fcn.004fb5f8
lea ecx, [ebp - 0xc]
mov edx, 0x59d514
mov eax, dword [ebp - 0x10]
call fcn.00409780
mov eax, dword [ebp - 0x10]
call fcn.00409430
test al, al
jne 0x59d152
lea eax, [ebp - 0x10]
call fcn.00404434
mov eax, dword [0x5aebd8]
mov eax, dword [eax]
mov dx, 0xfff5
call fcn.0049f32c
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp - 0xc]
call fcn.0052d0e0
test al, al
jne 0x59d184
mov eax, dword [0x5aebd8]
mov eax, dword [eax]
xor edx, edx
call fcn.0049f32c
jmp 0x59d4e0
mov eax, dword [0x5aebd8]
mov eax, dword [eax]
xor edx, edx
call fcn.0049f32c
cmp dword [ebp - 0x10], 0
je 0x59d1cd
mov eax, dword [ebp - 0x10]
call fcn.00409430
test al, al
je 0x59d1cd
mov eax, dword [ebp - 0x10]
call fcn.004096c4
test al, al
jne 0x59d1cd
push 0x10
mov ecx, 0x59d518
mov edx, 0x59d520
mov eax, dword [0x5ae974]
mov eax, dword [eax]
call fcn.004a15f4
jmp 0x59d4e0
lea eax, [ebp - 0x14]
call fcn.004fb5f8
mov edx, dword [ebp - 0x14]
mov eax, dword [ebp - 0xc]
call fcn.004096dc
test al, al
jne 0x59d220
push 0x10
push 0x59d550
push dword [ebp - 0xc]
push 0x59d570
lea eax, [ebp - 0x18]
mov edx, 3
call fcn.004047b4
mov eax, dword [ebp - 0x18]
call fcn.004048f4
mov edx, eax
mov ecx, 0x59d518
mov eax, dword [0x5ae974]
mov eax, dword [eax]
call fcn.004a15f4
jmp 0x59d4e0
mov eax, dword [0x5aea58]
mov eax, dword [eax + 0x3c]
call fcn.0040553c
mov esi, eax
dec esi
test esi, esi
jl 0x59d268
inc esi
xor ebx, ebx
mov eax, dword [0x5aea58]
mov eax, dword [eax + 0x3c]
mov eax, dword [eax + ebx*4]
mov eax, dword [eax + 0x10]
test eax, eax
je 0x59d254
mov edx, dword [0x5aea58]
call fcn.00403600
mov eax, dword [0x5aea58]
mov eax, dword [eax + 0x3c]
mov eax, dword [eax + ebx*4]
xor edx, edx
mov dword [eax + 0x10], edx
inc ebx
dec esi
jne 0x59d237
mov eax, dword [0x5ae7dc]
mov eax, dword [eax]
mov byte [eax + 0x335], 0
mov eax, edi
call fcn.0059d988
mov edx, dword [0x5aeb50]
mov edx, dword [edx]
lea eax, [ebp - 0x20]
mov ecx, 0x59d57c
call fcn.00404740
mov eax, dword [ebp - 0x20]
lea edx, [ebp - 0x1c]
call fcn.004f9f64
mov eax, dword [ebp - 0x1c]
mov edx, dword [0x5ae950]
mov edx, dword [edx]
call fcn.00404840
je 0x59d321
push 0
mov edx, dword [0x5aeb50]
mov edx, dword [edx]
lea eax, [ebp - 0x24]
mov ecx, 0x59d57c
call fcn.00404740
mov eax, dword [ebp - 0x24]
call fcn.004048f4
push eax
lea edx, [ebp - 0x28]
mov eax, dword [0x5ae974]
mov eax, dword [eax]
call fcn.004a1a74
mov eax, dword [ebp - 0x28]
call fcn.004048f4
push eax
call sub.kernel32.dll_CopyFileA
test eax, eax
jne 0x59d2ff
mov eax, 0x13ed
call fcn.004fb63c
jmp 0x59d4e0
mov edx, dword [0x5aeb50]
mov edx, dword [edx]
lea eax, [ebp - 0x2c]
mov ecx, 0x59d57c
call fcn.00404740
mov eax, dword [ebp - 0x2c]
mov edx, 0x59d594
call fcn.004fd200
mov edx, dword [0x5aeb50]
mov edx, dword [edx]
lea eax, [ebp - 0x30]
mov ecx, 0x59d5ac
call fcn.00404740
mov eax, dword [ebp - 0x30]
call fcn.00409430
test al, al
jne 0x59d3b9
mov edx, dword [0x5ae558]
mov edx, dword [edx]
lea eax, [ebp - 0x34]
mov ecx, 0x59d5c4
call fcn.00404740
mov eax, dword [ebp - 0x34]
call fcn.00409430
test al, al
je 0x59d3b9
push 0
mov edx, dword [0x5aeb50]
mov edx, dword [edx]
lea eax, [ebp - 0x38]
mov ecx, 0x59d5ac
call fcn.00404740
mov eax, dword [ebp - 0x38]
call fcn.004048f4
push eax
mov edx, dword [0x5ae558]
mov edx, dword [edx]
lea eax, [ebp - 0x3c]
mov ecx, 0x59d5c4
call fcn.00404740
mov eax, dword [ebp - 0x3c]
call fcn.004048f4
push eax
call sub.kernel32.dll_CopyFileA
test eax, eax
jne 0x59d3b9
mov eax, 0x13ee
call fcn.004fb63c
jmp 0x59d4e0
xor eax, eax
mov dword [ebp - 8], eax
xor eax, eax
push ebp
push 0x59d446
push dword fs:[eax]
mov dword fs:[eax], esp
mov edx, dword [0x5aeb50]
mov edx, dword [edx]
lea eax, [ebp - 0x40]
mov ecx, 0x59d5dc
call fcn.00404740
mov ecx, dword [ebp - 0x40]
mov dl, 1
mov eax, dword [0x442d44]
call fcn.00442df4
mov dword [ebp - 8], eax
push 0x59d5f4
mov ecx, 0x59d608
mov edx, 0x59d618
mov eax, dword [ebp - 8]
mov ebx, dword [eax]
call dword [ebx + 4]
push 0x59d628
mov ecx, 0x59d63c
mov edx, 0x59d618
mov eax, dword [ebp - 8]
mov ebx, dword [eax]
call dword [ebx + 4]
mov eax, dword [0x5aea58]
mov eax, dword [eax + 0x24]
push eax
mov ecx, 0x59d64c
mov edx, 0x59d618
mov eax, dword [ebp - 8]
mov ebx, dword [eax]
call dword [ebx + 4]
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x59d477
mov eax, dword [ebp - 8]
call fcn.00403600
mov edx, dword [0x5ae558]
mov edx, dword [edx]
lea eax, [ebp - 0x44]
mov ecx, 0x59d67c
call fcn.00404740
mov ecx, dword [ebp - 0x44]
mov dl, 1
mov eax, dword [0x442d44]
call fcn.00442df4
mov dword [ebp - 8], eax
mov eax, dword [0x5aeb50]
mov eax, dword [eax]
push eax
mov ecx, 0x59d694
mov edx, 0x59d6a8
mov eax, dword [ebp - 8]
mov ebx, dword [eax]
call dword [ebx + 4]
mov eax, dword [ebp - 8]
call fcn.00403600
mov edx, dword [0x5aeb50]
mov edx, dword [edx]
mov eax, dword [0x5aea58]
mov eax, dword [eax]
call fcn.0056c4c0
mov byte [ebp - 1], 1
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x59d502
lea eax, [ebp - 0x44]
mov edx, 0xf
call fcn.00404458
ret