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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x3c8
mov eax, dword [0x41a084]
xor eax, ebp
mov dword [ebp - 0x1c], eax
push esi
push edi
push str.___7
call dword [sym.imp.SHLWAPI.dll_PathFileExistsA]
test eax, eax
jne 0x4027a1
push 0
push str.___7
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
mov byte [ebp - 0x164], 0x3d
mov byte [ebp - 0x163], 0xb
mov byte [ebp - 0x162], 8
mov byte [ebp - 0x161], 4
mov byte [ebp - 0x160], 0x49
mov byte [ebp - 0x15f], 2
mov byte [ebp - 0x15e], 0x1f
mov byte [ebp - 0x15d], 2
mov byte [ebp - 0x15c], 0
xor eax, eax
mov dword [ebp - 0x15b], eax
mov dword [ebp - 0x157], eax
mov word [ebp - 0x153], ax
mov byte [ebp - 0x151], al
push 8
push 0x67
lea ecx, [ebp - 0x164]
push ecx
call fcn.004048e0
add esp, 0xc
mov dword [ebp - 4], str.4__305__
mov dword [ebp - 0x18], 1
mov dword [ebp - 0x14], 0x104
mov dword [ebp - 0x150], 0x41b63c
lea edx, [ebp - 0x18]
push edx
mov eax, dword [ebp - 0x14]
push eax
lea ecx, [ebp - 0x270]
push ecx
push 0x41b2dc
mov edx, dword [ebp - 4]
push edx
push 0x80000002
call fcn.00405aa0
add esp, 0x18
test eax, eax
jne 0x40286c
push 0x104
push 0
lea eax, [ebp - 0x270]
push eax
call fcn.0040e3a0
add esp, 0xc
lea ecx, [ebp - 0x270]
push ecx
push str.___7
call fcn.00405b80
add esp, 8
lea edx, [ebp - 0x10]
push edx
call dword [0x41e268]
mov eax, dword [ebp - 0x10]
push eax
call fcn.00408275
add esp, 4
xor ecx, ecx
mov word [ebp - 0x140], cx
xor edx, edx
mov dword [ebp - 0x13e], edx
mov dword [ebp - 0x13a], edx
mov dword [ebp - 0x136], edx
mov dword [ebp - 0x132], edx
mov word [ebp - 0x12e], dx
mov byte [ebp - 0x14c], 0
xor eax, eax
mov dword [ebp - 0x14b], eax
mov dword [ebp - 0x147], eax
mov byte [ebp - 0x143], al
push 9
lea ecx, [ebp - 0x140]
push ecx
call fcn.00404bd0
add esp, 8
push 0
push 0
push 0xa
lea edx, [ebp - 0x14c]
push edx
push 0xffffffffffffffff
lea eax, [ebp - 0x140]
push eax
push 0
push 0
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
lea ecx, [ebp - 0x14c]
push ecx
lea edx, [ebp - 0x164]
push edx
call dword [sym.imp.KERNEL32.dll_lstrcatA]
push str..exe
lea eax, [ebp - 0x164]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatA]
mov byte [ebp - 0x128], 0
push 0x103
push 0
lea ecx, [ebp - 0x127]
push ecx
call fcn.0040e3a0
add esp, 0xc
mov dword [ebp - 0x37c], str.___7
mov edx, dword [ebp - 0x37c]
mov dword [ebp - 0x380], edx
mov eax, dword [ebp - 0x37c]
mov cl, byte [eax]
mov byte [ebp - 0x381], cl
add dword [ebp - 0x37c], 1
cmp byte [ebp - 0x381], 0
jne 0x402965
mov edx, dword [ebp - 0x37c]
sub edx, dword [ebp - 0x380]
mov eax, dword [ebp - 0x380]
mov dword [ebp - 0x388], eax
mov dword [ebp - 0x38c], edx
lea ecx, [ebp - 0x128]
add ecx, 0xffffffff
mov dword [ebp - 0x390], ecx
mov edx, dword [ebp - 0x390]
mov al, byte [edx + 1]
mov byte [ebp - 0x391], al
add dword [ebp - 0x390], 1
cmp byte [ebp - 0x391], 0
jne 0x4029b0
mov edi, dword [ebp - 0x390]
mov esi, dword [ebp - 0x388]
mov edx, dword [ebp - 0x38c]
mov ecx, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea eax, [ebp - 0x128]
add eax, 0xffffffff
mov dword [ebp - 0x398], eax
mov ecx, dword [ebp - 0x398]
mov dl, byte [ecx + 1]
mov byte [ebp - 0x399], dl
add dword [ebp - 0x398], 1
cmp byte [ebp - 0x399], 0
jne 0x4029fe
mov edi, dword [ebp - 0x398]
mov ax, word [0x417818]
mov word [edi], ax
lea ecx, [ebp - 0x164]
mov dword [ebp - 0x3a0], ecx
mov edx, dword [ebp - 0x3a0]
mov dword [ebp - 0x3a4], edx
mov eax, dword [ebp - 0x3a0]
mov cl, byte [eax]
mov byte [ebp - 0x3a5], cl
add dword [ebp - 0x3a0], 1
cmp byte [ebp - 0x3a5], 0
jne 0x402a44
mov edx, dword [ebp - 0x3a0]
sub edx, dword [ebp - 0x3a4]
mov eax, dword [ebp - 0x3a4]
mov dword [ebp - 0x3ac], eax
mov dword [ebp - 0x3b0], edx
lea ecx, [ebp - 0x128]
add ecx, 0xffffffff
mov dword [ebp - 0x3b4], ecx
mov edx, dword [ebp - 0x3b4]
mov al, byte [edx + 1]
mov byte [ebp - 0x3b5], al
add dword [ebp - 0x3b4], 1
cmp byte [ebp - 0x3b5], 0
jne 0x402a8f
mov edi, dword [ebp - 0x3b4]
mov esi, dword [ebp - 0x3ac]
mov edx, dword [ebp - 0x3b0]
mov ecx, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea eax, [ebp - 0x128]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsA]
test eax, eax
jne 0x402b3a
mov byte [ebp - 0x378], 0
push 0x103
push 0
lea ecx, [ebp - 0x377]
push ecx
call fcn.0040e3a0
add esp, 0xc
push 0x41d0a8
lea edx, [ebp - 0x378]
push edx
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
push 0x41781c
lea eax, [ebp - 0x378]
push eax
call dword [sym.imp.SHLWAPI.dll_PathAppendA]
lea ecx, [ebp - 0x128]
push ecx
call fcn.004024c0
add esp, 4
test eax, eax
jne 0x402b38
jmp 0x402c08
jmp 0x402b3f
jmp 0x402c08
lea edx, [ebp - 0x128]
mov dword [ebp - 0x3bc], edx
mov eax, dword [ebp - 0x3bc]
add eax, 1
mov dword [ebp - 0x3c0], eax
mov ecx, dword [ebp - 0x3bc]
mov dl, byte [ecx]
mov byte [ebp - 0x3c1], dl
add dword [ebp - 0x3bc], 1
cmp byte [ebp - 0x3c1], 0
jne 0x402b5a
mov eax, dword [ebp - 0x3bc]
sub eax, dword [ebp - 0x3c0]
mov dword [ebp - 0x3c8], eax
mov ecx, dword [ebp - 0x3c8]
add ecx, 1
mov dword [ebp - 0x12c], ecx
push 1
mov edx, dword [ebp - 0x12c]
push edx
lea eax, [ebp - 0x128]
push eax
push 0x41b2dc
mov ecx, dword [ebp - 4]
push ecx
push 0x80000002
call fcn.004059c0
add esp, 0x18
test eax, eax
je 0x402c08
xor edx, edx
mov dword [0x41cb64], edx
mov dword [0x41cb68], edx
mov dword [0x41cb6c], edx
mov dword [0x41cb70], edx
mov dword [0x41cb74], edx
mov dword [0x41cb78], edx
mov dword [0x41cb7c], edx
mov word [0x41cb80], dx
lea eax, [ebp - 0x164]
push eax
push 0x41cb64
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
pop edi
pop esi
mov ecx, dword [ebp - 0x1c]
xor ecx, ebp
call fcn.00408266
mov esp, ebp
pop ebp
ret