Function at 0x41e310
Capabilities:
Check if file exists
Check mutex on windows
Copy file

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x496235
mov eax, dword fs:[0]
push eax
sub esp, 0x8e0
mov eax, dword [0x4d7204]
xor eax, ebp
mov dword [ebp - 0x10], eax
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
push 0x208
push 0
lea eax, [ebp - 0x218]
push eax
call fcn.004696a0
add esp, 0xc
push 0x104
lea ecx, [ebp - 0x218]
push ecx
mov ecx, 0x4feab8
call fcn.00419920
push eax
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
lea edx, [ebp - 0x218]
push edx
call dword [sym.imp.SHLWAPI.dll_PathFindFileNameW]
push eax
lea ecx, [ebp - 0x2b4]
call fcn.004032e0
mov dword [ebp - 4], 0
lea eax, [ebp - 0x2b4]
push eax
lea ecx, [ebp - 0x278]
call fcn.004032a0
mov byte [ebp - 4], 1
push 0
call fcn.00421540
add esp, 4
push eax
call fcn.00470ecc
add esp, 4
lea ecx, [ebp - 0x3fc]
push ecx
call fcn.0042a2f0
add esp, 4
mov dword [ebp - 0x39c], eax
mov edx, dword [ebp - 0x39c]
mov dword [ebp - 0x3a4], edx
mov byte [ebp - 4], 2
mov ecx, dword [ebp - 0x3a4]
call fcn.00401da0
mov dword [ebp - 0x27c], eax
mov eax, dword [ebp - 0x27c]
mov edx, dword [eax]
mov ecx, dword [ebp - 0x27c]
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 0x269], al
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x3fc]
call fcn.00404db0
movzx ecx, byte [ebp - 0x269]
test ecx, ecx
je 0x41e4bd
lea edx, [ebp - 0x414]
push edx
call fcn.0042a2f0
add esp, 4
mov dword [ebp - 0x3a8], eax
mov eax, dword [ebp - 0x3a8]
mov dword [ebp - 0x3ac], eax
mov byte [ebp - 4], 3
mov ecx, dword [ebp - 0x3ac]
call fcn.00401da0
mov dword [ebp - 0x280], eax
push str.change_file_name
lea ecx, [ebp - 0x4c4]
call fcn.00404010
mov dword [ebp - 0x2c8], eax
mov ecx, dword [ebp - 0x2c8]
mov dword [ebp - 0x2cc], ecx
mov byte [ebp - 4], 4
mov ecx, dword [ebp - 0x2cc]
call fcn.00401970
push eax
mov edx, dword [ebp - 0x280]
mov eax, dword [edx]
mov ecx, dword [ebp - 0x280]
mov edx, dword [eax + 8]
call edx
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x4c4]
call fcn.00405070
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x414]
call fcn.00404db0
call fcn.0042b110
movzx eax, ax
push eax
call fcn.0042b110
movzx ecx, ax
push ecx
call fcn.0042b110
movzx edx, ax
push edx
call fcn.0042b110
movzx eax, ax
push eax
push str._c_c_c_chelper.exe
lea ecx, [ebp - 0x278]
push ecx
call fcn.0040ad60
add esp, 0x18
lea edx, [ebp - 0x260]
push edx
call fcn.00419800
mov ecx, eax
call fcn.00413930
mov dword [ebp - 0x2d0], eax
mov eax, dword [ebp - 0x2d0]
mov dword [ebp - 0x2d4], eax
mov byte [ebp - 4], 5
mov ecx, dword [ebp - 0x2d4]
call fcn.0040fd10
push eax
lea ecx, [ebp - 0x268]
call fcn.004032e0
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x260]
call fcn.00404c30
mov ecx, dword [ebp - 0x278]
push ecx
push str.Utils_s
lea edx, [ebp - 0x268]
push edx
call fcn.00418030
add esp, 0xc
lea eax, [ebp - 0x41c]
push eax
call fcn.0042a2f0
add esp, 4
mov dword [ebp - 0x2d8], eax
mov ecx, dword [ebp - 0x2d8]
mov dword [ebp - 0x2dc], ecx
mov byte [ebp - 4], 8
mov ecx, dword [ebp - 0x2dc]
call fcn.00401da0
mov dword [ebp - 0x2c0], eax
mov edx, dword [ebp - 0x2c0]
mov eax, dword [edx]
mov ecx, dword [ebp - 0x2c0]
mov edx, dword [eax + 4]
call edx
mov byte [ebp - 0x26a], al
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x41c]
call fcn.00404db0
movzx eax, byte [ebp - 0x26a]
test eax, eax
je 0x41e673
lea ecx, [ebp - 0x424]
push ecx
call fcn.0042a2f0
add esp, 4
mov dword [ebp - 0x2e0], eax
mov edx, dword [ebp - 0x2e0]
mov dword [ebp - 0x2e4], edx
mov byte [ebp - 4], 9
mov ecx, dword [ebp - 0x2e4]
call fcn.00401da0
mov dword [ebp - 0x2bc], eax
lea eax, [ebp - 0x268]
push eax
push str.tend_file_full_path_:
lea ecx, [ebp - 0x55c]
call fcn.00404010
mov dword [ebp - 0x2e8], eax
mov ecx, dword [ebp - 0x2e8]
mov dword [ebp - 0x2ec], ecx
mov byte [ebp - 4], 0xa
mov ecx, dword [ebp - 0x2ec]
call fcn.00401970
mov ecx, eax
call fcn.00401a10
push eax
mov edx, dword [ebp - 0x2bc]
mov eax, dword [edx]
mov ecx, dword [ebp - 0x2bc]
mov edx, dword [eax + 8]
call edx
mov byte [ebp - 4], 9
lea ecx, [ebp - 0x55c]
call fcn.00405070
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x424]
call fcn.00404db0
call fcn.00419750
mov ecx, eax
call fcn.0041a5b0
test eax, eax
jne 0x41e7e4
lea eax, [ebp - 0x3b4]
push eax
call fcn.0042a2f0
add esp, 4
mov dword [ebp - 0x2f0], eax
mov ecx, dword [ebp - 0x2f0]
mov dword [ebp - 0x2f4], ecx
mov byte [ebp - 4], 0xb
mov ecx, dword [ebp - 0x2f4]
call fcn.00401da0
mov dword [ebp - 0x2b8], eax
mov edx, dword [ebp - 0x2b8]
mov eax, dword [edx]
mov ecx, dword [ebp - 0x2b8]
mov edx, dword [eax + 4]
call edx
mov byte [ebp - 0x26b], al
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x3b4]
call fcn.00404db0
movzx eax, byte [ebp - 0x26b]
test eax, eax
je 0x41e78d
lea ecx, [ebp - 0x3bc]
push ecx
call fcn.0042a2f0
add esp, 4
mov dword [ebp - 0x2f8], eax
mov edx, dword [ebp - 0x2f8]
mov dword [ebp - 0x2fc], edx
mov byte [ebp - 4], 0xc
mov ecx, dword [ebp - 0x2fc]
call fcn.00401da0
mov dword [ebp - 0x2c4], eax
push str.copy_file_with_changing_file_md5
lea ecx, [ebp - 0x5f4]
call fcn.00404010
mov dword [ebp - 0x300], eax
mov eax, dword [ebp - 0x300]
mov dword [ebp - 0x304], eax
mov byte [ebp - 4], 0xd
mov ecx, dword [ebp - 0x304]
call fcn.00401970
push eax
mov ecx, dword [ebp - 0x2c4]
mov edx, dword [ecx]
mov ecx, dword [ebp - 0x2c4]
mov eax, dword [edx + 8]
call eax
mov byte [ebp - 4], 0xc
lea ecx, [ebp - 0x5f4]
call fcn.00405070
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x3bc]
call fcn.00404db0
lea ecx, [ebp - 0x261]
call fcn.00403290
mov byte [ebp - 4], 0xe
push 0
push 0x104
lea ecx, [ebp - 0x268]
call fcn.0040af20
push eax
push 0
lea ecx, [ebp - 0x218]
push ecx
lea ecx, [ebp - 0x261]
call fcn.004228d0
push 0xffffffffffffffff
lea ecx, [ebp - 0x268]
call fcn.0040c770
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x261]
call fcn.00404f20
jmp 0x41e905
lea edx, [ebp - 0x3c4]
push edx
call fcn.0042a2f0
add esp, 4
mov dword [ebp - 0x308], eax
mov eax, dword [ebp - 0x308]
mov dword [ebp - 0x30c], eax
mov byte [ebp - 4], 0xf
mov ecx, dword [ebp - 0x30c]
call fcn.00401da0
mov dword [ebp - 0x284], eax
mov ecx, dword [ebp - 0x284]
mov edx, dword [ecx]
mov ecx, dword [ebp - 0x284]
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 0x26c], al
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x3c4]
call fcn.00404db0
movzx ecx, byte [ebp - 0x26c]
test ecx, ecx
je 0x41e8ea
lea edx, [ebp - 0x3cc]
push edx
call fcn.0042a2f0
add esp, 4
mov dword [ebp - 0x310], eax
mov eax, dword [ebp - 0x310]
mov dword [ebp - 0x314], eax
mov byte [ebp - 4], 0x10
mov ecx, dword [ebp - 0x314]
call fcn.00401da0
mov dword [ebp - 0x288], eax
push str.copy_file
lea ecx, [ebp - 0x68c]
call fcn.00404010
mov dword [ebp - 0x318], eax
mov ecx, dword [ebp - 0x318]
mov dword [ebp - 0x31c], ecx
mov byte [ebp - 4], 0x11
mov ecx, dword [ebp - 0x31c]
call fcn.00401970
push eax
mov edx, dword [ebp - 0x288]
mov eax, dword [edx]
mov ecx, dword [ebp - 0x288]
mov edx, dword [eax + 8]
call edx
mov byte [ebp - 4], 0x10
lea ecx, [ebp - 0x68c]
call fcn.00405070
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x3cc]
call fcn.00404db0
push 0
lea ecx, [ebp - 0x268]
call fcn.00405e20
push eax
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileW]
mov dword [ebp - 0x398], 0
lea ecx, [ebp - 0x268]
call fcn.00405e20
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x41ea34
lea ecx, [ebp - 0x3d4]
push ecx
call fcn.0042a2f0
add esp, 4
mov dword [ebp - 0x320], eax
mov edx, dword [ebp - 0x320]
mov dword [ebp - 0x324], edx
mov byte [ebp - 4], 0x12
mov ecx, dword [ebp - 0x324]
call fcn.00401da0
mov dword [ebp - 0x28c], eax
mov eax, dword [ebp - 0x28c]
mov edx, dword [eax]
mov ecx, dword [ebp - 0x28c]
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 0x26d], al
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x3d4]
call fcn.00404db0
movzx ecx, byte [ebp - 0x26d]
test ecx, ecx
je 0x41ea2f
lea edx, [ebp - 0x3dc]
push edx
call fcn.0042a2f0
add esp, 4
mov dword [ebp - 0x328], eax
mov eax, dword [ebp - 0x328]
mov dword [ebp - 0x32c], eax
mov byte [ebp - 4], 0x13
mov ecx, dword [ebp - 0x32c]
call fcn.00401da0
mov dword [ebp - 0x290], eax
push str.copy_file_fail_
lea ecx, [ebp - 0x724]
call fcn.00404010
mov dword [ebp - 0x330], eax
mov ecx, dword [ebp - 0x330]
mov dword [ebp - 0x334], ecx
mov byte [ebp - 4], 0x14
mov ecx, dword [ebp - 0x334]
call fcn.00401970
push eax
mov edx, dword [ebp - 0x290]
mov eax, dword [edx]
mov ecx, dword [ebp - 0x290]
mov edx, dword [eax + 8]
call edx
mov byte [ebp - 4], 0x13
lea ecx, [ebp - 0x724]
call fcn.00405070
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x3dc]
call fcn.00404db0
jmp 0x41eeae
lea eax, [ebp - 0x248]
push eax
call fcn.00419800
mov ecx, eax
call fcn.00413580
mov dword [ebp - 0x338], eax
mov ecx, dword [ebp - 0x338]
mov dword [ebp - 0x33c], ecx
mov byte [ebp - 4], 0x15
mov ecx, dword [ebp - 0x33c]
call fcn.0040fd10
push eax
lea ecx, [ebp - 0x294]
call fcn.004032e0
mov byte [ebp - 4], 0x16
lea edx, [ebp - 0x294]
push edx
call fcn.0042b0a0
add esp, 4
mov dword [ebp - 0x340], eax
mov byte [ebp - 4], 0x15
lea ecx, [ebp - 0x294]
call fcn.004049f0
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x248]
call fcn.00404c30
cmp dword [ebp - 0x340], 0
je 0x41ebc3
lea eax, [ebp - 0x3e4]
push eax
call fcn.0042a2f0
add esp, 4
mov dword [ebp - 0x344], eax
mov ecx, dword [ebp - 0x344]
mov dword [ebp - 0x348], ecx
mov byte [ebp - 4], 0x17
mov ecx, dword [ebp - 0x348]
call fcn.00401da0
mov dword [ebp - 0x298], eax
mov edx, dword [ebp - 0x298]
mov eax, dword [edx]
mov ecx, dword [ebp - 0x298]
mov edx, dword [eax + 4]
call edx
mov byte [ebp - 0x26e], al
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x3e4]
call fcn.00404db0
movzx eax, byte [ebp - 0x26e]
test eax, eax
je 0x41ebbe
lea ecx, [ebp - 0x3ec]
push ecx
call fcn.0042a2f0
add esp, 4
mov dword [ebp - 0x34c], eax
mov edx, dword [ebp - 0x34c]
mov dword [ebp - 0x350], edx
mov byte [ebp - 4], 0x18
mov ecx, dword [ebp - 0x350]
call fcn.00401da0
mov dword [ebp - 0x29c], eax
push str.already_has_mutex_LDSMUTEX
lea ecx, [ebp - 0x7bc]
call fcn.00404010
mov dword [ebp - 0x354], eax
mov eax, dword [ebp - 0x354]
mov dword [ebp - 0x358], eax
mov byte [ebp - 4], 0x19
mov ecx, dword [ebp - 0x358]
call fcn.00401970
push eax
mov ecx, dword [ebp - 0x29c]
mov edx, dword [ecx]
mov ecx, dword [ebp - 0x29c]
mov eax, dword [edx + 8]
call eax
mov byte [ebp - 4], 0x18
lea ecx, [ebp - 0x7bc]
call fcn.00405070
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x3ec]
call fcn.00404db0
jmp 0x41eeae
push 0
call dword [sym.imp.KERNEL32.dll_SetLastError]
xor ecx, ecx
mov byte [ebp - 0x26f], cl
lea edx, [ebp - 0x230]
push edx
lea ecx, [ebp - 0x26f]
call fcn.00416c00
mov dword [ebp - 0x35c], eax
mov ecx, dword [ebp - 0x35c]
call fcn.0040fd10
push eax
push 1
push 0
call dword [sym.imp.KERNEL32.dll_CreateMutexW]
mov dword [ebp - 0x2a8], eax
lea ecx, [ebp - 0x230]
call fcn.00404c30
cmp dword [ebp - 0x2a8], 0
jne 0x41ec20
jmp 0x41eeae
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x360], eax
cmp dword [ebp - 0x360], 0xb7
jne 0x41ed4f
lea eax, [ebp - 0x3f4]
push eax
call fcn.0042a2f0
add esp, 4
mov dword [ebp - 0x364], eax
mov ecx, dword [ebp - 0x364]
mov dword [ebp - 0x368], ecx
mov byte [ebp - 4], 0x1a
mov ecx, dword [ebp - 0x368]
call fcn.00401da0
mov dword [ebp - 0x2a0], eax
mov edx, dword [ebp - 0x2a0]
mov eax, dword [edx]
mov ecx, dword [ebp - 0x2a0]
mov edx, dword [eax + 4]
call edx
mov byte [ebp - 0x270], al
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x3f4]
call fcn.00404db0
movzx eax, byte [ebp - 0x270]
test eax, eax
je 0x41ed42
lea ecx, [ebp - 0x42c]
push ecx
call fcn.0042a2f0
add esp, 4
mov dword [ebp - 0x36c], eax
mov edx, dword [ebp - 0x36c]
mov dword [ebp - 0x370], edx
mov byte [ebp - 4], 0x1b
mov ecx, dword [ebp - 0x370]
call fcn.00401da0
mov dword [ebp - 0x2a4], eax
push str.error___:_already_has_mutex_HELPERFUZZYMODE.Plz_check_other_module
lea ecx, [ebp - 0x854]
call fcn.00404010
mov dword [ebp - 0x374], eax
mov eax, dword [ebp - 0x374]
mov dword [ebp - 0x378], eax
mov byte [ebp - 4], 0x1c
mov ecx, dword [ebp - 0x378]
call fcn.00401970
push eax
mov ecx, dword [ebp - 0x2a4]
mov edx, dword [ecx]
mov ecx, dword [ebp - 0x2a4]
mov eax, dword [edx + 8]
call eax
mov byte [ebp - 4], 0x1b
lea ecx, [ebp - 0x854]
call fcn.00405070
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x42c]
call fcn.00404db0
mov ecx, dword [ebp - 0x2a8]
push ecx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push 0
push 0
push 0x2710
push 1
push 1
push 0
lea ecx, [ebp - 0x268]
call fcn.00405e20
push eax
call fcn.0042b130
add esp, 0x1c
mov dword [ebp - 0x38c], eax
lea edx, [ebp - 0x404]
push edx
call fcn.0042a2f0
add esp, 4
mov dword [ebp - 0x37c], eax
mov eax, dword [ebp - 0x37c]
mov dword [ebp - 0x380], eax
mov byte [ebp - 4], 0x1d
mov ecx, dword [ebp - 0x380]
call fcn.00401da0
mov dword [ebp - 0x2ac], eax
mov ecx, dword [ebp - 0x2ac]
mov edx, dword [ecx]
mov ecx, dword [ebp - 0x2ac]
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 0x271], al
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x404]
call fcn.00404db0
movzx ecx, byte [ebp - 0x271]
test ecx, ecx
je 0x41eea6
lea edx, [ebp - 0x40c]
push edx
call fcn.0042a2f0
add esp, 4
mov dword [ebp - 0x384], eax
mov eax, dword [ebp - 0x384]
mov dword [ebp - 0x388], eax
mov byte [ebp - 4], 0x1e
mov ecx, dword [ebp - 0x388]
call fcn.00401da0
mov dword [ebp - 0x2b0], eax
lea ecx, [ebp - 0x38c]
push ecx
push str._ret_:
lea edx, [ebp - 0x268]
push edx
push str.run_app_:
lea ecx, [ebp - 0x8ec]
call fcn.00404010
mov dword [ebp - 0x390], eax
mov eax, dword [ebp - 0x390]
mov dword [ebp - 0x394], eax
mov byte [ebp - 4], 0x1f
mov ecx, dword [ebp - 0x394]
call fcn.00401970
mov ecx, eax
call fcn.00401a10
mov ecx, eax
call fcn.00401970
mov ecx, eax
call fcn.004019b0
push eax
mov ecx, dword [ebp - 0x2b0]
mov edx, dword [ecx]
mov ecx, dword [ebp - 0x2b0]
mov eax, dword [edx + 8]
call eax
mov byte [ebp - 4], 0x1e
lea ecx, [ebp - 0x8ec]
call fcn.00405070
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x40c]
call fcn.00404db0
xor ecx, ecx
jne 0x41e90f
mov edx, dword [ebp - 0x398]
mov dword [ebp - 0x3a0], edx
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x268]
call fcn.004049f0
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x278]
call fcn.004049f0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x2b4]
call fcn.004049f0
mov eax, dword [ebp - 0x3a0]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0044ab64
mov esp, ebp
pop ebp
ret