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

Disassembly:
push 0x2f0
mov eax, 0x42c65b
call fcn.004270e5
mov eax, dword [ebp + 8]
push 1
mov edi, ecx
xor ebx, ebx
push 3
lea ecx, [ebp - 0x1f8]
mov dword [ebp - 0x5c], eax
mov dword [ebp - 0xac], 0x40bffc
mov dword [ebp - 0xa8], 0x40c048
mov dword [ebp - 0xa4], 0x40c07a
mov dword [ebp - 0xa0], 0x40c0b7
mov dword [ebp - 0x9c], 0x40c0bf
mov dword [ebp - 0x98], 0x40c118
mov dword [ebp - 0x94], fcn.0041ef01
mov dword [ebp - 0x90], ebx
call fcn.00404197
mov dword [ebp - 4], ebx
mov esi, dword [edi + 0x10]
sub esi, dword [edi + 0xc]
jne 0x403a94
call fcn.0040f2df
mov edi, dword [edi + 0xc]
push esi
push ecx
push 0x430834
push ecx
push edi
lea esi, [ebp - 0x1f0]
call fcn.00403e79
mov ecx, eax
call fcn.00403e92
pop ecx
push eax
call fcn.0040641d
add esp, 0xc
mov ecx, eax
call fcn.00403e92
lea eax, [ebp - 0x11c]
push eax
lea ecx, [ebp - 0x1f8]
call fcn.00404236
cmp dword [eax + 0x18], 0x10
jb 0x403ae0
mov eax, dword [eax + 4]
jmp 0x403ae3
add eax, 4
lea ecx, [ebp - 0xac]
push ecx
push eax
call sub.zlib1.dll_Ordinal_77
push ebx
push 1
lea ecx, [ebp - 0x11c]
mov dword [ebp - 0x50], eax
call fcn.00401e95
cmp dword [ebp - 0x50], ebx
jne 0x403b1f
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x1f8]
call fcn.00403e4a
mov al, bl
call fcn.0042712f
ret 4
push ecx
mov dword [ebp - 0x54], esp
lea esi, [ebp - 0x8c]
mov dword [ebp - 0x54], esp
call fcn.00404b22
lea eax, [ebp - 0x49]
push eax
mov byte [ebp - 4], 1
mov eax, esi
mov byte [ebp - 0x49], bl
call fcn.00404ae4
push dword [ebp - 0x50]
mov byte [ebp - 4], 2
call sub.zlib1.dll_Ordinal_65
cmp eax, ebx
sete byte [ebp - 0x49]
jmp 0x403df8
mov esi, dword [ebp - 0x7c]
sub esi, dword [ebp - 0x80]
jne 0x403b67
call fcn.0040f2df
push ebx
push ebx
push ebx
push ebx
push esi
push dword [ebp - 0x80]
lea eax, [ebp - 0x170]
push eax
push dword [ebp - 0x50]
call sub.zlib1.dll_Ordinal_64
test eax, eax
jne 0x403ded
mov eax, dword [ebp - 0x7c]
sub eax, dword [ebp - 0x80]
jne 0x403b93
call fcn.0040f2df
push dword [ebp - 0x80]
lea ecx, [ebp - 0x48]
call fcn.00401a9f
xor eax, eax
mov dword [ebp - 0x14], 7
mov dword [ebp - 0x18], ebx
mov word [ebp - 0x28], ax
mov esi, dword [ebp - 0x5c]
mov byte [ebp - 4], 4
mov eax, dword [ebp - 0x154]
mov dword [ebp - 0x58], eax
cmp dword [esi + 0x18], ebx
je 0x403cc9
cmp dword [ebp - 0x30], 0x10
mov eax, dword [ebp - 0x44]
jae 0x403bd3
lea eax, [ebp - 0x44]
push 0xfde9
push eax
lea eax, [ebp - 0x2fc]
lea ecx, [ebp - 0x2f8]
push eax
mov dword [ebp - 0x2fc], ecx
call fcn.00403187
mov byte [ebp - 4], 5
push dword [ebp - 0x2fc]
add esi, 4
lea eax, [ebp - 0xc8]
push esi
push eax
call fcn.00406561
add esp, 0xc
push 0xffffffffffffffff
push ebx
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 6
call fcn.004021f5
push ebx
push 1
lea esi, [ebp - 0xc8]
call fcn.00401f05
lea eax, [ebp - 0x2f8]
mov byte [ebp - 4], 4
cmp dword [ebp - 0x2fc], eax
je 0x403c49
push dword [ebp - 0x2fc]
call fcn.0040f023
pop ecx
push 0x4307d4
lea esi, [ebp - 0xc8]
call fcn.00401b60
push 0x4307d8
lea esi, [ebp - 0xe4]
mov byte [ebp - 4], 7
call fcn.00401b60
lea eax, [ebp - 0x2c]
push eax
lea ebx, [ebp - 0xc8]
mov edi, esi
lea ecx, [ebp - 0x100]
mov byte [ebp - 4], 8
call fcn.00407195
pop ecx
push 0xffffffffffffffff
xor edi, edi
push edi
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 9
call fcn.004021f5
push edi
push 1
lea esi, [ebp - 0x100]
call fcn.00401f05
push edi
push 1
lea esi, [ebp - 0xe4]
call fcn.00401f05
push edi
push 1
mov esi, ebx
mov byte [ebp - 4], 4
call fcn.00401f05
mov esi, dword [ebp - 0x5c]
xor ebx, ebx
cmp dword [ebp - 0x58], ebx
je 0x403db8
test dword [ebp - 0x13c], 0x40000000
jne 0x403db8
lea eax, [ebp - 0x74]
push eax
call fcn.00401b89
push dword [ebp - 0x58]
lea eax, [ebp - 0x74]
mov byte [ebp - 4], 0xa
call fcn.00404a3a
cmp dword [esi + 0x34], ebx
je 0x403d18
cmp dword [esi + 0x38], 0x10
jb 0x403d0a
mov eax, dword [esi + 0x24]
jmp 0x403d0d
lea eax, [esi + 0x24]
push eax
push dword [ebp - 0x50]
call sub.zlib1.dll_Ordinal_79
jmp 0x403d20
push dword [ebp - 0x50]
call sub.zlib1.dll_Ordinal_67
cmp eax, ebx
jne 0x403dab
mov edi, dword [ebp - 0x64]
sub edi, dword [ebp - 0x68]
jne 0x403d35
call fcn.0040f2df
push edi
push dword [ebp - 0x68]
push dword [ebp - 0x50]
call sub.zlib1.dll_Ordinal_68
cmp eax, ebx
jle 0x403da1
mov eax, dword [esi]
lea ecx, [ebp - 0x74]
push ecx
lea ecx, [ebp - 0x48]
push ecx
mov ecx, esi
call dword [eax]
test al, al
je 0x403da1
cmp dword [ebp - 0x18], ebx
je 0x403da1
cmp dword [ebp - 0x14], 8
mov esi, dword [ebp - 0x28]
jae 0x403d68
lea esi, [ebp - 0x28]
call fcn.0040721a
mov esi, eax
cmp esi, 0xffffffff
je 0x403da1
mov eax, dword [ebp - 0x64]
sub eax, dword [ebp - 0x68]
mov dword [ebp - 0x54], ebx
jne 0x403d84
call fcn.0040f2df
push ebx
lea eax, [ebp - 0x54]
push eax
push dword [ebp - 0x58]
push dword [ebp - 0x68]
push esi
call dword [sym.imp.KERNEL32.dll_WriteFile]
cmp eax, ebx
je 0x403e02
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push dword [ebp - 0x50]
call sub.zlib1.dll_Ordinal_72
jmp 0x403dae
mov byte [ebp - 0x49], bl
lea esi, [ebp - 0x74]
call fcn.00401c67
jmp 0x403dd1
cmp dword [ebp - 0x18], ebx
je 0x403dd1
cmp dword [ebp - 0x14], 8
mov eax, dword [ebp - 0x28]
jae 0x403dc9
lea eax, [ebp - 0x28]
push ebx
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
push ebx
push 1
lea esi, [ebp - 0x2c]
call fcn.00401f05
push ebx
push 1
lea ecx, [ebp - 0x48]
mov byte [ebp - 4], 2
call fcn.00401e95
jmp 0x403df0
mov byte [ebp - 0x49], bl
push dword [ebp - 0x50]
call sub.zlib1.dll_Ordinal_66
cmp eax, ebx
je 0x403b5a
jmp 0x403e23
lea esi, [ebp - 0x74]
mov byte [ebp - 0x49], bl
call fcn.00401c67
push ebx
push 1
lea esi, [ebp - 0x2c]
call fcn.00401f05
push ebx
push 1
lea ecx, [ebp - 0x48]
call fcn.00401e95
push dword [ebp - 0x50]
call sub.zlib1.dll_Ordinal_62
lea esi, [ebp - 0x8c]
call fcn.0040a68f
push dword [ebp - 0x8c]
call fcn.0040eda0
mov bl, byte [ebp - 0x49]
pop ecx
jmp 0x403b06