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

Disassembly:
push rbx
push r12
push r13
push r14
sub rsp, 0x418
mov rax, qword [0x140377790]
xor rax, rsp
mov qword [rsp + 0x400], rax
mov r12, rcx
lea rcx, [rsp + 0x1c8]
lea r14, [0x140000000]
mov rax, qword [r14 + 0x30c308]
mov rbx, rdx
mov qword [rcx], rax
mov rax, qword [r14 + 0x30c310]
mov qword [rcx + 8], rax
lea rcx, [rsp + 0x1e0]
sub rcx, rdx
nop word [rax + rax]
movzx eax, byte [rdx]
inc rdx
mov byte [rcx + rdx - 1], al
test al, al
jne 0x140147680
mov qword [rsp + 0x450], rbp
lea rcx, [rsp + 0x1e0]
mov qword [rsp + 0x458], rsi
mov qword [rsp + 0x410], rdi
call fcn.140147390
mov rcx, qword [0x14037b3e8]
xor r13d, r13d
mov dword [r12], r13d
test rcx, rcx
je 0x14014778c
cmp dword [0x14037b3f0], r13d
mov esi, r13d
jle 0x14014778c
mov rdi, r13
nop dword [rax]
cmp dword [rdi + rcx], r13d
je 0x140147777
movsxd rax, esi
mov rdx, rbx
imul rax, rax, 0x130
lea rcx, [rax + rcx + 4]
call sub.MSVCR90.dll__stricmp
test eax, eax
jne 0x140147770
mov rax, qword [0x14037b3e8]
mov ebp, r13d
cmp dword [rdi + rax + 0x108], r13d
je 0x140147743
lea rcx, [rsp + 0x48]
mov rdx, rbx
call fcn.140147590
test eax, eax
jne 0x140147743
mov rcx, qword [0x14037b3e8]
lea ebp, [rax + 1]
mov rax, qword [rsp + 0x48]
cmp qword [rdi + rcx + 0x110], rax
jne 0x140147777
lea rdx, [rsp + 0x3c]
lea rcx, [0x14037b3f8]
mov r8d, 0x128
call fcn.14014b1a0
mov rdi, rax
test rax, rax
jne 0x140147828
mov eax, 1
jmp 0x140147eac
mov rcx, qword [0x14037b3e8]
inc esi
add rdi, 0x130
cmp esi, dword [0x14037b3f0]
jl 0x1401476e0
cmp dword [0x14037b3f4], r13d
mov esi, r13d
jle 0x1401477e5
nop dword [rax + rax]
mov rax, qword [0x14037b400]
or rcx, 0xffffffffffffffff
movsxd rdx, esi
imul rdx, rdx, 0x20c
add rdx, rax
xor eax, eax
mov rdi, rdx
repne scasb al, byte [rdi]
not rcx
lea r8, [rcx - 1]
lea rcx, [rsp + 0x1e0]
call sub.MSVCR90.dll__strnicmp
test eax, eax
je 0x140147885
inc esi
cmp esi, dword [0x14037b3f4]
jl 0x1401477a0
lea rdx, [0x140327fe8]
lea rcx, [rsp + 0x1e0]
call sub.MSVCR90.dll_fopen
mov rsi, rax
test rax, rax
jne 0x140147950
lea rdx, [rsp + 0x1e0]
lea rcx, [rsp + 0x20]
call fcn.1401473f0
cmp eax, 1
je 0x140147766
mov ebp, r13d
jmp 0x1401479b5
mov rdx, qword [0x14037b3e8]
movsxd rax, esi
mov rcx, rdi
imul rax, rax, 0x130
mov r8d, dword [rax + rdx + 0x118]
mov rdx, qword [rax + rdx + 0x120]
call fcn.140149050
mov rcx, rdi
mov dword [rdi + 0x10], 1
sub rcx, rbx
nop
movzx eax, byte [rbx]
inc rbx
mov byte [rcx + rbx + 0x13], al
test al, al
jne 0x140147860
mov rax, qword [rsp + 0x48]
mov dword [rdi + 0x118], ebp
mov qword [rdi + 0x120], rax
jmp 0x140147ea2
mov rax, qword [0x14037b400]
movsxd rdi, esi
mov rsi, rdi
imul rsi, rsi, 0x20c
cmp dword [rsi + rax + 0x208], r13d
je 0x140147766
lea rcx, [rsi + rax + 0x104]
mov edx, 0x2f
call sub.MSVCR90.dll_strrchr
mov r8, qword [0x14037b400]
test rax, rax
je 0x140147910
imul rdi, rdi, 0x20c
mov rcx, rax
sub rcx, rsi
sub rcx, r8
sub rdi, rax
lea rax, [rsp + 0x1e0]
sub rdi, rax
lea rdx, [rsp + rcx + 0xdc]
add rdi, r8
lea rcx, [rsp + rdi + 0x3f4]
nop word [rax + rax]
movzx eax, byte [rdx]
inc rdx
mov byte [rcx + rdx - 1], al
test al, al
jne 0x140147900
jmp 0x140147929
mov rcx, r13
movzx eax, byte [rsp + rcx + 0x1e0]
inc rcx
mov byte [rsp + rcx + 0x2ef], al
test al, al
jne 0x140147913
lea rdx, [rsi + r8 + 0x104]
lea rcx, [rsp + 0x20]
lea r8, [rsp + 0x2f0]
call fcn.1401497f0
test eax, eax
jne 0x140147766
mov ebp, r13d
jmp 0x1401479b5
xor edx, edx
mov rcx, rax
lea r8d, [rdx + 2]
call sub.MSVCR90.dll_fseek
mov rcx, rsi
call sub.MSVCR90.dll_ftell
lea rcx, [rsp + 0x20]
movsxd rdi, eax
mov edx, edi
call fcn.140149000
xor r8d, r8d
xor edx, edx
mov rcx, rsi
call sub.MSVCR90.dll_fseek
mov rcx, qword [rsp + 0x20]
mov r8, rdi
mov r9, rsi
mov edx, 1
call sub.MSVCR90.dll_fread
mov rcx, rsi
call sub.MSVCR90.dll_fclose
lea rcx, [rsp + 0x48]
mov rdx, rbx
call fcn.140147590
mov ebp, r13d
test eax, eax
sete bpl
lea rdx, [rsp + 0x3c]
lea rcx, [0x14037b3f8]
mov r8d, 0x128
call fcn.14014b1a0
mov rsi, rax
test rax, rax
je 0x140147766
mov edi, r13d
cmp dword [0x14037b408], r13d
je 0x140147da6
mov eax, dword [rsp + 0x28]
cmp eax, 0x3e
jle 0x140147daa
mov edx, 0xffffffc2
lea rcx, [rsp + 0x20]
lea r8d, [rdx + 0x40]
call fcn.1401491c0
lea r8, [rsp + 0x40]
lea rcx, [rsp + 0x20]
mov edx, 4
call fcn.140149270
lea r8, [rsp + 0x38]
lea rcx, [rsp + 0x20]
mov edx, 4
call fcn.140149270
lea r8, [rsp + 0x178]
lea rcx, [rsp + 0x20]
mov edx, recvfrom
call fcn.140149270
lea r8, [rsp + 0x168]
lea rcx, [rsp + 0x20]
mov edx, recvfrom
call fcn.140149270
lea r8, [rsp + 0x188]
lea rcx, [rsp + 0x20]
mov edx, recvfrom
call fcn.140149270
lea r8, [rsp + 0x34]
lea rcx, [rsp + 0x20]
mov edx, 4
call fcn.140149270
lea r8, [rsp + 0x30]
lea rcx, [rsp + 0x20]
mov edx, 2
call fcn.140149270
cmp dword [rsp + 0x40], 0x4c4f434b
jne 0x140147d8f
mov eax, dword [rsp + 0x28]
mov ecx, dword [rsp + 0x34]
add eax, 0xffffffc2
cmp ecx, eax
jne 0x140147d8f
movzx eax, word [rsp + 0x30]
mov dword [rsp + 0x160], ecx
xor byte [rsp + 0x161], 0xc7
xor byte [rsp + 0x162], 0x1c
xor byte [rsp + 0x163], 0xaf
mov word [rsp + 0x164], ax
xor al, 0x35
xor cl, 0xfd
xor byte [rsp + 0x165], 0x71
mov byte [rsp + 0x164], al
mov byte [rsp + 0x160], cl
lea rcx, [rsp + 0x168]
mov rax, qword [rcx]
lea rdx, [rsp + 0x198]
mov r9d, r13d
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 + 0x1a8]
mov qword [rdx], rax
mov rax, qword [rcx + 8]
lea rcx, [rsp + 0x178]
mov qword [rdx + 8], rax
mov rax, qword [rcx]
lea rdx, [rsp + 0x1b8]
mov qword [rdx], rax
mov rax, qword [rcx + 8]
lea r8, [rsp + 0x199]
mov qword [rdx + 8], rax
nop word [rax + rax]
lea edi, [r9 + 2]
mov eax, 0xaaaaaaab
add r8, 6
mul r9d
shr edx, 2
mov eax, r9d
lea ecx, [rdx + rdx*2]
add ecx, ecx
sub eax, ecx
cdqe
movzx ecx, byte [rsp + rax + 0x160]
mov eax, 0xaaaaaaab
xor byte [r8 - 7], cl
lea ecx, [rdi - 1]
mul ecx
shr edx, 2
mov ecx, r9d
lea eax, [rdx + rdx*2]
add eax, eax
sub ecx, eax
lea eax, [rcx + 1]
cdqe
movzx ecx, byte [rsp + rax + 0x160]
mov eax, 0xaaaaaaab
xor byte [r8 - 6], cl
mov ecx, r9d
mul edi
shr edx, 2
lea eax, [rdx + rdx*2]
add eax, eax
sub ecx, eax
lea eax, [rcx + 2]
cdqe
movzx ecx, byte [rsp + rax + 0x160]
mov eax, 0xaaaaaaab
xor byte [r8 - 5], cl
lea ecx, [rdi + 1]
mul ecx
shr edx, 2
mov ecx, r9d
lea eax, [rdx + rdx*2]
add eax, eax
sub ecx, eax
lea eax, [rcx + 3]
cdqe
movzx ecx, byte [rsp + rax + 0x160]
mov eax, 0xaaaaaaab
xor byte [r8 - 4], cl
lea ecx, [rdi + 2]
mul ecx
shr edx, 2
mov ecx, r9d
lea eax, [rdx + rdx*2]
add eax, eax
sub ecx, eax
lea eax, [rcx + 4]
cdqe
movzx ecx, byte [rsp + rax + 0x160]
mov eax, 0xaaaaaaab
xor byte [r8 - 3], cl
lea ecx, [rdi + 3]
mul ecx
mov ecx, r9d
shr edx, 2
lea eax, [rdx + rdx*2]
add r9d, 6
add eax, eax
sub ecx, eax
lea eax, [rcx + 5]
cdqe
movzx ecx, byte [rsp + rax + 0x160]
xor byte [r8 - 2], cl
cmp r9d, 0x30
jl 0x140147b70
lea rcx, [rsp + 0x198]
lea rdx, [rsp + 0x168]
mov rax, qword [rcx]
mov qword [rdx], rax
mov rax, qword [rcx + 8]
lea rcx, [rsp + 0x1a8]
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 + 0x1b8]
mov qword [rdx + 8], rax
mov rax, qword [rcx]
lea rdx, [rsp + 0x178]
mov qword [rdx], rax
mov rax, qword [rcx + 8]
mov ecx, r13d
mov qword [rdx + 8], rax
mov rax, r13
nop
cmp byte [rsp + rax + 0x168], r13b
jne 0x140147ce5
inc rax
inc ecx
cmp rax, 0x10
jl 0x140147cd0
cmp ecx, 0x10
je 0x140147d1d
lea rax, [rsp + 0x168]
mov rdx, qword [rax]
cmp rdx, qword [r14 + 0x37b410]
jne 0x140147d10
mov rdx, qword [rax + 8]
cmp rdx, qword [r14 + 0x37b418]
jne 0x140147d10
mov eax, r13d
jmp 0x140147d15
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x140147766
mov r9d, dword [rsp + 0x38]
lea rdx, [rsp + 0x178]
lea rcx, [rsp + 0x50]
add r9d, 0x100
mov r8d, recvfrom
call fcn.14014a320
mov r8d, dword [rsp + 0x34]
mov rdx, qword [rsp + 0x20]
lea rcx, [rsp + 0x50]
call fcn.14014a410
mov eax, dword [rsp + 0x28]
movzx edx, r13w
sub eax, 0x3e
mov dword [rsp + 0x28], eax
test eax, eax
jle 0x140147d7f
mov rcx, qword [rsp + 0x20]
mov edi, eax
nop
movzx eax, byte [rcx]
inc rcx
add dx, ax
sub rdi, 1
jne 0x140147d70
cmp word [rsp + 0x30], dx
jne 0x140147766
mov edi, 1
lea rcx, [rsp + 0x20]
xor r8d, r8d
xor edx, edx
call fcn.1401491c0
test edi, edi
jne 0x140147e65
mov eax, dword [rsp + 0x28]
cmp eax, 0xc
jl 0x140147e65
mov edx, 0xfffffff4
lea rcx, [rsp + 0x20]
lea r8d, [rdx + 0xe]
call fcn.1401491c0
lea r8, [rsp + 0x38]
lea rcx, [rsp + 0x20]
mov edx, 4
call fcn.140149270
lea r8, [rsp + 0x40]
lea rcx, [rsp + 0x20]
mov edx, 4
call fcn.140149270
lea r8, [rsp + 0x34]
lea rcx, [rsp + 0x20]
mov edx, 4
call fcn.140149270
cmp dword [rsp + 0x38], 0x43525950
jne 0x140147e56
mov eax, dword [rsp + 0x28]
add eax, 0xfffffff4
cmp dword [rsp + 0x34], eax
jne 0x140147e56
mov r9d, dword [rsp + 0x40]
lea rdx, [rsp + 0x1c8]
lea rcx, [rsp + 0x50]
add r9d, 0x100
mov r8d, recvfrom
call fcn.14014a320
mov r8d, dword [rsp + 0x34]
mov rdx, qword [rsp + 0x20]
lea rcx, [rsp + 0x50]
call fcn.14014a410
sub dword [rsp + 0x28], 0xc
lea rcx, [rsp + 0x20]
xor r8d, r8d
xor edx, edx
call fcn.1401491c0
lea rcx, [rsp + 0x20]
mov rax, qword [rcx]
mov qword [rsi], rax
mov rax, qword [rcx + 8]
mov rcx, rsi
mov dword [rsi + 0x10], r13d
sub rcx, rbx
mov qword [rsi + 8], rax
movzx eax, byte [rbx]
inc rbx
mov byte [rbx + rcx + 0x13], al
test al, al
jne 0x140147e82
mov rax, qword [rsp + 0x48]
mov dword [rsi + 0x118], ebp
mov qword [rsi + 0x120], rax
mov eax, dword [rsp + 0x3c]
mov dword [r12], eax
xor eax, eax
mov rdi, qword [rsp + 0x410]
mov rsi, qword [rsp + 0x458]
mov rbp, qword [rsp + 0x450]
mov rcx, qword [rsp + 0x400]
xor rcx, rsp
call fcn.140291ec0
add rsp, 0x418
pop r14
pop r13
pop r12
pop rbx
ret