Function at 0x40a093
Capabilities:
Check if file exists
Create directory

Disassembly:
push 0x54
mov eax, 0x4bc0bf
call fcn.004603b7
mov dword [ebp - 0x30], ecx
mov edi, dword [ebp + 0xc]
push edi
mov dword [ebp - 4], 1
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x40a0bf
push eax
push edi
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
lea ecx, [ebp - 0x60]
call fcn.0044ed87
mov esi, 0x4df45c
push esi
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 2
call fcn.00405839
push esi
lea ecx, [ebp - 0x18]
mov byte [ebp - 4], 3
call fcn.00405839
push esi
lea ecx, [ebp - 0x14]
mov byte [ebp - 4], 4
call fcn.00405839
push esi
lea ecx, [ebp - 0x10]
mov byte [ebp - 4], 5
call fcn.00405839
push 0x4c5758
lea eax, [ebp + 8]
push eax
lea eax, [ebp - 0x1c]
push eax
mov byte [ebp - 4], 6
call fcn.00409ac5
add esp, 0xc
mov eax, dword [eax]
push 0
push eax
lea ecx, [ebp - 0x60]
mov byte [ebp - 4], 7
call fcn.0044ee15
mov ecx, dword [ebp - 0x1c]
add ecx, 0xfffffff0
mov esi, eax
mov byte [ebp - 4], 6
call fcn.00404ff6
test esi, esi
je 0x40a2d2
mov esi, 0x4df450
lea ecx, [ebp - 0x60]
call fcn.0044eb2f
mov dword [ebp - 0x3c], eax
lea eax, [ebp - 0x1c]
push eax
lea ecx, [ebp - 0x60]
call fcn.0044f0e9
push eax
lea ecx, [ebp - 0x10]
mov byte [ebp - 4], 8
call fcn.00409a21
mov ecx, dword [ebp - 0x1c]
add ecx, 0xfffffff0
mov byte [ebp - 4], 6
call fcn.00404ff6
lea ecx, [ebp - 0x60]
call fcn.0044ed4a
test eax, eax
jne 0x40a2c8
mov eax, dword [ebp - 0x60]
push 0x10
lea ecx, [ebp - 0x60]
call dword [eax + 0x38]
test eax, eax
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp + 8]
push eax
je 0x40a262
lea eax, [ebp - 0x24]
push eax
call fcn.00409a6e
push esi
push eax
lea eax, [ebp - 0x20]
push eax
mov byte [ebp - 4], 9
call fcn.00409ac5
add esp, 0x18
push eax
lea ecx, [ebp - 0x18]
mov byte [ebp - 4], 0xa
call fcn.00409a21
mov ecx, dword [ebp - 0x20]
add ecx, 0xfffffff0
call fcn.00404ff6
mov ecx, dword [ebp - 0x24]
add ecx, 0xfffffff0
mov byte [ebp - 4], 6
call fcn.00404ff6
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp + 0xc]
push eax
lea eax, [ebp - 0x2c]
push eax
call fcn.00409a6e
push esi
push eax
lea eax, [ebp - 0x28]
push eax
mov byte [ebp - 4], 0xb
call fcn.00409ac5
add esp, 0x18
push eax
lea ecx, [ebp - 0x14]
mov byte [ebp - 4], 0xc
call fcn.00409a21
mov ecx, dword [ebp - 0x28]
add ecx, 0xfffffff0
call fcn.00404ff6
mov ecx, dword [ebp - 0x2c]
add ecx, 0xfffffff0
mov byte [ebp - 4], 6
call fcn.00404ff6
push ecx
lea eax, [ebp - 0x14]
mov dword [ebp - 0x44], esp
mov ecx, esp
push eax
call fcn.004082f2
push ecx
lea eax, [ebp - 0x18]
mov dword [ebp - 0x48], esp
mov ecx, esp
push eax
mov byte [ebp - 4], 0xd
call fcn.004082f2
mov ecx, dword [ebp - 0x30]
mov byte [ebp - 4], 6
call fcn.0040a093
jmp 0x40a2c8
lea eax, [ebp - 0x34]
push eax
call fcn.00409a6e
add esp, 0xc
push eax
lea ecx, [ebp - 0x18]
mov byte [ebp - 4], 0xe
call fcn.00409a21
mov ecx, dword [ebp - 0x34]
add ecx, 0xfffffff0
mov byte [ebp - 4], 6
call fcn.00404ff6
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp + 0xc]
push eax
lea eax, [ebp - 0x38]
push eax
call fcn.00409a6e
add esp, 0xc
push eax
lea ecx, [ebp - 0x14]
mov byte [ebp - 4], 0xf
call fcn.00409a21
mov ecx, dword [ebp - 0x38]
add ecx, 0xfffffff0
mov byte [ebp - 4], 6
call fcn.00404ff6
push 0
push dword [ebp - 0x14]
push dword [ebp - 0x18]
call dword [sym.imp.KERNEL32.dll_CopyFileW]
cmp dword [ebp - 0x3c], 0
jne 0x40a148
mov ecx, dword [ebp - 0x10]
add ecx, 0xfffffff0
call fcn.00404ff6
mov ecx, dword [ebp - 0x14]
add ecx, 0xfffffff0
call fcn.00404ff6
mov ecx, dword [ebp - 0x18]
add ecx, 0xfffffff0
call fcn.00404ff6
mov ecx, dword [ebp - 0x40]
add ecx, 0xfffffff0
call fcn.00404ff6
lea ecx, [ebp - 0x60]
mov byte [ebp - 4], 1
call fcn.0044edad
mov ecx, dword [ebp + 8]
add ecx, 0xfffffff0
call fcn.00404ff6
lea ecx, [edi - 0x10]
call fcn.00404ff6
call fcn.0046048f
ret 8