Function at 0x403e9b
Capabilities:
Create directory
Delete file
Write file on windows

Disassembly:
push 0x234
mov eax, 0x427353
call fcn.004243b0
mov ebx, ecx
mov edi, edx
mov dword [ebp - 0x230], edi
mov eax, dword [ebp + 8]
mov dword [ebp - 0x238], eax
mov byte [ebp - 0x21d], 0
and dword [ebp - 4], 0
xor eax, eax
mov word [ebp - 0x21c], ax
push 0x206
push eax
lea eax, [ebp - 0x21a]
push eax
call fcn.0041b1d0
add esp, 0xc
push 0x42e8b0
push edi
call dword [sym.imp.SHLWAPI.dll_StrStrIW]
mov esi, eax
sub esi, edi
sar esi, 1
xor eax, eax
cmp esi, eax
jg 0x404078
mov dword [ebp - 0x224], eax
mov dword [ebp - 0x22c], eax
mov dword [ebp - 0x240], eax
mov dword [ebp - 0x228], eax
mov dword [ebp - 0x234], eax
mov dword [ebp - 0x23c], eax
cmp byte [ebp + 0xc], al
jne 0x403f7e
mov dword [ebp - 0x23c], ebx
lea eax, [ebp - 0x22c]
push eax
push 1
push ebx
call dword [sym.imp.OLEAUT32.dll_SafeArrayLock]
lea eax, [ebp - 0x240]
push eax
push 1
push ebx
call dword [sym.imp.OLEAUT32.dll_SafeArrayGetLBound]
push ebx
call dword [sym.imp.OLEAUT32.dll_SafeArrayGetUBound]
mov esi, dword [ebp - 0x240]
sub esi, dword [ebp - 0x22c]
inc esi
imul esi, eax
lea eax, [ebp - 0x228]
push eax
push ebx
call dword [sym.imp.OLEAUT32.dll_SafeArrayUnaccessData]
mov dword [ebp - 0x234], eax
jmp 0x403fbe
cmp ebx, eax
je 0x403faf
push ebx
call dword [sym.imp.KERNEL32.dll_lstrlenW]
inc eax
cmp eax, 0x3fffffff
jle 0x403f95
xor eax, eax
jmp 0x403faf
lea edi, [eax + eax]
mov eax, edi
call fcn.00421730
mov dword [ebp - 0x10], esp
mov esi, esp
push 3
pop eax
push eax
push edi
push ebx
call fcn.00401184
mov dword [ebp - 0x228], eax
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov esi, eax
xor ebx, ebx
cmp dword [ebp - 0x234], ebx
jl 0x40400b
cmp esi, ebx
jbe 0x40400b
push ebx
push 0x80
push 2
push ebx
push ebx
push 0xc0000000
push dword [ebp - 0x230]
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov edi, eax
cmp edi, 0xffffffff
je 0x404004
push ebx
lea eax, [ebp - 0x224]
push eax
push esi
push dword [ebp - 0x228]
push edi
call dword [sym.imp.KERNEL32.dll_WriteFile]
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp byte [ebp + 0xc], bl
jne 0x40401c
push dword [ebp - 0x23c]
call dword [sym.imp.OLEAUT32.dll_SafeArrayGetElement]
cmp dword [ebp - 0x224], ebx
jne 0x404038
push dword [ebp - 0x230]
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
cmp dword [ebp - 0x224], ebx
je 0x404045
cmp dword [ebp - 0x224], esi
jb 0x404045
xor eax, eax
inc eax
jmp 0x404047
xor eax, eax
mov byte [ebp - 0x21d], al
mov esi, dword [ebp - 0x238]
cmp esi, ebx
je 0x404072
push esi
call dword [sym.imp.OLEAUT32.dll_VariantClear]
push 0xb
pop eax
mov word [esi], ax
xor eax, eax
cmp byte [ebp - 0x21d], al
setne al
mov byte [esi + 8], al
or dword [ebp - 4], 0xffffffff
jmp 0x4040b4
lea eax, [esi + 2]
push eax
push edi
lea eax, [ebp - 0x21c]
push eax
call dword [sym.imp.SHLWAPI.dll_StrNCatW]
push 0
lea eax, [ebp - 0x21c]
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
lea edi, [edi + esi*2 + 2]
jmp 0x403ee6
cmp esi, ebx
je 0x4040d0
push esi
call dword [sym.imp.OLEAUT32.dll_VariantClear]
push 0xb
pop eax
mov word [esi], ax
movzx eax, byte [ebp - 0x21d]
mov word [esi + 8], ax
xor eax, eax
lea esp, [ebp - 0x250]
call fcn.0042440c
ret 8