Function at 0x6992b080
Capabilities:
Encrypt data using rc4 ksa

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0xb8
movups xmmword [rsp + 0x30], xmm6
movups xmmword [rsp + 0x40], xmm7
movups xmmword [rsp + 0x50], xmm8
movups xmmword [rsp + 0x60], xmm9
movups xmmword [rsp + 0x70], xmm10
movups xmmword [rsp + 0x80], xmm11
movups xmmword [rsp + 0x90], xmm12
movups xmmword [rsp + 0xa0], xmm13
cmp qword [rcx + 0x2c8], 0
mov r14, rcx
mov ebx, edx
je 0x6992b6c0
mov rcx, r14
lea rdx, str.gamma_table_being_rebuilt
call fcn.69967ee0
mov rcx, r14
call fcn.699342c0
mov eax, dword [r14 + 0x2c4]
cmp ebx, 8
jg 0x6992b240
mov r8d, 0x186a0
test eax, eax
jle 0x6992b1d0
mov r8d, dword [r14 + 0x4c0]
test r8d, r8d
je 0x6992b1d0
pxor xmm0, xmm0
pxor xmm13, xmm13
movsd xmm12, qword [0x699fbae0]
movsd xmm8, qword [0x699fb8c8]
cvtsi2sd xmm0, r8d
movsd xmm7, qword [0x699fb8e0]
movsd xmm5, qword [0x699fb8d0]
cvtsi2sd xmm13, eax
mulsd xmm0, xmm13
divsd xmm12, xmm0
addsd xmm8, xmm12
andpd xmm7, xmm8
comisd xmm5, xmm7
jbe 0x6992b1a3
cvttsd2si r12, xmm8
pxor xmm11, xmm11
movsd xmm9, qword [0x699fb8b0]
cvtsi2sd xmm11, r12
movupd xmm10, xmm11
cmpnlesd xmm10, xmm8
andpd xmm9, xmm10
subsd xmm11, xmm9
movupd xmm8, xmm11
comisd xmm8, xmmword [0x699fb910]
ja 0x6992bb00
comisd xmm8, xmmword [0x699fb918]
cvttsd2si r8d, xmm8
jb 0x6992bb00
nop word cs:[rax + rax]
lea rdx, [r14 + 0x2c8]
mov rcx, r14
call fcn.6992ae30
test dword [r14 + 0x16c], 0x600080
jne 0x6992b770
movups xmm6, xmmword [rsp + 0x30]
movups xmm7, xmmword [rsp + 0x40]
movups xmm8, xmmword [rsp + 0x50]
movups xmm9, xmmword [rsp + 0x60]
movups xmm11, xmmword [rsp + 0x80]
movups xmm10, xmmword [rsp + 0x70]
movups xmm12, xmmword [rsp + 0x90]
movups xmm13, xmmword [rsp + 0xa0]
add rsp, 0xb8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
test byte [r14 + 0x287], 2
jne 0x6992b690
movzx edx, byte [r14 + 0x2fb]
mov r12d, dword [r14 + 0x16c]
lea edi, [rdx - 1]
and r12d, 0x4000400
cmp dil, 0xe
jbe 0x6992b6d8
test r12d, r12d
je 0x6992b8d0
mov r15d, 7
mov esi, 0x40
mov edi, 0x7ff
mov dword [r14 + 0x2c0], 5
mov dword [rsp + 0x2c], 0x800
mov ebx, 8
mov r13d, 3
mov r12d, 5
test eax, eax
jle 0x6992b754
pxor xmm4, xmm4
pxor xmm9, xmm9
movsd xmm10, qword [0x699fb8b8]
movsd xmm11, qword [0x699fb8c8]
movq xmm13, qword [0x699fb8e0]
cvtsi2sd xmm9, eax
movsd xmm12, qword [0x699fb8d0]
cvtsi2sd xmm4, dword [r14 + 0x4c0]
movupd xmm1, xmm13
mulsd xmm4, xmm9
mulsd xmm4, xmm10
addsd xmm4, xmm11
andpd xmm1, xmm4
comisd xmm12, xmm1
jbe 0x6992b33b
cvttsd2si r11, xmm4
pxor xmm2, xmm2
movsd xmm0, qword [0x699fb8b0]
cvtsi2sd xmm2, r11
movupd xmm3, xmm2
cmpnlesd xmm3, xmm4
andpd xmm0, xmm3
subsd xmm2, xmm0
movupd xmm4, xmm2
comisd xmm4, xmmword [0x699fb910]
ja 0x6992bd30
comisd xmm4, xmmword [0x699fb918]
jb 0x6992bd30
cvttsd2si eax, xmm4
pxor xmm7, xmm7
movsd xmm0, qword [0x699fbaf8]
cvtsi2sd xmm7, eax
mulsd xmm7, xmm10
mulsd xmm0, xmm7
call fcn.696919e0
mulsd xmm0, qword [0x699fb8c0]
addsd xmm0, xmm11
andpd xmm13, xmm0
comisd xmm12, xmm13
ja 0x6992be40
movupd xmm6, xmm0
mov rdx, rsi
mov rcx, r14
xor ebp, ebp
call fcn.6992c580
mov qword [r14 + 0x2d0], rax
mov rsi, rax
nop dword [rax]
mov edx, 0x200
mov rcx, r14
call fcn.6995bd90
mov qword [rsi + rbp*8], rax
add rbp, 1
cmp ebx, ebp
ja 0x6992b3b8
movsd xmm13, qword [0x699fbae8]
mov ebp, 0x181
xor ebx, ebx
movsd xmm12, qword [0x699fb8c0]
movsd xmm11, qword [0x699fb8c8]
movsd xmm10, qword [0x699fb8d0]
movsd xmm9, qword [0x699fb8e0]
movsd xmm8, qword [0x699fb8b0]
nop
cvttsd2si r8d, xmm6
lea edx, [rbp - 0x181]
movzx r9d, r8w
imul r9d, edi
lea ecx, [r9 + 0x8000]
mov rax, rcx
shl rax, 0x10
add rax, rcx
shl rax, 0xf
add rax, rcx
shr rax, 0x2f
lea r9d, [rax + 1]
cmp r9d, ebx
jbe 0x6992b619
mov r10d, eax
sub r10d, ebx
add r10d, 1
and r10d, 7
je 0x6992b555
cmp r10d, 1
je 0x6992b52e
cmp r10d, 2
je 0x6992b513
cmp r10d, 3
je 0x6992b4f8
cmp r10d, 4
je 0x6992b4dd
cmp r10d, 5
je 0x6992b4c2
cmp r10d, 6
je 0x6992b4a7
mov r11d, ebx
mov r8d, ebx
mov ecx, r13d
add ebx, 1
and r11d, r15d
shr r8d, cl
mov r10, qword [rsi + r11*8]
mov word [r10 + r8*2], dx
mov r11d, ebx
mov r8d, ebx
mov ecx, r13d
add ebx, 1
and r11d, r15d
shr r8d, cl
mov r10, qword [rsi + r11*8]
mov word [r10 + r8*2], dx
mov r11d, ebx
mov r8d, ebx
mov ecx, r13d
add ebx, 1
and r11d, r15d
shr r8d, cl
mov r10, qword [rsi + r11*8]
mov word [r10 + r8*2], dx
mov r11d, ebx
mov r8d, ebx
mov ecx, r13d
add ebx, 1
and r11d, r15d
shr r8d, cl
mov r10, qword [rsi + r11*8]
mov word [r10 + r8*2], dx
mov r11d, ebx
mov r8d, ebx
mov ecx, r13d
add ebx, 1
and r11d, r15d
shr r8d, cl
mov r10, qword [rsi + r11*8]
mov word [r10 + r8*2], dx
mov r11d, ebx
mov r8d, ebx
mov ecx, r13d
add ebx, 1
and r11d, r15d
shr r8d, cl
mov r10, qword [rsi + r11*8]
mov word [r10 + r8*2], dx
mov r11d, ebx
mov r8d, ebx
mov ecx, r13d
and r11d, r15d
shr r8d, cl
mov r10, qword [rsi + r11*8]
mov r11d, ebx
add ebx, 1
mov word [r10 + r8*2], dx
cmp eax, r11d
je 0x6992b616
mov r8d, ebx
mov ecx, r13d
mov r10d, ebx
and r8d, r15d
shr r10d, cl
mov r11, qword [rsi + r8*8]
lea r8d, [rbx + 1]
mov word [r11 + r10*2], dx
mov r10d, r8d
shr r8d, cl
and r10d, r15d
mov r11, qword [rsi + r10*8]
mov word [r11 + r8*2], dx
lea r8d, [rbx + 2]
mov r10d, r8d
shr r8d, cl
and r10d, r15d
mov r11, qword [rsi + r10*8]
mov word [r11 + r8*2], dx
lea r8d, [rbx + 3]
mov r10d, r8d
shr r8d, cl
and r10d, r15d
mov r11, qword [rsi + r10*8]
mov word [r11 + r8*2], dx
lea r8d, [rbx + 4]
mov r10d, r8d
shr r8d, cl
and r10d, r15d
mov r11, qword [rsi + r10*8]
mov word [r11 + r8*2], dx
lea r8d, [rbx + 5]
mov r10d, r8d
shr r8d, cl
and r10d, r15d
mov r11, qword [rsi + r10*8]
mov word [r11 + r8*2], dx
lea r8d, [rbx + 6]
mov r10d, r8d
shr r8d, cl
and r10d, r15d
mov r11, qword [rsi + r10*8]
lea r10d, [rbx + 7]
add ebx, 8
mov word [r11 + r8*2], dx
mov r11d, r10d
mov r8d, r10d
and r11d, r15d
shr r8d, cl
mov r11, qword [rsi + r11*8]
mov word [r11 + r8*2], dx
cmp eax, r10d
jne 0x6992b555
mov ebx, r9d
cmp ebp, 0x1007f
je 0x6992bb20
pxor xmm0, xmm0
movupd xmm1, xmm7
cvtsi2sd xmm0, ebp
mulsd xmm0, xmm13
call fcn.69691f70
mulsd xmm0, xmm12
addsd xmm0, xmm11
movupd xmm2, xmm0
andpd xmm2, xmm9
comisd xmm10, xmm2
jbe 0x6992b679
cvttsd2si rax, xmm0
pxor xmm3, xmm3
cvtsi2sd xmm3, rax
movupd xmm4, xmm3
cmpnlesd xmm4, xmm0
andpd xmm4, xmm8
subsd xmm3, xmm4
movupd xmm0, xmm3
movupd xmm6, xmm0
add ebp, 0x101
jmp 0x6992b410
movzx ecx, byte [r14 + 0x2f8]
movzx edx, byte [r14 + 0x2f9]
movzx esi, byte [r14 + 0x2fa]
cmp dl, cl
cmovb edx, ecx
cmp dl, sil
cmovb edx, esi
jmp 0x6992b256
cmp qword [rcx + 0x2d0], 0
jne 0x6992b0dd
jmp 0x6992b0f4
mov ebp, 0x10
sub ebp, edx
movzx edx, bpl
test r12d, r12d
je 0x6992bae0
cmp dl, 4
jbe 0x6992b27a
cmp dl, 8
mov r9d, 8
mov edi, 1
mov r13d, 8
cmova edx, r9d
mov ebx, edi
mov r15d, 0xff
movzx r12d, dl
sub r13d, r12d
mov dword [r14 + 0x2c0], r12d
mov ecx, r13d
shl ebx, cl
mov ecx, 0x10
sub ecx, r12d
mov r10d, ebx
mov esi, ebx
shl edi, cl
shl r10d, 8
mov ecx, edx
mov dword [rsp + 0x2c], r10d
shl rsi, 3
sub edi, 1
shr r15d, cl
test eax, eax
jg 0x6992b2b6
movsd xmm6, qword [0x699fbaf0]
movsd xmm7, qword [0x699fb8b0]
jmp 0x6992b39a
pxor xmm1, xmm1
movsd xmm6, qword [0x699fbad0]
movsd xmm13, qword [0x699fb8c8]
cvtsi2sd xmm1, dword [r14 + 0x4c0]
movq xmm7, qword [0x699fb8e0]
movsd xmm12, qword [0x699fb8d0]
movupd xmm0, xmm6
movupd xmm2, xmm7
divsd xmm0, xmm1
movupd xmm11, xmm0
addsd xmm11, xmm13
andpd xmm2, xmm11
comisd xmm12, xmm2
jbe 0x6992b7ee
cvttsd2si r10, xmm11
pxor xmm3, xmm3
movsd xmm5, qword [0x699fb8b0]
cvtsi2sd xmm3, r10
movupd xmm4, xmm3
cmpnlesd xmm4, xmm11
andpd xmm5, xmm4
subsd xmm3, xmm5
movupd xmm11, xmm3
comisd xmm11, xmmword [0x699fb910]
ja 0x6992b809
comisd xmm11, xmmword [0x699fb918]
cvttsd2si r8d, xmm11
jae 0x6992b80c
xor r8d, r8d
lea rdx, [r14 + 0x2e0]
mov rcx, r14
call fcn.6992ae30
mov edi, dword [r14 + 0x2c4]
test edi, edi
jle 0x6992bd48
pxor xmm10, xmm10
cvtsi2sd xmm10, edi
divsd xmm6, xmm10
addsd xmm6, xmm13
andpd xmm7, xmm6
comisd xmm12, xmm7
ja 0x6992bd68
comisd xmm6, xmmword [0x699fb910]
ja 0x6992bb10
comisd xmm6, xmmword [0x699fb918]
cvttsd2si r8d, xmm6
jb 0x6992bb10
movups xmm6, xmmword [rsp + 0x30]
movups xmm7, xmmword [rsp + 0x40]
mov rcx, r14
lea rdx, [r14 + 0x2d8]
movups xmm8, xmmword [rsp + 0x50]
movups xmm9, xmmword [rsp + 0x60]
movups xmm11, xmmword [rsp + 0x80]
movups xmm10, xmmword [rsp + 0x70]
movups xmm12, xmmword [rsp + 0x90]
movups xmm13, xmmword [rsp + 0xa0]
add rsp, 0xb8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
jmp fcn.6992ae30
mov dword [r14 + 0x2c0], 0
mov r9d, 0x186a0
test eax, eax
jle 0x6992b960
mov r9d, dword [r14 + 0x4c0]
test r9d, r9d
je 0x6992b960
pxor xmm0, xmm0
pxor xmm1, xmm1
movsd xmm2, qword [0x699fbae0]
movsd xmm8, qword [0x699fb8c8]
cvtsi2sd xmm0, r9d
movsd xmm3, qword [0x699fb8e0]
movsd xmm4, qword [0x699fb8d0]
cvtsi2sd xmm1, eax
mulsd xmm0, xmm1
divsd xmm2, xmm0
addsd xmm8, xmm2
andpd xmm3, xmm8
comisd xmm4, xmm3
ja 0x6992bde0
comisd xmm8, xmmword [0x699fb910]
ja 0x6992b95a
comisd xmm8, xmmword [0x699fb918]
cvttsd2si r9d, xmm8
jae 0x6992b960
xor r9d, r9d
nop dword [rax]
lea rdx, [r14 + 0x2d0]
mov r8d, r12d
mov rcx, r14
call fcn.6992a740
test dword [r14 + 0x16c], 0x600080
je 0x6992b1f0
pxor xmm1, xmm1
movsd xmm6, qword [0x699fbad0]
movsd xmm13, qword [0x699fb8c8]
cvtsi2sd xmm1, dword [r14 + 0x4c0]
movq xmm7, qword [0x699fb8e0]
movsd xmm12, qword [0x699fb8d0]
movupd xmm0, xmm6
movupd xmm2, xmm7
divsd xmm0, xmm1
movupd xmm11, xmm0
addsd xmm11, xmm13
andpd xmm2, xmm11
comisd xmm12, xmm2
jbe 0x6992ba01
cvttsd2si r13, xmm11
pxor xmm3, xmm3
movsd xmm5, qword [0x699fb8b0]
cvtsi2sd xmm3, r13
movupd xmm4, xmm3
cmpnlesd xmm4, xmm11
andpd xmm5, xmm4
subsd xmm3, xmm5
movupd xmm11, xmm3
comisd xmm11, xmmword [0x699fb910]
ja 0x6992ba1c
comisd xmm11, xmmword [0x699fb918]
cvttsd2si r9d, xmm11
jae 0x6992ba1f
xor r9d, r9d
lea rdx, [r14 + 0x2f0]
mov r8d, r12d
mov rcx, r14
call fcn.6992a740
mov esi, dword [r14 + 0x2c4]
test esi, esi
jle 0x6992bd58
pxor xmm10, xmm10
cvtsi2sd xmm10, esi
divsd xmm6, xmm10
addsd xmm6, xmm13
andpd xmm7, xmm6
comisd xmm12, xmm7
ja 0x6992bda0
comisd xmm6, xmmword [0x699fb910]
ja 0x6992bd28
comisd xmm6, xmmword [0x699fb918]
cvttsd2si r9d, xmm6
jb 0x6992bd28
movups xmm6, xmmword [rsp + 0x30]
movups xmm7, xmmword [rsp + 0x40]
mov r8d, r12d
mov rcx, r14
movups xmm8, xmmword [rsp + 0x50]
movups xmm9, xmmword [rsp + 0x60]
lea rdx, [r14 + 0x2e8]
movups xmm11, xmmword [rsp + 0x80]
movups xmm10, xmmword [rsp + 0x70]
movups xmm12, xmmword [rsp + 0x90]
movups xmm13, xmmword [rsp + 0xa0]
add rsp, 0xb8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
jmp fcn.6992a740
cmp dl, 8
mov r12d, 8
cmovbe r12d, edx
mov dword [r14 + 0x2c0], r12d
jmp 0x6992b8db
xor r8d, r8d
jmp 0x6992b1d0
xor r8d, r8d
jmp 0x6992b86e
mov r15d, dword [rsp + 0x2c]
cmp ebx, r15d
jae 0x6992b972
sub r15d, ebx
mov eax, 0xff
mov ecx, r12d
mov edi, r15d
sar eax, cl
and edi, 7
je 0x6992bc37
cmp edi, 1
je 0x6992bc0d
cmp edi, 2
je 0x6992bbf0
cmp edi, 3
je 0x6992bbd0
cmp edi, 4
je 0x6992bbb2
cmp edi, 5
je 0x6992bb91
cmp edi, 6
jne 0x6992be18
mov r11d, eax
mov r15d, ebx
mov ecx, r13d
mov ebp, 0xffffffff
and r11d, ebx
shr r15d, cl
add ebx, 1
mov rdx, qword [rsi + r11*8]
mov word [rdx + r15*2], bp
mov r9d, eax
mov r10d, ebx
mov ecx, r13d
mov r15d, 0xffffffff
and r9d, ebx
shr r10d, cl
add ebx, 1
mov r11, qword [rsi + r9*8]
mov word [r11 + r10*2], r15w
mov edx, eax
mov edi, ebx
mov ecx, r13d
mov r9d, 0xffffffff
and edx, ebx
shr edi, cl
add ebx, 1
mov rbp, qword [rsi + rdx*8]
mov word [rbp + rdi*2], r9w
mov r10d, eax
mov r8d, ebx
mov ecx, r13d
mov edx, 0xffffffff
and r10d, ebx
shr r8d, cl
add ebx, 1
mov r15, qword [rsi + r10*8]
mov word [r15 + r8*2], dx
mov ebp, eax
mov edi, ebx
mov ecx, r13d
mov r9d, 0xffffffff
and ebp, ebx
shr edi, cl
add ebx, 1
mov r10, qword [rsi + rbp*8]
mov word [r10 + rdi*2], r9w
mov r8d, eax
mov r11d, ebx
mov ecx, r13d
mov ebp, 0xffffffff
and r8d, ebx
shr r11d, cl
add ebx, 1
mov rdx, qword [rsi + r8*8]
mov word [rdx + r11*2], bp
cmp ebx, dword [rsp + 0x2c]
je 0x6992b972
lea r11d, [rbx + 1]
mov r10d, eax
mov r15d, eax
mov ecx, r13d
and r10d, ebx
and r15d, r11d
mov edi, ebx
mov r8d, 0xffffffff
mov r9, qword [rsi + r10*8]
mov rdx, qword [rsi + r15*8]
shr edi, cl
shr r11d, cl
mov ebp, 0xffffffff
lea r15d, [rbx + 3]
mov r10d, eax
mov word [r9 + rdi*2], r8w
lea edi, [rbx + 2]
mov r8d, 0xffffffff
mov word [rdx + r11*2], bp
mov r11d, eax
and r10d, edi
mov ebp, 0xffffffff
and r11d, r15d
mov r9, qword [rsi + r10*8]
shr edi, cl
lea r10d, [rbx + 4]
mov rdx, qword [rsi + r11*8]
shr r15d, cl
mov r11d, eax
mov word [r9 + rdi*2], r8w
mov edi, eax
mov r8d, 0xffffffff
mov word [rdx + r15*2], bp
lea r15d, [rbx + 5]
and edi, r10d
mov ebp, 0xffffffff
and r11d, r15d
mov r9, qword [rsi + rdi*8]
shr r10d, cl
mov edi, eax
mov rdx, qword [rsi + r11*8]
shr r15d, cl
mov r11d, eax
mov word [r9 + r10*2], r8w
lea r10d, [rbx + 6]
mov r8d, 0xffffffff
mov word [rdx + r15*2], bp
lea r15d, [rbx + 7]
and edi, r10d
shr r10d, cl
and r11d, r15d
mov r9, qword [rsi + rdi*8]
shr r15d, cl
mov ebp, 0xffffffff
mov rdx, qword [rsi + r11*8]
add ebx, 8
mov word [r9 + r10*2], r8w
mov word [rdx + r15*2], bp
cmp ebx, dword [rsp + 0x2c]
jne 0x6992bc37
jmp 0x6992b972
xor r9d, r9d
jmp 0x6992ba84
movsd xmm6, qword [0x699fb8c0]
pxor xmm7, xmm7
jmp 0x6992b39a
mov r8d, dword [r14 + 0x4c0]
jmp 0x6992b86e
mov r9d, dword [r14 + 0x4c0]
jmp 0x6992ba84
cvttsd2si r9, xmm6
pxor xmm9, xmm9
movsd xmm1, qword [0x699fb8b0]
cvtsi2sd xmm9, r9
movupd xmm8, xmm9
cmpnlesd xmm8, xmm6
andpd xmm1, xmm8
subsd xmm9, xmm1
movupd xmm6, xmm9
jmp 0x6992b84d
cvttsd2si rbx, xmm6
pxor xmm9, xmm9
movsd xmm1, qword [0x699fb8b0]
cvtsi2sd xmm9, rbx
movupd xmm8, xmm9
cmpnlesd xmm8, xmm6
andpd xmm1, xmm8
subsd xmm9, xmm1
movupd xmm6, xmm9
jmp 0x6992ba63
cvttsd2si r8, xmm8
pxor xmm5, xmm5
movsd xmm7, qword [0x699fb8b0]
cvtsi2sd xmm5, r8
movupd xmm6, xmm5
cmpnlesd xmm6, xmm8
andpd xmm7, xmm6
subsd xmm5, xmm7
movupd xmm8, xmm5
jmp 0x6992b93f
mov ebp, eax
mov edx, ebx
mov ecx, r13d
mov r8d, 0xffffffff
and ebp, ebx
shr edx, cl
add ebx, 1
mov r10, qword [rsi + rbp*8]
mov word [r10 + rdx*2], r8w
jmp 0x6992bb71
cvttsd2si rbp, xmm0
pxor xmm5, xmm5
movsd xmm8, qword [0x699fb8b0]
cvtsi2sd xmm5, rbp
movupd xmm6, xmm5
cmpnlesd xmm6, xmm0
andpd xmm8, xmm6
subsd xmm5, xmm8
movupd xmm0, xmm5
jmp 0x6992b396