Function at 0x40c5e8
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 0x40ccb3
push dword fs:[eax]
mov dword fs:[eax], esp
xor edx, edx
push ebp
push 0x40cc56
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.0040c498
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 0x40cc37
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 0x40c704
lea ecx, [ebp - 0x10]
mov edx, 0x40ccd0
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 0x40c714
mov edx, dword [0x40ecf4]
mov eax, dword [0x40ecc8]
call fcn.004081f4
lea ecx, [ebp - 0x10]
mov edx, 0x40cce0
mov eax, dword [0x40ecc8]
call fcn.00406cd4
mov edx, dword [ebp - 0x10]
mov eax, 0x40eccc
call fcn.004031bc
call fcn.0040c410
cmp byte [0x40ecdc], 0
jne 0x40c8e1
mov eax, dword [0x40eccc]
call fcn.0040705c
test al, al
jne 0x40c76d
push 0x10
mov ecx, dword [0x40ec04]
mov edx, dword [0x40eccc]
mov al, 0xb0
call fcn.0040bec4
call fcn.00405eec
lea eax, [ebp - 0x10]
call fcn.004073a8
mov eax, dword [ebp - 0x10]
mov edx, 0x40ecc4
call fcn.0040c124
test al, al
jne 0x40c7b4
xor eax, eax
push ebp
push 0x40c7aa
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 0x40c7b4
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 0x40c7df
mov eax, dword [0x40eae0]
call fcn.0040bf34
push 0
mov eax, dword [0x40e014]
push eax
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x40cce8
push 0x40ccec
push 0
call sub.user32.dll_CreateWindowExA
mov dword [0x40ece0], eax
push 0x40c2b8
push 0xfffffffffffffffc
mov eax, dword [0x40ece0]
push eax
call sub.user32.dll_SetWindowLongA
mov dword [0x40ecf8], eax
xor eax, eax
push ebp
push 0x40c8da
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, 0x40ccfc
call fcn.0040581c
mov edx, dword [ebp - 0x10]
mov eax, dword [0x40ecc4]
call fcn.0040bfdc
mov dword [0x40ece8], eax
call fcn.0040c27c
test al, al
jne 0x40c8b6
push 0xff
push 0xffffffffffffffff
push 0
push 0x40ece8
push 1
call sub.user32.dll_MsgWaitForMultipleObjects
dec eax
je 0x40c895
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 0x40cc1f
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 0x40cd10
push 0x40ccec
push 0
call sub.user32.dll_CreateWindowExA
mov dword [0x40ece4], eax
push 0x40c304
push 0xfffffffffffffffc
mov eax, dword [0x40ece4]
push eax
call sub.user32.dll_SetWindowLongA
mov dword [0x40ecf8], eax
xor edx, edx
push ebp
push 0x40cc18
push dword fs:[edx]
mov dword fs:[edx], esp
xor edx, edx
push ebp
push 0x40c967
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 0x40c99e
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 0x40ca1c
call fcn.004079ac
test al, al
jne 0x40ca1c
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 0x40ca5b
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 0x40ca92
cmp byte [0x40ecdd], 0
jne 0x40cb0b
cmp byte [0x40ecde], 0
jne 0x40cb0b
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.0040bec4
cmp eax, 6
je 0x40cb0b
call fcn.00405eec
jmp 0x40cb0b
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.0040bec4
dec eax
je 0x40cb0b
call fcn.00405eec
mov eax, dword [0x40d280]
call fcn.00409f58
test al, al
jne 0x40cadb
mov ecx, 0x40c330
mov dl, 1
mov eax, dword [0x40d280]
call fcn.0040a1d4
mov ebx, eax
cmp dword [0x40ecb8], 0
je 0x40cb67
mov eax, dword [0x40ecb8]
push eax
call sub.user32.dll_SetForegroundWindow
jmp 0x40cb4c
call sub.user32.dll_WaitMessage
call fcn.0040c27c
cmp byte [0x40ecbd], 0
je 0x40cb42
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 0x40cbb3
mov eax, dword [0x40d280]
test byte [eax + 0x19], 8
jne 0x40cbb3
cmp byte [0x40ecdd], 0
jne 0x40cbeb
cmp byte [0x40ecde], 0
jne 0x40cbeb
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.0040bec4
jmp 0x40cbeb
cmp byte [0x40ecdf], 0
jne 0x40cbeb
cmp byte [0x40ecde], 0
jne 0x40cbe4
push 0x10044
mov eax, dword [0x40d280]
mov edx, dword [eax + 0x14]
mov ecx, dword [0x40ecd8]
mov al, 0xad
call fcn.0040bec4
cmp eax, 6
jne 0x40cbeb
mov byte [0x40d284], 1
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x40cc1f
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