Function at 0x40c7c4
Capabilities:
Check if file exists
Copy file
Delete file
Get file attributes
Set file attributes

Disassembly:
push 0x48
mov eax, 0x41e2f9
call fcn.0041dfb6
xor ebx, ebx
mov eax, 0x401028
mov dword [ebp - 0x18], ebx
mov byte [ebp - 0xf], bl
mov byte [ebp - 0xd], bl
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x30], ebx
mov dword [ebp - 0x2c], ebx
mov dword [ebp - 0x28], ebx
mov dword [ebp - 4], ebx
mov esi, ebx
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x50], ebx
mov dword [ebp - 0x4c], ebx
mov dword [ebp - 0x48], esi
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x40], ebx
mov dword [ebp - 0x3c], ebx
mov dword [ebp - 0x38], ebx
push ebx
push ebx
push 1
push ebx
call dword [sym.imp.KERNEL32.dll_HeapSetInformation]
push 0x402aa0
push 0xc20
call fcn.0041d1c0
pop ecx
pop ecx
mov dword [ebp - 0x24], eax
mov byte [ebp - 4], 3
test eax, eax
je 0x40c83b
mov ecx, eax
call fcn.0040f382
mov edi, eax
jmp 0x40c83d
mov edi, ebx
mov byte [ebp - 4], 2
test edi, edi
jne 0x40c84f
call fcn.0040d097
jmp 0x40cad1
push 0x402b04
push 2
call fcn.0040d047
pop ecx
pop ecx
push dword [ebp + 0xc]
mov ecx, edi
mov dword [edi + 0xc10], 0x4037d8
push dword [ebp + 8]
mov dword [edi + 0xc14], 0x4037c0
mov dword [edi + 0xc1c], 0x402b04
mov dword [edi + 0xc18], 0x4037b0
call fcn.0040f8e0
test al, al
je 0x40cad1
call fcn.0040dba7
lea eax, [ebp - 0x14]
mov ecx, edi
push eax
push 0x4037f4
call fcn.0041015a
test eax, eax
je 0x40c8de
push 0xa
push ebx
push dword [eax + 0xc]
call dword [sym.imp.msvcrt.dll_wcstoul]
mov ecx, eax
add esp, 0xc
mov dword [0x41f540], ecx
cmp ecx, 1
jl 0x40c8e8
xor eax, eax
cmp ecx, 1
sete al
mov dword [0x41f104], eax
jmp 0x40c8f2
mov dword [0x41f540], 1
mov dword [0x41f104], 2
lea eax, [ebp - 0x14]
mov ecx, edi
push eax
push 0x4037f8
call fcn.0041015a
mov ecx, edi
test eax, eax
je 0x40c95a
mov eax, dword [eax + 0xc]
mov dword [ebp - 0x20], eax
lea eax, [ebp - 0x14]
push eax
push 0x4037fc
mov byte [ebp - 0xd], bl
call fcn.0041015a
test eax, eax
je 0x40c940
mov edx, dword [ebp - 0x20]
mov ecx, dword [eax + 0xc]
call fcn.0040bbd5
test al, al
je 0x40cad1
push 0x403800
jmp 0x40ca4c
push 0x403838
push ebx
push 0x402b04
push 3
call fcn.0040d01f
add esp, 0x10
jmp 0x40cad1
lea eax, [ebp - 0x14]
push eax
push 0x4038a4
call fcn.0041015a
test eax, eax
je 0x40c981
mov ecx, dword [eax + 0xc]
call fcn.0040c45b
test al, al
je 0x40cad1
jmp 0x40cd43
lea eax, [ebp - 0x14]
mov ecx, edi
push eax
push 0x4038a8
call fcn.0041015a
test eax, eax
je 0x40c9c1
push dword [eax + 0xc]
mov ecx, 0x41f484
push 0x18
pop edx
call fcn.0040b5b3
test eax, eax
jns 0x40c9c1
push 0x4038b0
push ebx
push 0x402b04
call fcn.0040cff7
add esp, 0xc
jmp 0x40cad1
lea eax, [ebp - 0x24]
mov ecx, edi
push eax
push 0x403948
call fcn.0041015a
test eax, eax
je 0x40c9e9
push ebx
push ebx
push dword [eax + 0xc]
call dword [sym.imp.msvcrt.dll_wcstoul]
add esp, 0xc
mov word [0x41f4b8], ax
lea eax, [ebp - 0x14]
mov ecx, edi
push eax
push 0x40394c
call fcn.0041015a
mov ecx, edi
test eax, eax
je 0x40ca78
mov eax, dword [eax + 0xc]
mov dword [ebp - 0x20], eax
lea eax, [ebp - 0x14]
push eax
push 0x403950
mov byte [ebp - 0xd], bl
call fcn.0041015a
test eax, eax
je 0x40ca6e
mov eax, dword [eax + 0xc]
mov ecx, edi
mov dword [ebp - 0x1c], eax
lea eax, [ebp - 0x14]
push eax
push 0x4037fc
call fcn.0041015a
test eax, eax
je 0x40ca64
mov edx, dword [ebp - 0x1c]
mov ecx, dword [eax + 0xc]
push ebx
push dword [ebp - 0x20]
call fcn.0040bf6e
test al, al
je 0x40ca5a
push 0x403a90
push 1
call fcn.0040d047
pop ecx
pop ecx
jmp 0x40cd43
push 0x403b00
jmp 0x40c9ae
push 0x403a00
jmp 0x40c9ae
push 0x403958
jmp 0x40c9ae
lea eax, [ebp - 0x44]
push eax
lea eax, [ebp - 0x54]
push eax
lea edx, [ebp - 0x34]
call fcn.0040b7fa
mov esi, dword [ebp - 0x48]
test al, al
jne 0x40cb32
push 0x403b48
push ebx
push 0x402b04
call fcn.0040cff7
add esp, 0xc
test al, al
je 0x40caaf
call fcn.0040f489
mov eax, dword [ebp - 0x28]
test eax, eax
je 0x40cad1
cmp word [eax], bx
je 0x40cad1
test esi, esi
je 0x40cad1
cmp word [esi], bx
je 0x40cad1
cmp byte [ebp - 0xf], 0
je 0x40cad1
push esi
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
cmp byte [ebp - 0xd], 0
je 0x40cae0
push dword [ebp - 0x38]
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
mov bl, 1
test edi, edi
je 0x40caf8
mov eax, dword [edi]
push 1
mov esi, dword [eax]
mov ecx, esi
call dword [0x420210]
mov ecx, edi
call esi
mov edi, dword [ebp - 0x18]
test edi, edi
je 0x40cb11
mov eax, dword [edi]
push 1
mov esi, dword [eax]
mov ecx, esi
call dword [0x420210]
mov ecx, edi
call esi
lea ecx, [ebp - 0x44]
call fcn.0040d2d0
lea ecx, [ebp - 0x54]
call fcn.0040d2d0
lea ecx, [ebp - 0x34]
call fcn.0040d2d0
movzx eax, bl
call fcn.0041df93
ret
mov eax, dword [ebp - 0x28]
push esi
push eax
mov dword [0x41f4b4], eax
call dword [sym.imp.msvcrt.dll__wcsicmp]
pop ecx
pop ecx
test eax, eax
je 0x40cbc3
push esi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x40cb70
push 0x403b80
push ebx
push esi
push 3
call fcn.0040d01f
add esp, 0x10
push 0x20
push esi
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
jmp 0x40cb74
mov byte [ebp - 0xf], 1
push ebx
push esi
push dword [ebp - 0x28]
call dword [sym.imp.KERNEL32.dll_CopyFileW]
test eax, eax
jne 0x40cb91
mov edx, dword [ebp - 0x28]
push ecx
call fcn.0040b70d
jmp 0x40caaf
push 0x20
push esi
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
push dword [ebp - 0x38]
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x40cbbd
push 0x403c08
push ebx
push dword [ebp - 0x38]
push 3
call fcn.0040d01f
add esp, 0x10
jmp 0x40cbce
mov byte [ebp - 0xd], 1
jmp 0x40cbce
push 0x20
push dword [ebp - 0x28]
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
push 0x403c74
mov ecx, edi
mov dword [ebp - 0x20], ebx
call fcn.00410117
test eax, eax
je 0x40cbf3
push ebx
push ebx
push eax
call dword [sym.imp.msvcrt.dll_wcstoul]
movzx eax, ax
add esp, 0xc
mov dword [ebp - 0x20], eax
push 0x403c78
mov ecx, edi
mov dword [ebp - 0x1c], ebx
call fcn.00410117
test eax, eax
je 0x40cc18
push ebx
push ebx
push eax
call dword [sym.imp.msvcrt.dll_wcstoul]
movzx eax, ax
add esp, 0xc
mov dword [ebp - 0x1c], eax
push 0x4037fc
mov ecx, edi
call fcn.00410117
mov dword [ebp - 0x24], eax
test eax, eax
je 0x40cc30
mov dword [0x41f4b4], eax
push 2
push ebx
push dword [ebp - 0x28]
mov byte [ebp - 0xe], bl
call dword [sym.imp.KERNEL32.dll_LoadLibraryExW]
mov dword [ebp - 0x14], eax
test eax, eax
je 0x40cc64
push ebx
mov edx, 0x40c6e0
mov ecx, eax
call fcn.0040dc79
push dword [ebp - 0x14]
test eax, eax
setne byte [ebp - 0xe]
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
jmp 0x40cc6d
mov edx, dword [ebp - 0x28]
push ecx
call fcn.0040b70d
cmp byte [ebp - 0xe], 0
je 0x40caaf
cmp word [0x41f4bc], 0
jne 0x40cc99
push 0x403c80
push ebx
push 0x402b04
call fcn.0040cff7
add esp, 0xc
jmp 0x40caaf
lea eax, [ebp - 0x14]
mov ecx, edi
push eax
push 0x403d08
call fcn.0041015a
test eax, eax
je 0x40ccb4
mov byte [0x41f480], 1
push 0x403950
mov ecx, edi
call fcn.00410117
mov dword [ebp - 0x14], eax
test eax, eax
je 0x40caaa
push 0x48
call fcn.0041ce77
pop ecx
mov dword [ebp - 0x18], eax
mov byte [ebp - 4], 4
test eax, eax
je 0x40ccfd
push dword [ebp - 0x1c]
mov ecx, eax
push dword [ebp - 0x20]
push dword [ebp - 0x24]
push dword [ebp - 0x38]
push esi
push dword [ebp - 0x28]
push dword [ebp - 0x14]
call fcn.004107d1
mov dword [ebp - 0x18], eax
jmp 0x40cd02
mov eax, ebx
mov dword [ebp - 0x18], ebx
mov byte [ebp - 4], 2
test eax, eax
je 0x40caaf
mov ecx, eax
call fcn.00410973
test al, al
je 0x40caaf
push esi
push 0x403d10
push 1
call fcn.0040d047
add esp, 0xc
test al, al
je 0x40cd43
push dword [ebp - 0x38]
push 0x403d80
push 1
call fcn.0040d047
add esp, 0xc
push 0x403dd0
push ebx
call fcn.0040d047
pop ecx
pop ecx
test al, al
je 0x40cae2
mov ecx, esi
call fcn.0040e4fe
push 0x403208
push ebx
call fcn.0040d047
push 0x403e10
push ebx
call fcn.0040d047
mov ecx, dword [ebp - 0x38]
add esp, 0x10
call fcn.0040e4fe
push 0x402b04
push ebx
call fcn.0040d047
pop ecx
pop ecx
jmp 0x40cae2