Function at 0xb40560
Capabilities:
Encrypt data using rc4 ksa

Disassembly:
push rbp
push r13
push rdi
push rsi
push rbx
sub rsp, 0xe0
mov rbp, rsp
movdqa xmmword [rbp + 0xd0], xmm10
movdqa xmmword [rbp + 0xc0], xmm9
movdqa xmmword [rbp + 0xb0], xmm8
movdqa xmmword [rbp + 0xa0], xmm7
movdqa xmmword [rbp + 0x90], xmm6
mov qword [rbp + 0x28], rcx
mov qword [rbp + 0x30], rdx
mov qword [rbp + 0x38], r9
mov dword [rbp + 0x120], r8d
mov rax, qword [rbp + 0x28]
mov rcx, rax
mov rax, qword [rax]
call qword [rax + 0x30]
cmp al, 1
jne 0xb405da
mov rcx, qword [rbp + 0x30]
mov rdx, qword [rbp + 0x28]
mov rax, qword [rbp + 0x30]
mov rbx, qword [rax]
call qword [rbx + 0x80]
jmp 0xb40d78
mov rax, qword [rbp + 0x28]
mov rcx, rax
mov rax, qword [rax]
call qword [rax + 0x18]
mov dword [rbp + 0x40], eax
mov rax, qword [rbp + 0x28]
mov rcx, rax
mov rax, qword [rax]
call qword [rax + 0x10]
mov dword [rbp + 0x48], eax
call fcn.00ad82f0
mov eax, dword [rax + 0x104]
mov dword [rbp + 0x80], eax
call fcn.00ad82f0
mov eax, dword [rax + 0x108]
mov dword [rbp + 0x7c], eax
call fcn.00ad82f0
mov eax, dword [rax + 0x10c]
mov dword [rbp + 0x78], eax
mov eax, dword [rbp + 0x48]
cvtsi2sd xmm0, eax
addsd xmm0, qword [0x00b40dc0]
movsd xmm1, qword [0x00b40db8]
divsd xmm1, xmm0
mov rax, qword [rbp + 0x38]
movsd qword [rax + 0x20], xmm1
xor rdi, rdi
xor rax, rax
mov qword [rbp + 0x50], rax
mov eax, dword [rbp + 0x120]
add eax, 2
test eax, eax
je 0xb406b2
sub eax, 1
test eax, eax
jne 0xb4087c
mov rcx, qword [rbp + 0x28]
lea rdx, [rbp + 0x6c]
lea r8, [rbp + 0x68]
lea r9, [rbp + 0x64]
call fcn.00b12560
mov eax, dword [rbp + 0x6c]
imul eax, dword [rbp + 0x80]
mov ecx, dword [rbp + 0x68]
imul ecx, dword [rbp + 0x7c]
add eax, ecx
mov ecx, dword [rbp + 0x64]
imul ecx, dword [rbp + 0x78]
add eax, ecx
mov ecx, 0x64
cdq
idiv ecx
mov dword [rbp + 0x120], eax
jmp 0xb4087c
mov ecx, 0x400
call fcn.00408ef0
mov rdi, rax
mov rcx, qword [rbp + 0x28]
mov rdx, rdi
call fcn.00b3fd60
mov ecx, 0x800
call fcn.00408ef0
mov qword [rbp + 0x50], rax
mov eax, dword [rbp + 0x40]
mov ecx, dword [rbp + 0x48]
imul eax, ecx
xor rbx, rbx
movsxd rcx, ebx
movsxd rdx, ebx
cvtsi2sd xmm0, dword [rdi + rdx*4]
cvtsi2sd xmm1, eax
divsd xmm0, xmm1
mov rdx, qword [rbp + 0x50]
movsd qword [rdx + rcx*8], xmm0
add ebx, 1
cmp ebx, 0x100
jne 0xb406e7
nop
movsd xmm6, qword [0x00b40dc8]
movsd xmm10, qword [0x00b40dc8]
xor rbx, rbx
movsxd rax, ebx
mov rcx, qword [rbp + 0x50]
movsd xmm0, qword [rcx + rax*8]
ucomisd xmm0, qword [0x00b40dc8]
jp 0xb4073b
je 0xb40760
movsxd rax, ebx
mov rcx, qword [rbp + 0x50]
movsd xmm0, qword [rcx + rax*8]
call fcn.0040b970
movsxd rax, ebx
mov rcx, qword [rbp + 0x50]
movsd xmm1, qword [rcx + rax*8]
mulsd xmm1, xmm0
subsd xmm6, xmm1
add ebx, 1
cmp ebx, 0x100
jne 0xb40723
nop
movsd xmm7, qword [0x00b40dc8]
mov ebx, 1
movsd xmm8, qword [0x00b40dc8]
movsd xmm9, qword [0x00b40dc8]
xor rsi, rsi
mov r13d, ebx
sub r13d, 1
cmp esi, r13d
jg 0xb407f0
add r13d, 1
movsxd rax, esi
mov rcx, qword [rbp + 0x50]
addsd xmm8, qword [rcx + rax*8]
movsxd rax, esi
mov rcx, qword [rbp + 0x50]
movsd xmm0, qword [rcx + rax*8]
comisd xmm0, xmmword [0x00b40dc8]
jbe 0xb407e8
movsxd rax, esi
mov rcx, qword [rbp + 0x50]
movsd xmm0, qword [rcx + rax*8]
call fcn.0040b970
movsxd rax, esi
mov rcx, qword [rbp + 0x50]
movsd xmm1, qword [rcx + rax*8]
mulsd xmm1, xmm0
subsd xmm9, xmm1
add esi, 1
cmp esi, r13d
jne 0xb4079f
nop
comisd xmm8, xmmword [0x00b40dc8]
jbe 0xb4085a
movsd xmm0, qword [0x00b40dd0]
comisd xmm0, xmm8
jbe 0xb4085a
movapd xmm0, xmm8
mulsd xmm0, xmm8
movapd xmm1, xmm8
subsd xmm1, xmm0
movapd xmm0, xmm1
call fcn.0040b970
movapd xmm1, xmm9
divsd xmm1, xmm8
movapd xmm10, xmm0
addsd xmm10, xmm1
movapd xmm0, xmm6
subsd xmm0, xmm9
movsd xmm1, qword [0x00b40dd0]
subsd xmm1, xmm8
divsd xmm0, xmm1
addsd xmm10, xmm0
comisd xmm10, xmm7
jbe 0xb4086c
movapd xmm7, xmm10
mov dword [rbp + 0x120], ebx
add ebx, 1
cmp ebx, 0x100
jne 0xb4077a
nop
test rdi, rdi
je 0xb40889
mov rcx, rdi
call fcn.00408f20
mov rax, qword [rbp + 0x50]
test rax, rax
je 0xb4089b
mov rcx, qword [rbp + 0x50]
call fcn.00408f20
xor rax, rax
mov ecx, dword [rbp + 0x48]
sub ecx, 1
mov dword [rbp + 0x44], ecx
mov ecx, dword [rbp + 0x44]
cmp eax, ecx
mov dword [rbp + 0x4c], eax
jg 0xb40d77
mov eax, dword [rbp + 0x44]
add eax, 1
mov dword [rbp + 0x44], eax
mov rcx, qword [rbp + 0x30]
mov edx, dword [rbp + 0x4c]
mov rax, qword [rbp + 0x30]
mov rax, qword [rax]
call qword [rax]
mov qword [rbp + 0x70], rax
mov rax, qword [rbp + 0x28]
mov rcx, rax
mov rax, qword [rax]
call qword [rax + 0x30]
movzx rax, al
cmp rax, 6
jg 0xb40928
cmp rax, 6
je 0xb40b5e
sub rax, 2
test rax, rax
je 0xb40961
sub rax, 1
test rax, rax
je 0xb409c9
sub rax, 1
test rax, rax
je 0xb40a30
sub rax, 1
test rax, rax
jne 0xb40d1a
jmp 0xb40aa1
sub rax, 7
test rax, rax
je 0xb40bfe
sub rax, 1
test rax, rax
je 0xb40cb6
sub rax, 1
test rax, rax
je 0xb40c5b
sub rax, 1
test rax, rax
jne 0xb40d1a
jmp 0xb40af2
mov rcx, qword [rbp + 0x28]
mov edx, dword [rbp + 0x4c]
mov rax, qword [rbp + 0x28]
mov rax, qword [rax]
call qword [rax]
mov rbx, rax
xor rax, rax
mov esi, dword [rbp + 0x40]
sub esi, 1
mov dword [rbp + 0x88], eax
cmp dword [rbp + 0x88], esi
jg 0xb409c3
add esi, 1
mov rcx, qword [rbp + 0x28]
lea rdx, [rbp + 0x58]
movzx r8, byte [rbx]
mov rax, qword [rbp + 0x28]
mov rdi, qword [rax]
call qword [rdi + 0x48]
mov rcx, rbp
lea rdx, [rbp + 0x58]
call fcn.00b403e0
add rbx, 1
add dword [rbp + 0x88], 1
cmp dword [rbp + 0x88], esi
jne 0xb4098e
nop
jmp 0xb40d1a
mov rcx, qword [rbp + 0x28]
mov edx, dword [rbp + 0x4c]
mov rax, qword [rbp + 0x28]
mov rax, qword [rax]
call qword [rax]
mov rbx, rax
xor rax, rax
mov esi, dword [rbp + 0x40]
sub esi, 1
mov dword [rbp + 0x88], eax
cmp dword [rbp + 0x88], esi
jg 0xb40a2a
add esi, 1
lea rcx, [rbp + 0x58]
movzx rdx, byte [rbx]
movzx r8, byte [rbx]
movzx r9, byte [rbx]
call fcn.00ad4200
mov rcx, rbp
lea rdx, [rbp + 0x58]
call fcn.00b403e0
add rbx, 1
add dword [rbp + 0x88], 1
cmp dword [rbp + 0x88], esi
jne 0xb409f6
nop
jmp 0xb40d1a
mov rcx, qword [rbp + 0x28]
mov edx, dword [rbp + 0x4c]
mov rax, qword [rbp + 0x28]
mov rax, qword [rax]
call qword [rax]
mov rbx, rax
xor rax, rax
mov esi, dword [rbp + 0x40]
sub esi, 1
mov dword [rbp + 0x88], eax
cmp dword [rbp + 0x88], esi
jg 0xb40a9b
add esi, 1
lea rcx, [rbp + 0x58]
movzx edx, word [rbx]
shr edx, 8
movzx r8d, word [rbx]
shr r8d, 8
movzx r9d, word [rbx]
shr r9d, 8
call fcn.00ad4200
mov rcx, rbp
lea rdx, [rbp + 0x58]
call fcn.00b403e0
add rbx, 2
add dword [rbp + 0x88], 1
cmp dword [rbp + 0x88], esi
jne 0xb40a5d
nop
jmp 0xb40d1a
mov rcx, qword [rbp + 0x28]
mov edx, dword [rbp + 0x4c]
mov rax, qword [rbp + 0x28]
mov rax, qword [rax]
call qword [rax]
mov rbx, rax
xor rax, rax
mov esi, dword [rbp + 0x40]
sub esi, 1
mov dword [rbp + 0x88], eax
cmp dword [rbp + 0x88], esi
jg 0xb40aec
add esi, 1
mov rcx, rbp
mov rdx, rbx
call fcn.00b403e0
add rbx, 3
add dword [rbp + 0x88], 1
cmp dword [rbp + 0x88], esi
jne 0xb40ace
nop
jmp 0xb40d1a
mov rcx, qword [rbp + 0x28]
mov edx, dword [rbp + 0x4c]
mov rax, qword [rbp + 0x28]
mov rax, qword [rax]
call qword [rax]
mov rbx, rax
xor rax, rax
mov esi, dword [rbp + 0x40]
sub esi, 1
mov dword [rbp + 0x88], eax
cmp dword [rbp + 0x88], esi
jg 0xb40b58
add esi, 1
mov rax, rbx
lea rcx, [rbp + 0x58]
movzx rdx, byte [rax + 2]
movzx r8, byte [rax + 1]
movzx r9, byte [rax]
call fcn.00ad4200
mov rcx, rbp
lea rdx, [rbp + 0x58]
call fcn.00b403e0
add rbx, 4
add dword [rbp + 0x88], 1
cmp dword [rbp + 0x88], esi
jne 0xb40b1f
nop
jmp 0xb40d1a
mov rcx, qword [rbp + 0x28]
mov edx, dword [rbp + 0x4c]
mov rax, qword [rbp + 0x28]
mov rax, qword [rax]
call qword [rax]
mov rbx, rax
xor rax, rax
mov esi, dword [rbp + 0x40]
sub esi, 1
mov dword [rbp + 0x88], eax
cmp dword [rbp + 0x88], esi
jg 0xb40bf8
add esi, 1
cvtss2sd xmm0, dword [rbx]
mulsd xmm0, qword [0x00b40dd8]
call fcn.0040bef0
mov rdi, rax
cvtss2sd xmm0, dword [rbx]
mulsd xmm0, qword [0x00b40dd8]
call fcn.0040bef0
mov r13, rax
cvtss2sd xmm0, dword [rbx]
mulsd xmm0, qword [0x00b40dd8]
call fcn.0040bef0
lea rcx, [rbp + 0x58]
mov edx, edi
mov r8d, r13d
mov r9d, eax
call fcn.00ad4200
mov rcx, rbp
lea rdx, [rbp + 0x58]
call fcn.00b403e0
add rbx, 4
add dword [rbp + 0x88], 1
cmp dword [rbp + 0x88], esi
jne 0xb40b8b
nop
jmp 0xb40d1a
mov rcx, qword [rbp + 0x28]
mov edx, dword [rbp + 0x4c]
mov rax, qword [rbp + 0x28]
mov rax, qword [rax]
call qword [rax]
mov rbx, rax
xor rax, rax
mov esi, dword [rbp + 0x40]
sub esi, 1
mov dword [rbp + 0x88], eax
cmp dword [rbp + 0x88], esi
jg 0xb40c55
add esi, 1
lea rcx, [rbp + 0x58]
mov edx, dword [rbx]
call fcn.00c62ee0
mov rcx, rbp
lea rdx, [rbp + 0x58]
call fcn.00b403e0
add rbx, 4
add dword [rbp + 0x88], 1
cmp dword [rbp + 0x88], esi
jne 0xb40c2b
nop
jmp 0xb40d1a
mov rcx, qword [rbp + 0x28]
mov edx, dword [rbp + 0x4c]
mov rax, qword [rbp + 0x28]
mov rax, qword [rax]
call qword [rax]
mov rbx, rax
xor rax, rax
mov esi, dword [rbp + 0x40]
sub esi, 1
mov dword [rbp + 0x88], eax
cmp dword [rbp + 0x88], esi
jg 0xb40cb3
add esi, 1
lea rcx, [rbp + 0x58]
mov rdx, rbx
call fcn.00ac66a0
mov rcx, rbp
lea rdx, [rbp + 0x58]
call fcn.00b403e0
add rbx, 3
add dword [rbp + 0x88], 1
cmp dword [rbp + 0x88], esi
jne 0xb40c88
nop
jmp 0xb40d1a
mov rcx, qword [rbp + 0x28]
mov edx, dword [rbp + 0x4c]
mov rax, qword [rbp + 0x28]
mov rax, qword [rax]
call qword [rax]
mov rbx, rax
xor rax, rax
mov esi, dword [rbp + 0x40]
sub esi, 1
mov dword [rbp + 0x88], eax
cmp dword [rbp + 0x88], esi
jg 0xb40d19
add esi, 1
movzx rax, byte [rbx]
mov byte [rbp + 0x63], al
movzx rax, byte [rbx + 2]
mov byte [rbp + 0x62], al
movzx rax, byte [rbx + 4]
mov byte [rbp + 0x61], al
mov rcx, rbp
lea rdx, [rbp + 0x61]
call fcn.00b403e0
add rbx, 6
add dword [rbp + 0x88], 1
cmp dword [rbp + 0x88], esi
jne 0xb40ce3
nop
mov rax, qword [rbp + 0x38]
cmp qword [rax], 0
je 0xb40d5d
mov eax, dword [rbp + 0x4c]
add eax, 1
cvtsi2sd xmm0, eax
mov rax, qword [rbp + 0x38]
movsd xmm1, qword [rax + 0x20]
mulsd xmm1, xmm0
movapd xmm0, xmm1
call fcn.0040bef0
mov rcx, qword [rbp + 0x38]
mov rcx, qword [rcx + 8]
mov rdx, qword [rbp + 0x38]
mov rdx, qword [rdx + 0x10]
mov r8d, eax
mov rbx, qword [rbp + 0x38]
call qword [rbx]
mov eax, dword [rbp + 0x4c]
add eax, 1
mov dword [rbp + 0x4c], eax
mov eax, dword [rbp + 0x4c]
mov ecx, dword [rbp + 0x44]
cmp eax, ecx
mov dword [rbp + 0x4c], eax
jne 0xb408be
nop
movdqa xmm6, xmmword [rbp + 0x90]
movdqa xmm7, xmmword [rbp + 0xa0]
movdqa xmm8, xmmword [rbp + 0xb0]
movdqa xmm9, xmmword [rbp + 0xc0]
movdqa xmm10, xmmword [rbp + 0xd0]
lea rsp, [rbp + 0xe0]
pop rbx
pop rsi
pop rdi
pop r13
pop rbp
ret