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

Disassembly:
push 0x4a8
mov eax, 0x44b6c7
call fcn.00439970
mov eax, dword [ebp + 8]
mov dword [ebp - 0x440], ecx
call fcn.0042ff40
mov esi, eax
xor ebx, ebx
cmp esi, ebx
mov dword [ebp - 0x420], esi
jne 0x4099f5
xor eax, eax
jmp 0x409d88
mov dword [ebp - 0x424], 1
call fcn.00430ae0
cmp eax, ebx
jne 0x409d77
push 0x50
lea eax, [ebp - 0x4b4]
push ebx
push eax
call fcn.00434800
add esp, 0xc
push 0x3ff
lea eax, [ebp - 0x413]
push ebx
push eax
mov byte [ebp - 0x414], 0
call fcn.00434800
add esp, 0xc
push dword [ebp - 0x420]
lea eax, [ebp - 0x414]
lea esi, [ebp - 0x4b4]
call fcn.00430a20
test eax, eax
pop ecx
jne 0x409d90
lea eax, [ebp - 0x464]
push eax
call fcn.0042d1c0
push ebx
lea eax, [ebp - 0x414]
push eax
lea eax, [ebp - 0x464]
push eax
mov dword [ebp - 4], ebx
call fcn.0042c640
lea ecx, [ebp - 0x41c]
push ecx
mov ecx, eax
call fcn.00403216
lea eax, [ebp - 0x41c]
mov byte [ebp - 4], 1
call fcn.00404ac3
mov eax, dword [ebp - 0x41c]
mov ecx, dword [eax - 0xc]
cmp ecx, ebx
je 0x409d98
lea edx, [ecx - 1]
cmp edx, ebx
jl 0x409de9
cmp edx, ecx
jg 0x409de9
movzx ecx, word [eax + edx*2]
cmp cx, 0x2f
jne 0x409b3a
mov eax, dword [eax - 0xc]
lea ecx, [ebp - 0x41c]
dec eax
push ecx
call fcn.0040a329
mov ecx, dword [ebp - 0x440]
lea eax, [ebp - 0x434]
push eax
call fcn.00403216
mov byte [ebp - 4], 2
push dword [ebp - 0x41c]
lea ecx, [ebp - 0x434]
push 0x453604
call fcn.00404f2a
pop ecx
pop ecx
push ebx
push dword [ebp - 0x434]
push ebx
call dword [sym.imp.SHELL32.dll_SHCreateDirectoryExW]
cmp eax, ebx
je 0x409b23
cmp eax, 0xb7
jne 0x409db7
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x434]
add eax, 0xfffffff0
call fcn.00402f9a
jmp 0x409d45
mov eax, dword [0x45fb34]
mov ecx, 0x45fb34
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x43c], eax
mov byte [ebp - 4], 3
push dword [ebp - 0x41c]
lea eax, [ebp - 0x43c]
push dword [ebp - 0x440]
push str._s_s
push eax
call fcn.00402dc0
mov edi, dword [ebp - 0x43c]
lea eax, [edi - 0x10]
add esp, 0x10
mov dword [ebp - 0x444], eax
call fcn.00402e21
add eax, 0x10
mov dword [ebp - 0x428], eax
mov byte [ebp - 4], 4
mov ebx, dword [eax - 0xc]
xor ecx, ecx
test ebx, ebx
mov byte [ebp - 0x415], 0
mov esi, eax
jle 0x409bff
add ecx, ecx
cmp word [ecx + esi], 0x2f
mov dword [ebp - 0x42c], ecx
jne 0x409be0
cmp byte [ebp - 0x415], 0
jne 0x409bda
push ebx
lea esi, [ebp - 0x428]
mov byte [ebp - 0x415], 1
call fcn.004033c5
mov ecx, dword [ebp - 0x42c]
mov esi, eax
mov word [ecx + esi], 0x5c
add ecx, 2
sar ecx, 1
cmp ecx, ebx
jl 0x409ba7
cmp byte [ebp - 0x415], 0
je 0x409bff
mov eax, ebx
lea edx, [ebp - 0x428]
call fcn.00402f31
lea esi, [ebp - 0x428]
call fcn.00404b5e
push eax
call dword [sym.imp.SHLWAPI.dll_PathRemoveFileSpecW]
test eax, eax
mov esi, dword [ebp - 0x428]
je 0x409c61
xor ebx, ebx
cmp esi, ebx
jne 0x409c25
xor eax, eax
jmp 0x409c2c
push esi
call fcn.00434f36
pop ecx
lea edx, [ebp - 0x428]
call fcn.00402f31
push ebx
push esi
push ebx
call dword [sym.imp.SHELL32.dll_SHCreateDirectoryExW]
cmp eax, ebx
je 0x409c63
cmp eax, 0xb7
je 0x409c63
mov dword [ebp - 0x424], ebx
lea eax, [esi - 0x10]
call fcn.00402f9a
lea eax, [edi - 0x10]
jmp 0x409dc6
xor ebx, ebx
push dword [ebp - 0x420]
call fcn.00430e80
cmp eax, ebx
pop ecx
jne 0x409d2a
push 0x4536a4
lea eax, [ebp - 0x430]
push edi
push eax
mov dword [ebp - 0x430], ebx
call fcn.004371d8
add esp, 0xc
cmp dword [ebp - 0x430], ebx
je 0x409dd3
push 0x80000
call fcn.004351d9
pop ecx
mov dword [ebp - 0x42c], eax
push eax
jmp 0x409cdc
push dword [ebp - 0x430]
push dword [ebp - 0x438]
push 1
push dword [ebp - 0x42c]
call fcn.00437387
add esp, 0x10
cmp dword [ebp - 0x438], eax
jne 0x409cf4
push dword [ebp - 0x42c]
mov eax, dword [ebp - 0x420]
call fcn.00431050
cmp eax, ebx
mov dword [ebp - 0x438], eax
pop ecx
jg 0x409cb2
jmp 0x409cfa
mov dword [ebp - 0x424], ebx
push dword [ebp - 0x42c]
call fcn.00434d1f
pop ecx
push dword [ebp - 0x430]
call fcn.0043747b
mov ebx, dword [ebp - 0x420]
pop ecx
call fcn.00431300
cmp dword [ebp - 0x424], 0
je 0x409c51
add esi, 0xfffffff0
mov eax, esi
call fcn.00402f9a
mov eax, dword [ebp - 0x444]
mov byte [ebp - 4], 1
call fcn.00402f9a
xor ebx, ebx
mov esi, dword [ebp - 0x420]
call fcn.00430b40
mov esi, eax
mov eax, dword [ebp - 0x41c]
add eax, 0xfffffff0
call fcn.00402f9a
or dword [ebp - 4], 0xffffffff
lea edi, [ebp - 0x464]
call fcn.0042c530
cmp esi, ebx
je 0x409a0c
mov eax, dword [ebp - 0x420]
call fcn.00430540
mov eax, dword [ebp - 0x424]
call fcn.004399ba
ret 4
mov dword [ebp - 0x424], ebx
jmp 0x409d77
mov dword [ebp - 0x424], ebx
add eax, 0xfffffff0
call fcn.00402f9a
or dword [ebp - 4], 0xffffffff
lea edi, [ebp - 0x464]
call fcn.0042c530
jmp 0x409d77
mov eax, dword [ebp - 0x434]
mov dword [ebp - 0x424], ebx
add eax, 0xfffffff0
call fcn.00402f9a
mov eax, dword [ebp - 0x41c]
jmp 0x409d9e
mov dword [ebp - 0x424], ebx
mov ebx, dword [ebp - 0x420]
call fcn.00431300
jmp 0x409c51
push 0x80070057
call fcn.00403502
int3