Function at 0x140152f20
Capabilities:
Encrypt data using rc4 ksa

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x20], r9
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x90
mov dword [rsp + 0x24], 0
mov rbx, r9
mov byte [rsp + 0x21], 0
mov r13, rdx
mov byte [rsp + 0x20], 0
mov rax, rcx
test rcx, rcx
je 0x14015353c
test rbx, rbx
je 0x14015353c
test rdx, rdx
je 0x14015353c
mov rcx, qword [rsp + 0xf0]
test rcx, rcx
je 0x14015353c
movzx r10d, byte [r9 + 0x1a]
mov r11, qword [rax]
mov qword [rsp + 0x50], r11
test r10b, r10b
je 0x140152fb4
cmp r10b, 7
jne 0x14015353c
cmp qword [r9 + 0x10], 0
je 0x14015353c
cmp byte [rdx + 0x1a], 0
je 0x140153538
cmp r10b, 7
jne 0x140152fd1
mov eax, dword [rdx + 8]
xor eax, dword [r9 + 8]
jl 0x14015353c
mov edx, dword [rdx + 4]
test edx, edx
je 0x140153538
mov r9d, dword [r13]
test r9d, r9d
je 0x140153538
mov r14d, dword [rcx]
mov edi, r8d
mov r12d, dword [rcx + 4]
and edi, 0xffffffc0
shl r9d, 6
and r14d, 0xffffffc0
shr r8, 0x20
and r12d, 0xffffffc0
and r8d, 0xffffffc0
lea eax, [r9 - 0x7fffffc0]
cmp eax, r8d
jg 0x14015353c
shl edx, 6
mov ecx, r8d
mov eax, 0x7fffffbf
sub ecx, r9d
sub eax, edx
cmp eax, edi
jl 0x14015353c
mov r9d, dword [rbx + 4]
lea r15d, [rdi + rdx]
test r9d, r9d
je 0x140153078
mov edx, dword [rbx]
test edx, edx
je 0x140153078
shl edx, 6
lea eax, [rdx - 0x80000000]
cmp eax, r12d
jg 0x14015353c
mov ebp, r12d
mov eax, 0x7fffffff
sub ebp, edx
mov edx, r9d
shl edx, 6
sub eax, edx
cmp eax, r14d
jl 0x14015353c
lea esi, [r14 + rdx]
jmp 0x140153088
mov ebp, 0x7fffffff
mov esi, 0x80000000
mov r14d, ebp
mov r12d, esi
cmp edi, r14d
mov eax, r14d
mov edx, ebp
cmovl eax, edi
cmp ecx, ebp
mov dword [rsp + 0x44], eax
cmovl edx, ecx
cmp r15d, esi
mov dword [rsp + 0x48], edx
cmovg esi, r15d
sub esi, eax
sar esi, 6
cmp r8d, r12d
cmovg r12d, r8d
sub r12d, edx
sar r12d, 6
mov dword [rsp + 0x40], r12d
test esi, esi
je 0x140153538
test r12d, r12d
je 0x140153538
sub edi, eax
sub ecx, edx
mov dword [rsp + 0x38], edi
mov dword [rsp + 0x28], ecx
test r9d, r9d
je 0x1401530eb
cmp dword [rbx], 0
je 0x1401530eb
sub r14d, eax
sub ebp, edx
test r10b, r10b
jne 0x140153148
mov eax, 0x7fffffff
mov dword [rbx + 4], esi
lea esi, [rsi*4]
mov dword [rbx], r12d
cdq
mov byte [rbx + 0x1a], 7
idiv esi
mov dword [rbx + 8], esi
mov word [rbx + 0x18], 0x100
cmp eax, r12d
jl 0x14015353c
imul esi, r12d
lea r8, [rsp + 0x24]
mov rcx, r11
mov edx, esi
call fcn.1400f5c00
mov qword [rbx + 0x10], rax
mov eax, dword [rsp + 0x24]
test eax, eax
jne 0x140153541
mov byte [rsp + 0x20], 1
jmp 0x14015324a
cmp r9d, esi
jne 0x140153156
cmp dword [rbx], r12d
je 0x14015324a
mov eax, dword [rbx + 8]
lea r15d, [rsi*4]
cdq
xor eax, edx
sub eax, edx
mov dword [rsp + 0x30], eax
mov eax, 0x7fffffff
cdq
idiv r15d
cmp eax, r12d
jl 0x14015353c
mov edx, r15d
lea r8, [rsp + 0x24]
imul edx, r12d
mov rcx, r11
call fcn.1400f5c00
cmp dword [rsp + 0x24], 0
mov r8, rax
mov qword [rsp + 0x58], rax
jne 0x140153532
cmp dword [rbx + 8], 0
jl 0x14015321d
mov edx, dword [rbx]
mov eax, r12d
mov rdi, qword [rbx + 0x10]
sar ebp, 6
sub eax, ebp
sar r14d, 6
sub eax, edx
shl r14d, 2
imul eax, r15d
movsxd rbp, r14d
add rax, r8
add rbp, rax
movsxd rax, dword [rsp + 0x30]
imul edx, eax
movsxd r15, edx
add r15, rdi
cmp rdi, r15
jae 0x140153211
mov r14, rax
lea eax, [rsi*4]
cdqe
mov rbx, rax
mov r8, r14
mov rdx, rdi
mov rcx, rbp
call sub.VCRUNTIME140.dll_memcpy
add rdi, r14
add rbp, rbx
cmp rdi, r15
jb 0x1401531f0
mov rbx, qword [rsp + 0xe8]
mov edi, dword [rsp + 0x38]
lea r15d, [rsi*4]
mov rdx, qword [rbx + 0x10]
mov rcx, qword [rsp + 0x50]
call fcn.1400f5c80
mov eax, r15d
mov dword [rbx + 4], esi
neg eax
mov dword [rbx], r12d
cmp dword [rbx + 8], 0
cmovge eax, r15d
mov dword [rbx + 8], eax
mov rax, qword [rsp + 0x58]
mov qword [rbx + 0x10], rax
cmp byte [r13 + 0x1a], 2
je 0x1401532b6
movups xmm0, xmmword [0x1402cc570]
mov rsi, qword [rsp + 0xd0]
mov r9d, 1
movups xmm1, xmmword [0x1402cc580]
lea r8, [rsp + 0x68]
mov rdx, r13
movups xmmword [rsp + 0x68], xmm0
mov rcx, rsi
movsd xmm0, qword [0x1402cc590]
movsd qword [rsp + 0x88], xmm0
movups xmmword [rsp + 0x78], xmm1
call sym.Client.exe_FT_Bitmap_Convert
mov dword [rsp + 0x24], eax
test eax, eax
jne 0x1401534e2
lea r13, [rsp + 0x68]
mov byte [rsp + 0x21], 1
mov qword [rsp + 0xd8], r13
mov r8d, dword [rbx + 8]
test r8d, r8d
js 0x1401534bf
mov r15, qword [r13 + 0x10]
mov edx, dword [rsp + 0x28]
mov eax, dword [rbx]
mov ecx, dword [r13]
sar edx, 6
sub eax, edx
sar edi, 6
sub eax, ecx
shl edi, 2
imul ecx, dword [r13 + 8]
imul eax, r8d
mov qword [rsp + 0x30], r15
mov edx, eax
movsxd rax, edi
add rdx, rax
movsxd rax, ecx
add rdx, qword [rbx + 0x10]
add rax, r15
mov qword [rsp + 0x38], rdx
mov qword [rsp + 0x60], rax
cmp r15, rax
jae 0x1401534bf
mov ecx, dword [rsp + 0xf8]
nop dword [rax + rax]
mov eax, dword [r13 + 4]
mov r12, r15
add rax, r15
mov qword [rsp + 0x58], rax
cmp r15, rax
jae 0x140153497
movzx r13d, byte [rsp + 0xfb]
mov rbx, rdx
movzx r15d, cl
mov rcx, rax
nop dword [rax + rax]
movzx edx, byte [r12]
mov eax, 0x80808081
movzx r8d, byte [rbx]
mov ebp, 0xff
movzx r11d, byte [rbx + 1]
movzx edi, byte [rbx + 2]
movzx esi, byte [rbx + 3]
lea rbx, [rbx + 4]
imul edx, r13d
mul edx
mov eax, 0x80808081
mov r14d, edx
shr r14d, 7
sub ebp, r14d
imul r8d, ebp
imul r11d, ebp
imul edi, ebp
imul esi, ebp
imul r8d
lea r9d, [r8 + rdx]
mov r8d, r15d
sar r9d, 7
mov eax, r9d
imul r8d, r14d
shr eax, 0x1f
add r9d, eax
mov eax, 0x80808081
imul r8d
add edx, r8d
movzx r8d, byte [rsp + 0xf9]
sar edx, 7
mov eax, edx
imul r8d, r14d
shr eax, 0x1f
add edx, eax
mov eax, 0x80808081
add r9b, dl
imul r11d
mov byte [rbx - 4], r9b
lea r9d, [r11 + rdx]
sar r9d, 7
mov eax, r9d
shr eax, 0x1f
add r9d, eax
mov eax, 0x80808081
imul r8d
add edx, r8d
movzx r8d, byte [rsp + 0xfa]
sar edx, 7
mov eax, edx
imul r8d, r14d
shr eax, 0x1f
add edx, eax
mov eax, 0x80808081
add r9b, dl
imul edi
mov byte [rbx - 3], r9b
lea r9d, [rdi + rdx]
sar r9d, 7
mov eax, r9d
shr eax, 0x1f
add r9d, eax
mov eax, 0x80808081
imul r8d
add edx, r8d
sar edx, 7
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, 0x80808081
add r9b, dl
imul esi
mov byte [rbx - 2], r9b
add edx, esi
sar edx, 7
mov eax, edx
shr eax, 0x1f
add edx, eax
add dl, r14b
mov byte [rbx - 1], dl
inc r12
cmp r12, rcx
jb 0x140153350
mov ecx, dword [rsp + 0xf8]
mov rbx, qword [rsp + 0xe8]
mov r15, qword [rsp + 0x30]
mov r13, qword [rsp + 0xd8]
mov rdx, qword [rsp + 0x38]
movsxd rax, dword [r13 + 8]
add r15, rax
movsxd rax, dword [rbx + 8]
add rdx, rax
mov qword [rsp + 0x30], r15
mov qword [rsp + 0x38], rdx
cmp r15, qword [rsp + 0x60]
jb 0x140153320
mov r12d, dword [rsp + 0x40]
mov rcx, qword [rsp + 0xf0]
mov eax, dword [rsp + 0x44]
mov rsi, qword [rsp + 0xd0]
shl r12d, 6
add r12d, dword [rsp + 0x48]
mov dword [rcx], eax
mov dword [rcx + 4], r12d
cmp dword [rsp + 0x24], 0
je 0x14015351e
cmp byte [rsp + 0x20], 0
je 0x14015351e
mov rdx, qword [rbx + 0x10]
mov rcx, qword [rsi]
call fcn.1400f5c80
movups xmm0, xmmword [0x1402cc570]
movups xmm1, xmmword [0x1402cc580]
movups xmmword [rbx], xmm0
movsd xmm0, qword [0x1402cc590]
movups xmmword [rbx + 0x10], xmm1
movsd qword [rbx + 0x20], xmm0
cmp byte [rsp + 0x21], 0
je 0x140153532
mov rdx, qword [rsp + 0x78]
mov rcx, qword [rsi]
call fcn.1400f5c80
mov eax, dword [rsp + 0x24]
jmp 0x140153541
xor eax, eax
jmp 0x140153541
mov eax, 6
mov rbx, qword [rsp + 0xe0]
add rsp, 0x90
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret