Function at 0x509f18
Capabilities:
Copy file

Disassembly:
push ebp
mov ebp, esp
mov ecx, 0x1a
push 0
push 0
dec ecx
jne 0x509f20
push ebx
push esi
push edi
mov byte [ebp - 5], dl
mov dword [ebp - 4], eax
xor eax, eax
push ebp
push 0x50a966
push dword fs:[eax]
mov dword fs:[eax], esp
mov byte [ebp - 6], 0
xor edx, edx
mov eax, dword [ebp - 4]
call fcn.00508220
mov byte [ebp - 0xd], 0
mov eax, dword [0x511ec8]
mov eax, dword [eax]
call fcn.005064c4
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2f8]
mov edx, dword [eax]
call dword [edx + 0xcc]
xor eax, eax
push ebp
push 0x50a7b0
push dword fs:[eax]
mov dword fs:[eax], esp
mov al, byte [ebp - 5]
sub al, 1
jb 0x509f95
je 0x50a0e6
dec al
je 0x50a264
jmp 0x50a741
mov eax, dword [0x511c4c]
mov eax, dword [eax]
mov edx, 0x50a980
call fcn.004e0154
push ebp
lea edx, [ebp - 0x20]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x428]
call fcn.004dfc7c
mov eax, dword [ebp - 0x20]
call fcn.0050991c
pop ecx
mov eax, dword [0x511ec8]
mov eax, dword [eax]
mov edx, 0x50a99c
call fcn.00432b70
mov eax, dword [0x511ec8]
mov eax, dword [eax]
mov edx, 0x50a9bc
call fcn.00506614
push 0x50a9e4
lea edx, [ebp - 0x24]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x428]
call fcn.004dfc7c
push dword [ebp - 0x24]
push 0x50aa10
push 0x50aa10
push 0x50aa1c
mov eax, dword [0x511ec8]
mov eax, dword [eax]
add eax, 0x2e0
mov edx, 5
call fcn.00404228
mov eax, dword [0x511ec8]
mov eax, dword [eax]
add eax, 0x2e8
mov edx, 0x50aa70
call fcn.00403f3c
mov eax, dword [0x511ec8]
mov eax, dword [eax]
call fcn.005064e4
push 0x50aad4
lea edx, [ebp - 0x2c]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x424]
call fcn.004dfc58
push dword [ebp - 0x2c]
push 0x50aaf0
lea edx, [ebp - 0x30]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x428]
call fcn.004dfc7c
push dword [ebp - 0x30]
lea eax, [ebp - 0x28]
mov edx, 4
call fcn.00404228
mov edx, dword [ebp - 0x28]
mov eax, dword [0x511c4c]
mov eax, dword [eax]
call fcn.004e0154
lea edx, [ebp - 0x34]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x428]
call fcn.004dfc7c
mov eax, dword [ebp - 0x34]
push eax
lea edx, [ebp - 0x38]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x424]
call fcn.004dfc7c
mov edx, dword [ebp - 0x38]
mov eax, dword [ebp - 4]
pop ecx
call fcn.005092ec
test al, al
jne 0x50a741
mov ecx, 0x50ab00
mov dl, 1
mov eax, dword [0x506a00]
call fcn.0040cc2c
call fcn.00403918
jmp 0x50a741
mov eax, dword [0x511c4c]
mov eax, dword [eax]
mov edx, 0x50ab20
call fcn.004e0154
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x42c]
call fcn.004dfcc8
test al, al
jne 0x50a124
push ebp
lea edx, [ebp - 0x3c]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x42c]
call fcn.004dfc7c
mov eax, dword [ebp - 0x3c]
call fcn.00509bc8
pop ecx
mov byte [ebp - 0xd], 1
mov eax, dword [0x511ec8]
mov eax, dword [eax]
mov edx, 0x50ab3c
call fcn.00432b70
mov eax, dword [0x511ec8]
mov eax, dword [eax]
mov edx, 0x50a9bc
call fcn.00506614
lea edx, [ebp - 0x40]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x42c]
call fcn.004dfc58
mov ecx, dword [ebp - 0x40]
mov eax, dword [0x511ec8]
mov eax, dword [eax]
add eax, 0x2e0
mov edx, 0x50ab58
call fcn.004041b4
mov eax, dword [0x511ec8]
mov eax, dword [eax]
add eax, 0x2e8
mov edx, 0x50ab84
call fcn.00403f3c
mov eax, dword [0x511ec8]
mov eax, dword [eax]
call fcn.005064e4
push 0x50abe8
lea edx, [ebp - 0x48]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x42c]
call fcn.004dfc58
push dword [ebp - 0x48]
push 0x50ac04
lea edx, [ebp - 0x4c]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x42c]
call fcn.004dfc34
push dword [ebp - 0x4c]
lea eax, [ebp - 0x44]
mov edx, 4
call fcn.00404228
mov edx, dword [ebp - 0x44]
mov eax, dword [0x511c4c]
mov eax, dword [eax]
call fcn.004e0154
lea edx, [ebp - 0x50]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x42c]
call fcn.004dfc7c
mov eax, dword [ebp - 0x50]
push eax
lea edx, [ebp - 0x54]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x42c]
call fcn.004dfc34
mov edx, dword [ebp - 0x54]
mov eax, dword [ebp - 4]
pop ecx
call fcn.005095d8
test al, al
jne 0x50a230
mov ecx, 0x50ac14
mov dl, 1
mov eax, dword [0x506a00]
call fcn.0040cc2c
call fcn.00403918
lea edx, [ebp - 0x58]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x42c]
call fcn.004dfc7c
mov eax, dword [ebp - 0x58]
push eax
lea edx, [ebp - 0x5c]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x42c]
call fcn.004dfc7c
mov eax, dword [ebp - 0x5c]
pop edx
call fcn.00409b34
jmp 0x50a741
mov eax, dword [0x511c4c]
mov eax, dword [eax]
mov edx, 0x50ac34
call fcn.004e0154
push ebp
lea edx, [ebp - 0x60]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x430]
call fcn.004dfc7c
mov eax, dword [ebp - 0x60]
call fcn.00509a80
pop ecx
push ebp
lea edx, [ebp - 0x64]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x428]
call fcn.004dfc7c
mov eax, dword [ebp - 0x64]
call fcn.0050991c
pop ecx
mov byte [ebp - 0xd], 1
mov eax, dword [ebp - 4]
push dword [eax + 0x41c]
push 0x50ac50
push 0x50ac64
lea eax, [ebp - 0x14]
mov edx, 3
call fcn.00404228
mov eax, dword [0x511ec8]
mov eax, dword [eax]
mov edx, 0x50ac7c
call fcn.00432b70
mov eax, dword [0x511ec8]
mov eax, dword [eax]
mov edx, 0x50ac98
call fcn.00506614
push 0x50acc4
lea edx, [ebp - 0x68]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x430]
call fcn.004dfc58
push dword [ebp - 0x68]
push 0x50aa10
push 0x50aa10
push 0x50aa1c
mov eax, dword [0x511ec8]
mov eax, dword [eax]
add eax, 0x2e0
mov edx, 5
call fcn.00404228
mov eax, dword [0x511ec8]
mov eax, dword [eax]
add eax, 0x2e8
mov edx, 0x50ad04
call fcn.00403f3c
mov eax, dword [0x511ec8]
mov eax, dword [eax]
call fcn.005064e4
mov eax, dword [0x511ec8]
mov eax, dword [eax]
mov edx, 0x50ad68
call fcn.00506614
mov eax, dword [ebp - 4]
call fcn.0050b3a0
test al, al
je 0x50a381
mov eax, dword [0x511ec8]
mov eax, dword [eax]
mov edx, 0x50ad90
call fcn.00506614
jmp 0x50a392
mov eax, dword [0x511ec8]
mov eax, dword [eax]
mov edx, 0x50adac
call fcn.00506614
push 0x50ade4
lea edx, [ebp - 0x70]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x424]
call fcn.004dfc58
push dword [ebp - 0x70]
push 0x50aaf0
lea edx, [ebp - 0x74]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x434]
call fcn.004dfc58
push dword [ebp - 0x74]
lea eax, [ebp - 0x6c]
mov edx, 4
call fcn.00404228
mov edx, dword [ebp - 0x6c]
mov eax, dword [0x511c4c]
mov eax, dword [eax]
call fcn.004e0154
push 0
lea edx, [ebp - 0x78]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x434]
call fcn.004dfc7c
mov eax, dword [ebp - 0x78]
call fcn.0040432c
push eax
lea edx, [ebp - 0x7c]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x424]
call fcn.004dfc7c
mov eax, dword [ebp - 0x7c]
call fcn.0040432c
push eax
call sub.kernel32.dll_CopyFileA
test eax, eax
jne 0x50a435
mov ecx, 0x50adfc
mov dl, 1
mov eax, dword [0x506a60]
call fcn.0040cc2c
call fcn.00403918
mov eax, dword [0x511ec8]
mov eax, dword [eax]
mov edx, 0x50ae1c
call fcn.00506614
push 0x50aad4
lea edx, [ebp - 0x84]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x424]
call fcn.004dfc58
push dword [ebp - 0x84]
push 0x50aaf0
lea edx, [ebp - 0x88]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x428]
call fcn.004dfc7c
push dword [ebp - 0x88]
lea eax, [ebp - 0x80]
mov edx, 4
call fcn.00404228
mov edx, dword [ebp - 0x80]
mov eax, dword [0x511c4c]
mov eax, dword [eax]
call fcn.004e0154
lea edx, [ebp - 0x8c]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x428]
call fcn.004dfc7c
mov eax, dword [ebp - 0x8c]
push eax
lea edx, [ebp - 0x90]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x424]
call fcn.004dfc7c
mov edx, dword [ebp - 0x90]
mov eax, dword [ebp - 4]
pop ecx
call fcn.005092ec
test al, al
jne 0x50a4f8
mov ecx, 0x50ab00
mov dl, 1
mov eax, dword [0x506a00]
call fcn.0040cc2c
call fcn.00403918
mov eax, dword [0x511ec8]
mov eax, dword [eax]
mov edx, 0x50ae48
call fcn.00506614
lea edx, [ebp - 0x98]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x424]
call fcn.004dfc58
mov ecx, dword [ebp - 0x98]
lea eax, [ebp - 0x94]
mov edx, 0x50ae74
call fcn.004041b4
mov edx, dword [ebp - 0x94]
mov eax, dword [0x511c4c]
mov eax, dword [eax]
call fcn.004e0154
mov eax, dword [ebp - 4]
call fcn.00508d04
test al, al
jne 0x50a567
mov ecx, 0x50ae90
mov dl, 1
mov eax, dword [0x506a00]
call fcn.0040cc2c
call fcn.00403918
mov eax, dword [0x511ec8]
mov eax, dword [eax]
mov edx, 0x50aeb4
call fcn.00506614
lea eax, [ebp - 0x9c]
mov ecx, dword [ebp - 0x14]
mov edx, 0x50aee0
call fcn.004041b4
mov edx, dword [ebp - 0x9c]
mov eax, dword [0x511c4c]
mov eax, dword [eax]
call fcn.004e0154
lea edx, [ebp - 0xa0]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x424]
call fcn.004dfc7c
mov edx, dword [ebp - 0xa0]
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 4]
call fcn.005092ec
test al, al
jne 0x50a5dc
mov ecx, 0x50af08
mov dl, 1
mov eax, dword [0x506a00]
call fcn.0040cc2c
call fcn.00403918
mov eax, dword [0x511ec8]
mov eax, dword [eax]
mov edx, 0x50af2c
call fcn.00506614
mov eax, dword [0x512390]
mov eax, dword [eax]
call fcn.00503fe4
lea edx, [ebp - 0xa8]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x424]
call fcn.004dfc7c
mov ecx, dword [ebp - 0xa8]
lea eax, [ebp - 0xa4]
mov edx, 0x50af58
call fcn.004041b4
mov edx, dword [ebp - 0xa4]
mov eax, dword [0x511c4c]
mov eax, dword [eax]
call fcn.004e0154
lea edx, [ebp - 0xac]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x424]
call fcn.004dfc7c
mov eax, dword [ebp - 0xac]
call fcn.00409b1c
test al, al
jne 0x50a66e
mov ecx, 0x50af7c
mov dl, 1
mov eax, dword [0x506a00]
call fcn.0040cc2c
call fcn.00403918
lea edx, [ebp - 0xb4]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x430]
call fcn.004dfc7c
mov ecx, dword [ebp - 0xb4]
lea eax, [ebp - 0xb0]
mov edx, 0x50afa4
call fcn.004041b4
mov edx, dword [ebp - 0xb0]
mov eax, dword [0x511c4c]
mov eax, dword [eax]
call fcn.004e0154
lea edx, [ebp - 0xb8]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x430]
call fcn.004dfc7c
mov ecx, dword [ebp - 0xb8]
mov edx, dword [ebp - 0x14]
mov eax, dword [ebp - 4]
call fcn.005095d8
test al, al
jne 0x50a6e9
mov ecx, 0x50afc4
mov dl, 1
mov eax, dword [0x506a00]
call fcn.0040cc2c
call fcn.00403918
lea eax, [ebp - 0xbc]
mov ecx, dword [ebp - 0x14]
mov edx, 0x50afec
call fcn.004041b4
mov edx, dword [ebp - 0xbc]
mov eax, dword [0x511c4c]
mov eax, dword [eax]
call fcn.004e0154
mov eax, dword [ebp - 0x14]
call fcn.00409b1c
test al, al
jne 0x50a730
mov ecx, 0x50b014
mov dl, 1
mov eax, dword [0x506a00]
call fcn.0040cc2c
call fcn.00403918
mov eax, dword [0x511ec8]
mov eax, dword [eax]
mov edx, 0x50b040
call fcn.00506614
mov eax, dword [0x511ec8]
mov eax, dword [eax]
call fcn.005066c8
cmp byte [ebp - 0xd], 0
je 0x50a78d
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40c]
call fcn.004dee28
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40c]
call fcn.004df10c
mov edx, eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2e8]
call fcn.0042d3b4
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40c]
call fcn.004df054
mov eax, dword [ebp - 4]
call fcn.0050d860
mov dl, 1
mov eax, dword [ebp - 4]
call fcn.00508220
mov byte [ebp - 6], 1
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x50a940
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x50a96d
lea eax, [ebp - 0xd0]
mov edx, 0x2d
call fcn.00403f0c
lea eax, [ebp - 0x14]
call fcn.00403ee8
ret