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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4f02f3
mov eax, dword fs:[0]
push eax
mov eax, 0x11ac
call fcn.004a2fb0
mov eax, dword [0x52910c]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, edx
mov ebx, ecx
mov dword [ebp - 0x1128], ebx
sub esp, 0x10
lea eax, [ebp - 0x114]
lea edx, [ebp - 0x11b8]
push 0x104
push eax
push 0
call fcn.0047f4c0
add esp, 0x1c
test eax, eax
je 0x47d1d6
xor eax, eax
jmp 0x47d50e
sub esp, 0xc
mov ecx, ebx
call fcn.0047fcf0
add esp, 0xc
test eax, eax
jne 0x47d1cf
push ebx
mov edx, fcn.004801c0
lea ecx, [ebp - 0x1150]
call fcn.0047e250
add esp, 4
push esi
lea ecx, [ebp - 0x1120]
mov dword [ebp - 4], 0
call fcn.0047d890
mov byte [ebp - 4], 1
call fcn.0047cf80
mov ecx, eax
test ecx, ecx
jne 0x47d227
push 0x80004005
call fcn.0047cc70
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x111c], eax
lea eax, [ebp - 0x114]
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x1118]
push eax
call fcn.0047d790
test dword [ebp - 0x11b0], 0x800
je 0x47d28a
push 0xfde9
lea edx, [ebp - 0x1118]
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x1124]
call fcn.0047e3e0
add esp, 4
push eax
lea ecx, [ebp - 0x111c]
mov byte [ebp - 4], 4
call fcn.0047da80
mov byte [ebp - 4], 3
jmp 0x47d2b8
push 0
lea edx, [ebp - 0x1118]
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x1124]
call fcn.0047e3e0
add esp, 4
push eax
lea ecx, [ebp - 0x111c]
mov byte [ebp - 4], 6
call fcn.0047da80
mov byte [ebp - 4], 5
mov edx, dword [ebp - 0x1124]
or esi, 0xffffffff
mov eax, esi
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x47d2d8
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 2
mov eax, esi
mov edx, dword [ebp - 0x1118]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x47d2f9
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov ebx, dword [ebp - 0x111c]
cmp dword [ebx - 4], 1
mov eax, dword [ebx - 0xc]
mov dword [ebp - 0x1118], eax
jle 0x47d320
push eax
lea ecx, [ebp - 0x111c]
call fcn.0047da00
mov ebx, dword [ebp - 0x111c]
sub esp, 8
lea edx, [ebp - 0x111c]
lea ecx, [ebp - 0x1160]
mov edi, ebx
call fcn.0047e270
add esp, 8
xor esi, esi
mov byte [ebp - 4], 7
cmp dword [ebp - 0x1118], esi
jl 0x47d3ec
nop dword [eax + eax]
movzx eax, word [ebx + esi*2]
test ax, ax
je 0x47d3c3
cmp eax, 0x5c
je 0x47d363
cmp eax, 0x2f
jne 0x47d3b8
xor eax, eax
mov word [ebx + esi*2], ax
test edi, edi
jne 0x47d371
xor ecx, ecx
jmp 0x47d385
mov ecx, edi
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x47d376
sub ecx, edx
sar ecx, 1
push ecx
push edi
lea ecx, [ebp - 0x1120]
call fcn.0047de50
push 1
push 0x509d60
lea ecx, [ebp - 0x1120]
call fcn.0047de50
push 0
push dword [ebp - 0x1120]
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
lea edi, [esi + 1]
lea edi, [ebx + edi*2]
inc esi
cmp esi, dword [ebp - 0x1118]
jle 0x47d350
jmp 0x47d3ec
test edi, edi
jne 0x47d3cb
xor ecx, ecx
jmp 0x47d3df
mov ecx, edi
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x47d3d0
sub ecx, edx
sar ecx, 1
push ecx
push edi
lea ecx, [ebp - 0x1120]
call fcn.0047de50
cmp word [edi], 0
jne 0x47d3fc
mov esi, 1
jmp 0x47d4b3
push 0
push 0
push 2
push 0
push 0
push 0x40000000
push dword [ebp - 0x1120]
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov edi, eax
cmp edi, 0xffffffff
jne 0x47d425
xor esi, esi
jmp 0x47d4b3
mov edx, dword [sym.imp.KERNEL32.dll_CloseHandle]
lea ecx, [ebp - 0x1144]
push edi
call fcn.0047e250
mov ecx, dword [ebp - 0x1128]
lea edx, [ebp - 0x1114]
mov byte [ebp - 4], 8
call fcn.0047ff10
mov esi, eax
add esp, 4
test esi, esi
js 0x47d4a6
mov ebx, dword [sym.imp.KERNEL32.dll_WriteFile]
je 0x47d52a
push 0
lea eax, [ebp - 0x1118]
mov dword [ebp - 0x1118], 0
push eax
push esi
lea eax, [ebp - 0x1114]
push eax
push edi
call ebx
test eax, eax
je 0x47d4a6
cmp dword [ebp - 0x1118], esi
jne 0x47d4a6
push ecx
mov ecx, dword [ebp - 0x1128]
lea edx, [ebp - 0x1114]
call fcn.0047ff10
mov esi, eax
add esp, 4
test esi, esi
jns 0x47d45b
xor esi, esi
lea ecx, [ebp - 0x1144]
call fcn.0047e340
lea ecx, [ebp - 0x1160]
call fcn.0047e280
mov byte [ebp - 4], 1
or edi, 0xffffffff
mov edx, dword [ebp - 0x111c]
mov eax, edi
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x47d4e2
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0
mov eax, dword [ebp - 0x1120]
add eax, 0xfffffff0
lock xadd dword [eax + 0xc], edi
dec edi
test edi, edi
jg 0x47d501
mov ecx, dword [eax]
push eax
mov edx, dword [ecx]
call dword [edx + 4]
lea ecx, [ebp - 0x1150]
call fcn.0047e2e0
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004a1845
mov esp, ebp
pop ebp
ret
lea eax, [ebp - 0x1138]
push eax
mov eax, dword [ebp - 0x11a8]
push eax
shr eax, 0x10
push eax
call dword [sym.imp.KERNEL32.dll_DosDateTimeToFileTime]
lea eax, [ebp - 0x1130]
push eax
lea eax, [ebp - 0x1138]
push eax
call dword [sym.imp.KERNEL32.dll_LocalFileTimeToFileTime]
lea eax, [ebp - 0x1130]
push eax
push eax
push eax
push edi
call dword [sym.imp.KERNEL32.dll_SetFileTime]
mov esi, 1
jmp 0x47d4a8