Function at 0x14016ee50
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x20], rbx
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x50
mov rdx, qword [rcx + 8]
mov rbx, rcx
mov r11d, dword [rcx]
xor r15d, r15d
movsxd rcx, dword [rcx + 0x10]
mov r13, r9
mov r10d, dword [rsp + 0xd8]
mov r14d, r15d
mov eax, dword [rbx + 0x14]
mov esi, dword [rsp + 0xb0]
mov r12, qword [rbx + 0x20]
mov dword [rsp + 0x38], eax
mov rax, qword [rbx + 0x30]
mov qword [rsp + 0x40], rax
mov rax, qword [rdx + 0x40]
mov qword [rsp + 0x48], rdx
mov dword [rsp + 0x34], r15d
mov dword [rsp + 0xb0], r11d
movsx edx, word [rax + rcx*2]
mov eax, dword [rsp + 0xd0]
mov dword [rsp + 0x30], ecx
lea edi, [rdx + rax*8]
test r10d, r10d
je 0x14016eefb
cmp esi, 2
jne 0x14016eefb
mov rax, qword [rsp + 0xb8]
lea r8d, [rsi*2 - 1]
mov ecx, edi
sar ecx, 1
sub ecx, 0x10
mov r9d, dword [rax]
jmp 0x14016ef1f
mov rax, qword [rsp + 0xb8]
lea r8d, [rsi*2 - 1]
mov ecx, edi
sar ecx, 1
sub ecx, 4
mov r9d, dword [rax]
test r10d, r10d
je 0x14016ef22
cmp esi, 2
jne 0x14016ef22
dec r8d
mov eax, r8d
mov ebp, 1
imul eax, ecx
add eax, r9d
sub r9d, edi
cdq
idiv r8d
lea edx, [r9 - 0x20]
cmp edx, eax
cmovge edx, eax
mov eax, 0x40
cmp edx, eax
cmovg edx, eax
cmp edx, 4
jge 0x14016ef53
mov edi, ebp
jmp 0x14016efa7
mov eax, edx
mov ecx, reloc.WS2_32.dll_ntohl
sar eax, 3
sub cl, al
mov eax, edx
and eax, 7
lea rdx, [0x1402a3638]
movsx edi, word [rdx + rax*2]
sar edi, cl
inc edi
and edi, 0xfffffffe
cmp edi, 0x100
jle 0x14016efa7
mov r8d, 0x29d
lea rdx, str.D:_sourceGammaRayPCdeps_tc_3rdpartyopuscelt_bands.c
lea rcx, str.assertion_failed:_qn___256
call fcn.140164c10
mov r10d, dword [rsp + 0xd8]
mov r11d, dword [rsp + 0xb0]
test r10d, r10d
je 0x14016efb7
mov eax, dword [rsp + 0x30]
cmp eax, dword [rsp + 0x38]
cmovge edi, ebp
test r11d, r11d
je 0x14016efdc
mov eax, dword [rbx + 0x3c]
mov r9d, esi
mov rcx, qword [rsp + 0xa0]
mov r8d, r10d
mov rdx, r13
mov dword [rsp + 0x20], eax
call fcn.140176520
mov r14d, eax
mov rcx, r12
call fcn.14016c900
mov dword [rsp + 0xd0], eax
mov r11d, 0x4000
cmp edi, ebp
je 0x14016f4d3
mov r8d, dword [rsp + 0xb0]
mov eax, dword [rsp + 0xd8]
test r8d, r8d
je 0x14016f222
test eax, eax
je 0x14016f06d
mov r9d, dword [rbx + 0x40]
test r9d, r9d
je 0x14016f06d
mov eax, 0x7fff
cmp r14d, 0x2000
jg 0x14016f031
mov eax, 0xffff8001
cdq
lea ebx, [rdi - 1]
idiv edi
mov ecx, edi
imul ecx, r14d
add ecx, eax
mov eax, r15d
sar ecx, 0xe
test ecx, ecx
cmovns eax, ecx
cmp ebx, eax
jl 0x14016f056
test ecx, ecx
mov ebx, ecx
cmovs ebx, r15d
mov eax, dword [rsp + 0xd8]
test r9d, r9d
js 0x14016f235
inc ebx
jmp 0x14016f235
mov ebx, edi
imul ebx, r14d
add ebx, 0x2000
sar ebx, 0xe
test eax, eax
jne 0x14016f235
mov rax, qword [rsp + 0x90]
cmp dword [rax + 0x48], r15d
je 0x14016f1a9
test ebx, ebx
jle 0x14016f1a9
cmp ebx, edi
jge 0x14016f1a9
xor edx, edx
mov ecx, r11d
mov eax, ebx
mov r14d, 0x2055
shl eax, 0xe
div edi
sub cx, ax
movsx r8d, ax
movsx r10d, cx
mov ecx, r11d
imul r8d, r8d
imul r10d, r10d
add r8d, 0x1000
sar r8d, 0xd
add r10d, 0x1000
movsx edx, r8w
imul eax, edx, 0x272
sar r10d, 0xd
movsx r9d, r10w
sub ecx, eax
sar ecx, 0xf
lea eax, [r14 + rcx]
mov ecx, 0x1de3
cwde
imul eax, edx
add eax, r11d
sar eax, 0xf
sub ax, cx
movsx ecx, ax
imul ecx, edx
imul eax, r9d, 0x272
add ecx, r11d
sar ecx, 0xf
sub cx, r8w
mov r8d, 0xffff8000
add cx, r8w
movsx edx, cx
mov ecx, r11d
sub ecx, eax
sar ecx, 0xf
lea eax, [r14 + rcx]
mov ecx, 0x1de3
cwde
imul eax, r9d
add eax, r11d
sar eax, 0xf
sub ax, cx
movsx ecx, ax
imul ecx, r9d
add ecx, r11d
sar ecx, 0xf
sub cx, r10w
add cx, r8w
movsx ecx, cx
call fcn.14016eda0
mov r8d, dword [rsp + 0xb0]
mov r10d, 0x80
movsx edx, ax
movsx eax, r10w
movsx ecx, si
imul eax, ecx
sub ax, r10w
cwde
imul edx, eax
mov rax, qword [rsp + 0xb8]
mov ecx, dword [rax]
add edx, 0x4000
sar edx, 0xf
cmp edx, ecx
jle 0x14016f210
mov ebx, edi
mov eax, dword [rsp + 0xd8]
cmp dword [rsp + 0xc8], ebp
jg 0x14016f3c4
test eax, eax
jne 0x14016f3c4
mov r14d, edi
sar r14d, 1
lea eax, [r14 + 1]
mov r9d, eax
mov dword [rsp + 0x38], eax
imul r9d, eax
mov dword [rsp + 0x90], r9d
test r8d, r8d
je 0x14016f32e
cmp ebx, r14d
jg 0x14016f307
lea edx, [rbx + 1]
mov rcx, r12
imul edx, ebx
lea r8d, [rbx + 1]
sar edx, 1
add r8d, edx
call fcn.1401654c0
jmp 0x14016f3e2
mov eax, dword [rsp + 0xd8]
neg ecx
cmp edx, ecx
jge 0x14016f1b0
mov ebx, r15d
jmp 0x14016f1b0
mov dword [rsp + 0x90], r14d
mov ebx, r14d
test eax, eax
je 0x14016f1b0
cmp esi, 2
jle 0x14016f1b0
mov eax, edi
cdq
sub eax, edx
sar eax, 1
mov dword [rsp + 0x90], eax
lea ecx, [rax + 1]
lea r14d, [rcx + rcx*2]
lea ecx, [r14 + rax]
mov dword [rsp + 0x38], ecx
test r8d, r8d
je 0x14016f296
sub r14d, eax
cmp ebx, eax
jg 0x14016f27e
lea edx, [rbx + rbx*2]
mov r9d, ecx
lea r8d, [rdx + 3]
mov rcx, r12
call fcn.1401654c0
jmp 0x14016f3e2
lea r8d, [r14 + rbx]
mov r9d, ecx
lea edx, [r8 - 1]
mov rcx, r12
call fcn.1401654c0
jmp 0x14016f3e2
mov edx, ecx
mov rcx, r12
call fcn.14016a360
mov ecx, eax
cmp eax, r14d
jge 0x14016f2be
mov eax, 0x55555556
imul ecx
mov eax, dword [rsp + 0x90]
mov ebx, edx
shr ebx, 0x1f
add ebx, edx
jmp 0x14016f2cd
mov eax, dword [rsp + 0x90]
sub ecx, r14d
lea ebx, [rax + 1]
add ebx, ecx
sub r14d, eax
cmp ebx, eax
jg 0x14016f2ed
mov r9d, dword [rsp + 0x38]
lea edx, [rbx + rbx*2]
lea r8d, [rdx + 3]
mov rcx, r12
call fcn.14016a320
jmp 0x14016f3e2
mov r9d, dword [rsp + 0x38]
lea r8d, [r14 + rbx]
lea edx, [r8 - 1]
mov rcx, r12
call fcn.14016a320
jmp 0x14016f3e2
mov eax, edi
mov edx, r9d
sub eax, ebx
lea ecx, [rax + 2]
lea r8d, [rax + 1]
inc eax
imul ecx, eax
sar ecx, 1
sub edx, ecx
mov rcx, r12
add r8d, edx
call fcn.1401654c0
jmp 0x14016f3e2
mov edx, r9d
mov rcx, r12
call fcn.14016a360
imul r14d, dword [rsp + 0x38]
sar r14d, 1
cmp eax, r14d
jge 0x14016f37b
lea ecx, [rax*8 + 1]
call fcn.140177980
mov r14d, dword [rsp + 0x90]
mov r9d, r14d
lea ebx, [rax - 1]
shr ebx, 1
lea ecx, [rbx + 1]
mov edx, ecx
imul edx, ebx
sar edx, 1
lea r8d, [rdx + rcx]
mov rcx, r12
call fcn.14016a320
jmp 0x14016f3e2
mov r14d, dword [rsp + 0x90]
mov ecx, r14d
sub ecx, eax
lea ecx, [rcx*8 - 7]
call fcn.140177980
mov edx, r14d
lea ebx, [rdi*2 + 2]
sub ebx, eax
mov r9d, r14d
shr ebx, 1
mov eax, edi
sub eax, ebx
lea ecx, [rax + 1]
add eax, 2
imul eax, ecx
sar eax, 1
sub edx, eax
lea r8d, [rdx + rcx]
mov rcx, r12
call fcn.14016a320
jmp 0x14016f3e2
lea edx, [rdi + 1]
mov rcx, r12
test r8d, r8d
je 0x14016f3db
mov r8d, edx
mov edx, ebx
call fcn.140165340
jmp 0x14016f3e2
call fcn.14016a180
mov ebx, eax
test ebx, ebx
jns 0x14016f3ff
mov r8d, 0x346
lea rdx, str.D:_sourceGammaRayPCdeps_tc_3rdpartyopuscelt_bands.c
lea rcx, str.assertion_failed:_itheta_0
call fcn.140164c10
shl ebx, 0xe
xor edx, edx
mov eax, ebx
div edi
mov r14d, eax
cmp dword [rsp + 0xb0], r15d
je 0x14016f6c6
cmp dword [rsp + 0xd8], r15d
je 0x14016f6c6
test eax, eax
jne 0x14016f471
mov eax, dword [rsp + 0x30]
mov r8, r13
mov r9, qword [rsp + 0x40]
mov rdx, qword [rsp + 0xa0]
mov rcx, qword [rsp + 0x48]
mov dword [rsp + 0x28], esi
mov dword [rsp + 0x20], eax
call fcn.140170070
mov rcx, r12
call fcn.14016c900
mov edi, eax
mov rax, qword [rsp + 0xb8]
sub edi, dword [rsp + 0xd0]
sub dword [rax], edi
jmp 0x14016f6ea
mov rcx, qword [rsp + 0xa0]
mov r8d, esi
mov rdx, r13
call fcn.140172ed0
mov rcx, r12
call fcn.14016c900
mov edi, eax
mov rax, qword [rsp + 0xb8]
sub edi, dword [rsp + 0xd0]
sub dword [rax], edi
mov r12d, 0x4000
cmp r14d, r12d
jne 0x14016f710
mov ecx, dword [rsp + 0xc0]
mov r13d, r15d
mov rax, qword [rsp + 0xe0]
mov r15d, 0x7fff
shl ebp, cl
dec ebp
shl ebp, cl
and dword [rax], ebp
jmp 0x14016f873
cmp dword [rsp + 0xd8], r15d
je 0x14016f6c6
mov eax, dword [rsp + 0xb0]
test eax, eax
je 0x14016f663
cmp r14d, 0x2000
jle 0x14016f631
cmp dword [rbx + 0x44], r15d
jne 0x14016f631
mov edx, r15d
mov edi, ebp
test esi, esi
jle 0x14016f5ad
cmp esi, 2
jb 0x14016f5b5
movdqa xmm2, xmmword [0x1401f9860]
cmp esi, 0x10
jb 0x14016f584
mov eax, esi
mov rcx, r15
and eax, 0xfffffff0
movsxd r8, eax
lea rax, [r13 + 0x20]
nop dword [rax]
movups xmm0, xmmword [rax - 0x20]
add edx, 0x10
lea rax, [rax + 0x40]
add rcx, 0x10
xorps xmm0, xmm2
movups xmmword [rax - 0x60], xmm0
movups xmm0, xmmword [rax - 0x50]
xorps xmm0, xmm2
movups xmmword [rax - 0x50], xmm0
movups xmm1, xmmword [rax - 0x40]
xorps xmm1, xmm2
movups xmmword [rax - 0x40], xmm1
movups xmm0, xmmword [rax - 0x30]
xorps xmm0, xmm2
movups xmmword [rax - 0x30], xmm0
cmp rcx, r8
jl 0x14016f540
mov eax, esi
and al, 0xf
cmp al, 2
jb 0x14016f5ad
mov eax, esi
movsxd rcx, edx
and eax, 0xfffffffe
movsxd r8, eax
nop
movsd xmm0, qword [r13 + rcx*4]
add edx, 2
xorps xmm0, xmm2
movsd qword [r13 + rcx*4], xmm0
add rcx, 2
cmp rcx, r8
jl 0x14016f590
cmp edx, esi
jge 0x14016f634
movaps xmm2, xmmword [0x1401f9860]
mov eax, esi
sub eax, edx
movsxd r9, edx
cmp eax, 4
jl 0x14016f608
mov eax, esi
lea rcx, [r13 + 8]
sub eax, edx
lea rcx, [rcx + r9*4]
sub eax, 4
shr eax, 2
inc eax
mov r8d, eax
lea edx, [rdx + rax*4]
lea r9, [r9 + rax*4]
nop word [rax + rax]
movups xmm0, xmmword [rcx - 8]
lea rcx, [rcx + 0x10]
xorps xmm0, xmm2
movups xmmword [rcx - 0x18], xmm0
sub r8, rbp
jne 0x14016f5f0
cmp edx, esi
jge 0x14016f634
lea rcx, [r9*4]
mov eax, esi
add rcx, r13
sub eax, edx
movsxd rdx, eax
movss xmm0, dword [rcx]
lea rcx, [rcx + 4]
xorps xmm0, xmm2
movss dword [rcx - 4], xmm0
sub rdx, rbp
jne 0x14016f61a
jmp 0x14016f634
mov edi, r15d
mov eax, dword [rsp + 0x30]
mov r8, r13
mov r9, qword [rsp + 0x40]
mov rdx, qword [rsp + 0xa0]
mov rcx, qword [rsp + 0x48]
mov dword [rsp + 0x28], esi
mov dword [rsp + 0x20], eax
call fcn.140170070
mov eax, dword [rsp + 0xb0]
jmp 0x14016f666
mov edi, r15d
mov rsi, qword [rsp + 0xb8]
cmp dword [rsi], 0x10
jle 0x14016f69d
cmp dword [rbx + 0x28], 0x10
jle 0x14016f69d
mov rcx, r12
test eax, eax
je 0x14016f68f
mov r8d, 2
mov edx, edi
call fcn.140165160
jmp 0x14016f6a0
mov edx, 2
call fcn.140169f60
mov edi, eax
jmp 0x14016f6a0
mov edi, r15d
cmp dword [rbx + 0x44], r15d
mov eax, r15d
mov rcx, r12
mov r14d, r15d
cmove eax, edi
mov dword [rsp + 0x34], eax
call fcn.14016c900
mov edi, eax
sub edi, dword [rsp + 0xd0]
sub dword [rsi], edi
jmp 0x14016f6ea
mov rcx, r12
call fcn.14016c900
mov edi, eax
mov rax, qword [rsp + 0xb8]
sub edi, dword [rsp + 0xd0]
sub dword [rax], edi
test r14d, r14d
jne 0x14016f49f
mov ecx, dword [rsp + 0xc0]
mov r13d, 0x7fff
mov rax, qword [rsp + 0xe0]
mov r12d, 0xffffc000
shl ebp, cl
dec ebp
and dword [rax], ebp
jmp 0x14016f873
mov ecx, r12d
movsx r8d, r14w
imul r8d, r8d
mov r10d, 0x2055
mov r11d, 0x1de3
mov ebp, 0xffff8000
add r8d, 0x1000
sar r8d, 0xd
movsx edx, r8w
imul eax, edx, 0x272
sub ecx, eax
sar ecx, 0xf
lea eax, [r10 + rcx]
mov ecx, r12d
cwde
imul eax, edx
add eax, r12d
sar eax, 0xf
sub ax, r11w
movsx ebx, ax
mov eax, r12d
sub ax, r14w
imul ebx, edx
movsx r9d, ax
imul r9d, r9d
add ebx, r12d
sar ebx, 0xf
sub bx, r8w
add r9d, 0x1000
sar r9d, 0xd
add bx, bp
movsx edx, r9w
imul eax, edx, 0x272
movsx r13d, bx
sub ecx, eax
sar ecx, 0xf
lea eax, [r10 + rcx]
cwde
imul eax, edx
bsr r10d, r13d
add eax, r12d
sar eax, 0xf
inc r10d
sub ax, r11w
movsx r8d, ax
mov eax, reloc.WS2_32.dll_ntohs
imul r8d, edx
mov ecx, eax
sub ecx, r10d
shl bx, cl
add r8d, r12d
sar r8d, 0xf
sub r8w, r9w
movsx r9d, bx
add r8w, bp
mov ebx, 0x1efc
movsx r15d, r8w
bsr r11d, r15d
inc r11d
sub eax, r11d
movzx ecx, al
shl r8w, cl
mov ecx, r12d
movsx edx, r8w
imul eax, edx, 0xa25
sub ecx, eax
imul eax, r9d, 0xa25
sar ecx, 0xf
add cx, bx
movsx r8d, cx
mov ecx, r12d
imul r8d, edx
sub ecx, eax
sar ecx, 0xf
add r8d, r12d
lea eax, [rbx + rcx]
sar r8d, 0xf
cwde
imul eax, r9d
add eax, r12d
sar eax, 0xf
sub r8w, ax
sub r11w, r10w
mov eax, 0x800
movsx ecx, r11w
cwde
imul ecx, eax
add r8w, cx
movsx ecx, si
movsx edx, r8w
mov r8d, 0x80
movsx eax, r8w
imul eax, ecx
sub ax, r8w
cwde
imul edx, eax
add r12d, edx
sar r12d, 0xf
mov rcx, qword [rsp + 0x98]
mov eax, dword [rsp + 0x34]
mov rbx, qword [rsp + 0xa8]
mov dword [rcx], eax
mov dword [rcx + 4], r13d
mov dword [rcx + 8], r15d
mov dword [rcx + 0xc], r12d
mov dword [rcx + 0x10], r14d
mov dword [rcx + 0x14], edi
add rsp, 0x50
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret