Function at 0x6f1250
Capabilities:
Encode data using xor
Get file size
Read file on windows
Write file on windows

Disassembly:
push 0xffffffffffffffff
push 0x763800
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
push ecx
push ebx
push ebp
push esi
push edi
mov esi, ecx
mov eax, dword [esp + 0x3c]
lea edx, [esp + 0x2c]
push eax
xor ebx, ebx
sub esp, 0x10
mov dword [esp + 0x30], ebx
mov ecx, esp
mov dword [esp + 0x24], esp
push edx
call fcn.004257d0
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x38]
push eax
push ecx
mov ecx, esi
mov byte [esp + 0x38], bl
call fcn.006f0fd0
cmp eax, ebx
jne 0x6f12bd
push 1
lea ecx, [esp + 0x30]
mov dword [esp + 0x20], 0xffffffff
call fcn.00404760
xor eax, eax
jmp 0x6f14b0
mov eax, dword [esp + 0x30]
cmp eax, ebx
jne 0x6f12ca
mov eax, 0x765608
push ebx
push 0x80
push 3
push ebx
push ebx
push closesocket
push eax
call dword [sym.imp.kernel32.dll_CreateFileA]
mov edi, eax
or esi, 0xffffffff
cmp edi, esi
jne 0x6f1318
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x1c], esi
cmp ecx, ebx
je 0x6f145f
mov al, byte [ecx - 1]
test al, al
je 0x6f1455
cmp al, 0xff
je 0x6f1455
dec al
mov byte [ecx - 1], al
xor eax, eax
jmp 0x6f14b0
lea edx, [esp + 0x3c]
push edx
push edi
call dword [sym.imp.kernel32.dll_GetFileSize]
cmp eax, esi
mov dword [esp + 0x28], eax
jne 0x6f1362
push edi
call dword [sym.imp.kernel32.dll_CloseHandle]
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x1c], esi
cmp ecx, ebx
je 0x6f145f
mov al, byte [ecx - 1]
test al, al
je 0x6f1455
cmp al, 0xff
je 0x6f1455
dec al
mov byte [ecx - 1], al
xor eax, eax
jmp 0x6f14b0
lea ebp, [eax + 8]
push ebp
call fcn.00726f70
push ebx
mov esi, eax
call fcn.00727e6b
push eax
call fcn.007276dc
add esp, 0xc
call fcn.007276e9
and eax, 0x800000ff
jns 0x6f138f
dec eax
or eax, 0xffffff00
inc eax
mov byte [ebx + esi], al
inc ebx
cmp ebx, 4
jb 0x6f137c
mov ecx, dword [esp + 0x28]
lea eax, [esp + 0x3c]
push 0
push eax
lea edx, [esi + 8]
push ecx
push edx
push edi
mov byte [esi + 4], 0x4b
mov byte [esi + 5], 0x53
mov byte [esi + 6], 0x43
mov byte [esi + 7], 1
call dword [sym.imp.kernel32.dll_ReadFile]
push edi
call dword [sym.imp.kernel32.dll_CloseHandle]
xor ecx, ecx
mov word [0x7aaf80], 0x464
test ebp, ebp
jbe 0x6f140e
mov dl, byte [ecx + esi]
mov ebx, dword [0x7aaf80]
xor eax, eax
mov edi, dword [0x7aaf84]
mov al, byte [0x7aaf81]
xor al, dl
xor dx, dx
mov dl, al
add edx, ebx
imul dx, word [0x7aaf82]
add edx, edi
inc ecx
mov word [0x7aaf80], dx
mov byte [ecx + esi - 1], al
cmp ecx, ebp
jb 0x6f13d5
mov eax, dword [esp + 0x30]
test eax, eax
jne 0x6f141b
mov eax, 0x765608
push 0
push 0x80
push 2
push 0
push 0
push 0x40000000
push eax
call dword [sym.imp.kernel32.dll_CreateFileA]
mov edi, eax
or ebx, 0xffffffff
cmp edi, ebx
jne 0x6f1463
push esi
call fcn.00726ea6
mov ecx, dword [esp + 0x34]
add esp, 4
mov dword [esp + 0x1c], ebx
test ecx, ecx
jmp 0x6f133d
dec ecx
push ecx
call fcn.00726ea6
add esp, 4
xor eax, eax
jmp 0x6f14b0
lea eax, [esp + 0x3c]
push 0
push eax
push ebp
push esi
push edi
call dword [sym.imp.kernel32.dll_WriteFile]
push edi
call dword [sym.imp.kernel32.dll_CloseHandle]
push esi
call fcn.00726ea6
mov ecx, dword [esp + 0x34]
add esp, 4
test ecx, ecx
mov dword [esp + 0x1c], ebx
je 0x6f14ab
mov al, byte [ecx - 1]
test al, al
je 0x6f14a1
cmp al, 0xff
je 0x6f14a1
dec al
mov byte [ecx - 1], al
jmp 0x6f14ab
dec ecx
push ecx
call fcn.00726ea6
add esp, 4
mov eax, 1
mov ecx, dword [esp + 0x14]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0x10
ret 0x1c