Function at 0x43c419
Capabilities:
Check if file exists
Create directory
Get file attributes
Move file

Disassembly:
push 0x48
mov eax, 0x515ef7
call fcn.004d8abf
mov dword [ebp - 0x24], edx
mov edi, ecx
mov dword [ebp - 0x38], edi
xor ecx, ecx
mov dword [ebp - 4], ecx
mov ebx, dword [ebp + 8]
add ebx, 0xfffffff0
cmp dword [ebx + 4], ecx
jne 0x43c48b
push 0x3f
push 0x80004005
push ecx
mov ecx, esp
call fcn.0040687a
lea ecx, [ebp - 0x48]
call fcn.00406620
lea eax, [ebp - 0x48]
mov byte [ebp - 4], 3
push eax
mov ecx, edi
call fcn.0040121b
mov ecx, dword [ebp - 0x40]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov ecx, ebx
call fcn.00407189
mov ecx, dword [ebp + 0xc]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov ecx, dword [ebp + 0x18]
lea ecx, [ecx - 0x10]
jmp 0x43c760
lea ecx, [ebp - 0x14]
call fcn.0040687a
push ecx
mov byte [ebp - 4], 4
mov esi, esp
mov dword [ebp - 0x30], esi
mov eax, dword [ebp + 0x18]
add eax, 0xfffffff0
mov dword [ebp - 0x34], esp
mov ecx, eax
mov dword [ebp - 0x20], eax
call fcn.004070e7
add eax, 0x10
mov dword [esi], eax
push dword [ebp + 0x14]
mov byte [ebp - 4], 5
push dword [ebp + 0x10]
push ecx
mov esi, esp
mov dword [ebp - 0x30], esi
mov eax, dword [ebp + 0xc]
add eax, 0xfffffff0
mov ecx, eax
mov dword [ebp - 0x1c], eax
call fcn.004070e7
add eax, 0x10
lea edx, [ebp - 0x14]
mov dword [esi], eax
lea ecx, [ebp - 0x48]
mov byte [ebp - 4], 4
call fcn.0043bfa3
add esp, 0x10
mov byte [ebp - 4], 6
cmp dword [ebp - 0x48], 0
jge 0x43c545
cmp dword [ebp - 0x44], 0
push 0x42
pop eax
cmovne eax, dword [ebp - 0x44]
push eax
push dword [ebp - 0x48]
push ecx
mov esi, esp
mov dword [ebp - 0x34], esi
mov ecx, dword [ebp - 0x40]
lea ecx, [ecx - 0x10]
call fcn.004070e7
add eax, 0x10
lea ecx, [ebp - 0x54]
mov dword [esi], eax
call fcn.00406620
lea eax, [ebp - 0x54]
mov byte [ebp - 4], 7
push eax
mov ecx, edi
call fcn.0040121b
mov ecx, dword [ebp - 0x4c]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov ecx, dword [ebp - 0x40]
jmp 0x43c73b
mov byte [ebp - 4], 4
mov ecx, dword [ebp - 0x40]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov eax, dword [ebp - 0x24]
lea ecx, [ebp - 0x24]
add eax, 4
push 0x545b68
mov edx, eax
mov dword [ebp - 0x34], eax
call fcn.00409442
lea ecx, [ebp - 0x14]
mov byte [ebp - 4], 8
push ecx
mov edx, eax
lea ecx, [ebp - 0x10]
call fcn.0040a037
pop ecx
pop ecx
mov byte [ebp - 4], 0xa
mov ecx, dword [ebp - 0x24]
lea ecx, [ecx - 0x10]
call fcn.00407189
push dword [ebp - 0x10]
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x43c5b1
and dword [edi], 0
lea ecx, [edi + 8]
and dword [edi + 4], 0
call fcn.0040687a
jmp 0x43c738
lea ecx, [ebp - 0x30]
call fcn.004282f6
mov esi, eax
push 0x5444e8
lea edx, [ebp - 0x10]
mov byte [ebp - 4], 0xb
lea ecx, [ebp - 0x2c]
call fcn.00409442
push esi
mov edx, eax
mov byte [ebp - 4], 0xc
lea ecx, [ebp - 0x28]
call fcn.0040a037
push 0x5444ec
mov edx, eax
mov byte [ebp - 4], 0xd
lea ecx, [ebp - 0x18]
call fcn.00409442
add esp, 0xc
mov ecx, dword [ebp - 0x28]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov ecx, dword [ebp - 0x2c]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov byte [ebp - 4], 0x11
mov ecx, dword [ebp - 0x30]
add ecx, 0xfffffff0
call fcn.00407189
mov eax, dword [ebp - 0x34]
push 0
push dword [eax]
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
push ecx
mov ecx, esp
mov dword [ebp - 0x34], esp
push dword [ebp + 8]
call fcn.004af36d
push ecx
mov byte [ebp - 4], 0x12
mov esi, esp
mov dword [ebp - 0x24], esi
mov ecx, dword [ebp - 0x18]
lea ecx, [ecx - 0x10]
call fcn.004070e7
add eax, 0x10
lea ecx, [ebp - 0x48]
mov dword [esi], eax
mov byte [ebp - 4], 0x11
call fcn.0042a53e
pop ecx
pop ecx
mov byte [ebp - 4], 0x13
cmp dword [ebp - 0x48], 0
jge 0x43c6ba
cmp dword [ebp - 0x44], 0
push 0x4e
pop eax
cmovne eax, dword [ebp - 0x44]
push eax
push dword [ebp - 0x48]
push ecx
mov esi, esp
mov dword [ebp - 0x34], esi
mov ecx, dword [ebp - 0x40]
lea ecx, [ecx - 0x10]
call fcn.004070e7
add eax, 0x10
lea ecx, [ebp - 0x54]
mov dword [esi], eax
call fcn.00406620
lea eax, [ebp - 0x54]
mov byte [ebp - 4], 0x14
push eax
mov ecx, edi
call fcn.0040121b
mov ecx, dword [ebp - 0x4c]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov ecx, dword [ebp - 0x40]
lea ecx, [ecx - 0x10]
call fcn.00407189
jmp 0x43c72d
mov byte [ebp - 4], 0x11
mov ecx, dword [ebp - 0x40]
lea ecx, [ecx - 0x10]
call fcn.00407189
push dword [ebp - 0x10]
push dword [ebp - 0x18]
call dword [sym.imp.KERNEL32.dll_MoveFileW]
test eax, eax
jne 0x43c71e
call dword [sym.imp.KERNEL32.dll_GetLastError]
movzx ecx, ax
or ecx, 0x80070000
test eax, eax
push 0x50
cmovle ecx, eax
mov eax, 0x80004005
test ecx, ecx
cmovs eax, ecx
push eax
push ecx
mov ecx, esp
call fcn.0040687a
lea ecx, [ebp - 0x54]
call fcn.00406620
lea eax, [ebp - 0x54]
mov byte [ebp - 4], 0x15
push eax
mov ecx, edi
call fcn.0040121b
mov ecx, dword [ebp - 0x4c]
jmp 0x43c6b0
and dword [edi], 0
lea ecx, [edi + 8]
and dword [edi + 4], 0
call fcn.0040687a
mov ecx, dword [ebp - 0x18]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov ecx, dword [ebp - 0x10]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov ecx, dword [ebp - 0x14]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov ecx, ebx
call fcn.00407189
mov ecx, dword [ebp - 0x1c]
call fcn.00407189
mov ecx, dword [ebp - 0x20]
call fcn.00407189
mov eax, edi
call fcn.004d8a8d
ret