Function at 0x59d094
Capabilities:
Copy file

Disassembly:
push ebp
mov ebp, esp
mov ecx, 8
push 0
push 0
dec ecx
jne 0x59d09c
push ecx
push ebx
push esi
push edi
mov edi, eax
xor eax, eax
push ebp
push 0x59d517
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 0x59d0dc
mov eax, dword [0x5aeb50]
mov eax, dword [eax]
call fcn.004fbba4
jmp 0x59d4fc
mov eax, edi
call fcn.0059d028
test al, al
je 0x59d299
mov eax, dword [0x5ae7dc]
mov eax, dword [eax]
cmp byte [eax + 0x335], 0
je 0x59d142
mov eax, dword [0x5ae7dc]
mov eax, dword [eax]
cmp dword [eax + 0x33c], 0
je 0x59d142
mov eax, dword [0x5ae7dc]
mov eax, dword [eax]
mov eax, dword [eax + 0x33c]
cmp dword [eax + 0xc], 0
je 0x59d142
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 0x59d4fc
lea eax, [ebp - 0x10]
call fcn.004fb5f8
lea ecx, [ebp - 0xc]
mov edx, 0x59d530
mov eax, dword [ebp - 0x10]
call fcn.00409780
mov eax, dword [ebp - 0x10]
call fcn.00409430
test al, al
jne 0x59d16e
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 0x59d1a0
mov eax, dword [0x5aebd8]
mov eax, dword [eax]
xor edx, edx
call fcn.0049f32c
jmp 0x59d4fc
mov eax, dword [0x5aebd8]
mov eax, dword [eax]
xor edx, edx
call fcn.0049f32c
cmp dword [ebp - 0x10], 0
je 0x59d1e9
mov eax, dword [ebp - 0x10]
call fcn.00409430
test al, al
je 0x59d1e9
mov eax, dword [ebp - 0x10]
call fcn.004096c4
test al, al
jne 0x59d1e9
push 0x10
mov ecx, 0x59d534
mov edx, 0x59d53c
mov eax, dword [0x5ae974]
mov eax, dword [eax]
call fcn.004a15f4
jmp 0x59d4fc
lea eax, [ebp - 0x14]
call fcn.004fb5f8
mov edx, dword [ebp - 0x14]
mov eax, dword [ebp - 0xc]
call fcn.004096dc
test al, al
jne 0x59d23c
push 0x10
push 0x59d56c
push dword [ebp - 0xc]
push 0x59d58c
lea eax, [ebp - 0x18]
mov edx, 3
call fcn.004047b4
mov eax, dword [ebp - 0x18]
call fcn.004048f4
mov edx, eax
mov ecx, 0x59d534
mov eax, dword [0x5ae974]
mov eax, dword [eax]
call fcn.004a15f4
jmp 0x59d4fc
mov eax, dword [0x5aea58]
mov eax, dword [eax + 0x3c]
call fcn.0040553c
mov esi, eax
dec esi
test esi, esi
jl 0x59d284
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 0x59d270
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 0x59d253
mov eax, dword [0x5ae7dc]
mov eax, dword [eax]
mov byte [eax + 0x335], 0
mov eax, edi
call fcn.0059d9a4
mov edx, dword [0x5aeb50]
mov edx, dword [edx]
lea eax, [ebp - 0x20]
mov ecx, 0x59d598
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 0x59d33d
push 0
mov edx, dword [0x5aeb50]
mov edx, dword [edx]
lea eax, [ebp - 0x24]
mov ecx, 0x59d598
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 0x59d31b
mov eax, 0x13ed
call fcn.004fb63c
jmp 0x59d4fc
mov edx, dword [0x5aeb50]
mov edx, dword [edx]
lea eax, [ebp - 0x2c]
mov ecx, 0x59d598
call fcn.00404740
mov eax, dword [ebp - 0x2c]
mov edx, 0x59d5b0
call fcn.004fd200
mov edx, dword [0x5aeb50]
mov edx, dword [edx]
lea eax, [ebp - 0x30]
mov ecx, 0x59d5c8
call fcn.00404740
mov eax, dword [ebp - 0x30]
call fcn.00409430
test al, al
jne 0x59d3d5
mov edx, dword [0x5ae558]
mov edx, dword [edx]
lea eax, [ebp - 0x34]
mov ecx, 0x59d5e0
call fcn.00404740
mov eax, dword [ebp - 0x34]
call fcn.00409430
test al, al
je 0x59d3d5
push 0
mov edx, dword [0x5aeb50]
mov edx, dword [edx]
lea eax, [ebp - 0x38]
mov ecx, 0x59d5c8
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, 0x59d5e0
call fcn.00404740
mov eax, dword [ebp - 0x3c]
call fcn.004048f4
push eax
call sub.kernel32.dll_CopyFileA
test eax, eax
jne 0x59d3d5
mov eax, 0x13ee
call fcn.004fb63c
jmp 0x59d4fc
xor eax, eax
mov dword [ebp - 8], eax
xor eax, eax
push ebp
push 0x59d462
push dword fs:[eax]
mov dword fs:[eax], esp
mov edx, dword [0x5aeb50]
mov edx, dword [edx]
lea eax, [ebp - 0x40]
mov ecx, 0x59d5f8
call fcn.00404740
mov ecx, dword [ebp - 0x40]
mov dl, 1
mov eax, dword [0x442d44]
call fcn.00442df4
mov dword [ebp - 8], eax
push 0x59d610
mov ecx, 0x59d624
mov edx, 0x59d634
mov eax, dword [ebp - 8]
mov ebx, dword [eax]
call dword [ebx + 4]
push 0x59d644
mov ecx, 0x59d658
mov edx, 0x59d634
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, 0x59d668
mov edx, 0x59d634
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 0x59d493
mov eax, dword [ebp - 8]
call fcn.00403600
mov edx, dword [0x5ae558]
mov edx, dword [edx]
lea eax, [ebp - 0x44]
mov ecx, 0x59d698
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, 0x59d6b0
mov edx, 0x59d6c4
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.0056c4dc
mov byte [ebp - 1], 1
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x59d51e
lea eax, [ebp - 0x44]
mov edx, 0xf
call fcn.00404458
ret