Function at 0x409ab0
Capabilities:
Delete file
Read file on windows
Set file attributes
Write file on windows

Disassembly:
sub esp, 0x224
mov eax, dword [0x5b0c20]
xor eax, esp
mov dword [esp + 0x220], eax
mov eax, dword [esp + 0x228]
push ebx
push ebp
push esi
mov esi, dword [esp + 0x238]
xor ebx, ebx
push edi
push ebx
mov dword [esp + 0x28], eax
mov dword [esp + 0x24], ebx
mov dword [esp + 0x14], ebx
call fcn.00407e40
push eax
lea ecx, [esi + 2]
push ecx
lea edx, [esp + 0x34]
push 0x5516e0
push edx
call fcn.00525f70
add esp, 0x14
push 0x26
lea eax, [esp + 0x2c]
push eax
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
test eax, eax
je 0x409b21
lea ecx, [esp + 0x28]
push ecx
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
mov dword [esp + 0x10], eax
mov ecx, dword [esi + 0x35c]
xor edx, edx
mov eax, 0x13c00
div ecx
mov ebp, eax
imul ebp, ecx
cmp ebp, 0x13c00
jae 0x409b4e
mov esi, ecx
xor edx, edx
mov eax, 0x13c00
div esi
mov ebp, eax
inc ebp
imul ebp, esi
push ebp
call fcn.00401bb0
mov edi, eax
add esp, 4
mov dword [esp + 0x14], edi
cmp edi, ebx
je 0x409e91
mov esi, dword [sym.imp.KERNEL32.dll_CreateFileW]
push ebx
push 0xa0000026
push 2
push ebx
push 7
push 0xc0000000
lea edx, [esp + 0x40]
push edx
call esi
mov ebx, eax
cmp ebx, 0xffffffff
je 0x409e64
xor eax, eax
test ebp, ebp
jbe 0x409bb4
add edi, eax
mov ecx, 0x80
mov esi, str.j:Y
add eax, 0x200
rep movsd dword es:[edi], dword [esi]
mov edi, dword [esp + 0x14]
cmp eax, ebp
jb 0x409b93
mov esi, dword [sym.imp.KERNEL32.dll_CreateFileW]
push 0
lea eax, [esp + 0x1c]
push eax
push ebp
push edi
push ebx
call dword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
je 0x409e64
push ebx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push 0
push 0x26
push 3
push 0
push 7
push 0xc0000000
lea ecx, [esp + 0x40]
push ecx
call esi
mov ebx, eax
cmp ebx, 0xffffffff
je 0x409e64
push 0
call fcn.00407e40
mov edx, dword [esp + 0x28]
push eax
add edx, 2
push edx
lea eax, [esp + 0x34]
push 0x5516e0
push eax
call fcn.00525f70
add esp, 0x14
push 0
push 0
push 3
push 0
push 7
push closesocket
lea ecx, [esp + 0x40]
push ecx
call esi
mov dword [esp + 0x20], eax
cmp eax, 0xffffffff
je 0x409e64
mov esi, dword [sym.imp.KERNEL32.dll_SetFilePointer]
push 0
push 0
push 0
mov edx, eax
push edx
call esi
test eax, eax
jne 0x409e64
push eax
push eax
push eax
push ebx
call esi
test eax, eax
jne 0x409e64
mov ebp, dword [sym.imp.KERNEL32.dll_ReadFile]
mov ecx, dword [esp + 0x20]
push 0
lea eax, [esp + 0x20]
push eax
push 0x200
push edi
push ecx
call ebp
test eax, eax
je 0x409c85
cmp dword [esp + 0x1c], 0
je 0x409ca2
push 0
lea edx, [esp + 0x1c]
push edx
push 0x200
push edi
push ebx
call dword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
jne 0x409c66
jmp 0x409e64
push 0
push 0
push 0
push ebx
call esi
test eax, eax
jne 0x409e64
push eax
lea eax, [esp + 0x20]
push eax
push 0x1000
push 0x5bf8e0
push ebx
call ebp
test eax, eax
je 0x409e64
cmp dword [esp + 0x1c], 0x1000
jne 0x409e64
push 0
mov ecx, 0x200
mov esi, 0x5bf8e0
mov edi, 0x5c10e0
rep movsd dword es:[edi], dword [esi]
push 0
mov ecx, 0x200
mov esi, 0x5c00e0
mov edi, 0x5c08e0
push 0
rep movsd dword es:[edi], dword [esi]
mov esi, dword [sym.imp.KERNEL32.dll_SetFilePointer]
push ebx
call esi
test eax, eax
jne 0x409e60
push eax
lea ecx, [esp + 0x1c]
push ecx
push 0x1000
push 0x5c08e0
push ebx
call dword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
je 0x409e60
cmp dword [esp + 0x18], 0x1000
jne 0x409e60
push 0
push 0
push 0x1000
push ebx
call esi
cmp eax, 0x1000
jne 0x409e60
push 0
lea edx, [esp + 0x20]
push edx
push 0x200
push 0x5bf8e0
push ebx
call ebp
test eax, eax
je 0x409e60
cmp dword [esp + 0x1c], 0x200
jne 0x409e60
mov ecx, 0x80
mov esi, 0x5bf8e0
mov edi, 0x5c08e0
rep movsd dword es:[edi], dword [esi]
movzx eax, byte [0x5bf974]
movzx ecx, byte [0x5bf975]
movzx edx, byte [0x5bf976]
mov byte [0x5c08f0], al
movzx eax, byte [0x5bf977]
mov byte [0x5c08f1], cl
mov byte [0x5c08f2], dl
mov byte [0x5c08f3], al
mov ecx, 0x20
mov esi, 0x5bf978
mov edi, 0x5c08f4
rep movsd dword es:[edi], dword [esi]
movzx ecx, byte [0x5bf8f0]
movzx edx, byte [0x5bf8f1]
movzx eax, byte [0x5bf8f2]
mov byte [0x5c0974], cl
movzx ecx, byte [0x5bf8f3]
push 0
push 0
mov byte [0x5c0977], cl
push 0x1000
mov byte [0x5c0975], dl
mov byte [0x5c0976], al
mov ecx, 0x20
mov esi, 0x5bf8f4
mov edi, 0x5c0978
push ebx
rep movsd dword es:[edi], dword [esi]
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
cmp eax, 0x1000
jne 0x409e60
push 0
lea edx, [esp + 0x1c]
push edx
push 0x200
push 0x5c08e0
push ebx
call dword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
je 0x409e60
cmp dword [esp + 0x18], 0x200
jne 0x409e60
mov dword [esp + 0x10], 1
mov edi, dword [esp + 0x14]
push edi
call fcn.00401bc0
mov eax, dword [esp + 0x24]
add esp, 4
test eax, eax
je 0x409e81
cmp eax, 0xffffffff
je 0x409e81
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
test ebx, ebx
je 0x409e91
cmp ebx, 0xffffffff
je 0x409e91
push ebx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, dword [esp + 0x230]
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.00524d83
add esp, 0x224
ret