Function at 0x140090dc0
Capabilities:
Encrypt data using rc4 ksa

Disassembly:
mov r11, rsp
push rbp
push rbx
push rdi
push r15
mov rbp, rsp
sub rsp, 0x68
mov rax, qword [section..data]
xor rax, rsp
mov qword [rbp - 0x18], rax
xor r15d, r15d
mov rbx, rcx
cmp qword [rcx + 0x588], r15
je 0x1400911eb
cmp dword [rcx + 0xd4], r15d
jne 0x1400911b1
mov qword [r11 + 0x10], rsi
mov qword [r11 + 0x18], r12
mov qword [r11 - 0x28], r14
call fcn.14005f0a0
movsd xmm1, qword [rbx + 0x620]
mov rdi, rax
movsd xmm0, qword [0x14013be90]
mov r12d, 0xffffffff
comisd xmm0, xmm1
ja 0x140090e4d
comisd xmm1, xmmword [0x14013bea8]
ja 0x140090e4d
mov rcx, rax
sub rcx, qword [rbx + 0x5f8]
add qword [rbx + 0x600], rcx
jmp 0x140090f5f
mulsd xmm1, qword [0x14013bf78]
mov r9, rdi
sub r9, qword [rbx + 0x5f8]
mov edx, r9d
mov r10d, r9d
mov qword [rbp - 0x28], r9
cvttsd2si ecx, xmm1
movsxd r8, ecx
mov eax, ecx
mov r11, r8
imul r10, rax
mov eax, ecx
sar r8, 0x20
shr r11, 0x20
imul r11, rdx
mov rdx, r9
sar r9, 0x20
shr rdx, 0x20
imul rdx, rax
mov ecx, r9d
mov eax, r8d
mov r8, r15
imul rcx, rax
mov r14d, edx
mov r9, rcx
mov esi, ecx
shr r9, 0x20
cmp rcx, r12
cmovbe rsi, rcx
cmovbe r9, r15
mov rcx, rdx
shr rcx, 0x20
cmp rdx, r12
cmovbe rcx, r15
cmovbe r14, rdx
cmp r11, r12
jbe 0x140090ede
mov rax, r11
mov r11d, r11d
shr rax, 0x20
add rcx, rax
cmp r10, r12
jbe 0x140090eed
mov r8, r10
mov r10d, r10d
shr r8, 0x20
lea rax, [r14 + r11]
add rcx, rsi
add r8, rax
cmp r10, r12
jbe 0x140090f09
mov rax, r10
mov r10d, r10d
shr rax, 0x20
add r8, rax
cmp r8, r12
jbe 0x140090f1b
mov rax, r8
mov r8d, r8d
shr rax, 0x20
add rcx, rax
cmp rcx, r12
jbe 0x140090f2c
mov rax, rcx
mov ecx, ecx
shr rax, 0x20
add r9, rax
mov dword [rbp - 0x34], r8d
lea rdx, [rbp - 0x20]
mov dword [rbp - 0x30], ecx
lea r8, [rbp - 0x28]
lea rcx, [rbp - 0x38]
mov dword [rbp - 0x38], r10d
mov dword [rbp - 0x2c], r9d
mov qword [rbp - 0x20], 0x10000
call fcn.140075290
mov rax, qword [rbp - 0x28]
add qword [rbx + 0x600], rax
mov ecx, dword [rbx + 0x5ac]
xor edx, edx
mov eax, dword [rbx + 0x5a8]
mov r11, qword [rbx + 0x600]
shl rax, 0x10
mov r8, r11
div rcx
mov ecx, r11d
mov qword [rbp - 0x28], r11
mov r10, rax
sar r11, 0x20
shr r10, 0x20
imul r10, rcx
mov edx, eax
shr r8, 0x20
imul r8, rdx
mov r9d, eax
mov rdx, r15
imul r9, rcx
sar rax, 0x20
mov ecx, r11d
mov eax, eax
imul rcx, rax
mov r14d, r8d
mov r11, rcx
mov esi, ecx
shr r11, 0x20
cmp rcx, r12
mov qword [rbx + 0x5f8], rdi
cmovbe rsi, rcx
cmovbe r11, r15
mov rcx, r8
shr rcx, 0x20
cmp r8, r12
cmovbe rcx, r15
cmovbe r14, r8
cmp r10, r12
jbe 0x140090ff7
mov rax, r10
mov r10d, r10d
shr rax, 0x20
add rcx, rax
cmp r9, r12
jbe 0x140091006
mov rdx, r9
mov r9d, r9d
shr rdx, 0x20
lea rax, [r14 + r10]
add rcx, rsi
mov r14, qword [rsp + 0x60]
add rdx, rax
mov rsi, qword [rsp + 0x98]
cmp r9, r12
jbe 0x14009102f
mov rax, r9
mov r9d, r9d
shr rax, 0x20
add rdx, rax
cmp rdx, r12
jbe 0x140091040
mov rax, rdx
mov edx, edx
shr rax, 0x20
add rcx, rax
cmp rcx, r12
mov r12, qword [rsp + 0xa0]
jbe 0x140091059
mov rax, rcx
mov ecx, ecx
shr rax, 0x20
add r11, rax
mov dword [rbp - 0x34], edx
lea r8, [rbp - 0x28]
mov dword [rbp - 0x30], ecx
lea rdx, [rbp - 0x20]
movabs rax, 0xf42400000
mov dword [rbp - 0x38], r9d
lea rcx, [rbp - 0x38]
mov qword [rbp - 0x20], rax
mov dword [rbp - 0x2c], r11d
call fcn.140075290
mov r9d, dword [rbp - 0x28]
mov ecx, dword [rbx + 0x5e0]
cmp ecx, r9d
jg 0x1400910ad
test byte [rbx + 0x84], 2
je 0x1400910a9
mov eax, r9d
cdq
idiv ecx
mov r9d, edx
jmp 0x1400910ad
lea r9d, [rcx - 1]
mov r10d, dword [rbx + 0x5f0]
cmp r10d, r9d
je 0x140091178
mov dword [rbx + 0x534], 1
jle 0x1400910e0
mov edx, r9d
mov rcx, rbx
call fcn.140090c10
mov qword [rbx + 0xa8], rdi
jmp 0x1400911c9
sub r9d, r10d
cmp r9d, 2
jne 0x14009113f
movabs r11, 0x6666666666666667
mov rax, r11
imul qword [rbx + 0x680]
mov rax, r11
mov r8, rdx
sar r8, 2
mov rcx, r8
shr rcx, 0x3f
add r8, rcx
imul r8
sar rdx, 2
mov rax, rdx
shr rax, 0x3f
add rax, rdx
add rax, qword [rbx + 0xa8]
sub rax, rdi
cqo
idiv r8
cmp rax, 2
jge 0x140091144
mov r9d, 1
jmp 0x140091144
test r9d, r9d
jle 0x14009116f
lea eax, [r10 + r9]
mov dword [rbx + 0x5f0], eax
cmp dword [rbx + 0x5c0], eax
jge 0x14009116f
xor r9d, r9d
mov dword [rbx + 0x650], r15d
xor r8d, r8d
mov rcx, rbx
lea edx, [r9 + 1]
call fcn.14008f490
mov qword [rbx + 0xa8], rdi
jmp 0x1400911c9
lea eax, [rcx - 1]
cmp r9d, eax
jl 0x1400911c9
test byte [rbx + 0x84], 2
jne 0x1400911c9
mov ecx, dword [rbx + 0x610]
cmp ecx, 0xffffffff
je 0x14009119e
call fcn.14002e540
cmp eax, 1
je 0x1400911c9
mov dword [rbx + 0xd0], r15d
mov dword [rbx + 0xd4], 1
jmp 0x1400911c9
mov eax, dword [rcx + 0x650]
test eax, eax
jne 0x1400911c9
xor r9d, r9d
lea edx, [rax + 1]
xor r8d, r8d
call fcn.14008f490
mov rax, qword [rbx + 0x570]
test rax, rax
je 0x1400911eb
mov rdx, qword [rbx + 0x578]
mov rcx, rbx
call rax
mov dword [rbx + 0xd8], 1
cmp qword [rbx + 0x658], r15
je 0x1400915f2
mov rax, qword [rbx + 0x678]
cmp dword [rax + 0x620], r15d
je 0x140091568
mov dword [rbx + 0x534], 1
mov dword [rax + 0x620], r15d
cmp qword [rbx + 0x570], r15
je 0x140091568
mov rcx, qword [rbx + 0x678]
cmp qword [rcx + 0x608], r15
je 0x140091548
cmp qword [rcx + 0x610], r15
je 0x140091254
cmp dword [rcx + 0x1ec], r15d
je 0x140091548
mov eax, dword [rcx + 0x628]
mov dword [rbx + 0x510], eax
mov eax, dword [rcx + 0x62c]
mov dword [rbx + 0x514], eax
mov eax, dword [rcx + 0x630]
mov dword [rbx + 0x518], eax
mov rax, qword [rcx + 0x608]
mov qword [rbx + 0x520], rax
mov dword [rbx + 0x530], 1
mov eax, dword [rcx + 0x200]
test eax, eax
jne 0x1400912b1
lea r8, [rbx + 0xe8]
mov word [r8 + 4], 0x1803
mov qword [r8 + 0x20], r15
jmp 0x1400914f9
cmp eax, 1
jne 0x140091316
cmp dword [rbx + 0xc8], r15d
je 0x140091316
lea r8, [rbx + 0xe8]
mov dword [r8 + 4], 0x2004
mov qword [r8 + 0x20], r15
mov word [r8 + 0xe], 0x1800
mov dword [r8 + 0x1c], 0xff000000
mov word [r8 + 0xb], 0x1008
mov dword [r8 + 0x10], 0xff0000
mov word [r8 + 8], 0x808
mov byte [r8 + 0xd], 8
mov dword [r8 + 0x14], 0xff00
mov dword [r8 + 0x18], 0xff
mov byte [r8 + 0xa], 8
jmp 0x14009152e
lea r8, [rbx + 0xe8]
cmp eax, 8
jne 0x140091362
mov word [r8 + 4], 0x1002
mov qword [r8 + 0x20], r15
mov qword [r8 + 0x18], 0x1f
mov word [r8 + 0xb], 0xb00
mov dword [r8 + 0x10], 0xf800
mov word [r8 + 8], 0x605
mov byte [r8 + 0xd], 5
mov dword [r8 + 0x14], 0x7e0
mov byte [r8 + 0xa], 5
jmp 0x140091529
cmp eax, 9
jne 0x1400913ab
mov word [r8 + 4], 0x1002
mov qword [r8 + 0x20], 0x8000
mov qword [r8 + 0x18], 0x1f
mov word [r8 + 0xb], 0xa00
mov dword [r8 + 0x10], 0x7c00
mov word [r8 + 8], 0x505
mov byte [r8 + 0xd], 5
mov dword [r8 + 0x14], 0x3e0
mov byte [r8 + 0xa], 5
jmp 0x140091529
mov dword [r8 + 0x20], 0xff000000
cmp eax, 0xa
jne 0x1400914ed
mov dword [r8], r15d
lea r10, [r8 + 0x29]
mov word [r8 + 4], 0x801
mov r9d, r15d
mov dword [r8 + 0x24], 0xff
mov r11d, 0x100
mov word [r8 + 0xe], r15w
mov qword [r8 + 0x18], 0xff
mov word [r8 + 0xb], 0x1000
mov dword [r8 + 0x10], 0xff0000
mov word [r8 + 8], 0x808
mov byte [r8 + 0xd], 8
mov dword [r8 + 0x14], 0xff00
mov byte [r8 + 0xa], 8
mov eax, r9d
mov byte [r10 + 2], r15b
and eax, 7
lea r10, [r10 + 4]
imul ecx, eax, 0xff
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, r9d
shr eax, 3
and eax, 7
mov byte [r10 - 3], dl
imul ecx, eax, 0xff
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, r9d
shr eax, 5
inc r9d
and al, 3
mov byte [r10 - 4], dl
movzx eax, al
imul ecx, eax, 0x55
mov byte [r10 - 5], cl
cmp r9d, r11d
jl 0x140091410
mov r10d, 0xf2
lea r9, [rbx + 0x112]
sub r10, rbx
mov rdi, 0xfffffffffffffeee
sub rdi, rbx
nop word [rax + rax]
mov byte [r9 + 1], 0xff
lea rdx, [rdi + r9]
mov rax, qword [rbx + 0x678]
movzx ecx, byte [rdx + rax + 0x206]
mov byte [r9], cl
mov rax, qword [rbx + 0x678]
movzx ecx, byte [rdx + rax + 0x205]
mov byte [r9 - 1], cl
lea rcx, [r10 + r9]
mov rax, qword [rbx + 0x678]
lea r9, [r9 + 4]
movzx ecx, byte [rcx + rax]
mov byte [r9 - 6], cl
sub r11, 1
jne 0x1400914a0
jmp 0x140091531
mov dword [r8 + 4], 0x8182004
mov dword [r8 + 0x24], r15d
mov byte [r8 + 0xa], 8
mov dword [r8 + 0x14], 0xff00
mov byte [r8 + 0xd], 8
mov word [r8 + 8], 0x808
mov dword [r8 + 0x10], 0xff0000
mov word [r8 + 0xb], 0x1000
mov qword [r8 + 0x18], 0xff
mov word [r8 + 0xe], r15w
mov dword [r8], r15d
mov rdx, qword [rbx + 0x578]
mov rcx, rbx
mov qword [rbx + 0x538], r8
call qword [rbx + 0x570]
mov rax, qword [rbx + 0x678]
cmp qword [rax + 0x610], r15
je 0x140091568
mov rdx, qword [rbx + 0x578]
mov rcx, rbx
call qword [rbx + 0x570]
mov rcx, qword [rbx + 0x668]
test rcx, rcx
je 0x1400915f2
cmp qword [rbx + 0x660], r15
je 0x1400915f2
mov rax, qword [rcx]
lea rdx, [rbp - 0x20]
call qword [rax + 0x60]
mov rax, qword [rbx + 0xb0]
cmp qword [rbp - 0x20], rax
jl 0x1400915f2
test byte [rbx + 0x84], 2
je 0x1400915d4
mov rcx, qword [rbx + 0x668]
lea r9, [rbp - 0x28]
mov qword [rbp - 0x20], r15
lea rdx, [rbp - 0x20]
mov qword [rbp - 0x28], r15
mov r8d, 1
mov dword [rsp + 0x20], r15d
mov rax, qword [rcx]
call qword [rax + 0x70]
mov rcx, qword [rbx + 0x660]
mov rax, qword [rcx]
call qword [rax + 0x38]
jmp 0x1400915f2
mov rcx, qword [rbx + 0x660]
mov rax, qword [rcx]
call qword [rax + 0x40]
mov dword [rbx + 0xd0], r15d
mov dword [rbx + 0xd4], 1
xor eax, eax
mov rcx, qword [rbp - 0x18]
xor rcx, rsp
call fcn.140107200
add rsp, 0x68
pop r15
pop rdi
pop rbx
pop rbp
ret