Function at 0x40ab86
Capabilities:
Delete file
Write file on windows

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x450
mov eax, dword [0x41d0e8]
xor eax, ebp
mov dword [ebp - 8], eax
push ebx
mov ebx, dword [ebp + 8]
push esi
push edi
xor edi, edi
mov dword [ebp - 0x44c], ebx
push edi
push 0x80
push 2
mov esi, ecx
push ecx
mov dword [ebp - 0x420], esi
call fcn.0040549e
pop ecx
push eax
push edi
push 0x40000000
push ebx
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov ebx, eax
cmp ebx, 0xffffffff
je 0x40af1b
mov eax, 0xfeff
mov dword [ebp - 0x444], 0x28
mov word [ebp - 0x430], ax
mov ecx, esi
mov eax, dword [0x402b7c]
mov dword [ebp - 0x18], eax
mov ax, word [0x402b80]
mov word [ebp - 0x14], ax
mov eax, dword [0x402b84]
mov dword [ebp - 0x10], eax
mov ax, word [0x402b88]
mov word [ebp - 0xc], ax
mov dword [ebp - 0x448], 0x29
call fcn.0040ec0f
push edi
push edi
push edi
push ebx
mov dword [ebp - 0x438], eax
mov dword [ebp - 0x434], edi
mov dword [ebp - 0x42c], edi
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
push edi
lea eax, [ebp - 0x424]
push eax
push 2
lea eax, [ebp - 0x430]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
je 0x40af1b
mov eax, edi
mov dword [ebp - 0x428], edi
cmp dword [ebp - 0x438], eax
jbe 0x40af18
push eax
mov ecx, esi
call fcn.0040ee73
test al, 4
jne 0x40aeff
mov esi, dword [ebp - 0x428]
mov ecx, dword [ebp - 0x420]
push esi
call fcn.0040eec6
test al, 0x20
jne 0x40aef9
mov eax, dword [ebp - 0x420]
push esi
mov eax, dword [eax]
mov esi, dword [eax + 0x3c]
mov ecx, esi
call dword [0x41e42c]
mov ecx, dword [ebp - 0x420]
call esi
mov esi, dword [ebp - 0x420]
test eax, eax
jne 0x40aeff
lea eax, [ebp - 0x434]
mov ecx, esi
push eax
push 2
push dword [ebp - 0x428]
call fcn.0040ed65
test eax, eax
je 0x40aeff
mov esi, dword [ebp - 0x434]
test esi, esi
je 0x40aef9
mov ecx, 0x100
cmp esi, ecx
jb 0x40ad1c
push 0xffffffffffffffff
push eax
push ecx
lea eax, [ebp - 0x41c]
push eax
call dword [sym.imp.msvcrt.dll_wcsncpy_s]
add esp, 0x10
cmp eax, 0x50
je 0x40aef9
jmp 0x40ad2f
push esi
push eax
push ecx
lea eax, [ebp - 0x41c]
push eax
call dword [sym.imp.msvcrt.dll_wcsncpy_s]
add esp, 0x10
mov eax, 0xff
cmp esi, eax
ja 0x40ad3a
mov eax, esi
add eax, eax
cmp eax, 0x200
jae 0x40af49
xor ecx, ecx
mov word [ebp + eax - 0x41c], cx
lea eax, [ebp - 0x42c]
mov ecx, dword [ebp - 0x420]
push eax
push 4
push dword [ebp - 0x428]
call fcn.0040ed65
test eax, eax
jne 0x40ad78
mov word [ebp - 0x21c], ax
jmp 0x40adc7
mov ecx, dword [ebp - 0x42c]
mov edx, 0x100
cmp ecx, edx
jb 0x40ad8b
push 0xffffffffffffffff
jmp 0x40ad8c
push ecx
push eax
push edx
lea eax, [ebp - 0x21c]
push eax
call dword [sym.imp.msvcrt.dll_wcsncpy_s]
mov eax, dword [ebp - 0x42c]
add esp, 0x10
cmp eax, 0xff
jbe 0x40adb0
mov eax, 0xff
add eax, eax
cmp eax, 0x200
jae 0x40af49
xor ecx, ecx
mov word [ebp + eax - 0x21c], cx
mov ecx, dword [ebp - 0x420]
lea eax, [ebp - 0x440]
push eax
push 3
push dword [ebp - 0x428]
call fcn.0040ed65
mov dword [ebp - 0x43c], eax
lea eax, [ebp - 0x424]
push edi
push eax
lea eax, [esi + esi]
push eax
lea eax, [ebp - 0x41c]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
je 0x40ae23
push edi
lea eax, [ebp - 0x424]
push eax
push 4
lea eax, [ebp - 0x10]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
je 0x40ae23
xor eax, eax
inc eax
jmp 0x40ae25
mov eax, edi
mov ecx, dword [ebp - 0x43c]
test ecx, ecx
je 0x40ae52
test eax, eax
je 0x40ae50
push edi
lea eax, [ebp - 0x424]
push eax
mov eax, dword [ebp - 0x440]
add eax, eax
push eax
push ecx
push ebx
call dword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
jne 0x40ae56
mov eax, edi
test eax, eax
je 0x40ae74
push edi
lea eax, [ebp - 0x424]
push eax
push 4
lea eax, [ebp - 0x10]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
je 0x40ae74
xor eax, eax
inc eax
jmp 0x40ae76
mov eax, edi
mov esi, dword [ebp - 0x42c]
test esi, esi
je 0x40aedc
test eax, eax
je 0x40aeda
push edi
lea eax, [ebp - 0x424]
push eax
push 2
lea eax, [ebp - 0x444]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
je 0x40aeda
push edi
lea eax, [ebp - 0x424]
push eax
lea eax, [esi + esi]
push eax
lea eax, [ebp - 0x21c]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
je 0x40aeda
push edi
lea eax, [ebp - 0x424]
push eax
push 2
lea eax, [ebp - 0x448]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
jne 0x40aee0
mov eax, edi
test eax, eax
je 0x40af1b
push edi
lea eax, [ebp - 0x424]
push eax
push 4
lea eax, [ebp - 0x18]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
je 0x40af1b
mov esi, dword [ebp - 0x420]
mov eax, dword [ebp - 0x428]
inc eax
mov dword [ebp - 0x428], eax
cmp eax, dword [ebp - 0x438]
jb 0x40ac74
xor edi, edi
inc edi
test ebx, ebx
je 0x40af36
push ebx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
test edi, edi
jne 0x40af36
push dword [ebp - 0x44c]
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
mov ecx, dword [ebp - 8]
mov eax, edi
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0041b570
leave
ret 4
call fcn.0041b84a
int3