Function at 0x58f000
Capabilities:
Copy file

Disassembly:
push ebp
mov ebp, esp
mov ecx, 0x50
push 0
push 0
dec ecx
jne 0x58f008
push ecx
xor eax, eax
push ebp
push 0x58fbf0
push dword fs:[eax]
mov dword fs:[eax], esp
lea eax, [ebp - 4]
mov edx, 0x58fc08
call fcn.00404f48
lea eax, [ebp - 8]
mov edx, 0x58fc14
call fcn.00404f48
push 0x58fc20
lea edx, [ebp - 0x1e0]
mov eax, dword [0x5cf16c]
movzx eax, byte [eax]
call fcn.00409e18
push dword [ebp - 0x1e0]
push 0x58fc30
lea eax, [ebp - 0xc]
mov edx, 3
call fcn.00405228
mov eax, dword [ebp - 0xc]
call fcn.0040a0f0
test al, al
je 0x58f2b9
push 0xffffffffffffffff
lea eax, [ebp - 0x1e4]
mov ecx, 0x58fc44
mov edx, dword [ebp - 0xc]
call fcn.004051b4
mov eax, dword [ebp - 0x1e4]
call fcn.00405360
push eax
mov eax, dword [ebp - 0xc]
call fcn.00405360
push eax
call sub.kernel32.dll_CopyFileA
lea eax, [ebp - 0x1e8]
mov ecx, 0x58fc44
mov edx, dword [ebp - 0xc]
call fcn.004051b4
mov edx, dword [ebp - 0x1e8]
lea eax, [ebp - 0x1dc]
call fcn.00402fa8
xor eax, eax
push ebp
push 0x58f2b2
push dword fs:[eax]
mov dword fs:[eax], esp
lea eax, [ebp - 0x1dc]
call fcn.00402d2c
call fcn.00402990
jmp 0x58f23c
lea edx, [ebp - 0x10]
lea eax, [ebp - 0x1dc]
call fcn.00403498
lea eax, [ebp - 0x1dc]
call fcn.00403504
call fcn.00402990
lea eax, [ebp - 0x1ec]
push eax
mov edx, dword [ebp - 0x10]
mov eax, 0x58fc50
call fcn.004054a4
mov ecx, eax
sub ecx, 1
jno 0x58f12c
call fcn.00403fe0
mov edx, 1
mov eax, dword [ebp - 0x10]
call fcn.004053c0
mov eax, dword [ebp - 0x1ec]
mov edx, 0x58fc5c
call fcn.004052ac
jne 0x58f1a8
mov edx, dword [ebp - 0x10]
mov eax, 0x58fc50
call fcn.004054a4
mov ecx, eax
lea eax, [ebp - 0x10]
mov edx, 1
call fcn.00405400
cmp dword [ebp - 0x10], 0
je 0x58f254
jmp 0x58f18b
lea eax, [ebp - 0x10]
mov ecx, 1
mov edx, 1
call fcn.00405400
cmp dword [ebp - 0x10], 0
je 0x58f193
mov eax, dword [ebp - 0x10]
cmp byte [eax], 0x20
je 0x58f173
cmp dword [ebp - 0x10], 0
je 0x58f254
lea eax, [ebp - 4]
mov edx, dword [ebp - 0x10]
call fcn.00404f48
lea eax, [ebp - 0x1f0]
push eax
mov edx, dword [ebp - 0x10]
mov eax, 0x58fc50
call fcn.004054a4
mov ecx, eax
sub ecx, 1
jno 0x58f1c8
call fcn.00403fe0
mov edx, 1
mov eax, dword [ebp - 0x10]
call fcn.004053c0
mov eax, dword [ebp - 0x1f0]
mov edx, 0x58fc70
call fcn.004052ac
jne 0x58f23c
mov edx, dword [ebp - 0x10]
mov eax, 0x58fc50
call fcn.004054a4
mov ecx, eax
lea eax, [ebp - 0x10]
mov edx, 1
call fcn.00405400
cmp dword [ebp - 0x10], 0
je 0x58f254
jmp 0x58f223
lea eax, [ebp - 0x10]
mov ecx, 1
mov edx, 1
call fcn.00405400
cmp dword [ebp - 0x10], 0
je 0x58f22b
mov eax, dword [ebp - 0x10]
cmp byte [eax], 0x20
je 0x58f20b
cmp dword [ebp - 0x10], 0
je 0x58f254
lea eax, [ebp - 8]
mov edx, dword [ebp - 0x10]
call fcn.00404f48
lea eax, [ebp - 0x1dc]
call fcn.00403230
call fcn.00402990
test al, al
je 0x58f0ee
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x58f2b9
lea eax, [ebp - 0x1dc]
call fcn.00403070
call fcn.00402990
lea eax, [ebp - 0x1f4]
mov ecx, 0x58fc44
mov edx, dword [ebp - 0xc]
call fcn.004051b4
mov eax, dword [ebp - 0x1f4]
call fcn.0040a0f0
test al, al
je 0x58f2b1
lea eax, [ebp - 0x1f8]
mov ecx, 0x58fc44
mov edx, dword [ebp - 0xc]
call fcn.004051b4
mov eax, dword [ebp - 0x1f8]
call fcn.0040a218
ret
mov eax, dword [0x5cfba0]
mov eax, dword [eax]
mov eax, dword [eax + 0x300]
mov edx, dword [eax]
call dword [edx + 0xdc]
mov eax, dword [0x5cfba0]
mov eax, dword [eax]
mov eax, dword [eax + 0x30c]
mov edx, dword [eax]
call dword [edx + 0xdc]
mov eax, dword [0x5cfba0]
mov eax, dword [eax]
mov eax, dword [eax + 0x300]
mov eax, dword [eax + 0x220]
mov edx, 0x58fc8c
mov ecx, dword [eax]
call dword [ecx + 0x38]
mov ecx, dword [0x5cf16c]
mov ecx, dword [ecx + 4]
lea eax, [ebp - 0x1fc]
mov edx, 0x58fcb4
call fcn.004051b4
mov edx, dword [ebp - 0x1fc]
mov eax, dword [0x5cfba0]
mov eax, dword [eax]
mov eax, dword [eax + 0x300]
mov eax, dword [eax + 0x220]
mov ecx, dword [eax]
call dword [ecx + 0x38]
mov eax, dword [0x5cfba0]
mov eax, dword [eax]
mov eax, dword [eax + 0x30c]
mov eax, dword [eax + 0x220]
mov edx, 0x58fcd0
mov ecx, dword [eax]
call dword [ecx + 0x38]
mov ecx, dword [0x5cf16c]
mov ecx, dword [ecx + 4]
lea eax, [ebp - 0x200]
mov edx, 0x58fcf0
call fcn.004051b4
mov edx, dword [ebp - 0x200]
mov eax, dword [0x5cfba0]
mov eax, dword [eax]
mov eax, dword [eax + 0x30c]
mov eax, dword [eax + 0x220]
mov ecx, dword [eax]
call dword [ecx + 0x38]
lea edx, [ebp - 0x208]
mov eax, dword [0x5cf16c]
movzx eax, byte [eax]
call fcn.00409e18
mov ecx, dword [ebp - 0x208]
lea eax, [ebp - 0x204]
mov edx, 0x58fd0c
call fcn.004051b4
mov edx, dword [ebp - 0x204]
mov eax, dword [0x5cfba0]
mov eax, dword [eax]
mov eax, dword [eax + 0x300]
mov eax, dword [eax + 0x220]
mov ecx, dword [eax]
call dword [ecx + 0x38]
mov eax, dword [0x5cfba0]
mov eax, dword [eax]
mov eax, dword [eax + 0x30c]
mov eax, dword [eax + 0x220]
mov edx, 0x58fd28
mov ecx, dword [eax]
call dword [ecx + 0x38]
lea edx, [ebp - 0x210]
mov eax, dword [0x5cf16c]
movzx eax, byte [eax]
call fcn.00409e18
mov ecx, dword [ebp - 0x210]
lea eax, [ebp - 0x20c]
mov edx, 0x58fd3c
call fcn.004051b4
mov edx, dword [ebp - 0x20c]
mov eax, dword [0x5cfba0]
mov eax, dword [eax]
mov eax, dword [eax + 0x30c]
mov eax, dword [eax + 0x220]
mov ecx, dword [eax]
call dword [ecx + 0x38]
mov eax, dword [0x5cfba0]
mov eax, dword [eax]
mov eax, dword [eax + 0x30c]
mov eax, dword [eax + 0x220]
mov edx, 0x58fd58
mov ecx, dword [eax]
call dword [ecx + 0x38]
lea eax, [ebp - 0x214]
mov ecx, dword [ebp - 4]
mov edx, 0x58fd80
call fcn.004051b4
mov edx, dword [ebp - 0x214]
mov eax, dword [0x5cfba0]
mov eax, dword [eax]
mov eax, dword [eax + 0x30c]
mov eax, dword [eax + 0x220]
mov ecx, dword [eax]
call dword [ecx + 0x38]
mov eax, dword [0x5cfba0]
mov eax, dword [eax]
mov eax, dword [eax + 0x30c]
mov eax, dword [eax + 0x220]
mov edx, 0x58fd9c
mov ecx, dword [eax]
call dword [ecx + 0x38]
lea eax, [ebp - 0x218]
mov ecx, dword [ebp - 8]
mov edx, 0x58fdd4
call fcn.004051b4
mov edx, dword [ebp - 0x218]
mov eax, dword [0x5cfba0]
mov eax, dword [eax]
mov eax, dword [eax + 0x30c]
mov eax, dword [eax + 0x220]
mov ecx, dword [eax]
call dword [ecx + 0x38]
mov eax, dword [0x5cfba0]
mov eax, dword [eax]
mov eax, dword [eax + 0x30c]
mov eax, dword [eax + 0x220]
mov edx, 0x58fdf0
mov ecx, dword [eax]
call dword [ecx + 0x38]
mov eax, dword [0x5cfba0]
mov eax, dword [eax]
mov eax, dword [eax + 0x30c]
mov eax, dword [eax + 0x220]
mov edx, 0x58fe0c
mov ecx, dword [eax]
call dword [ecx + 0x38]
mov eax, dword [0x5cfba0]
mov eax, dword [eax]
mov eax, dword [eax + 0x30c]
mov eax, dword [eax + 0x220]
mov edx, 0x58fc50
mov ecx, dword [eax]
call dword [ecx + 0x38]
mov eax, dword [0x5cfba0]
mov eax, dword [eax]
mov eax, dword [eax + 0x30c]
mov eax, dword [eax + 0x220]
mov edx, 0x58fc50
mov ecx, dword [eax]
call dword [ecx + 0x38]
push 0x58fe28
mov eax, dword [0x5cf16c]
push dword [eax + 4]
push 0x58fe38
lea eax, [ebp - 0x21c]
mov edx, 3
call fcn.00405228
mov edx, dword [ebp - 0x21c]
mov eax, dword [0x5cfba0]
mov eax, dword [eax]
mov eax, dword [eax + 0x30c]
mov eax, dword [eax + 0x220]
mov ecx, dword [eax]
call dword [ecx + 0x38]
mov eax, dword [0x5d1458]
mov eax, dword [eax + 0x394]
mov edx, dword [eax]
call dword [edx + 0xc4]
test al, al
je 0x58f5bc
mov eax, dword [0x5cfba0]
mov eax, dword [eax]
mov eax, dword [eax + 0x300]
mov eax, dword [eax + 0x220]
mov edx, 0x58fe4c
mov ecx, dword [eax]
call dword [ecx + 0x38]
jmp 0x58f5d9
mov eax, dword [0x5cfba0]
mov eax, dword [eax]
mov eax, dword [eax + 0x300]
mov eax, dword [eax + 0x220]
mov edx, 0x58fe70
mov ecx, dword [eax]
call dword [ecx + 0x38]
mov eax, dword [0x5cfba0]
mov eax, dword [eax]
mov eax, dword [eax + 0x30c]
mov eax, dword [eax + 0x220]
mov edx, 0x58fe94
mov ecx, dword [eax]
call dword [ecx + 0x38]
mov eax, dword [0x5d1458]
mov eax, dword [eax + 0x394]
mov edx, dword [eax]
call dword [edx + 0xc4]
and eax, 0x7f
lea edx, [ebp - 0x224]
call fcn.00409e18
mov ecx, dword [ebp - 0x224]
lea eax, [ebp - 0x220]
mov edx, 0x58fed0
call fcn.004051b4
mov edx, dword [ebp - 0x220]
mov eax, dword [0x5cfba0]
mov eax, dword [eax]
mov eax, dword [eax + 0x30c]
mov eax, dword [eax + 0x220]
mov ecx, dword [eax]
call dword [ecx + 0x38]
mov eax, dword [0x5cfba0]
mov eax, dword [eax]
mov eax, dword [eax + 0x30c]
mov eax, dword [eax + 0x220]
mov edx, 0x58feec
mov ecx, dword [eax]
call dword [ecx + 0x38]
mov eax, dword [0x5cfba0]
mov eax, dword [eax]
mov eax, dword [eax + 0x30c]
mov eax, dword [eax + 0x220]
mov edx, 0x58ff44
mov ecx, dword [eax]
call dword [ecx + 0x38]
mov eax, dword [0x5cfba0]
mov eax, dword [eax]
mov eax, dword [eax + 0x30c]
mov eax, dword [eax + 0x220]
mov edx, 0x58feec
mov ecx, dword [eax]
call dword [ecx + 0x38]
lea edx, [ebp - 0x22c]
mov eax, dword [0x5d1458]
mov eax, dword [eax + 0x30c]
call fcn.0044d8e8
mov ecx, dword [ebp - 0x22c]
lea eax, [ebp - 0x228]
mov edx, 0x58ff9c
call fcn.004051b4
mov edx, dword [ebp - 0x228]
mov eax, dword [0x5cfba0]
mov eax, dword [eax]
mov eax, dword [eax + 0x300]
mov eax, dword [eax + 0x220]
mov ecx, dword [eax]
call dword [ecx + 0x38]
lea edx, [ebp - 0x234]
mov eax, dword [0x5d1458]
mov eax, dword [eax + 0x30c]
call fcn.0044d8e8
mov ecx, dword [ebp - 0x234]
lea eax, [ebp - 0x230]
mov edx, 0x58ffb8
call fcn.004051b4
mov edx, dword [ebp - 0x230]
mov eax, dword [0x5cfba0]
mov eax, dword [eax]
mov eax, dword [eax + 0x30c]
mov eax, dword [eax + 0x220]
mov ecx, dword [eax]
call dword [ecx + 0x38]
lea edx, [ebp - 0x23c]
mov eax, dword [0x5d1458]
mov eax, dword [eax + 0x35c]
call fcn.0044d8e8
mov ecx, dword [ebp - 0x23c]
lea eax, [ebp - 0x238]
mov edx, 0x58ffcc
call fcn.004051b4
mov edx, dword [ebp - 0x238]
mov eax, dword [0x5cfba0]
mov eax, dword [eax]
mov eax, dword [eax + 0x30c]
mov eax, dword [eax + 0x220]
mov ecx, dword [eax]
call dword [ecx + 0x38]
lea edx, [ebp - 0x244]
mov eax, dword [0x5d1458]
mov eax, dword [eax + 0x360]
call fcn.0044d8e8
mov ecx, dword [ebp - 0x244]
lea eax, [ebp - 0x240]
mov edx, 0x58ffe8
call fcn.004051b4
mov edx, dword [ebp - 0x240]
mov eax, dword [0x5cfba0]
mov eax, dword [eax]
mov eax, dword [eax + 0x30c]
mov eax, dword [eax + 0x220]
mov ecx, dword [eax]
call dword [ecx + 0x38]
mov eax, dword [0x5cfba0]
mov eax, dword [eax]
mov eax, dword [eax + 0x30c]
mov eax, dword [eax + 0x220]
mov edx, 0x58feec
mov ecx, dword [eax]
call dword [ecx + 0x38]
mov eax, dword [0x5cfba0]
mov eax, dword [eax]
mov eax, dword [eax + 0x30c]
mov eax, dword [eax + 0x220]
mov edx, 0x590004
mov ecx, dword [eax]
call dword [ecx + 0x38]
mov eax, dword [0x5cfba0]
mov eax, dword [eax]
mov eax, dword [eax + 0x30c]
mov eax, dword [eax + 0x220]
mov edx, 0x58feec
mov ecx, dword [eax]
call dword [ecx + 0x38]
lea edx, [ebp - 0x24c]
mov eax, dword [0x5d1458]
mov eax, dword [eax + 0x32c]
call fcn.0044d8e8
mov ecx, dword [ebp - 0x24c]
lea eax, [ebp - 0x248]
mov edx, 0x59005c
call fcn.004051b4
mov edx, dword [ebp - 0x248]
mov eax, dword [0x5cfba0]
mov eax, dword [eax]
mov eax, dword [eax + 0x30c]
mov eax, dword [eax + 0x220]
mov ecx, dword [eax]
call dword [ecx + 0x38]
lea edx, [ebp - 0x254]
mov eax, dword [0x5d1458]
mov eax, dword [eax + 0x348]
call fcn.0044d8e8
mov ecx, dword [ebp - 0x254]
lea eax, [ebp - 0x250]
mov edx, 0x59007c
call fcn.004051b4
mov edx, dword [ebp - 0x250]
mov eax, dword [0x5cfba0]
mov eax, dword [eax]
mov eax, dword [eax + 0x30c]
mov eax, dword [eax + 0x220]
mov ecx, dword [eax]
call dword [ecx + 0x38]
lea edx, [ebp - 0x25c]
mov eax, dword [0x5d1458]
mov eax, dword [eax + 0x328]
call fcn.0044d8e8
mov ecx, dword [ebp - 0x25c]
lea eax, [ebp - 0x258]
mov edx, 0x59009c
call fcn.004051b4
mov edx, dword [ebp - 0x258]
mov eax, dword [0x5cfba0]
mov eax, dword [eax]
mov eax, dword [eax + 0x30c]
mov eax, dword [eax + 0x220]
mov ecx, dword [eax]
call dword [ecx + 0x38]
lea edx, [ebp - 0x264]
mov eax, dword [0x5d1458]
mov eax, dword [eax + 0x33c]
call fcn.0044d8e8
mov ecx, dword [ebp - 0x264]
lea eax, [ebp - 0x260]
mov edx, 0x5900b8
call fcn.004051b4
mov edx, dword [ebp - 0x260]
mov eax, dword [0x5cfba0]
mov eax, dword [eax]
mov eax, dword [eax + 0x30c]
mov eax, dword [eax + 0x220]
mov ecx, dword [eax]
call dword [ecx + 0x38]
lea edx, [ebp - 0x26c]
mov eax, dword [0x5d1458]
mov eax, dword [eax + 0x354]
call fcn.0044d8e8
mov ecx, dword [ebp - 0x26c]
lea eax, [ebp - 0x268]
mov edx, 0x5900d8
call fcn.004051b4
mov edx, dword [ebp - 0x268]
mov eax, dword [0x5cfba0]
mov eax, dword [eax]
mov eax, dword [eax + 0x30c]
mov eax, dword [eax + 0x220]
mov ecx, dword [eax]
call dword [ecx + 0x38]
mov eax, dword [0x5cfba0]
mov eax, dword [eax]
mov eax, dword [eax + 0x30c]
mov eax, dword [eax + 0x220]
mov edx, 0x58feec
mov ecx, dword [eax]
call dword [ecx + 0x38]
mov eax, dword [0x5cfba0]
mov eax, dword [eax]
mov eax, dword [eax + 0x30c]
mov eax, dword [eax + 0x220]
mov edx, 0x5900f8
mov ecx, dword [eax]
call dword [ecx + 0x38]
mov eax, dword [0x5cfba0]
mov eax, dword [eax]
mov eax, dword [eax + 0x30c]
mov eax, dword [eax + 0x220]
mov edx, 0x58feec
mov ecx, dword [eax]
call dword [ecx + 0x38]
lea edx, [ebp - 0x274]
mov eax, dword [0x5d1458]
mov eax, dword [eax + 0x318]
call fcn.0044d8e8
mov ecx, dword [ebp - 0x274]
lea eax, [ebp - 0x270]
mov edx, 0x590150
call fcn.004051b4
mov edx, dword [ebp - 0x270]
mov eax, dword [0x5cfba0]
mov eax, dword [eax]
mov eax, dword [eax + 0x30c]
mov eax, dword [eax + 0x220]
mov ecx, dword [eax]
call dword [ecx + 0x38]
lea edx, [ebp - 0x27c]
mov eax, dword [0x5d1458]
mov eax, dword [eax + 0x37c]
call fcn.0044d8e8
mov ecx, dword [ebp - 0x27c]
lea eax, [ebp - 0x278]
mov edx, 0x590174
call fcn.004051b4
mov edx, dword [ebp - 0x278]
mov eax, dword [0x5cfba0]
mov eax, dword [eax]
mov eax, dword [eax + 0x30c]
mov eax, dword [eax + 0x220]
mov ecx, dword [eax]
call dword [ecx + 0x38]
lea edx, [ebp - 0x284]
mov eax, dword [0x5d1458]
mov eax, dword [eax + 0x388]
call fcn.0044d8e8
mov ecx, dword [ebp - 0x284]
lea eax, [ebp - 0x280]
mov edx, 0x590190
call fcn.004051b4
mov edx, dword [ebp - 0x280]
mov eax, dword [0x5cfba0]
mov eax, dword [eax]
mov eax, dword [eax + 0x30c]
mov eax, dword [eax + 0x220]
mov ecx, dword [eax]
call dword [ecx + 0x38]
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x58fbfa
lea eax, [ebp - 0x284]
call fcn.00404eb0
lea eax, [ebp - 0x280]
call fcn.00404eb0
lea eax, [ebp - 0x27c]
call fcn.00404eb0
lea eax, [ebp - 0x278]
call fcn.00404eb0
lea eax, [ebp - 0x274]
call fcn.00404eb0
lea eax, [ebp - 0x270]
call fcn.00404eb0
lea eax, [ebp - 0x26c]
call fcn.00404eb0
lea eax, [ebp - 0x268]
call fcn.00404eb0
lea eax, [ebp - 0x264]
call fcn.00404eb0
lea eax, [ebp - 0x260]
call fcn.00404eb0
lea eax, [ebp - 0x25c]
call fcn.00404eb0
lea eax, [ebp - 0x258]
call fcn.00404eb0
lea eax, [ebp - 0x254]
call fcn.00404eb0
lea eax, [ebp - 0x250]
call fcn.00404eb0
lea eax, [ebp - 0x24c]
call fcn.00404eb0
lea eax, [ebp - 0x248]
call fcn.00404eb0
lea eax, [ebp - 0x244]
call fcn.00404eb0
lea eax, [ebp - 0x240]
call fcn.00404eb0
lea eax, [ebp - 0x23c]
call fcn.00404eb0
lea eax, [ebp - 0x238]
call fcn.00404eb0
lea eax, [ebp - 0x234]
call fcn.00404eb0
lea eax, [ebp - 0x230]
call fcn.00404eb0
lea eax, [ebp - 0x22c]
call fcn.00404eb0
lea eax, [ebp - 0x228]
mov edx, 0x13
call fcn.00404ed4
lea eax, [ebp - 0x10]
mov edx, 4
call fcn.00404ed4
ret