Function at 0x1400b3020
Capabilities:
Encrypt data using rc4 ksa

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x88
movapd xmmword [rsp + 0x70], xmm10
movapd xmmword [rsp + 0x60], xmm9
movapd xmmword [rsp + 0x50], xmm8
movapd xmmword [rsp + 0x40], xmm7
movapd xmmword [rsp + 0x30], xmm6
mov edi, edx
mov rsi, rcx
cmp qword [rcx + 0x2c8], 0
jne 0x1400b306d
cmp qword [rsi + 0x2d0], 0
je 0x1400b3084
lea rdx, str.gamma_table_being_rebuilt
mov rcx, rsi
call fcn.1400b4440
mov rcx, rsi
call fcn.1400b2e80
cmp edi, 8
jg 0x1400b30f3
mov eax, dword [rsi + 0x2c4]
test eax, eax
jle 0x1400b31dc
mov ecx, dword [rsi + 0x4b8]
test ecx, ecx
je 0x1400b31d8
cvtsi2sd xmm1, ecx
movsd xmm0, qword [0x1405a44a8]
cvtsi2sd xmm2, eax
divsd xmm0, xmm1
divsd xmm0, xmm2
addsd xmm0, qword [0x1406908e8]
call fcn.14056f630
movsd xmm1, qword [0x1405a4440]
ucomisd xmm1, xmm0
jb 0x1400b31d8
ucomisd xmm0, qword [0x1405a4448]
jb 0x1400b31d8
cvttsd2si ebx, xmm0
jmp 0x1400b31e1
test byte [rsi + 0x287], 2
jne 0x1400b3105
movzx eax, byte [rsi + 0x2fb]
jmp 0x1400b3123
mov eax, dword [rsi + 0x2f8]
movzx ecx, byte [rsi + 0x2f9]
cmp cl, al
cmova eax, ecx
movzx ecx, byte [rsi + 0x2fa]
cmp cl, al
cmova eax, ecx
mov cl, 0x10
sub cl, al
dec al
xor edx, edx
cmp al, 0xf
movzx eax, cl
cmovae eax, edx
cmp al, 6
mov ecx, 5
cmovae ecx, eax
mov edx, dword [rsi + 0x16c]
test edx, 0x4000400
cmove ecx, eax
cmp cl, 8
mov eax, 8
cmovb eax, ecx
movzx r13d, al
mov dword [rsi + 0x2c0], r13d
mov eax, dword [rsi + 0x2c4]
test edx, 0x4000400
je 0x1400b34d7
test eax, eax
jle 0x1400b35b9
cvtsi2sd xmm1, dword [rsi + 0x4b8]
movsd xmm7, qword [0x1405a44b0]
cvtsi2sd xmm0, eax
mulsd xmm1, xmm7
mulsd xmm0, xmm1
addsd xmm0, qword [0x1406908e8]
call fcn.14056f630
movapd xmm6, xmm0
cvttpd2dq xmm0, xmm0
cvtdq2pd xmm0, xmm0
mulsd xmm0, xmm7
movsd xmm1, qword [0x1405a4448]
cmplesd xmm1, xmm6
andpd xmm1, xmm0
cmplesd xmm6, qword [0x1405a4440]
andpd xmm6, xmm1
jmp 0x1400b35c1
xor ebx, ebx
jmp 0x1400b31e1
mov ebx, 0x186a0
mov edx, 0x100
mov rcx, rsi
call fcn.1401cf1c0
mov rdi, rax
mov qword [rsi + 0x2c8], rax
lea eax, [rbx - 0x17318]
cmp eax, 0x2710
ja 0x1400b3465
movaps xmm0, xmmword [0x1405a44c0]
movups xmmword [rdi], xmm0
movaps xmm0, xmmword [0x1405a44d0]
movups xmmword [rdi + 0x10], xmm0
movaps xmm0, xmmword [0x1405a44e0]
movups xmmword [rdi + 0x20], xmm0
movaps xmm0, xmmword [0x1405a44f0]
movups xmmword [rdi + 0x30], xmm0
movaps xmm0, xmmword [0x1405a4500]
movups xmmword [rdi + 0x40], xmm0
movaps xmm0, xmmword [0x1405a4510]
movups xmmword [rdi + 0x50], xmm0
movaps xmm0, xmmword [0x1405a4520]
movups xmmword [rdi + 0x60], xmm0
movaps xmm0, xmmword [0x1405a4530]
movups xmmword [rdi + 0x70], xmm0
movaps xmm0, xmmword [0x1405a4540]
movups xmmword [rdi + 0x80], xmm0
movaps xmm0, xmmword [0x1405a4550]
movups xmmword [rdi + 0x90], xmm0
movaps xmm0, xmmword [0x1405a4560]
movups xmmword [rdi + 0xa0], xmm0
movaps xmm0, xmmword [0x1405a4570]
movups xmmword [rdi + 0xb0], xmm0
movaps xmm0, xmmword [0x1405a4580]
movups xmmword [rdi + 0xc0], xmm0
movaps xmm0, xmmword [0x1405a4590]
movups xmmword [rdi + 0xd0], xmm0
movaps xmm0, xmmword [0x1405a45a0]
movups xmmword [rdi + 0xe0], xmm0
movapd xmm0, xmmword [0x1405a45b0]
movupd xmmword [rdi + 0xf0], xmm0
test dword [rsi + 0x16c], 0x600080
je 0x1400b3a82
xorps xmm1, xmm1
cvtsi2sd xmm1, dword [rsi + 0x4b8]
movsd xmm6, qword [0x1405a4458]
movapd xmm0, xmm6
divsd xmm0, xmm1
addsd xmm0, qword [0x1406908e8]
call fcn.14056f630
xor eax, eax
ucomisd xmm0, qword [0x1405a4448]
cvttsd2si ebx, xmm0
cmovb ebx, eax
movsd xmm8, qword [0x1405a4440]
ucomisd xmm8, xmm0
cmovb ebx, eax
mov edx, 0x100
mov rcx, rsi
call fcn.1401cf1c0
mov rdi, rax
mov qword [rsi + 0x2e0], rax
lea eax, [rbx - 0x17318]
cmp eax, 0x2710
ja 0x1400b353c
movaps xmm0, xmmword [0x1405a44c0]
movups xmmword [rdi], xmm0
movaps xmm0, xmmword [0x1405a44d0]
movups xmmword [rdi + 0x10], xmm0
movaps xmm0, xmmword [0x1405a44e0]
movups xmmword [rdi + 0x20], xmm0
movaps xmm0, xmmword [0x1405a44f0]
movups xmmword [rdi + 0x30], xmm0
movaps xmm0, xmmword [0x1405a4500]
movups xmmword [rdi + 0x40], xmm0
movaps xmm0, xmmword [0x1405a4510]
movups xmmword [rdi + 0x50], xmm0
movaps xmm0, xmmword [0x1405a4520]
movups xmmword [rdi + 0x60], xmm0
movaps xmm0, xmmword [0x1405a4530]
movups xmmword [rdi + 0x70], xmm0
movaps xmm0, xmmword [0x1405a4540]
movups xmmword [rdi + 0x80], xmm0
movaps xmm0, xmmword [0x1405a4550]
movups xmmword [rdi + 0x90], xmm0
movaps xmm0, xmmword [0x1405a4560]
movups xmmword [rdi + 0xa0], xmm0
movaps xmm0, xmmword [0x1405a4570]
movups xmmword [rdi + 0xb0], xmm0
movaps xmm0, xmmword [0x1405a4580]
movups xmmword [rdi + 0xc0], xmm0
movaps xmm0, xmmword [0x1405a4590]
movups xmmword [rdi + 0xd0], xmm0
movaps xmm0, xmmword [0x1405a45a0]
movups xmmword [rdi + 0xe0], xmm0
movapd xmm0, xmmword [0x1405a45b0]
movupd xmmword [rdi + 0xf0], xmm0
mov eax, dword [rsi + 0x2c4]
test eax, eax
jle 0x1400b3842
xorps xmm0, xmm0
cvtsi2sd xmm0, eax
divsd xmm6, xmm0
addsd xmm6, qword [0x1406908e8]
movapd xmm0, xmm6
call fcn.14056f630
xor eax, eax
ucomisd xmm0, qword [0x1405a4448]
cvttsd2si ebx, xmm0
cmovb ebx, eax
ucomisd xmm8, xmm0
cmovb ebx, eax
jmp 0x1400b3848
xorps xmm6, xmm6
cvtsi2sd xmm6, ebx
mulsd xmm6, qword [0x1405a44b0]
xor ebx, ebx
movsd xmm7, qword [0x1405a0fa8]
movsd xmm8, qword [0x1406908e8]
jmp 0x1400b34a5
mov eax, ebx
mov byte [rdi + rbx], al
inc rbx
cmp rbx, 0x100
je 0x1400b32d2
lea eax, [rbx - 1]
cmp eax, 0xfd
ja 0x1400b3490
xorps xmm0, xmm0
cvtsi2sd xmm0, ebx
divsd xmm0, xmm7
movapd xmm1, xmm6
call fcn.140573570
mulsd xmm0, xmm7
addsd xmm0, xmm8
call fcn.14056f630
cvttsd2si eax, xmm0
jmp 0x1400b3492
test eax, eax
jle 0x1400b39bc
mov ecx, dword [rsi + 0x4b8]
test ecx, ecx
je 0x1400b39b7
cvtsi2sd xmm1, ecx
movsd xmm0, qword [0x1405a44a8]
cvtsi2sd xmm2, eax
divsd xmm0, xmm1
divsd xmm0, xmm2
addsd xmm0, qword [0x1406908e8]
call fcn.14056f630
movsd xmm1, qword [0x1405a4440]
ucomisd xmm1, xmm0
jb 0x1400b39b7
ucomisd xmm0, qword [0x1405a4448]
jb 0x1400b39b7
cvttsd2si r9d, xmm0
jmp 0x1400b39c2
xorps xmm7, xmm7
cvtsi2sd xmm7, ebx
mulsd xmm7, qword [0x1405a44b0]
xor ebx, ebx
movsd xmm9, qword [0x1405a0fa8]
movsd xmm10, qword [0x1406908e8]
jmp 0x1400b3585
mov eax, ebx
mov byte [rdi + rbx], al
inc rbx
cmp rbx, 0x100
je 0x1400b341d
lea eax, [rbx - 1]
cmp eax, 0xfd
ja 0x1400b3570
xorps xmm0, xmm0
cvtsi2sd xmm0, ebx
divsd xmm0, xmm9
movapd xmm1, xmm7
call fcn.140573570
mulsd xmm0, xmm9
addsd xmm0, xmm10
call fcn.14056f630
cvttsd2si eax, xmm0
jmp 0x1400b3572
movsd xmm6, qword [0x140599c60]
mov ebx, 8
sub ebx, r13d
mov edi, 1
mov ecx, ebx
shl edi, cl
lea rdx, [rdi*8]
mov rcx, rsi
call fcn.1401cf150
mov r14, rax
mov qword [rsi + 0x2d0], rax
xor r15d, r15d
nop
mov edx, 0x200
mov rcx, rsi
call fcn.1401cf1c0
mov qword [r14 + r15*8], rax
inc r15
cmp rdi, r15
jne 0x1400b35f0
mov ebp, 0x10
sub ebp, r13d
mov r15d, 0xff
mov dword [rsp + 0x2c], r13d
mov ecx, r13d
shr r15d, cl
xor edi, edi
movsd xmm7, qword [0x1405a44b8]
movsd xmm8, qword [0x1406908e8]
xor r12d, r12d
jmp 0x1400b3653
inc eax
mov r12d, eax
inc edi
cmp edi, 0xff
je 0x1400b375f
mov r13d, edi
shl r13d, 8
add r13d, edi
movzx eax, r13w
sub eax, 0xffffff80
xorps xmm0, xmm0
cvtsi2sd xmm0, eax
divsd xmm0, xmm7
movapd xmm1, xmm6
call fcn.140573570
mulsd xmm0, xmm7
addsd xmm0, xmm8
call fcn.14056f630
cvttsd2si eax, xmm0
movzx edx, ax
mov eax, edx
mov ecx, ebp
shl eax, cl
sub eax, edx
add eax, 0x8000
mov ecx, 0x80008001
imul rax, rcx
shr rax, 0x2f
mov edx, eax
sub edx, r12d
jb 0x1400b3645
lea r8d, [rdx + 1]
and r8d, 3
je 0x1400b36df
nop dword [rax + rax]
mov r9d, r12d
and r9d, r15d
mov r10d, r12d
mov ecx, ebx
shr r10d, cl
mov rcx, qword [r14 + r9*8]
mov word [rcx + r10*2], r13w
inc r12d
dec r8d
jne 0x1400b36c0
cmp edx, 3
jb 0x1400b3640
nop dword [rax + rax]
mov edx, r12d
and edx, r15d
mov r8d, r12d
mov ecx, ebx
shr r8d, cl
mov rcx, qword [r14 + rdx*8]
mov word [rcx + r8*2], r13w
lea edx, [r12 + 1]
mov r8d, edx
mov ecx, ebx
shr edx, cl
and r8d, r15d
mov rcx, qword [r14 + r8*8]
mov word [rcx + rdx*2], r13w
lea edx, [r12 + 2]
mov ecx, edx
and ecx, r15d
mov r8, qword [r14 + rcx*8]
mov ecx, ebx
shr edx, cl
mov word [r8 + rdx*2], r13w
lea edx, [r12 + 3]
mov r8d, edx
and r8d, r15d
mov r9d, edx
mov ecx, ebx
shr r9d, cl
mov rcx, qword [r14 + r8*8]
mov word [rcx + r9*2], r13w
add r12d, 4
cmp edx, eax
jne 0x1400b36f0
jmp 0x1400b3640
mov eax, 0x100
mov ecx, ebx
shl eax, cl
cmp eax, r12d
mov r13d, dword [rsp + 0x2c]
jbe 0x1400b382d
mov r8d, r12d
neg r8d
mov edx, r12d
not edx
add edx, eax
and r8d, 3
je 0x1400b37b1
nop dword [rax]
mov r9d, r12d
and r9d, r15d
mov r10d, r12d
mov ecx, ebx
shr r10d, cl
mov rcx, qword [r14 + r9*8]
mov word [rcx + r10*2], 0xffff
inc r12d
dec r8d
jne 0x1400b3790
cmp edx, 3
jb 0x1400b382d
nop word cs:[rax + rax]
mov edx, r12d
mov r8d, r12d
mov ecx, ebx
shr r8d, cl
and edx, r15d
mov rcx, qword [r14 + rdx*8]
mov word [rcx + r8*2], 0xffff
lea edx, [r12 + 1]
mov ecx, edx
and ecx, r15d
mov r8, qword [r14 + rcx*8]
mov ecx, ebx
shr edx, cl
mov word [r8 + rdx*2], 0xffff
lea edx, [r12 + 2]
mov ecx, edx
and ecx, r15d
mov r8, qword [r14 + rcx*8]
mov ecx, ebx
shr edx, cl
mov word [r8 + rdx*2], 0xffff
lea edx, [r12 + 3]
mov r8d, edx
and r8d, r15d
mov ecx, ebx
shr edx, cl
mov rcx, qword [r14 + r8*8]
mov word [rcx + rdx*2], 0xffff
add r12d, 4
cmp r12d, eax
jne 0x1400b37c0
test dword [rsi + 0x16c], 0x600080
jne 0x1400b39e4
jmp 0x1400b3a82
mov ebx, dword [rsi + 0x4b8]
mov edx, 0x100
mov rcx, rsi
call fcn.1401cf1c0
mov rdi, rax
mov qword [rsi + 0x2d8], rax
lea eax, [rbx - 0x17318]
cmp eax, 0x2710
ja 0x1400b393e
movaps xmm0, xmmword [0x1405a44c0]
movups xmmword [rdi], xmm0
movaps xmm0, xmmword [0x1405a44d0]
movups xmmword [rdi + 0x10], xmm0
movaps xmm0, xmmword [0x1405a44e0]
movups xmmword [rdi + 0x20], xmm0
movaps xmm0, xmmword [0x1405a44f0]
movups xmmword [rdi + 0x30], xmm0
movaps xmm0, xmmword [0x1405a4500]
movups xmmword [rdi + 0x40], xmm0
movaps xmm0, xmmword [0x1405a4510]
movups xmmword [rdi + 0x50], xmm0
movaps xmm0, xmmword [0x1405a4520]
movups xmmword [rdi + 0x60], xmm0
movaps xmm0, xmmword [0x1405a4530]
movups xmmword [rdi + 0x70], xmm0
movaps xmm0, xmmword [0x1405a4540]
movups xmmword [rdi + 0x80], xmm0
movaps xmm0, xmmword [0x1405a4550]
movups xmmword [rdi + 0x90], xmm0
movaps xmm0, xmmword [0x1405a4560]
movups xmmword [rdi + 0xa0], xmm0
movaps xmm0, xmmword [0x1405a4570]
movups xmmword [rdi + 0xb0], xmm0
movaps xmm0, xmmword [0x1405a4580]
movups xmmword [rdi + 0xc0], xmm0
movaps xmm0, xmmword [0x1405a4590]
movups xmmword [rdi + 0xd0], xmm0
movaps xmm0, xmmword [0x1405a45a0]
movups xmmword [rdi + 0xe0], xmm0
movapd xmm0, xmmword [0x1405a45b0]
movupd xmmword [rdi + 0xf0], xmm0
jmp 0x1400b3a82
xorps xmm6, xmm6
cvtsi2sd xmm6, ebx
mulsd xmm6, qword [0x1405a44b0]
xor esi, esi
movsd xmm7, qword [0x1405a0fa8]
movsd xmm8, qword [0x1406908e8]
jmp 0x1400b3985
mov eax, esi
mov byte [rdi + rsi], al
inc rsi
cmp rsi, 0x100
je 0x1400b3a82
lea eax, [rsi - 1]
cmp eax, 0xfd
ja 0x1400b3970
xorps xmm0, xmm0
cvtsi2sd xmm0, esi
divsd xmm0, xmm7
movapd xmm1, xmm6
call fcn.140573570
mulsd xmm0, xmm7
addsd xmm0, xmm8
call fcn.14056f630
cvttsd2si eax, xmm0
jmp 0x1400b3972
xor r9d, r9d
jmp 0x1400b39c2
mov r9d, 0x186a0
lea rdx, [rsi + 0x2d0]
mov rcx, rsi
mov r8d, r13d
call fcn.1400b3b00
test dword [rsi + 0x16c], 0x600080
je 0x1400b3a82
xorps xmm1, xmm1
cvtsi2sd xmm1, dword [rsi + 0x4b8]
movsd xmm6, qword [0x1405a4458]
movapd xmm0, xmm6
divsd xmm0, xmm1
addsd xmm0, qword [0x1406908e8]
call fcn.14056f630
xor edi, edi
ucomisd xmm0, qword [0x1405a4448]
cvttsd2si r9d, xmm0
cmovb r9d, edi
movsd xmm7, qword [0x1405a4440]
ucomisd xmm7, xmm0
cmovb r9d, edi
lea rdx, [rsi + 0x2f0]
mov rcx, rsi
mov r8d, r13d
call fcn.1400b3b00
mov eax, dword [rsi + 0x2c4]
test eax, eax
jle 0x1400b3ab2
xorps xmm0, xmm0
cvtsi2sd xmm0, eax
divsd xmm6, xmm0
addsd xmm6, qword [0x1406908e8]
movapd xmm0, xmm6
call fcn.14056f630
ucomisd xmm0, qword [0x1405a4448]
cvttsd2si r9d, xmm0
cmovb r9d, edi
ucomisd xmm7, xmm0
cmovb r9d, edi
jmp 0x1400b3ab9
movaps xmm6, xmmword [rsp + 0x30]
movaps xmm7, xmmword [rsp + 0x40]
movaps xmm8, xmmword [rsp + 0x50]
movaps xmm9, xmmword [rsp + 0x60]
movaps xmm10, xmmword [rsp + 0x70]
add rsp, 0x88
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov r9d, dword [rsi + 0x4b8]
lea rdx, [rsi + 0x2e8]
mov rcx, rsi
mov r8d, r13d
movaps xmm6, xmmword [rsp + 0x30]
movaps xmm7, xmmword [rsp + 0x40]
movaps xmm8, xmmword [rsp + 0x50]
movaps xmm9, xmmword [rsp + 0x60]
movaps xmm10, xmmword [rsp + 0x70]
add rsp, 0x88
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
jmp fcn.1400b3b00