Function at 0x404073
Capabilities:
Create directory
Write file on windows

Disassembly:
push 0x608
mov eax, 0x448ee2
call fcn.0044747f
mov edi, ecx
mov ecx, dword [edx]
sub ecx, 0x10
call fcn.00402e90
lea esi, [eax + 0x10]
mov dword [ebp - 0x5fc], esi
xor eax, eax
mov dword [ebp - 0x60c], eax
mov dword [ebp - 4], eax
lea eax, [ebp - 0x600]
push ecx
push eax
lea ecx, [ebp - 0x5fc]
call fcn.0040448b
push ecx
mov ecx, eax
mov byte [ebp - 4], 1
call fcn.00404547
test eax, eax
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x600]
setne bl
call fcn.00402580
test bl, bl
je 0x4040ef
push 0x457918
lea ecx, [ebp - 0x5fc]
call fcn.004025a0
mov esi, dword [ebp - 0x5fc]
push 0xfde9
push dword [edi]
lea eax, [ebp - 0x498]
lea ecx, [ebp - 0x49c]
mov dword [ebp - 0x49c], eax
call fcn.00402cf0
push dword [ebp - 0x49c]
call dword [sym.imp.zlib1.dll_Ordinal_61]
mov edi, eax
lea eax, [ebp - 0x498]
cmp dword [ebp - 0x49c], eax
je 0x404135
push dword [ebp - 0x49c]
call fcn.0042b963
pop ecx
test edi, edi
je 0x4042f3
push edi
call dword [sym.imp.zlib1.dll_Ordinal_65]
test eax, eax
jne 0x4042e5
xor ebx, ebx
push ebx
push ebx
push ebx
push ebx
push 0x400
lea eax, [ebp - 0x414]
push eax
lea eax, [ebp - 0x5f4]
push eax
push edi
call dword [sym.imp.zlib1.dll_Ordinal_64]
test eax, eax
jne 0x4042d6
lea eax, [ebp - 0x414]
push eax
lea ecx, [ebp - 0x614]
call fcn.004024f0
mov byte [ebp - 4], 2
mov eax, dword [ebp - 0x5d8]
push eax
mov dword [ebp - 0x600], eax
call fcn.0042be7e
mov dword [ebp - 0x608], eax
pop ecx
test eax, eax
je 0x4042c8
push edi
call dword [sym.imp.zlib1.dll_Ordinal_67]
test eax, eax
jne 0x4042bc
push dword [ebp - 0x600]
push dword [ebp - 0x608]
push edi
call dword [sym.imp.zlib1.dll_Ordinal_68]
mov dword [ebp - 0x604], eax
test eax, eax
js 0x4042b5
lea ecx, [esi - 0x10]
call fcn.00402e90
add eax, 0x10
mov dword [ebp - 0x5f8], eax
lea eax, [ebp - 0x5a0]
mov byte [ebp - 4], 3
mov dword [ebp - 0x5a4], eax
lea eax, [ebp - 0x414]
push ecx
push eax
lea ecx, [ebp - 0x5a4]
call fcn.0040457c
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x5f8]
push dword [ebp - 0x5a4]
call fcn.004025a0
lea eax, [ebp - 0x5a0]
mov byte [ebp - 4], 3
cmp dword [ebp - 0x5a4], eax
je 0x404242
push dword [ebp - 0x5a4]
call fcn.0042b963
pop ecx
push ecx
push ecx
lea ecx, [ebp - 0x5f8]
call fcn.0040430a
cmp dword [ebp - 0x604], 0
jne 0x404267
push ebx
push dword [ebp - 0x5f8]
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
jmp 0x4042aa
mov ecx, dword [ebp - 0x5f8]
call fcn.0040826b
mov dword [ebp - 0x610], eax
cmp eax, 0xffffffff
je 0x4042aa
push ebx
lea ecx, [ebp - 0x604]
mov dword [ebp - 0x604], ebx
push ecx
push dword [ebp - 0x600]
push dword [ebp - 0x608]
push eax
call dword [sym.imp.KERNEL32.dll_WriteFile]
push dword [ebp - 0x610]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
lea ecx, [ebp - 0x5f8]
call fcn.00402580
push edi
call dword [sym.imp.zlib1.dll_Ordinal_72]
push dword [ebp - 0x608]
call fcn.0042b963
pop ecx
lea ecx, [ebp - 0x614]
mov byte [ebp - 4], bl
call fcn.00402580
push edi
call dword [sym.imp.zlib1.dll_Ordinal_66]
test eax, eax
je 0x40414e
push edi
call dword [sym.imp.zlib1.dll_Ordinal_62]
mov byte [ebp - 0x60c], 1
lea ecx, [ebp - 0x5fc]
call fcn.00402580
mov al, byte [ebp - 0x60c]
call fcn.0044743d
ret