Function at 0x1000dac0
Capabilities:
Create directory
Delete file
Set file attributes
Terminate process
Write file on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1012233b
mov eax, dword fs:[0]
push eax
sub esp, 0x220
mov eax, dword [0x10167c60]
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 edi, ecx
mov dword [ebp - 0x228], edi
call fcn.100973d0
mov ebx, eax
mov dword [ebp - 0x224], ebx
test ebx, ebx
je 0x1000dd35
mov ecx, dword [edi]
mov esi, dword [ecx]
cmp esi, ecx
je 0x1000dd35
call fcn.10097460
mov dword [ebp - 0x220], eax
test eax, eax
je 0x1000dcf1
mov eax, dword [esi + 0x10]
mov ecx, dword [eax - 0x10]
lea edi, [eax - 0x10]
mov dword [ebp - 0x21c], eax
mov eax, dword [ecx]
call dword [eax + 0x10]
cmp dword [edi + 0xc], 0
mov ecx, eax
lea eax, [edi + 0xc]
jl 0x1000db52
cmp ecx, dword [edi]
jne 0x1000db52
lock inc dword [eax]
jmp 0x1000db83
mov eax, dword [ecx]
lea ebx, [edi + 4]
push 2
push dword [ebx]
call dword [eax]
mov edi, eax
test edi, edi
je 0x1000deaa
mov ecx, dword [ebx]
lea eax, [edi + 0x10]
mov dword [edi + 4], ecx
mov ecx, dword [ebx]
inc ecx
push ecx
push dword [ebp - 0x21c]
push ecx
push eax
call fcn.1000c490
add esp, 0x10
add edi, 0x10
mov dword [ebp - 0x22c], edi
lea eax, [ebp - 0x90]
mov dword [ebp - 4], 0
mov dword [ebp - 0x94], eax
jne 0x1000dbae
xor eax, eax
mov dword [ebp - 0x94], eax
jmp 0x1000dc88
mov ecx, edi
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x1000dbb3
sub ecx, edx
sar ecx, 1
push 0x80
lea eax, [ecx + 1]
lea ebx, [eax*4]
mov dword [ebp - 0x21c], eax
lea eax, [ebp - 0x90]
push eax
lea eax, [ebp - 0x94]
push ebx
push eax
call fcn.1000cb70
add esp, 0x10
push 0
push 0
push ebx
push dword [ebp - 0x94]
push dword [ebp - 0x21c]
push edi
push 0
push 3
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
xor ebx, ebx
test eax, eax
sete bl
test eax, eax
jne 0x1000dc7a
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x7a
jne 0x1000dc7a
push 0
push 0
push 0
push 0
push dword [ebp - 0x21c]
push edi
push 0
push 3
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
mov ebx, eax
lea eax, [ebp - 0x90]
push 0x80
push eax
lea eax, [ebp - 0x94]
push ebx
push eax
call fcn.1000cb70
add esp, 0x10
push 0
push 0
push ebx
push dword [ebp - 0x94]
push dword [ebp - 0x21c]
push edi
push 0
push 3
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
mov ebx, eax
neg ebx
sbb ebx, ebx
inc ebx
test ebx, ebx
jne 0x1000deaf
mov eax, dword [ebp - 0x94]
push eax
call fcn.10097490
mov ebx, dword [ebp - 0x220]
push eax
push 0x10130810
push ebx
call fcn.10097350
mov eax, dword [ebp - 0x94]
lea ecx, [ebp - 0x90]
add esp, 0x10
cmp eax, ecx
je 0x1000dcbc
push eax
call fcn.100e9f68
add esp, 4
push ebx
mov ebx, dword [ebp - 0x224]
push ebx
call fcn.10097320
add esp, 8
mov dword [ebp - 4], 0xffffffff
add edi, 0xfffffff0
or eax, 0xffffffff
lock xadd dword [edi + 0xc], eax
dec eax
test eax, eax
jg 0x1000dceb
mov ecx, dword [edi]
push edi
mov eax, dword [ecx]
call dword [eax + 4]
mov edi, dword [ebp - 0x228]
mov eax, dword [esi + 8]
cmp byte [eax + 0xd], 0
je 0x1000dd17
mov eax, dword [esi + 4]
cmp byte [eax + 0xd], 0
jne 0x1000dd13
cmp esi, dword [eax + 8]
jne 0x1000dd13
mov esi, eax
mov eax, dword [eax + 4]
cmp byte [eax + 0xd], 0
je 0x1000dd03
mov esi, eax
jmp 0x1000dd2d
mov esi, eax
mov ecx, dword [esi]
cmp byte [ecx + 0xd], 0
jne 0x1000dd2d
mov eax, dword [ecx]
mov esi, ecx
mov ecx, eax
cmp byte [eax + 0xd], 0
je 0x1000dd21
cmp esi, dword [edi]
jne 0x1000db17
call fcn.10097460
mov esi, eax
test esi, esi
je 0x1000de8e
push ebx
push 0x101308d8
push esi
call fcn.10097350
push esi
call fcn.100976e0
mov ebx, eax
add esp, 0x10
test ebx, ebx
je 0x1000de8e
mov edx, SysReAllocString
mov ecx, ebx
nop word [eax + eax]
cmp byte [ecx], 0
je 0x1000dd7b
inc ecx
sub edx, 1
jne 0x1000dd70
mov eax, SysReAllocString
mov esi, edx
sub eax, edx
neg esi
sbb esi, esi
and esi, eax
test edx, edx
je 0x1000de85
lea eax, [ebp - 0x220]
mov ecx, edi
push eax
call fcn.1000d330
push 0x80
mov edi, dword [eax]
push edi
mov dword [ebp - 0x224], edi
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
push edi
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
push 0x208
lea eax, [ebp - 0x218]
push 0
push eax
call fcn.100e67c0
lea ecx, [ebp - 0x218]
add esp, 0xc
mov eax, ecx
mov edx, 0x104
sub edi, eax
lea eax, [edx + 0x7ffffefa]
test eax, eax
je 0x1000ddfe
movzx eax, word [edi + ecx]
test ax, ax
je 0x1000ddfe
mov word [ecx], ax
add ecx, 2
sub edx, 1
jne 0x1000dde0
lea eax, [ecx - 2]
test edx, edx
cmovne eax, ecx
xor ecx, ecx
mov word [eax], cx
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.SHLWAPI.dll_PathRemoveFileSpecW]
push 0
lea eax, [ebp - 0x218]
push eax
push 0
call dword [sym.imp.SHELL32.dll_SHCreateDirectoryExW]
push 0
push 0x80
push 2
push 0
push 1
push 0x40000000
push dword [ebp - 0x224]
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov edi, eax
cmp edi, 0xffffffff
je 0x1000de67
push 0
lea eax, [ebp - 0x22c]
push eax
push esi
push ebx
push edi
call dword [sym.imp.KERNEL32.dll_WriteFile]
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov edx, dword [ebp - 0x220]
or eax, 0xffffffff
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x1000de85
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push ebx
call fcn.100e9f68
add esp, 4
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.100c495f
mov esp, ebp
pop ebp
ret
call fcn.1000baf0
push 0x80
lea eax, [ebp - 0x90]
push eax
push dword [ebp - 0x94]
call fcn.100070d0
add esp, 0xc
call fcn.10008540
int3