Function at 0x140149320
Capabilities:
Encode data using xor
Read file on windows

Disassembly:
push rbp
push rsi
push r12
push r13
push r14
sub rsp, 0x1c0
mov rax, qword [0x140377790]
xor rax, rsp
mov qword [rsp + 0x1a8], rax
mov r14, qword [rsp + 0x210]
mov r13, r9
mov rsi, r8
mov r12d, edx
mov rbp, rcx
call fcn.140148f30
test eax, eax
je 0x1401497df
cmp r12d, 0x3e
jl 0x1401497df
mov edx, 0xffffffc2
mov rcx, rbp
lea r8d, [rdx + 0x40]
call sub.MSVCR90.dll_fseek
mov edx, 1
lea rcx, [rsp + 0x2c]
lea r8d, [rdx + 3]
mov r9, rbp
call sub.MSVCR90.dll_fread
mov edx, 1
lea rcx, [rsp + 0x28]
lea r8d, [rdx + 3]
mov r9, rbp
call sub.MSVCR90.dll_fread
mov edx, 1
lea rcx, [rsp + 0x158]
lea r8d, [rdx + 0xf]
mov r9, rbp
call sub.MSVCR90.dll_fread
mov edx, 1
lea rcx, [rsp + 0x148]
lea r8d, [rdx + 0xf]
mov r9, rbp
call sub.MSVCR90.dll_fread
mov edx, 1
lea rcx, [rsp + 0x168]
lea r8d, [rdx + 0xf]
mov r9, rbp
call sub.MSVCR90.dll_fread
mov edx, 1
lea rcx, [rsp + 0x24]
lea r8d, [rdx + 3]
mov r9, rbp
call sub.MSVCR90.dll_fread
mov edx, 1
lea rcx, [rsp + 0x20]
lea r8d, [rdx + 1]
mov r9, rbp
call sub.MSVCR90.dll_fread
cmp dword [rsp + 0x2c], 0x4c4f434b
jne 0x1401497df
movzx ecx, word [rsp + 0x20]
mov r9d, dword [rsp + 0x24]
lea rdx, [rsp + 0x178]
mov word [rsp + 0x144], cx
xor byte [rsp + 0x145], 0x71
xor cl, 0x35
mov dword [rsp + 0x140], r9d
xor byte [rsp + 0x141], 0xc7
xor byte [rsp + 0x142], 0x1c
xor byte [rsp + 0x143], 0xaf
mov byte [rsp + 0x144], cl
lea rcx, [rsp + 0x148]
movzx eax, r9b
mov qword [rsp + 0x1b8], rbx
lea r10, [rsp + 0x179]
xor al, 0xfd
xor ebx, ebx
mov byte [rsp + 0x140], al
mov rax, qword [rcx]
mov r11d, ebx
mov qword [rdx], rax
mov rax, qword [rcx + 8]
lea rcx, [rsp + 0x168]
mov qword [rdx + 8], rax
mov rax, qword [rcx]
lea rdx, [rsp + 0x188]
mov qword [rdx], rax
mov rax, qword [rcx + 8]
lea rcx, [rsp + 0x158]
mov qword [rdx + 8], rax
mov rax, qword [rcx]
lea rdx, [rsp + 0x198]
mov qword [rdx], rax
mov rax, qword [rcx + 8]
mov qword [rdx + 8], rax
nop
lea r8d, [r11 + 2]
mov eax, 0xaaaaaaab
add r10, 6
mul r11d
shr edx, 2
mov eax, r11d
lea ecx, [rdx + rdx*2]
add ecx, ecx
sub eax, ecx
cdqe
movzx ecx, byte [rsp + rax + 0x140]
mov eax, 0xaaaaaaab
xor byte [r10 - 7], cl
lea ecx, [r8 - 1]
mul ecx
shr edx, 2
mov ecx, r11d
lea eax, [rdx + rdx*2]
add eax, eax
sub ecx, eax
lea eax, [rcx + 1]
cdqe
movzx ecx, byte [rsp + rax + 0x140]
mov eax, 0xaaaaaaab
xor byte [r10 - 6], cl
mov ecx, r11d
mul r8d
shr edx, 2
lea eax, [rdx + rdx*2]
add eax, eax
sub ecx, eax
lea eax, [rcx + 2]
cdqe
movzx ecx, byte [rsp + rax + 0x140]
mov eax, 0xaaaaaaab
xor byte [r10 - 5], cl
lea ecx, [r8 + 1]
mul ecx
shr edx, 2
mov ecx, r11d
lea eax, [rdx + rdx*2]
add eax, eax
sub ecx, eax
lea eax, [rcx + 3]
cdqe
movzx ecx, byte [rsp + rax + 0x140]
mov eax, 0xaaaaaaab
xor byte [r10 - 4], cl
lea ecx, [r8 + 2]
mul ecx
shr edx, 2
mov ecx, r11d
lea eax, [rdx + rdx*2]
add eax, eax
sub ecx, eax
lea eax, [rcx + 4]
cdqe
movzx ecx, byte [rsp + rax + 0x140]
mov eax, 0xaaaaaaab
xor byte [r10 - 3], cl
lea ecx, [r8 + 3]
mul ecx
mov ecx, r11d
shr edx, 2
lea eax, [rdx + rdx*2]
add r11d, 6
add eax, eax
sub ecx, eax
lea eax, [rcx + 5]
cdqe
movzx ecx, byte [rsp + rax + 0x140]
xor byte [r10 - 2], cl
cmp r11d, 0x30
jl 0x1401494f0
lea rcx, [rsp + 0x178]
lea rdx, [rsp + 0x148]
mov rax, qword [rcx]
mov qword [rdx], rax
mov rax, qword [rcx + 8]
lea rcx, [rsp + 0x188]
mov qword [rdx + 8], rax
mov rax, qword [rcx]
lea rdx, [rsp + 0x168]
mov qword [rdx], rax
mov rax, qword [rcx + 8]
lea rcx, [rsp + 0x198]
mov qword [rdx + 8], rax
mov rax, qword [rcx]
lea rdx, [rsp + 0x158]
mov qword [rdx], rax
mov rax, qword [rcx + 8]
mov ecx, ebx
mov qword [rdx + 8], rax
mov rax, rbx
cmp byte [rsp + rax + 0x148], bl
jne 0x140149666
inc rax
inc ecx
cmp rax, 0x10
jl 0x140149652
cmp ecx, 0x10
je 0x1401496a0
call fcn.140148f40
lea rcx, [rsp + 0x148]
mov rdx, qword [rcx]
cmp rdx, qword [rax]
jne 0x14014968e
mov rdx, qword [rcx + 8]
cmp rdx, qword [rax + 8]
jne 0x14014968e
mov eax, ebx
jmp 0x140149693
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x140149786
mov r9d, dword [rsp + 0x24]
sub r12d, r9d
xor r8d, r8d
mov rcx, rbp
lea edx, [r12 - 0x3e]
mov qword [rsp + 0x1b0], rdi
movzx edi, bx
call sub.MSVCR90.dll_fseek
mov edx, dword [rsp + 0x24]
mov rcx, rsi
call fcn.140149000
movsxd r8, dword [rsp + 0x24]
mov rcx, qword [rsi]
mov r9, rbp
mov edx, 1
call sub.MSVCR90.dll_fread
mov r9d, dword [rsp + 0x28]
lea rdx, [rsp + 0x158]
lea rcx, [rsp + 0x30]
add r9d, 0x100
mov r8d, recvfrom
call fcn.14014a320
mov r8d, dword [rsi + 8]
mov rdx, qword [rsi]
lea rcx, [rsp + 0x30]
call fcn.14014a410
mov r9d, dword [rsi + 8]
mov r10w, bx
cmp r9d, 2
mov r11d, ebx
mov rdx, rbx
jl 0x14014975b
mov r8, qword [rsi]
lea eax, [r9 - 2]
shr eax, 1
inc eax
mov ecx, eax
lea r11d, [rax + rax]
nop dword [rax]
movzx eax, byte [r8 + rdx]
add rdx, 2
add bx, ax
movzx eax, byte [r8 + rdx - 1]
add di, ax
sub rcx, 1
jne 0x140149740
cmp r11d, r9d
jge 0x140149768
mov rax, qword [rsi]
movzx r10d, byte [rax + rdx]
add di, bx
add di, r10w
cmp word [rsp + 0x20], di
mov rdi, qword [rsp + 0x1b0]
je 0x1401497b3
mov rcx, rsi
call fcn.1401492e0
mov eax, 1
mov rbx, qword [rsp + 0x1b8]
mov rcx, qword [rsp + 0x1a8]
xor rcx, rsp
call fcn.140291ec0
add rsp, 0x1c0
pop r14
pop r13
pop r12
pop rsi
pop rbp
ret
test r13, r13
je 0x1401497cf
lea rcx, [rsp + 0x158]
mov rax, qword [rcx]
mov qword [r13], rax
mov rax, qword [rcx + 8]
mov qword [r13 + 8], rax
test r14, r14
je 0x1401497db
mov eax, dword [rsp + 0x28]
mov dword [r14], eax
xor eax, eax
jmp 0x14014978b
mov eax, 1
jmp 0x140149793