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

Disassembly:
push ebp
mov ebp, esp
push eax
mov eax, 8
add esp, 0xfffff004
push eax
dec eax
jne 0x4570c5
mov eax, dword [ebp - 4]
add esp, 0xffffffbc
push ebx
push esi
push edi
xor ebx, ebx
mov dword [ebp - 0x8048], ebx
mov dword [ebp - 0x8044], ebx
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0x10], edx
mov dword [ebp - 0x14], eax
mov edi, dword [ebp + 0xc]
lea eax, [ebp - 0x14]
call fcn.00403e28
mov ebx, 0x65d3a8
xor eax, eax
push ebp
push 0x457492
push dword fs:[eax]
mov dword fs:[eax], esp
mov byte [ebp - 0x19], 0
cmp dword [0x66b644], 0
jne 0x457138
call sub.kernel32.dll_GetCurrentThreadId
mov edx, dword [0x669b98]
cmp eax, dword [edx]
je 0x45745e
mov byte [ebx], 4
jmp 0x45745e
xor eax, eax
mov dword [ebp - 4], eax
xor eax, eax
mov dword [ebp - 8], eax
mov byte [ebp - 0x3d], 0
xor esi, esi
xor eax, eax
mov dword [ebp - 0x38], eax
cmp dword [ebp - 0x14], 0
je 0x45715d
mov eax, dword [0x669784]
cmp byte [eax], 0
jne 0x45716a
lea eax, [ebp - 0x14]
mov edx, 0x4574ac
call fcn.004038bc
push dword [ebp - 0x14]
push 0x4574bc
push dword [ebp - 0x10]
push 0x4574c8
push dword [ebp - 0x18]
lea eax, [ebp - 0x20]
mov edx, 5
call fcn.00403b88
push ebp
call fcn.00456f20
pop ecx
push 0
push 0
push 0
push 0
lea edx, [ebp - 0x8044]
mov eax, dword [0x669828]
mov eax, dword [eax]
call fcn.00654410
mov eax, dword [ebp - 0x8044]
push eax
call dword [0x66b648]
mov dword [ebp - 4], eax
mov byte [ebp - 0x3e], 0
push 0
push 0x800
push 0
push 0
mov eax, dword [ebp - 0x20]
push eax
mov eax, dword [ebp - 4]
push eax
call dword [0x66b64c]
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x457448
xor eax, eax
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x28], 4
lea eax, [ebp - 0x2c]
push eax
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x3c]
push eax
push 0x20000005
mov eax, dword [ebp - 8]
push eax
call dword [0x66b650]
test eax, eax
jne 0x457217
mov dword [ebp - 0x3c], 0x7fffffff
test esi, esi
je 0x457239
mov eax, dword [ebp - 0x3c]
cmp eax, dword [ebp - 0x38]
jne 0x457237
push 0
push 0
push 0
push esi
mov eax, dword [ebp - 8]
push eax
call dword [0x66b654]
inc eax
jne 0x457239
xor esi, esi
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x38], eax
test byte [ebp + 8], 4
je 0x45725a
mov ecx, dword [ebp - 0x38]
xor edx, edx
mov eax, edi
call fcn.00633210
mov edx, esi
mov eax, edi
call fcn.00633194
test byte [ebp + 8], 8
je 0x45727a
mov eax, edi
xor edx, edx
mov dword [eax + 0x258], edx
mov edx, dword [ebp - 0x38]
mov dword [eax + 0x25c], edx
mov edx, esi
call fcn.004f64d8
mov eax, dword [ebp + 0x10]
call fcn.006585c4
mov dword [ebp - 0x24], eax
test esi, esi
jle 0x457298
push 2
push 0
push 0
mov eax, dword [ebp - 0x24]
push eax
call sub.kernel32.dll_SetFilePointer
lea eax, [ebp - 0x30]
push eax
push 0x8000
lea eax, [ebp - 0x803e]
push eax
mov eax, dword [ebp - 8]
push eax
call dword [0x66b658]
test eax, eax
je 0x45738d
cmp dword [ebp - 0x30], 0
jne 0x4572df
mov byte [ebp - 0x19], 1
call sub.kernel32.dll_GetCurrentThreadId
mov edx, dword [0x669b98]
cmp eax, dword [edx]
je 0x457401
mov byte [ebx], 3
jmp 0x457401
push 0
lea eax, [ebp - 0x34]
push eax
mov eax, dword [ebp - 0x30]
push eax
lea eax, [ebp - 0x803e]
push eax
mov eax, dword [ebp - 0x24]
push eax
call sub.kernel32.dll_WriteFile
test eax, eax
je 0x457334
test byte [ebp + 8], 4
je 0x457316
mov eax, edi
call fcn.00633164
mov edx, eax
add edx, dword [ebp - 0x30]
mov eax, edi
call fcn.00633194
test byte [ebp + 8], 8
je 0x45732c
mov eax, edi
mov edx, dword [eax + 0x260]
add edx, dword [ebp - 0x30]
call fcn.004f64d8
add esi, dword [ebp - 0x30]
jmp 0x4573ea
mov al, byte [ebx]
mov byte [ebp - 9], al
test byte [ebp + 8], 1
jne 0x45736b
lea ecx, [ebp - 0x8048]
mov eax, 0x4574cc
mov edx, dword [ebp + 0x10]
call fcn.006552a0
mov eax, dword [ebp - 0x8048]
mov cx, word [0x4574e8]
mov dl, 1
call fcn.00456eb8
cmp eax, 4
je 0x457383
mov byte [ebp - 0x3d], 1
call sub.kernel32.dll_GetCurrentThreadId
mov edx, dword [0x669b98]
cmp eax, dword [edx]
je 0x4573ea
mov byte [ebx], 4
jmp 0x4573ea
mov al, byte [ebp - 9]
mov byte [ebx], al
jmp 0x4572df
push ebp
call fcn.00456f20
pop ecx
mov al, byte [ebx]
mov byte [ebp - 9], al
test byte [ebp + 8], 1
jne 0x4573d6
lea ecx, [ebp - 0x8048]
mov eax, 0x4574ec
mov edx, dword [ebp - 0x10]
call fcn.006552a0
mov eax, dword [ebp - 0x8048]
mov cx, word [0x4574e8]
mov dl, 1
call fcn.00456eb8
cmp eax, 4
jne 0x4573d6
mov al, byte [ebp - 9]
mov byte [ebx], al
mov byte [ebp - 0x3e], 1
jmp 0x457401
call sub.kernel32.dll_GetCurrentThreadId
mov edx, dword [0x669b98]
cmp eax, dword [edx]
je 0x457401
mov byte [ebx], 4
jmp 0x457401
cmp byte [ebx], 2
je 0x4573ea
cmp byte [ebp - 0x3d], 0
jne 0x457401
mov al, byte [ebx]
add al, 0xfd
sub al, 2
jae 0x457298
mov eax, dword [ebp - 0x24]
push eax
call sub.kernel32.dll_CloseHandle
cmp byte [ebp - 0x3e], 0
jne 0x45718a
cmp byte [ebp - 0x19], 0
jne 0x457423
mov eax, dword [ebp + 0x10]
push eax
call sub.kernel32.dll_DeleteFileW
mov eax, dword [ebp - 8]
push eax
call dword [0x66b65c]
xor eax, eax
mov dword [ebp - 8], eax
jmp 0x457457
push ebp
call fcn.00456f58
pop ecx
test al, al
jne 0x45718a
push ebp
call fcn.00456f20
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x457499
lea eax, [ebp - 0x8048]
call fcn.00403274
lea eax, [ebp - 0x8044]
call fcn.00403880
lea eax, [ebp - 0x20]
call fcn.00403880
lea eax, [ebp - 0x14]
call fcn.00403880
ret