Function at 0x40ec40
Capabilities:
Check mutex on windows
Copy file
Create directory

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x52b1be
mov eax, dword fs:[0]
push eax
sub esp, 0xbc0
mov eax, dword [0x58482c]
xor eax, ebp
mov dword [ebp - 0x48], eax
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0xb48], ecx
push 0x200
push 0x587f50
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
cmp dword [0x58d2e0], 2
jne 0x40f2a2
mov eax, dword [ebp - 0xb48]
mov ecx, dword [eax + 0x48]
movsx edx, byte [ecx + 1]
cmp edx, 0x63
jne 0x40f2a2
push 0x3e8
call dword [sym.imp.KERNEL32.dll_Sleep]
mov byte [ebp - 0x854], 0
push 0x3ff
push 0
lea eax, [ebp - 0x853]
push eax
call fcn.00511c50
add esp, 0xc
mov byte [ebp - 0x44c], 0
push 0x3ff
push 0
lea ecx, [ebp - 0x44b]
push ecx
call fcn.00511c50
add esp, 0xc
lea edx, [ebp - 0x854]
push edx
push 0x53db1c
push 0x53db28
push reloc.OLEAUT32.dll_SysReAllocString
call fcn.0040d4a0
add esp, 0x10
cmp eax, 0xffffffff
jne 0x40ed15
mov byte [ebp - 0x854], 0
push 0
push 0x53db38
push 0x53db44
push reloc.OLEAUT32.dll_SysReAllocString
call fcn.0040d420
add esp, 0x10
mov dword [ebp - 0x44], eax
push 0
push 0x53db54
push 0x53db60
push reloc.OLEAUT32.dll_SysReAllocString
call fcn.0040d420
add esp, 0x10
mov dword [ebp - 0x85c], eax
push 0
push 0x53db70
push 0x53db80
push reloc.OLEAUT32.dll_SysReAllocString
call fcn.0040d420
add esp, 0x10
mov dword [ebp - 0x858], eax
push 0
push 0x53db90
push 0x53db9c
push reloc.OLEAUT32.dll_SysReAllocString
call fcn.0040d420
add esp, 0x10
mov dword [ebp - 0x450], eax
lea eax, [ebp - 0x44c]
push eax
push 0x53dbac
push 0x53dbb8
push reloc.OLEAUT32.dll_SysReAllocString
call fcn.0040d4a0
add esp, 0x10
cmp eax, 0xffffffff
jne 0x40edb8
mov byte [ebp - 0x44c], 0
push 0x53dbc8
lea ecx, [ebp - 0x454]
call fcn.00401020
mov dword [ebp - 4], 0
push 0x53d4df
push 0x53dbd8
lea ecx, [ebp - 0x454]
call fcn.0040f670
cmp dword [ebp - 0x450], 0
je 0x40edf9
mov dword [ebp - 0xb4c], 0x53dc08
jmp 0x40ee03
mov dword [ebp - 0xb4c], 0x53d4e2
cmp dword [ebp - 0x858], 0
je 0x40ee18
mov dword [ebp - 0xb50], 0x53dc0c
jmp 0x40ee22
mov dword [ebp - 0xb50], 0x53d4e3
cmp dword [ebp - 0x85c], 0
je 0x40ee37
mov dword [ebp - 0xb54], 0x53dc14
jmp 0x40ee41
mov dword [ebp - 0xb54], 0x53d4ea
cmp dword [ebp - 0x44], 0
je 0x40ee53
mov dword [ebp - 0xb58], 0x53dc18
jmp 0x40ee5d
mov dword [ebp - 0xb58], 0x53d4eb
push str._.exe
lea ecx, [ebp - 0x854]
push ecx
push 0x53dbe8
push str._Y__m__d__H__M__S
lea edx, [ebp - 0xb00]
push edx
lea eax, [ebp - 0xafc]
push eax
call fcn.0040e7f0
mov ecx, eax
call fcn.0040e830
mov dword [ebp - 0xb5c], eax
mov ecx, dword [ebp - 0xb5c]
mov dword [ebp - 0xb60], ecx
mov byte [ebp - 4], 1
mov edx, dword [ebp - 0xb60]
push edx
push 0x53dc04
lea eax, [ebp - 0x44c]
push eax
mov ecx, dword [ebp - 0xb4c]
push ecx
mov edx, dword [ebp - 0xb50]
push edx
mov eax, dword [ebp - 0xb54]
push eax
mov ecx, dword [ebp - 0xb58]
push ecx
lea ecx, [ebp - 0xb04]
call fcn.00401020
mov dword [ebp - 0xb64], eax
mov edx, dword [ebp - 0xb64]
mov dword [ebp - 0xb68], edx
mov byte [ebp - 4], 2
mov eax, dword [ebp - 0xb68]
push eax
push 0x53dc1c
lea ecx, [ebp - 0x454]
push ecx
lea edx, [ebp - 0xb08]
push edx
call fcn.0040cd30
add esp, 0xc
mov dword [ebp - 0xb6c], eax
mov eax, dword [ebp - 0xb6c]
mov dword [ebp - 0xb70], eax
mov byte [ebp - 4], 3
mov ecx, dword [ebp - 0xb70]
push ecx
lea edx, [ebp - 0xb0c]
push edx
call fcn.0040fc30
add esp, 0xc
mov dword [ebp - 0xb74], eax
mov eax, dword [ebp - 0xb74]
mov dword [ebp - 0xb78], eax
mov byte [ebp - 4], 4
mov ecx, dword [ebp - 0xb78]
push ecx
lea edx, [ebp - 0xb10]
push edx
call fcn.0040cd30
add esp, 0xc
mov dword [ebp - 0xb7c], eax
mov eax, dword [ebp - 0xb7c]
mov dword [ebp - 0xb80], eax
mov byte [ebp - 4], 5
mov ecx, dword [ebp - 0xb80]
push ecx
lea edx, [ebp - 0xb14]
push edx
call fcn.0040cd30
add esp, 0xc
mov dword [ebp - 0xb84], eax
mov eax, dword [ebp - 0xb84]
mov dword [ebp - 0xb88], eax
mov byte [ebp - 4], 6
mov ecx, dword [ebp - 0xb88]
push ecx
lea edx, [ebp - 0xb18]
push edx
call fcn.0040cd30
add esp, 0xc
mov dword [ebp - 0xb8c], eax
mov eax, dword [ebp - 0xb8c]
mov dword [ebp - 0xb90], eax
mov byte [ebp - 4], 7
mov ecx, dword [ebp - 0xb90]
push ecx
lea edx, [ebp - 0xb1c]
push edx
call fcn.0040cd30
add esp, 0xc
mov dword [ebp - 0xb94], eax
mov eax, dword [ebp - 0xb94]
mov dword [ebp - 0xb98], eax
mov byte [ebp - 4], 8
mov ecx, dword [ebp - 0xb98]
push ecx
lea edx, [ebp - 0xb20]
push edx
call fcn.0040cd30
add esp, 0xc
mov dword [ebp - 0xb9c], eax
mov eax, dword [ebp - 0xb9c]
mov dword [ebp - 0xba0], eax
mov byte [ebp - 4], 9
mov ecx, dword [ebp - 0xba0]
push ecx
lea edx, [ebp - 0xb24]
push edx
call fcn.0040fc30
add esp, 0xc
mov dword [ebp - 0xba4], eax
mov eax, dword [ebp - 0xba4]
mov dword [ebp - 0xba8], eax
mov byte [ebp - 4], 0xa
mov ecx, dword [ebp - 0xba8]
push ecx
lea edx, [ebp - 0xb28]
push edx
call fcn.0040cd30
add esp, 0xc
mov dword [ebp - 0xbac], eax
mov eax, dword [ebp - 0xbac]
mov dword [ebp - 0xbb0], eax
mov byte [ebp - 4], 0xb
mov ecx, dword [ebp - 0xbb0]
push ecx
lea edx, [ebp - 0xb2c]
push edx
call fcn.0040cd30
add esp, 0xc
mov dword [ebp - 0xbb4], eax
mov eax, dword [ebp - 0xbb4]
mov dword [ebp - 0xbb8], eax
mov byte [ebp - 4], 0xc
mov ecx, dword [ebp - 0xbb8]
push ecx
lea edx, [ebp - 0x860]
push edx
call fcn.0040cd30
add esp, 0xc
mov byte [ebp - 4], 0xe
lea ecx, [ebp - 0xb2c]
call fcn.004019f0
mov byte [ebp - 4], 0xf
lea ecx, [ebp - 0xb28]
call fcn.004019f0
mov byte [ebp - 4], 0x10
lea ecx, [ebp - 0xb24]
call fcn.004019f0
mov byte [ebp - 4], 0x11
lea ecx, [ebp - 0xb20]
call fcn.004019f0
mov byte [ebp - 4], 0x12
lea ecx, [ebp - 0xb1c]
call fcn.004019f0
mov byte [ebp - 4], 0x13
lea ecx, [ebp - 0xb18]
call fcn.004019f0
mov byte [ebp - 4], 0x14
lea ecx, [ebp - 0xb14]
call fcn.004019f0
mov byte [ebp - 4], 0x15
lea ecx, [ebp - 0xb10]
call fcn.004019f0
mov byte [ebp - 4], 0x16
lea ecx, [ebp - 0xb0c]
call fcn.004019f0
mov byte [ebp - 4], 0x17
lea ecx, [ebp - 0xb08]
call fcn.004019f0
mov byte [ebp - 4], 0x18
lea ecx, [ebp - 0xb04]
call fcn.004019f0
mov byte [ebp - 4], 0x19
lea ecx, [ebp - 0xb00]
call fcn.004019f0
push 0x53dc20
push str._Y__m__d
lea eax, [ebp - 0xb38]
push eax
lea ecx, [ebp - 0xb34]
push ecx
call fcn.0040e7f0
mov ecx, eax
call fcn.0040e830
mov dword [ebp - 0xbbc], eax
mov edx, dword [ebp - 0xbbc]
mov dword [ebp - 0xbc0], edx
mov byte [ebp - 4], 0x1a
mov eax, dword [ebp - 0xbc0]
push eax
push str.Z:TEST_
lea ecx, [ebp - 0xb3c]
push ecx
call fcn.0040ce00
add esp, 0xc
mov dword [ebp - 0xbc4], eax
mov edx, dword [ebp - 0xbc4]
mov dword [ebp - 0xbc8], edx
mov byte [ebp - 4], 0x1b
mov eax, dword [ebp - 0xbc8]
push eax
lea ecx, [ebp - 0x40]
push ecx
call fcn.0040cd30
add esp, 0xc
mov byte [ebp - 4], 0x1d
lea ecx, [ebp - 0xb3c]
call fcn.004019f0
mov byte [ebp - 4], 0x1e
lea ecx, [ebp - 0xb38]
call fcn.004019f0
push 0
lea ecx, [ebp - 0x40]
call fcn.00401750
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
lea edx, [ebp - 0x860]
push edx
lea ecx, [ebp - 0x40]
call fcn.0040f630
push 0
lea ecx, [ebp - 0x40]
call fcn.00401750
push eax
push 0x587f50
call dword [sym.imp.KERNEL32.dll_CopyFileA]
push 0x64
call dword [sym.imp.KERNEL32.dll_Sleep]
call fcn.0040d670
mov dword [ebp - 0xb40], 0
mov byte [ebp - 4], 0x19
lea ecx, [ebp - 0x40]
call fcn.004019f0
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x860]
call fcn.004019f0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x454]
call fcn.004019f0
mov eax, dword [ebp - 0xb40]
jmp 0x40f524
push 1
lea eax, [ebp - 0x3c]
push eax
call dword [sym.imp.ADVAPI32.dll_InitializeSecurityDescriptor]
push 1
push 0
push 1
lea ecx, [ebp - 0x3c]
push ecx
call dword [sym.imp.ADVAPI32.dll_SetSecurityDescriptorDacl]
xor edx, edx
mov dword [ebp - 0x20], edx
mov dword [ebp - 0x1c], edx
mov dword [ebp - 0x18], edx
mov dword [ebp - 0x20], 0xc
lea eax, [ebp - 0x3c]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x18], 0
push str.GlobalTC_SETUP
lea ecx, [ebp - 0xb44]
call fcn.00401020
mov dword [ebp - 0xbcc], eax
mov ecx, dword [ebp - 0xbcc]
call fcn.00401750
push eax
push 0
lea ecx, [ebp - 0x20]
push ecx
call dword [sym.imp.KERNEL32.dll_CreateMutexA]
mov dword [ebp - 0x24], eax
lea ecx, [ebp - 0xb44]
call fcn.004019f0
mov dword [ebp - 0x28], 0
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
jne 0x40f334
mov dword [ebp - 0x28], 1
cmp dword [ebp - 0x24], 0
je 0x40f344
mov edx, dword [ebp - 0x24]
push edx
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
cmp dword [ebp - 0x28], 0
je 0x40f351
xor eax, eax
jmp 0x40f524
call fcn.0040d200
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call fcn.0040d390
add esp, 4
mov dword [0x588198], eax
mov dword [ebp - 0x14], 8
mov dword [ebp - 0x10], 0xff
lea eax, [ebp - 0x14]
push eax
call dword [sym.imp.COMCTL32.dll_InitCommonControlsEx]
mov ecx, dword [ebp - 0xb48]
call fcn.0041e40b
push 0
call fcn.00422411
add esp, 4
push 0x53dc4c
mov ecx, dword [ebp - 0xb48]
call fcn.004218de
cmp dword [0x58d2e0], 2
jne 0x40f3fb
push 0
lea ecx, [ebp - 0x9c4]
call fcn.004102f0
mov dword [ebp - 4], 0x1f
mov ecx, dword [ebp - 0xb48]
lea edx, [ebp - 0x9c4]
mov dword [ecx + 0x20], edx
lea ecx, [ebp - 0x9c4]
call fcn.00414fac
mov dword [ebp - 0x864], eax
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x9c4]
call fcn.0040f540
jmp 0x40f522
mov dword [ebp - 0x9c8], 0
push 0x53dc80
push 0
call dword [sym.imp.USER32.dll_FindWindowA]
mov dword [ebp - 0x9c8], eax
cmp dword [ebp - 0x9c8], 0
jne 0x40f434
push 0x53dc94
push 0
call dword [sym.imp.USER32.dll_FindWindowA]
mov dword [ebp - 0x9c8], eax
cmp dword [ebp - 0x9c8], 0
je 0x40f4c5
push 1
push 1
push 0x13d4
mov eax, dword [ebp - 0x9c8]
push eax
call dword [sym.imp.USER32.dll_PostMessageA]
mov dword [ebp - 0x9cc], 0
jmp 0x40f472
mov ecx, dword [ebp - 0x9cc]
add ecx, 1
mov dword [ebp - 0x9cc], ecx
cmp dword [ebp - 0x9cc], 0x258
jge 0x40f4c5
push 0x3e8
call dword [sym.imp.KERNEL32.dll_Sleep]
push 0x53dca8
push 0
call dword [sym.imp.USER32.dll_FindWindowA]
mov dword [ebp - 0x9c8], eax
cmp dword [ebp - 0x9c8], 0
jne 0x40f4b8
push 0x53dcbc
push 0
call dword [sym.imp.USER32.dll_FindWindowA]
mov dword [ebp - 0x9c8], eax
cmp dword [ebp - 0x9c8], 0
jne 0x40f4c3
jmp 0x40f4c5
jmp 0x40f463
call fcn.0040e930
movzx edx, byte [0x58819c]
test edx, edx
je 0x40f4dc
call fcn.0040da90
jmp 0x40f522
push 0
lea ecx, [ebp - 0xaf4]
call fcn.0040c850
mov dword [ebp - 4], 0x20
mov eax, dword [ebp - 0xb48]
lea ecx, [ebp - 0xaf4]
mov dword [eax + 0x20], ecx
lea ecx, [ebp - 0xaf4]
call fcn.00414fac
mov dword [ebp - 0x9d0], eax
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xaf4]
call fcn.0040ca60
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov ecx, dword [ebp - 0x48]
xor ecx, ebp
call fcn.00511b60
mov esp, ebp
pop ebp
ret