Function at 0x1400c52a0
Capabilities:
Encrypt data using rc4 ksa

Disassembly:
mov rax, rsp
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x448]
sub rsp, 0x520
movaps xmmword [rax - 0x38], xmm6
movaps xmmword [rax - 0x48], xmm7
movaps xmmword [rax - 0x58], xmm8
movaps xmmword [rax - 0x68], xmm9
movaps xmmword [rax - 0x78], xmm10
mov rax, qword [0x140a480a8]
xor rax, rsp
mov qword [rbp + 0x3c0], rax
mov rbx, rcx
mov qword [rsp + 0x60], rcx
mov r14b, 1
xorps xmm3, xmm3
movsd qword [rsp + 0x38], xmm3
movsd qword [rsp + 0x30], xmm3
movsd qword [rsp + 0x38], xmm3
movsd qword [rsp + 0x30], xmm3
movsd qword [rsp + 0x30], xmm3
movsd xmm0, qword [rsp + 0x30]
movsd xmm4, qword [0x1408b66b0]
comisd xmm4, xmm0
jbe 0x1400c5401
movsd xmm7, qword [0x1408b5d70]
movsd xmm8, qword [0x1408b43a0]
movsd xmm9, qword [0x1408b5c58]
movsd xmm10, qword [0x1408b5cc8]
movsd xmm5, qword [0x1408b5b70]
movsd xmm6, qword [0x1408b4358]
nop word [rax + rax]
movsd xmm2, qword [rsp + 0x30]
mulsd xmm2, xmm7
mulsd xmm2, qword [rsp + 0x30]
movsd xmm1, qword [rsp + 0x30]
movsd xmm0, qword [rsp + 0x30]
mulsd xmm1, xmm0
subsd xmm2, xmm1
movsd xmm0, qword [rsp + 0x30]
mulsd xmm0, xmm8
mulsd xmm0, qword [rsp + 0x30]
addsd xmm0, xmm9
divsd xmm2, xmm0
addsd xmm2, qword [rsp + 0x38]
movsd qword [rsp + 0x38], xmm2
movsd xmm0, qword [rsp + 0x38]
comisd xmm0, xmm10
jbe 0x1400c53e1
movsd xmm1, qword [rsp + 0x38]
movsd xmm0, qword [rsp + 0x30]
mulsd xmm0, xmm5
subsd xmm1, xmm0
movsd qword [rsp + 0x38], xmm1
movsd xmm0, qword [rsp + 0x30]
addsd xmm0, xmm6
movsd qword [rsp + 0x30], xmm0
movsd xmm1, qword [rsp + 0x30]
comisd xmm4, xmm1
ja 0x1400c5370
movsd xmm0, qword [rsp + 0x38]
xor r12d, r12d
comisd xmm3, xmm0
jbe 0x1400c541f
call 0x1408756e7
call fcn.1408756f1
jmp 0x1400c5aff
mov eax, r12d
lea rcx, [rbp + 0x2c0]
nop dword [rax]
mov byte [rcx], al
inc eax
lea rcx, [rcx + 1]
cmp eax, 0x100
jb 0x1400c5430
mov r9d, r12d
xor cl, cl
mov r10d, 0xff
lea rsi, [fcn.1408756f1]
mov edi, r12d
mov r11d, 1
cmp r10d, r11d
jbe 0x1400c5470
nop
lea r11d, [r11*2 + 1]
cmp r11d, r10d
jb 0x1400c5460
nop dword [rax]
movzx eax, cl
movzx edx, byte [rbp + rax + 0x2c0]
mov eax, r9d
test r9d, r9d
je 0x1400c54cc
sub eax, 1
je 0x1400c54bc
sub eax, 1
je 0x1400c54ac
cmp eax, 1
je 0x1400c549c
lea eax, [r9 - 4]
movzx eax, byte [rax + rsi]
jmp 0x1400c54d7
movsd xmm0, qword [rsp + 0x38]
cvttsd2si rax, xmm0
shr eax, 0x18
jmp 0x1400c54d7
movsd xmm0, qword [rsp + 0x38]
cvttsd2si rax, xmm0
shr eax, 0x10
jmp 0x1400c54d7
movsd xmm0, qword [rsp + 0x38]
cvttsd2si rax, xmm0
shr eax, 8
jmp 0x1400c54d7
movsd xmm0, qword [rsp + 0x38]
cvttsd2si rax, xmm0
add dl, al
lea r8d, [r9 + 1]
lea eax, [rdx + 0x17]
movzx ecx, al
cmp r8d, 0x17
cmovb ecx, edx
movzx ebx, cl
mov r9d, r12d
cmovb r9d, r8d
mov eax, ebx
and eax, r11d
inc edi
cmp edi, 0xb
jbe 0x1400c5507
xor edx, edx
div r10d
mov eax, edx
movzx ecx, bl
cmp eax, r10d
ja 0x1400c5470
je 0x1400c5546
mov edx, eax
mov ecx, r10d
movzx eax, byte [rbp + rdx + 0x2c0]
xor al, byte [rbp + rcx + 0x2c0]
mov byte [rbp + rcx + 0x2c0], al
xor byte [rbp + rdx + 0x2c0], al
movzx eax, byte [rbp + rdx + 0x2c0]
xor byte [rbp + rcx + 0x2c0], al
add r10d, 0xffffffff
movzx ecx, bl
jne 0x1400c5451
movzx r15d, byte [rbp + 0x2c5]
movzx edx, byte [rbp + 0x2c7]
movzx edi, byte [rbp + rbx + 0x2c0]
lea rsi, [0x1408756e7]
movzx r11d, byte [rsi]
sub r11b, 6
shl r11b, 4
movzx ecx, byte [rsi + 1]
sub cl, 0x51
or r11b, cl
movzx ebx, byte [rbp + rdi + 0x2c0]
mov byte [rsp + 0x40], bl
movzx eax, byte [rbp + 0x2c1]
lea r12d, [rax + 1]
movzx r13d, byte [rbp + 0x2c3]
add r13b, byte [rbp + rax + 0x2c0]
movzx r9d, r13b
movzx eax, byte [rbp + r9 + 0x2c0]
mov byte [rbp + rdi + 0x2c0], al
movzx eax, byte [rbp + rdx + 0x2c0]
mov byte [rbp + r9 + 0x2c0], al
movzx ecx, r12b
movzx eax, byte [rbp + rcx + 0x2c0]
mov byte [rbp + rdx + 0x2c0], al
mov byte [rbp + rcx + 0x2c0], bl
add r15b, byte [rbp + rbx + 0x2c0]
movzx eax, r15b
movzx ecx, byte [rbp + rax + 0x2c0]
movzx eax, byte [rbp + rdx + 0x2c0]
add rcx, rax
movzx eax, byte [rbp + rdi + 0x2c0]
add rcx, rax
movzx eax, cl
movzx ecx, byte [rbp + rax + 0x2c0]
movzx eax, byte [rbp + r9 + 0x2c0]
add rax, rbx
movzx eax, al
movzx edx, byte [rbp + rcx + 0x2c0]
xor dl, byte [rbp + rax + 0x2c0]
xor dl, r11b
movsd xmm0, qword [0x1408b6530]
movsd qword [rsp + 0x58], xmm0
movsd xmm1, qword [0x1408b6358]
movsd qword [rsp + 0x38], xmm1
movsd xmm0, qword [0x1408b6120]
movsd qword [rsp + 0x48], xmm0
movsd xmm1, qword [0x1408b5ed0]
movsd qword [rsp + 0x30], xmm1
movsd xmm2, qword [rsp + 0x30]
movsd xmm0, qword [rsp + 0x48]
mulsd xmm2, xmm0
movsd qword [rsp + 0x48], xmm2
movsd xmm1, qword [rsp + 0x30]
movsd xmm0, qword [rsp + 0x38]
mulsd xmm1, xmm0
movsd qword [rsp + 0x38], xmm1
movsd xmm2, qword [rsp + 0x30]
movsd xmm0, qword [rsp + 0x48]
mulsd xmm2, xmm0
movsd qword [rsp + 0x48], xmm2
movsd xmm1, qword [rsp + 0x30]
movsd xmm0, qword [rsp + 0x58]
mulsd xmm1, xmm0
movsd qword [rsp + 0x58], xmm1
movsd xmm1, qword [rsp + 0x48]
movsd xmm0, qword [rsp + 0x30]
comisd xmm1, xmm0
jbe 0x1400c5742
movsd xmm1, qword [rsp + 0x48]
movsd xmm0, qword [rsp + 0x58]
addsd xmm1, xmm0
movsd qword [rsp + 0x58], xmm1
movzx edi, r11b
movsd xmm2, qword [rsp + 0x30]
movsd xmm0, qword [rsp + 0x38]
addsd xmm2, xmm0
movsd qword [rsp + 0x38], xmm2
movsd xmm1, qword [rsp + 0x30]
movsd xmm0, qword [rsp + 0x38]
addsd xmm1, xmm0
movsd qword [rsp + 0x38], xmm1
movsd xmm2, qword [rsp + 0x30]
movsd xmm0, qword [rsp + 0x38]
addsd xmm2, xmm0
movsd qword [rsp + 0x30], xmm2
jmp 0x1400c579a
movsd xmm1, qword [rsp + 0x38]
movsd xmm0, qword [rsp + 0x30]
subsd xmm1, xmm0
movsd qword [rsp + 0x38], xmm1
movsd xmm2, qword [rsp + 0x30]
movsd xmm0, qword [rsp + 0x38]
addsd xmm2, xmm0
movsd qword [rsp + 0x30], xmm2
movsd xmm1, qword [rsp + 0x30]
movsd xmm0, qword [rsp + 0x38]
addsd xmm1, xmm0
movsd qword [rsp + 0x38], xmm1
movsd xmm2, qword [rsp + 0x48]
movsd xmm0, qword [rsp + 0x58]
addsd xmm2, xmm0
movsd qword [rsp + 0x48], xmm2
movzx ebx, byte [rsi + 2]
sub bl, 6
shl bl, 4
movzx ecx, byte [rsi + 3]
sub cl, 0x51
or bl, cl
movzx r9d, dil
movzx r11d, byte [rbp + r9 + 0x2c0]
inc r12b
add r13b, byte [rsp + 0x40]
movzx r10d, r13b
movzx eax, byte [rbp + r10 + 0x2c0]
mov byte [rbp + r9 + 0x2c0], al
movzx r8d, dl
movzx eax, byte [rbp + r8 + 0x2c0]
mov byte [rbp + r10 + 0x2c0], al
movzx ecx, r12b
movzx eax, byte [rbp + rcx + 0x2c0]
mov byte [rbp + r8 + 0x2c0], al
mov byte [rbp + rcx + 0x2c0], r11b
add r15b, byte [rbp + r11 + 0x2c0]
movzx eax, r15b
movzx ecx, byte [rbp + rax + 0x2c0]
movzx eax, byte [rbp + r9 + 0x2c0]
add rcx, rax
movzx eax, byte [rbp + r8 + 0x2c0]
add rcx, rax
movzx eax, cl
movzx ecx, byte [rbp + rax + 0x2c0]
movzx eax, byte [rbp + r10 + 0x2c0]
add rax, r11
movzx eax, al
movzx edx, byte [rbp + rcx + 0x2c0]
xor dl, byte [rbp + rax + 0x2c0]
xor dl, bl
movsx eax, dl
mov word [rbp + 0x2a8], ax
movzx esi, byte [rsi + 4]
sub sil, 6
shl sil, 4
lea rax, [0x1408756e7]
movzx ecx, byte [rax + 5]
sub cl, 0x51
or sil, cl
movzx r9d, bl
movzx edi, byte [rbp + r9 + 0x2c0]
inc r12b
add r13b, r11b
movzx r10d, r13b
movzx eax, byte [rbp + r10 + 0x2c0]
mov byte [rbp + r9 + 0x2c0], al
movzx r8d, dl
movzx eax, byte [rbp + r8 + 0x2c0]
mov byte [rbp + r10 + 0x2c0], al
movzx ecx, r12b
movzx eax, byte [rbp + rcx + 0x2c0]
mov byte [rbp + r8 + 0x2c0], al
mov byte [rbp + rcx + 0x2c0], dil
add r15b, byte [rbp + rdi + 0x2c0]
movzx eax, r15b
movzx ecx, byte [rbp + rax + 0x2c0]
movzx eax, byte [rbp + r9 + 0x2c0]
add rcx, rax
movzx eax, byte [rbp + r8 + 0x2c0]
add rcx, rax
movzx eax, cl
movzx ecx, byte [rbp + rax + 0x2c0]
movzx eax, byte [rbp + r10 + 0x2c0]
add rax, rdi
movzx eax, al
movzx edx, byte [rbp + rcx + 0x2c0]
xor dl, byte [rbp + rax + 0x2c0]
xor dl, sil
movsx eax, dl
mov word [rbp + 0x2aa], ax
lea rcx, [0x1408756e7]
movzx ebx, byte [rcx + 6]
sub bl, 6
shl bl, 4
movzx ecx, byte [rcx + 7]
sub cl, 0x51
or bl, cl
movzx r10d, sil
movzx r11d, byte [rbp + r10 + 0x2c0]
inc r12b
add r13b, dil
movzx r9d, r13b
movzx eax, byte [rbp + r9 + 0x2c0]
mov byte [rbp + r10 + 0x2c0], al
movzx r8d, dl
movzx eax, byte [rbp + r8 + 0x2c0]
mov byte [rbp + r9 + 0x2c0], al
movzx ecx, r12b
movzx eax, byte [rbp + rcx + 0x2c0]
mov byte [rbp + r8 + 0x2c0], al
mov byte [rbp + rcx + 0x2c0], r11b
add r15b, byte [rbp + r11 + 0x2c0]
movzx eax, r15b
movzx ecx, byte [rbp + rax + 0x2c0]
movzx eax, byte [rbp + r8 + 0x2c0]
add rcx, rax
movzx eax, byte [rbp + r10 + 0x2c0]
add rcx, rax
movzx eax, cl
movzx ecx, byte [rbp + rax + 0x2c0]
movzx eax, byte [rbp + r9 + 0x2c0]
add rax, r11
movzx eax, al
movzx edx, byte [rbp + rcx + 0x2c0]
xor dl, byte [rbp + rax + 0x2c0]
xor dl, bl
movsx eax, dl
mov word [rbp + 0x2ac], ax
movzx r10d, bl
movzx r8d, byte [rbp + r10 + 0x2c0]
inc r12b
add r13b, r11b
movzx r11d, r13b
movzx eax, byte [rbp + r11 + 0x2c0]
mov byte [rbp + r10 + 0x2c0], al
movzx r9d, dl
movzx eax, byte [rbp + r9 + 0x2c0]
mov byte [rbp + r11 + 0x2c0], al
movzx ecx, r12b
movzx eax, byte [rbp + rcx + 0x2c0]
mov byte [rbp + r9 + 0x2c0], al
mov byte [rbp + rcx + 0x2c0], r8b
mov edx, r8d
add r15b, byte [rbp + r8 + 0x2c0]
lea rcx, [0x1408756e7]
movzx r8d, byte [rcx + 8]
sub r8b, 6
shl r8b, 4
movzx eax, byte [rcx + 9]
sub al, 0x51
or r8b, al
movzx eax, r15b
movzx ecx, byte [rbp + rax + 0x2c0]
movzx eax, byte [rbp + r10 + 0x2c0]
add rcx, rax
movzx eax, byte [rbp + r9 + 0x2c0]
add rcx, rax
movzx eax, cl
movzx ecx, byte [rbp + rax + 0x2c0]
xor r8b, byte [rbp + rcx + 0x2c0]
movzx eax, byte [rbp + r11 + 0x2c0]
add rax, rdx
movzx ecx, al
xor r8b, byte [rbp + rcx + 0x2c0]
movsx eax, r8b
mov word [rbp + 0x2ae], ax
xor r12d, r12d
mov word [rbp + 0x2b0], r12w
mov rbx, qword [rsp + 0x60]
mov rax, qword [rbx + 0x30]
lea rdx, [rbp + 0x30]
lea rcx, [rbp + 0x2a8]
call rax
mov qword [rsp + 0x38], rax
lea rcx, [rsp + 0x68]
call fcn.1400bfa90
nop
lea r9, [rsp + 0x54]
lea r8, [rbp + 0x280]
lea rdx, [rsp + 0x68]
mov rcx, rbx
call fcn.1400d53d0
lea rcx, [rsp + 0x50]
call fcn.1400bceb0
mov rsi, rax
mov qword [rsp + 0x48], rax
mov eax, dword [rsp + 0x54]
lea r15d, [rax*4]
mov dword [rsp + 0x54], r15d
lea r13, [fcn.140885410]
lea rdx, [rbp + 0x5c]
lea rcx, [rbp - 0x50]
call fcn.1400bfa20
nop
lea rdx, [rbp - 0x80]
lea rcx, [rbp - 0x50]
call fcn.1400e21c0
mov rdi, qword [rax]
lea rdx, [rbp - 0x78]
lea rcx, [rbp - 0x50]
call fcn.1400e2840
mov rbx, qword [rax]
lea rdx, [rbp - 0x70]
lea rcx, [rbp - 0x50]
call fcn.1400e21c0
mov qword [rsp + 0x20], r13
mov r9, rdi
mov r8, rbx
mov rdx, qword [rax]
lea rcx, [rbp - 0x68]
call fcn.1400bf5d0
lea rdx, [rbp - 0x60]
lea rcx, [rbp - 0x50]
call fcn.1400e2840
mov rbx, qword [rax]
lea rdx, [rbp - 0x58]
lea rcx, [rbp - 0x50]
call fcn.1400e21c0
mov r9, rsi
mov r8, rbx
mov rdx, qword [rax]
lea rcx, [rbp - 0x30]
call fcn.1400bef40
nop
lea rcx, [rbp - 0x10]
call fcn.1400ba980
nop
mov r8d, r15d
lea rdx, [rbp + 0x280]
lea rcx, [rbp - 0x10]
call fcn.1400bec10
lea rdx, [rbp - 0x30]
lea rcx, [rbp - 0x10]
call fcn.1400be820
lea rcx, [rbp - 0x10]
call fcn.1400bc340
lea rcx, [rsp + 0x68]
call fcn.1400e31f0
mov qword [rsp + 0x58], rax
mov r13d, r12d
test rax, rax
je 0x1400c5ce1
mov rsi, r12
nop word [rax + rax]
mov rdx, rsi
lea rcx, [rsp + 0x68]
call fcn.1400c1bf0
mov rcx, qword [rax]
add rcx, 8
call fcn.1400e31f0
mov r15, rax
mov ebx, r12d
test rax, rax
je 0x1400c5cc6
mov rdi, r12
lea rcx, [rbp - 0x10]
call fcn.1400bceb0
mov r12, rax
mov rdx, rsi
lea rcx, [rsp + 0x68]
call fcn.1400c1bf0
mov rcx, qword [rax]
add rcx, 8
mov rdx, rdi
call fcn.1400c1bf0
mov rdx, r12
mov rcx, qword [rax]
call fcn.1400da980
test al, al
je 0x1400c5cba
mov rdx, rsi
lea rcx, [rsp + 0x68]
call fcn.1400c1bf0
mov rcx, qword [rax]
cmp dword [rcx], 0x1000000
setne al
and r14b, al
inc ebx
mov edi, ebx
cmp rdi, r15
jb 0x1400c5c73
xor r12d, r12d
inc r13d
mov esi, r13d
cmp rsi, qword [rsp + 0x58]
jb 0x1400c5c40
mov rsi, qword [rsp + 0x48]
mov r15d, dword [rsp + 0x54]
lea rcx, [rbp - 0x10]
call fcn.1400b10a0
nop
lea rcx, [rbp - 0x30]
call fcn.1400bb000
nop
lea rcx, [rbp - 0x50]
call fcn.140091230
mov rax, qword [rsp + 0x60]
mov r8, qword [rax + 0x38]
lea rdx, [rbp + 0x30]
mov rcx, qword [rsp + 0x38]
call r8
test eax, eax
lea r13, [fcn.140885410]
jne 0x1400c5b63
lea rcx, [rsp + 0x68]
call fcn.1400c1a60
movzx eax, r14b
mov rcx, qword [rbp + 0x3c0]
xor rcx, rsp
call fcn.14087bc90
lea r11, [rsp + 0x520]
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rdi, qword [r11 + 0x48]
movaps xmm6, xmmword [r11 - 0x10]
movaps xmm7, xmmword [r11 - 0x20]
movaps xmm8, xmmword [r11 - 0x30]
movaps xmm9, xmmword [r11 - 0x40]
movaps xmm10, xmmword [r11 - 0x50]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret