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

Disassembly:
push 0xffffffffffffffff
push 0x40a68b
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x9c
mov al, byte [esp + 3]
push ebx
push ebp
push esi
xor ebx, ebx
push edi
push ebx
lea ecx, [esp + 0x40]
mov byte [esp + 0x40], al
call fcn.00402e60
mov edi, str.c:iNodeLog
or ecx, 0xffffffff
xor eax, eax
mov dword [esp + 0xb4], ebx
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push str.c:iNodeLog
lea ecx, [esp + 0x44]
call fcn.00402f70
mov eax, dword [esp + 0x40]
cmp eax, ebx
jne 0x401745
mov eax, 0x40b128
push eax
call fcn.00401590
add esp, 4
test eax, eax
jne 0x401767
mov eax, dword [esp + 0x40]
cmp eax, ebx
jne 0x40175f
mov eax, 0x40b128
push ebx
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
mov esi, dword [esp + 0x40]
cmp esi, ebx
jne 0x401774
mov esi, 0x40b128
mov cl, byte [esp + 0x13]
push ebx
mov byte [esp + 0x18], cl
lea ecx, [esp + 0x18]
call fcn.00402e60
mov edi, esi
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push esi
lea ecx, [esp + 0x1c]
call fcn.00402f70
mov edi, str._reg
or ecx, 0xffffffff
xor eax, eax
mov byte [esp + 0xb4], 1
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push str._reg
lea ecx, [esp + 0x1c]
call fcn.00402eb0
lea edx, [esp + 0x28]
push edx
call dword [sym.imp.KERNEL32.dll_GetLocalTime]
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x2e]
mov edx, dword [esp + 0x2a]
and eax, 0xffff
push eax
mov eax, dword [esp + 0x2c]
and ecx, 0xffff
and edx, 0xffff
push ecx
and eax, 0xffff
push edx
push eax
lea ecx, [esp + 0x6c]
push str._04u_02u_02u_02u
push ecx
call fcn.00403779
lea edi, [esp + 0x74]
or ecx, 0xffffffff
xor eax, eax
add esp, 0x18
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea edx, [esp + 0x5c]
push ecx
push edx
lea ecx, [esp + 0x1c]
call fcn.00402eb0
mov edi, str..log
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push str..log
lea ecx, [esp + 0x1c]
call fcn.00402eb0
mov eax, dword [esp + 0x18]
cmp eax, ebx
jne 0x401852
mov eax, 0x40b128
push eax
call fcn.00401520
add esp, 4
test eax, eax
jne 0x4019bc
mov al, byte [esp + 0x13]
push ebx
lea ecx, [esp + 0x50]
mov byte [esp + 0x50], al
call fcn.00402e60
mov edi, 0x40d130
or ecx, 0xffffffff
xor eax, eax
push 1
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov ebp, ecx
lea ecx, [esp + 0x50]
push ebp
call fcn.00403030
test al, al
je 0x4018b9
mov edi, dword [esp + 0x50]
mov ecx, ebp
mov edx, ecx
mov esi, 0x40d130
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
push ebp
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x50]
call fcn.00403010
mov eax, dword [esp + 0x2c]
lea ecx, [esp + 0x38]
and eax, 0xffff
mov byte [esp + 0xb4], 2
push eax
push str._02u
push ecx
call fcn.00403779
lea edi, [esp + 0x44]
or ecx, 0xffffffff
xor eax, eax
add esp, 0xc
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea edx, [esp + 0x38]
push ecx
push edx
lea ecx, [esp + 0x54]
call fcn.00402eb0
mov edi, str..log
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push str..log
lea ecx, [esp + 0x54]
call fcn.00402eb0
mov eax, dword [esp + 0x50]
mov ecx, 0x40b128
cmp eax, ebx
je 0x401927
mov ecx, eax
mov eax, dword [esp + 0x40]
cmp eax, ebx
jne 0x401934
mov eax, 0x40b128
push ecx
push eax
call fcn.00401600
mov eax, dword [esp + 0x20]
add esp, 8
cmp eax, ebx
jne 0x40194b
mov eax, 0x40b128
mov edi, dword [sym.imp.KERNEL32.dll_CreateFileA]
push ebx
push 0x80
push 1
push ebx
push 1
push 0x40000000
push eax
call edi
mov esi, eax
cmp esi, 0xffffffff
jne 0x401996
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
jne 0x401996
mov eax, dword [esp + 0x18]
cmp eax, ebx
jne 0x401985
mov eax, 0x40b128
push ebx
push ebx
push 3
push ebx
push 3
push 0x40000000
push eax
call edi
mov esi, eax
mov ecx, dword [esp + 0x50]
cmp ecx, ebx
je 0x4019de
mov al, byte [ecx - 1]
cmp al, bl
je 0x4019b0
cmp al, 0xff
je 0x4019b0
dec al
mov byte [ecx - 1], al
jmp 0x4019de
dec ecx
push ecx
call fcn.004032b2
add esp, 4
jmp 0x4019de
mov eax, dword [esp + 0x18]
cmp eax, ebx
jne 0x4019c9
mov eax, 0x40b128
push ebx
push ebx
push 3
push ebx
push 3
push 0x40000000
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov esi, eax
cmp esi, 0xffffffff
jne 0x401a3c
mov ecx, dword [esp + 0x18]
cmp ecx, ebx
je 0x401a07
mov al, byte [ecx - 1]
cmp al, bl
je 0x4019fd
cmp al, 0xff
je 0x4019fd
dec al
mov byte [ecx - 1], al
jmp 0x401a07
dec ecx
push ecx
call fcn.004032b2
add esp, 4
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x18], ebx
cmp ecx, ebx
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x20], ebx
je 0x401b5a
mov al, byte [ecx - 1]
cmp al, bl
je 0x401b50
cmp al, 0xff
je 0x401b50
dec al
mov byte [ecx - 1], al
jmp 0x401b5a
push 2
push ebx
push ebx
push esi
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x32]
mov edx, dword [esp + 0x30]
and eax, 0xffff
and ecx, 0xffff
push eax
mov eax, dword [esp + 0x32]
and edx, 0xffff
push ecx
mov ecx, dword [esp + 0x32]
push edx
mov edx, dword [esp + 0x34]
and eax, 0xffff
and ecx, 0xffff
push eax
and edx, 0xffff
push ecx
push edx
lea eax, [esp + 0x84]
push str.__04u__02u__02u__02u:_02u:_02u_
push eax
mov dword [esp + 0x44], ebx
call fcn.00403779
add esp, 0x20
lea ecx, [esp + 0x24]
lea edi, [esp + 0x6c]
xor eax, eax
push ebx
push ecx
or ecx, 0xffffffff
mov ebp, dword [sym.imp.KERNEL32.dll_WriteFile]
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea edx, [esp + 0x74]
push ecx
push edx
push esi
call ebp
mov edx, dword [esp + 0xbc]
lea eax, [esp + 0x24]
push ebx
push eax
mov edi, edx
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push edx
push esi
call ebp
lea ecx, [esp + 0x24]
push ebx
push ecx
mov edi, 0x40d100
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push 0x40d100
push esi
call ebp
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, dword [esp + 0x18]
cmp ecx, ebx
je 0x401b2a
mov al, byte [ecx - 1]
cmp al, bl
je 0x401b20
cmp al, 0xff
je 0x401b20
dec al
mov byte [ecx - 1], al
jmp 0x401b2a
dec ecx
push ecx
call fcn.004032b2
add esp, 4
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x18], ebx
cmp ecx, ebx
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x20], ebx
je 0x401b5a
mov al, byte [ecx - 1]
cmp al, bl
je 0x401b50
cmp al, 0xff
je 0x401b50
dec al
mov byte [ecx - 1], al
jmp 0x401b5a
dec ecx
push ecx
call fcn.004032b2
add esp, 4
mov ecx, dword [esp + 0xac]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0xa8
ret