Function at 0x1400b2f70
Capabilities:
Encrypt data using rc4 ksa

Disassembly:
mov word [rsp + 0x10], dx
mov qword [rsp + 8], rcx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0xa8
mov rdi, rcx
xor ecx, ecx
mov esi, 1
mov r12, qword [rdi]
movzx r15d, byte [rdi + 0x39]
movzx r14d, dx
mov rax, qword [r12]
mov dword [rsp + 0x108], ecx
movzx ebp, cx
mov qword [rsp + 0x90], r12
mov dword [rsp + 0x64], r15d
mov qword [rsp + 0x80], rax
cmp r15d, esi
jg 0x1400b2fcf
mov ebx, esi
jmp 0x1400b2fe0
mov ebx, 0xa
mov ecx, 5
cmp r15d, 2
cmove ebx, ecx
lea edx, [r15 + 4]
mov rcx, rax
mov dword [rsp + 0x100], ebx
imul edx, ebx
shl edx, 4
call fcn.140040e50
mov r13, rax
mov qword [rsp + 0x78], rax
test rax, rax
jne 0x1400b300f
lea eax, [r13 + 7]
jmp 0x1400b3785
xor ecx, ecx
mov r9, rax
mov qword [rsp + 0x50], rax
movsxd rax, ebx
shl rax, 5
lea r10, [rax + r13]
mov qword [rsp + 0x88], r10
mov qword [r10], rcx
mov qword [r10 + 8], rcx
lea rdx, [rax + r10]
lea eax, [rbx + rbx]
mov qword [r10 + 0x10], rcx
mov qword [r10 + 0x18], rcx
test eax, eax
jle 0x1400b3061
mov r8, r15
lea rcx, [r13 + 0x18]
shl r8, 3
mov qword [rcx], rdx
dec eax
add rdx, r8
lea rcx, [rcx + 0x20]
test eax, eax
jg 0x1400b3051
mov eax, dword [r12 + 0x1d8]
mov ecx, 0x2e
cmp eax, ecx
cmovb ecx, eax
mov word [r10 + 0x10], cx
cmp qword [rdi + 0x10], 0
mov ecx, esi
je 0x1400b30a5
test r14w, r14w
je 0x1400b30a5
or edx, 0xffffffff
mov eax, esi
test r15d, r15d
cmovg eax, edx
xor r8d, r8d
mov byte [r10 + 0x14], al
mov rax, qword [rdi + 0x10]
mov edx, dword [rax]
mov dword [rsp + 0x60], edx
jmp 0x1400b30b2
xor r8d, r8d
mov byte [r10 + 0x14], 0
mov dword [rsp + 0x60], r8d
mov edx, r8d
mov r11d, 0x400
mov dword [rsp + 0x48], edx
test r15d, r15d
jle 0x1400b35e7
mov r14, r8
mov qword [rsp + 0x58], r8
mov r12d, r8d
test ecx, ecx
jle 0x1400b3570
lea rbx, [r10 + 0x10]
mov eax, ecx
mov qword [rsp + 0x40], rbx
mov qword [rsp + 0x70], rax
nop dword [rax + rax]
mov r15, qword [rdi + 0x20]
test r15, r15
je 0x1400b3548
nop dword [rax]
mov r9, qword [rbx - 0x10]
movzx r11d, byte [rbx + 4]
lea r13, [rbx - 0x10]
mov rax, r9
mov qword [rsp + 0x68], r8
not rax
test qword [r15], rax
jne 0x1400b3529
mov r14, qword [r15 + 8]
test r9, r14
jne 0x1400b3524
movzx r10d, word [rbx]
movzx edx, word [r15 + 0x14]
movzx edi, word [r15 + 0x12]
add dx, r10w
lea rsi, [0x140000000]
cmp di, dx
jl 0x1400b3180
movsx ecx, dx
movsx r8d, di
lea eax, [rcx + 0x31]
cmp r8d, eax
jg 0x1400b31b7
lea eax, [rcx + 0x1f]
cmp r8d, eax
jle 0x1400b3168
inc di
jmp 0x1400b31b7
movsx rcx, di
movsx rax, dx
sub rcx, rax
movzx eax, byte [rcx + rsi + 0x139a88]
add di, ax
jmp 0x1400b31b7
movsx ecx, di
movsx r8d, dx
lea eax, [rcx + 0x31]
cmp r8d, eax
jle 0x1400b3194
movzx edi, dx
jmp 0x1400b31b7
lea eax, [rcx + 0x1f]
cmp r8d, eax
jle 0x1400b31a1
lea edi, [rdx + 1]
jmp 0x1400b31b7
movsx rax, di
movsx rcx, dx
sub rcx, rax
movzx edi, byte [rcx + rsi + 0x139a88]
add di, dx
movzx edx, word [rbx + 2]
cmp di, dx
jl 0x1400b31f4
movsx ecx, dx
movsx r8d, di
lea eax, [rcx + 0x31]
cmp r8d, eax
jg 0x1400b322b
lea eax, [rcx + 0x1f]
cmp r8d, eax
jle 0x1400b31dc
inc di
jmp 0x1400b322b
movsx rax, dx
movsx rcx, di
sub rcx, rax
movzx eax, byte [rcx + rsi + 0x139a88]
add di, ax
jmp 0x1400b322b
movsx ecx, di
movsx r8d, dx
lea eax, [rcx + 0x31]
cmp r8d, eax
jle 0x1400b3208
movzx edi, dx
jmp 0x1400b322b
lea eax, [rcx + 0x1f]
cmp r8d, eax
jle 0x1400b3215
lea edi, [rdx + 1]
jmp 0x1400b322b
movsx rax, di
movsx rcx, dx
sub rcx, rax
movzx edi, byte [rcx + rsi + 0x139a88]
add di, dx
movzx esi, word [r15 + 0x16]
or r14, r9
add si, r10w
test r11b, r11b
jns 0x1400b33d8
mov rbx, qword [rsp + 0xf0]
lea rax, [rsp + 0x68]
mov r8, r13
movzx r9d, word [rbx + 0x32]
mov rdx, qword [rbx + 0x10]
mov qword [rsp + 0x30], rax
mov eax, dword [rsp + 0x48]
mov rcx, rbx
mov qword [rsp + 0x28], r15
mov word [rsp + 0x20], ax
call fcn.1400b2810
movzx r11d, al
test al, al
js 0x1400b33e1
mov r8d, dword [rsp + 0x60]
movsx edx, al
cmp edx, r8d
jge 0x1400b33e1
mov ecx, r8d
sub ecx, edx
imul eax, ecx, 0x64
cdq
idiv r8d
movsxd rcx, eax
mov eax, 0x28
cmp rcx, 8
jae 0x1400b32cf
cmp rcx, 2
jae 0x1400b32c0
xor ecx, ecx
movzx r9d, cx
jmp 0x1400b3329
add rcx, rcx
add ax, 0xfff6
cmp rcx, 8
jb 0x1400b32c0
jmp 0x1400b330d
cmp rcx, 0xff
jbe 0x1400b32f1
nop dword [rax + rax]
shr rcx, 4
add ax, 0x28
cmp rcx, 0xff
ja 0x1400b32e0
cmp rcx, 0xf
jbe 0x1400b330d
nop word [rax + rax]
shr rcx, 1
add ax, 0xa
cmp rcx, 0xf
ja 0x1400b3300
and ecx, 7
lea rdx, [0x140000000]
movzx r9d, word [rdx + rcx*2 + 0x138d28]
sub r9w, 0xa
add r9w, ax
movzx r10d, word [rsp + 0xf8]
movzx ecx, r10w
call fcn.1400ad0d0
sub r9w, 0x32
add r9w, r10w
lea r8d, [r9 + rax]
mov eax, 0x400
test word [rbx + 0x32], ax
je 0x1400b3358
add r8w, 0x10
cmp di, r8w
jl 0x1400b3397
movsx ecx, r8w
movsx edx, di
lea eax, [rcx + 0x31]
cmp edx, eax
jg 0x1400b33e1
lea eax, [rcx + 0x1f]
cmp edx, eax
jle 0x1400b3378
inc di
jmp 0x1400b33e1
movsx rax, r8w
movsx rcx, di
sub rcx, rax
lea rax, [0x140000000]
movzx eax, byte [rcx + rax + 0x139a88]
add di, ax
jmp 0x1400b33e1
movsx ecx, di
movsx edx, r8w
lea eax, [rcx + 0x31]
cmp edx, eax
jle 0x1400b33ab
movzx edi, r8w
jmp 0x1400b33e1
lea eax, [rcx + 0x1f]
cmp edx, eax
jle 0x1400b33b8
lea edi, [r8 + 1]
jmp 0x1400b33e1
movsx rax, di
movsx rcx, r8w
sub rcx, rax
lea rax, [0x140000000]
movzx edi, byte [rcx + rax + 0x139a88]
add di, r8w
jmp 0x1400b33e1
mov rax, qword [rbx - 8]
mov qword [rsp + 0x68], rax
mov r9, qword [rsp + 0x50]
xor r8d, r8d
mov rbx, r9
mov ecx, r8d
test r12d, r12d
jle 0x1400b3429
cmp qword [rbx], r14
jne 0x1400b341e
movzx eax, byte [rbx + 0x14]
xor al, r11b
test al, 0x50
jne 0x1400b341e
movzx eax, word [rbx + 0x12]
cmp ax, di
jg 0x1400b3418
cmp word [rbx + 0x10], si
jle 0x1400b3441
cmp ax, di
jl 0x1400b341e
cmp word [rbx + 0x10], si
jge 0x1400b3441
inc ecx
add rbx, 0x20
cmp ecx, r12d
jl 0x1400b33f4
cmp r12d, dword [rsp + 0x100]
jl 0x1400b3466
cmp di, bp
jge 0x1400b3452
mov eax, dword [rsp + 0x108]
jmp 0x1400b346c
cmp ecx, r12d
jge 0x1400b3429
cmp word [rbx + 0x12], di
jg 0x1400b3476
cmp word [rbx + 0x10], si
jg 0x1400b3476
mov rbx, qword [rsp + 0x40]
mov r14, qword [rsp + 0x58]
mov esi, 1
jmp 0x1400b352e
mov eax, r12d
inc r12d
movsxd rbx, eax
shl rbx, 5
add rbx, r9
mov rax, qword [r15 + 8]
mov rdx, qword [rsp + 0x40]
mov r14, qword [rsp + 0x58]
or rax, qword [r13]
mov rcx, qword [rbx + 0x18]
mov word [rbx + 0x10], si
mov qword [rbx], rax
mov rax, qword [rsp + 0x68]
mov word [rbx + 0x12], di
mov byte [rbx + 0x14], r11b
mov qword [rbx + 8], rax
mov rdx, qword [rdx + 8]
mov r8, r14
call fcn.1400dc430
mov rax, qword [rbx + 0x18]
mov ebx, dword [rsp + 0x100]
mov r9, qword [rsp + 0x50]
mov qword [r14 + rax], r15
mov esi, 1
cmp r12d, ebx
jl 0x1400b351a
movzx ebp, word [r9 + 0x12]
movzx r8d, word [r9 + 0x10]
xor ecx, ecx
mov edx, esi
mov dword [rsp + 0x108], ecx
cmp ebx, edx
jle 0x1400b351a
lea rax, [r9 + 0x32]
nop dword [rax + rax]
movzx ecx, word [rax]
cmp cx, bp
jg 0x1400b3501
jne 0x1400b3510
cmp word [rax - 2], r8w
jle 0x1400b3510
movzx r8d, word [rax - 2]
movzx ebp, cx
mov dword [rsp + 0x108], edx
inc edx
add rax, 0x20
cmp edx, ebx
jl 0x1400b34f0
mov rbx, qword [rsp + 0x40]
xor r8d, r8d
jmp 0x1400b352e
mov r14, qword [rsp + 0x58]
mov r9, qword [rsp + 0x50]
mov r15, qword [r15 + 0x38]
test r15, r15
jne 0x1400b3100
mov rdi, qword [rsp + 0xf0]
mov rax, qword [rsp + 0x70]
add rbx, 0x20
dec rax
mov qword [rsp + 0x70], rax
mov qword [rsp + 0x40], rbx
jne 0x1400b30f0
mov edx, dword [rsp + 0x48]
mov r10, qword [rsp + 0x88]
mov r15d, dword [rsp + 0x64]
mov rax, r9
inc edx
add r14, 8
mov r9, r10
mov qword [rsp + 0x50], r10
mov ecx, r12d
mov qword [rsp + 0x88], rax
mov dword [rsp + 0x48], edx
mov qword [rsp + 0x58], r14
mov r10, rax
cmp edx, r15d
jl 0x1400b30d0
test r12d, r12d
jne 0x1400b35d3
mov rcx, qword [rsp + 0x90]
lea rdx, str.no_query_solution
call fcn.140043840
mov rdx, qword [rsp + 0x78]
mov rcx, qword [rsp + 0x80]
call fcn.140040b80
mov eax, esi
jmp 0x1400b3785
movzx r14d, word [rsp + 0xf8]
mov r13, qword [rsp + 0x78]
mov r11d, 0x400
movsxd rdx, ecx
mov rbx, r10
cmp rdx, 1
jle 0x1400b361e
lea rcx, [r10 + 0x32]
dec rdx
nop word [rax + rax]
movzx eax, word [rcx]
cmp word [rbx + 0x12], ax
jle 0x1400b3613
movsxd rbx, esi
shl rbx, 5
add rbx, r10
inc esi
add rcx, 0x20
dec rdx
jne 0x1400b3600
test r15d, r15d
jle 0x1400b3660
lea rdx, [rdi + 0x364]
mov r9d, r15d
nop dword [rax]
mov rax, qword [rbx + 0x18]
add r8, 8
lea rdx, [rdx + 0x50]
mov rcx, qword [r8 + rax - 8]
mov qword [rdx - 0x34], rcx
movzx eax, byte [rcx + 0x10]
mov byte [rdx - 0x50], al
imul rcx, rax, 0x78
mov rax, qword [rdi + 8]
mov ecx, dword [rcx + rax + 0x50]
mov dword [rdx - 0x70], ecx
dec r9
jne 0x1400b3630
movzx eax, word [rdi + 0x32]
mov esi, 0x200
test r11w, ax
je 0x1400b36c8
test si, ax
jne 0x1400b36c8
cmp byte [rdi + 0x38], 0
jne 0x1400b36c8
test r14w, r14w
je 0x1400b36c8
mov rax, qword [rbx + 0x18]
movsxd rcx, r15d
lea r8, [rsp + 0xf0]
mov rax, qword [rax + rcx*8 - 8]
mov qword [rsp + 0x30], r8
lea edx, [r15 - 1]
mov qword [rsp + 0x28], rax
mov word [rsp + 0x20], dx
mov rdx, qword [rdi + 0x18]
mov r9d, esi
mov r8, rbx
mov rcx, rdi
call fcn.1400b2810
movsx ecx, al
mov rax, qword [rdi + 0x18]
cmp ecx, dword [rax]
jne 0x1400b36c8
mov byte [rdi + 0x38], 2
mov rdx, qword [rdi + 0x10]
test rdx, rdx
je 0x1400b376b
movzx r8d, word [rdi + 0x32]
test si, r8w
je 0x1400b36f0
movsx eax, byte [rbx + 0x14]
xor ecx, ecx
cmp eax, dword [rdx]
jne 0x1400b370b
mov byte [rdi + 0x38], 2
jmp 0x1400b370b
movzx ecx, byte [rbx + 0x14]
mov eax, ecx
test cl, cl
mov ecx, 0
cmovs eax, ecx
mov byte [rdi + 0x34], al
mov rax, qword [rbx + 8]
mov qword [rdi + 0x28], rax
mov eax, 0x800
test ax, r8w
je 0x1400b376b
movsx eax, byte [rdi + 0x34]
cmp eax, dword [rdx]
jne 0x1400b376b
mov rax, qword [rbx + 0x18]
mov qword [rsp + 0xf0], rcx
movsxd rcx, r15d
mov rax, qword [rax + rcx*8 - 8]
lea r8, [rsp + 0xf0]
dec r15w
mov qword [rsp + 0x30], r8
mov qword [rsp + 0x28], rax
xor r9d, r9d
mov r8, rbx
mov rcx, rdi
mov word [rsp + 0x20], r15w
call fcn.1400b2810
movsx ecx, al
mov rax, qword [rdi + 0x10]
cmp ecx, dword [rax]
sete al
mov byte [rdi + 0x35], al
movzx eax, word [rbx + 0x10]
mov rcx, qword [rsp + 0x80]
mov rdx, r13
mov word [rdi + 0x30], ax
call fcn.140040b80
xor eax, eax
add rsp, 0xa8
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret