Function at 0x40c5a8
Capabilities:
Copy file
Set current directory

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffc8
push ebx
push esi
push edi
xor eax, eax
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x38], eax
call fcn.004030b0
call fcn.004046b0
call fcn.00406c44
call fcn.00406c90
call fcn.004083fc
call fcn.00409afc
xor eax, eax
push ebp
push 0x40cc58
push dword fs:[eax]
mov dword fs:[eax], esp
xor edx, edx
push ebp
push 0x40cbfb
push dword fs:[edx]
mov dword fs:[edx], esp
lea eax, [ebp - 0x10]
call fcn.00407350
mov eax, dword [ebp - 0x10]
call fcn.004034a4
push eax
call sub.kernel32.dll_SetCurrentDirectoryA
lea edx, [ebp - 0x10]
xor eax, eax
call fcn.00407208
mov edx, dword [ebp - 0x10]
mov eax, 0x40ecc8
call fcn.004031bc
call fcn.0040c488
push 2
push 0
push 1
lea edx, [ebp - 0x10]
xor eax, eax
call fcn.00407208
mov ecx, dword [ebp - 0x10]
mov dl, 1
mov eax, 0x407bec
call fcn.00407c34
mov dword [0x40ecec], eax
xor edx, edx
push ebp
push 0x40cbdc
push dword fs:[edx]
mov dword fs:[edx], esp
lea edx, [ebp - 0x18]
mov eax, dword [0x40ecec]
call fcn.00407d2c
mov edx, dword [ebp - 0x18]
sub edx, 8
mov eax, dword [0x40ecec]
call fcn.00407e5c
mov edx, 0x40ecf0
mov ecx, 8
mov eax, dword [0x40ecec]
call fcn.00407e30
cmp dword [0x40ecf0], 0x67734d49
je 0x40c6c4
lea ecx, [ebp - 0x10]
mov edx, 0x40cc74
mov eax, dword [0x40ecc8]
call fcn.00406cd4
mov edx, dword [ebp - 0x10]
mov eax, 0x40ecd0
call fcn.004031bc
xor edx, edx
mov eax, dword [0x40ecd0]
call fcn.004081f4
jmp 0x40c6d4
mov edx, dword [0x40ecf4]
mov eax, dword [0x40ecc8]
call fcn.004081f4
lea ecx, [ebp - 0x10]
mov edx, 0x40cc84
mov eax, dword [0x40ecc8]
call fcn.00406cd4
mov edx, dword [ebp - 0x10]
mov eax, 0x40eccc
call fcn.004031bc
call fcn.0040c400
cmp byte [0x40ecdc], 0
jne 0x40c8a1
mov eax, dword [0x40eccc]
call fcn.0040705c
test al, al
jne 0x40c72d
push 0x10
mov ecx, dword [0x40ec04]
mov edx, dword [0x40eccc]
mov al, 0xb0
call fcn.0040beb4
call fcn.00405eec
lea eax, [ebp - 0x10]
call fcn.004073a8
mov eax, dword [ebp - 0x10]
mov edx, 0x40ecc4
call fcn.0040c114
test al, al
jne 0x40c774
xor eax, eax
push ebp
push 0x40c76a
push dword fs:[eax]
mov dword fs:[eax], esp
xor edx, edx
mov eax, dword [0x40ecc4]
call fcn.00408718
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x40c774
push 0
mov eax, dword [0x40ecc4]
call fcn.004034a4
push eax
mov eax, dword [0x40ecc8]
call fcn.004034a4
push eax
call sub.kernel32.dll_CopyFileA
test eax, eax
jne 0x40c79f
mov eax, dword [0x40eae0]
call fcn.0040bf24
push 0
mov eax, dword [0x40e014]
push eax
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x40cc8c
push 0x40cc90
push 0
call sub.user32.dll_CreateWindowExA
mov dword [0x40ece0], eax
push 0x40c2a8
push 0xfffffffffffffffc
mov eax, dword [0x40ece0]
push eax
call sub.user32.dll_SetWindowLongA
mov dword [0x40ecf8], eax
xor eax, eax
push ebp
push 0x40c89a
push dword fs:[eax]
mov dword fs:[eax], esp
lea eax, [ebp - 0x10]
push eax
lea edx, [ebp - 0x10]
xor eax, eax
call fcn.00407208
mov eax, dword [ebp - 0x10]
lea edx, [ebp - 0x34]
call fcn.004072a4
mov eax, dword [ebp - 0x34]
mov dword [ebp - 0x30], eax
mov byte [ebp - 0x2c], 0xb
mov eax, dword [0x40ece0]
mov dword [ebp - 0x28], eax
mov byte [ebp - 0x24], 0
lea eax, [ebp - 0x38]
call fcn.004070e4
mov eax, dword [ebp - 0x38]
mov dword [ebp - 0x20], eax
mov byte [ebp - 0x1c], 0xb
lea edx, [ebp - 0x30]
mov ecx, 2
mov eax, 0x40cca0
call fcn.0040581c
mov edx, dword [ebp - 0x10]
mov eax, dword [0x40ecc4]
call fcn.0040bfcc
mov dword [0x40ece8], eax
call fcn.0040c26c
test al, al
jne 0x40c876
push 0xff
push 0xffffffffffffffff
push 0
push 0x40ece8
push 1
call sub.user32.dll_MsgWaitForMultipleObjects
dec eax
je 0x40c855
mov eax, dword [0x40ece8]
push eax
call sub.kernel32.dll_CloseHandle_1
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x40cbc4
mov eax, dword [0x40ece0]
push eax
call sub.user32.dll_DestroyWindow
ret
push 0
mov eax, dword [0x40e014]
push eax
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x40ccb4
push 0x40cc90
push 0
call sub.user32.dll_CreateWindowExA
mov dword [0x40ece4], eax
push 0x40c2f4
push 0xfffffffffffffffc
mov eax, dword [0x40ece4]
push eax
call sub.user32.dll_SetWindowLongA
mov dword [0x40ecf8], eax
xor edx, edx
push ebp
push 0x40cbbd
push dword fs:[edx]
mov dword fs:[edx], esp
xor edx, edx
push ebp
push 0x40c927
push dword fs:[edx]
mov dword fs:[edx], esp
push 2
push 0
push 0
mov ecx, dword [0x40eccc]
mov dl, 1
mov eax, 0x407bec
call fcn.00407c34
mov dword [0x40ecd4], eax
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x40c95e
mov dl, 1
mov eax, 0x40bd60
call fcn.00409d54
mov dword [0x40d280], eax
mov ecx, dword [0x40eccc]
mov edx, dword [0x40ecd4]
mov eax, dword [0x40d280]
call fcn.0040adb8
lea ecx, [ebp - 0x10]
mov eax, dword [0x40d280]
mov edx, dword [eax + 0x14]
mov al, 0xa9
call fcn.004080a0
mov edx, dword [ebp - 0x10]
mov eax, 0x40ecd8
call fcn.004031bc
mov eax, dword [0x40d280]
test byte [eax + 0x19], 1
je 0x40c9dc
call fcn.004079ac
test al, al
jne 0x40c9dc
push 0x30
mov eax, dword [0x40ecd8]
call fcn.004034a4
push eax
mov eax, dword [0x40eb18]
call fcn.004034a4
push eax
push 0
call sub.user32.dll_MessageBoxA_1
call fcn.00405eec
mov eax, 0x40ecd4
call fcn.00407a34
xor edx, edx
push ebp
push 0x40ca1b
push dword fs:[edx]
mov dword fs:[edx], esp
push 2
push 2
push 0
mov ecx, dword [0x40eccc]
mov dl, 1
mov eax, 0x407bec
call fcn.00407c34
mov dword [0x40ecd4], eax
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x40ca52
cmp byte [0x40ecdd], 0
jne 0x40cac2
push 0x124
mov eax, dword [0x40ecd8]
call fcn.004034a4
mov edx, eax
lea eax, [ebp - 0x10]
call fcn.00403298
mov ecx, dword [ebp - 0x10]
mov eax, dword [0x40d280]
mov edx, dword [eax + 0x14]
mov al, 0x22
call fcn.0040beb4
cmp eax, 6
je 0x40cac2
call fcn.00405eec
jmp 0x40cac2
push 0x31
mov eax, dword [0x40ecd8]
call fcn.004034a4
mov edx, eax
lea eax, [ebp - 0x10]
call fcn.00403298
mov ecx, dword [ebp - 0x10]
mov eax, dword [0x40d280]
mov edx, dword [eax + 0x14]
mov al, 0xaf
call fcn.0040beb4
dec eax
je 0x40cac2
call fcn.00405eec
mov eax, dword [0x40d280]
call fcn.00409f58
test al, al
jne 0x40ca92
mov ecx, 0x40c320
mov dl, 1
mov eax, dword [0x40d280]
call fcn.0040a1d4
mov ebx, eax
cmp dword [0x40ecb8], 0
je 0x40cb1e
mov eax, dword [0x40ecb8]
push eax
call sub.user32.dll_SetForegroundWindow
jmp 0x40cb03
call sub.user32.dll_WaitMessage
call fcn.0040c26c
cmp byte [0x40ecbd], 0
je 0x40caf9
mov eax, dword [0x40ecb8]
push eax
call sub.user32.dll_DestroyWindow
xor eax, eax
mov dword [0x40ecb8], eax
mov eax, dword [0x40d280]
cmp byte [eax + 0x18], 0
jne 0x40cb61
mov eax, dword [0x40d280]
test byte [eax + 0x19], 8
jne 0x40cb61
cmp byte [0x40ecdd], 0
jne 0x40cb90
push 0x10040
mov eax, dword [0x40d280]
mov edx, dword [eax + 0x14]
xor eax, eax
mov al, bl
mov al, byte [eax + 0x40d278]
mov ecx, dword [0x40ecd8]
call fcn.0040beb4
jmp 0x40cb90
cmp byte [0x40ecde], 0
jne 0x40cb90
push 0x10044
mov eax, dword [0x40d280]
mov edx, dword [eax + 0x14]
mov ecx, dword [0x40ecd8]
mov al, 0xad
call fcn.0040beb4
cmp eax, 6
jne 0x40cb90
mov byte [0x40d284], 1
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x40cbc4
mov eax, dword [0x40d280]
call fcn.004028f8
mov eax, 0x40ecd4
call fcn.00407a34
mov eax, dword [0x40ece4]
push eax
call sub.user32.dll_DestroyWindow
ret