Function at 0x6d37c0f0
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 0x6d37c730
mov rcx, r14
lea rdx, str.gamma_table_being_rebuilt
call fcn.6d3b8f50
mov rcx, r14
call fcn.6d385330
mov eax, dword [r14 + 0x2c4]
cmp ebx, 8
jg 0x6d37c2b0
mov r8d, 0x186a0
test eax, eax
jle 0x6d37c240
mov r8d, dword [r14 + 0x4c0]
test r8d, r8d
je 0x6d37c240
pxor xmm0, xmm0
pxor xmm13, xmm13
movsd xmm12, qword [0x6d450000]
movsd xmm8, qword [0x6d44fde8]
cvtsi2sd xmm0, r8d
movsd xmm7, qword [0x6d44fe00]
movsd xmm5, qword [0x6d44fdf0]
cvtsi2sd xmm13, eax
mulsd xmm0, xmm13
divsd xmm12, xmm0
addsd xmm8, xmm12
andpd xmm7, xmm8
comisd xmm5, xmm7
jbe 0x6d37c213
cvttsd2si r12, xmm8
pxor xmm11, xmm11
movsd xmm9, qword [0x6d44fdd0]
cvtsi2sd xmm11, r12
movupd xmm10, xmm11
cmpnlesd xmm10, xmm8
andpd xmm9, xmm10
subsd xmm11, xmm9
movupd xmm8, xmm11
comisd xmm8, xmmword [0x6d44fe30]
ja 0x6d37cb70
comisd xmm8, xmmword [0x6d44fe38]
cvttsd2si r8d, xmm8
jb 0x6d37cb70
nop word cs:[rax + rax]
lea rdx, [r14 + 0x2c8]
mov rcx, r14
call fcn.6d37bea0
test dword [r14 + 0x16c], 0x600080
jne 0x6d37c7e0
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 0x6d37c700
movzx edx, byte [r14 + 0x2fb]
mov r12d, dword [r14 + 0x16c]
lea edi, [rdx - 1]
and r12d, 0x4000400
cmp dil, 0xe
jbe 0x6d37c748
test r12d, r12d
je 0x6d37c940
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 0x6d37c7c4
pxor xmm4, xmm4
pxor xmm9, xmm9
movsd xmm10, qword [0x6d44fdd8]
movsd xmm11, qword [0x6d44fde8]
movq xmm13, qword [0x6d44fe00]
cvtsi2sd xmm9, eax
movsd xmm12, qword [0x6d44fdf0]
cvtsi2sd xmm4, dword [r14 + 0x4c0]
movupd xmm1, xmm13
mulsd xmm4, xmm9
mulsd xmm4, xmm10
addsd xmm4, xmm11
andpd xmm1, xmm4
comisd xmm12, xmm1
jbe 0x6d37c3ab
cvttsd2si r11, xmm4
pxor xmm2, xmm2
movsd xmm0, qword [0x6d44fdd0]
cvtsi2sd xmm2, r11
movupd xmm3, xmm2
cmpnlesd xmm3, xmm4
andpd xmm0, xmm3
subsd xmm2, xmm0
movupd xmm4, xmm2
comisd xmm4, xmmword [0x6d44fe30]
ja 0x6d37cda0
comisd xmm4, xmmword [0x6d44fe38]
jb 0x6d37cda0
cvttsd2si eax, xmm4
pxor xmm7, xmm7
movsd xmm0, qword [0x6d450018]
cvtsi2sd xmm7, eax
mulsd xmm7, xmm10
mulsd xmm0, xmm7
call fcn.6d052750
mulsd xmm0, qword [0x6d44fde0]
addsd xmm0, xmm11
andpd xmm13, xmm0
comisd xmm12, xmm13
ja 0x6d37ceb0
movupd xmm6, xmm0
mov rdx, rsi
mov rcx, r14
xor ebp, ebp
call fcn.6d37d5f0
mov qword [r14 + 0x2d0], rax
mov rsi, rax
nop dword [rax]
mov edx, 0x200
mov rcx, r14
call fcn.6d3ace00
mov qword [rsi + rbp*8], rax
add rbp, 1
cmp ebx, ebp
ja 0x6d37c428
movsd xmm13, qword [0x6d450008]
mov ebp, 0x181
xor ebx, ebx
movsd xmm12, qword [0x6d44fde0]
movsd xmm11, qword [0x6d44fde8]
movsd xmm10, qword [0x6d44fdf0]
movsd xmm9, qword [0x6d44fe00]
movsd xmm8, qword [0x6d44fdd0]
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 0x6d37c689
mov r10d, eax
sub r10d, ebx
add r10d, 1
and r10d, 7
je 0x6d37c5c5
cmp r10d, 1
je 0x6d37c59e
cmp r10d, 2
je 0x6d37c583
cmp r10d, 3
je 0x6d37c568
cmp r10d, 4
je 0x6d37c54d
cmp r10d, 5
je 0x6d37c532
cmp r10d, 6
je 0x6d37c517
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 0x6d37c686
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 0x6d37c5c5
mov ebx, r9d
cmp ebp, 0x1007f
je 0x6d37cb90
pxor xmm0, xmm0
movupd xmm1, xmm7
cvtsi2sd xmm0, ebp
mulsd xmm0, xmm13
call fcn.6d052ce0
mulsd xmm0, xmm12
addsd xmm0, xmm11
movupd xmm2, xmm0
andpd xmm2, xmm9
comisd xmm10, xmm2
jbe 0x6d37c6e9
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 0x6d37c480
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 0x6d37c2c6
cmp qword [rcx + 0x2d0], 0
jne 0x6d37c14d
jmp 0x6d37c164
mov ebp, 0x10
sub ebp, edx
movzx edx, bpl
test r12d, r12d
je 0x6d37cb50
cmp dl, 4
jbe 0x6d37c2ea
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 0x6d37c326
movsd xmm6, qword [0x6d450010]
movsd xmm7, qword [0x6d44fdd0]
jmp 0x6d37c40a
pxor xmm1, xmm1
movsd xmm6, qword [0x6d44fff0]
movsd xmm13, qword [0x6d44fde8]
cvtsi2sd xmm1, dword [r14 + 0x4c0]
movq xmm7, qword [0x6d44fe00]
movsd xmm12, qword [0x6d44fdf0]
movupd xmm0, xmm6
movupd xmm2, xmm7
divsd xmm0, xmm1
movupd xmm11, xmm0
addsd xmm11, xmm13
andpd xmm2, xmm11
comisd xmm12, xmm2
jbe 0x6d37c85e
cvttsd2si r10, xmm11
pxor xmm3, xmm3
movsd xmm5, qword [0x6d44fdd0]
cvtsi2sd xmm3, r10
movupd xmm4, xmm3
cmpnlesd xmm4, xmm11
andpd xmm5, xmm4
subsd xmm3, xmm5
movupd xmm11, xmm3
comisd xmm11, xmmword [0x6d44fe30]
ja 0x6d37c879
comisd xmm11, xmmword [0x6d44fe38]
cvttsd2si r8d, xmm11
jae 0x6d37c87c
xor r8d, r8d
lea rdx, [r14 + 0x2e0]
mov rcx, r14
call fcn.6d37bea0
mov edi, dword [r14 + 0x2c4]
test edi, edi
jle 0x6d37cdb8
pxor xmm10, xmm10
cvtsi2sd xmm10, edi
divsd xmm6, xmm10
addsd xmm6, xmm13
andpd xmm7, xmm6
comisd xmm12, xmm7
ja 0x6d37cdd8
comisd xmm6, xmmword [0x6d44fe30]
ja 0x6d37cb80
comisd xmm6, xmmword [0x6d44fe38]
cvttsd2si r8d, xmm6
jb 0x6d37cb80
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.6d37bea0
mov dword [r14 + 0x2c0], 0
mov r9d, 0x186a0
test eax, eax
jle 0x6d37c9d0
mov r9d, dword [r14 + 0x4c0]
test r9d, r9d
je 0x6d37c9d0
pxor xmm0, xmm0
pxor xmm1, xmm1
movsd xmm2, qword [0x6d450000]
movsd xmm8, qword [0x6d44fde8]
cvtsi2sd xmm0, r9d
movsd xmm3, qword [0x6d44fe00]
movsd xmm4, qword [0x6d44fdf0]
cvtsi2sd xmm1, eax
mulsd xmm0, xmm1
divsd xmm2, xmm0
addsd xmm8, xmm2
andpd xmm3, xmm8
comisd xmm4, xmm3
ja 0x6d37ce50
comisd xmm8, xmmword [0x6d44fe30]
ja 0x6d37c9ca
comisd xmm8, xmmword [0x6d44fe38]
cvttsd2si r9d, xmm8
jae 0x6d37c9d0
xor r9d, r9d
nop dword [rax]
lea rdx, [r14 + 0x2d0]
mov r8d, r12d
mov rcx, r14
call fcn.6d37b7b0
test dword [r14 + 0x16c], 0x600080
je 0x6d37c260
pxor xmm1, xmm1
movsd xmm6, qword [0x6d44fff0]
movsd xmm13, qword [0x6d44fde8]
cvtsi2sd xmm1, dword [r14 + 0x4c0]
movq xmm7, qword [0x6d44fe00]
movsd xmm12, qword [0x6d44fdf0]
movupd xmm0, xmm6
movupd xmm2, xmm7
divsd xmm0, xmm1
movupd xmm11, xmm0
addsd xmm11, xmm13
andpd xmm2, xmm11
comisd xmm12, xmm2
jbe 0x6d37ca71
cvttsd2si r13, xmm11
pxor xmm3, xmm3
movsd xmm5, qword [0x6d44fdd0]
cvtsi2sd xmm3, r13
movupd xmm4, xmm3
cmpnlesd xmm4, xmm11
andpd xmm5, xmm4
subsd xmm3, xmm5
movupd xmm11, xmm3
comisd xmm11, xmmword [0x6d44fe30]
ja 0x6d37ca8c
comisd xmm11, xmmword [0x6d44fe38]
cvttsd2si r9d, xmm11
jae 0x6d37ca8f
xor r9d, r9d
lea rdx, [r14 + 0x2f0]
mov r8d, r12d
mov rcx, r14
call fcn.6d37b7b0
mov esi, dword [r14 + 0x2c4]
test esi, esi
jle 0x6d37cdc8
pxor xmm10, xmm10
cvtsi2sd xmm10, esi
divsd xmm6, xmm10
addsd xmm6, xmm13
andpd xmm7, xmm6
comisd xmm12, xmm7
ja 0x6d37ce10
comisd xmm6, xmmword [0x6d44fe30]
ja 0x6d37cd98
comisd xmm6, xmmword [0x6d44fe38]
cvttsd2si r9d, xmm6
jb 0x6d37cd98
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.6d37b7b0
cmp dl, 8
mov r12d, 8
cmovbe r12d, edx
mov dword [r14 + 0x2c0], r12d
jmp 0x6d37c94b
xor r8d, r8d
jmp 0x6d37c240
xor r8d, r8d
jmp 0x6d37c8de
mov r15d, dword [rsp + 0x2c]
cmp ebx, r15d
jae 0x6d37c9e2
sub r15d, ebx
mov eax, 0xff
mov ecx, r12d
mov edi, r15d
sar eax, cl
and edi, 7
je 0x6d37cca7
cmp edi, 1
je 0x6d37cc7d
cmp edi, 2
je 0x6d37cc60
cmp edi, 3
je 0x6d37cc40
cmp edi, 4
je 0x6d37cc22
cmp edi, 5
je 0x6d37cc01
cmp edi, 6
jne 0x6d37ce88
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 0x6d37c9e2
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 0x6d37cca7
jmp 0x6d37c9e2
xor r9d, r9d
jmp 0x6d37caf4
movsd xmm6, qword [0x6d44fde0]
pxor xmm7, xmm7
jmp 0x6d37c40a
mov r8d, dword [r14 + 0x4c0]
jmp 0x6d37c8de
mov r9d, dword [r14 + 0x4c0]
jmp 0x6d37caf4
cvttsd2si r9, xmm6
pxor xmm9, xmm9
movsd xmm1, qword [0x6d44fdd0]
cvtsi2sd xmm9, r9
movupd xmm8, xmm9
cmpnlesd xmm8, xmm6
andpd xmm1, xmm8
subsd xmm9, xmm1
movupd xmm6, xmm9
jmp 0x6d37c8bd
cvttsd2si rbx, xmm6
pxor xmm9, xmm9
movsd xmm1, qword [0x6d44fdd0]
cvtsi2sd xmm9, rbx
movupd xmm8, xmm9
cmpnlesd xmm8, xmm6
andpd xmm1, xmm8
subsd xmm9, xmm1
movupd xmm6, xmm9
jmp 0x6d37cad3
cvttsd2si r8, xmm8
pxor xmm5, xmm5
movsd xmm7, qword [0x6d44fdd0]
cvtsi2sd xmm5, r8
movupd xmm6, xmm5
cmpnlesd xmm6, xmm8
andpd xmm7, xmm6
subsd xmm5, xmm7
movupd xmm8, xmm5
jmp 0x6d37c9af
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 0x6d37cbe1
cvttsd2si rbp, xmm0
pxor xmm5, xmm5
movsd xmm8, qword [0x6d44fdd0]
cvtsi2sd xmm5, rbp
movupd xmm6, xmm5
cmpnlesd xmm6, xmm0
andpd xmm8, xmm6
subsd xmm5, xmm8
movupd xmm0, xmm5
jmp 0x6d37c406