Function at 0x1400122c8
Capabilities:
Encrypt data using rc4 ksa

Disassembly:
mov rax, rsp
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x50
mov qword [rsp + 0x20], 0xfffffffffffffffe
mov qword [rax + 8], rbx
mov qword [rax + 0x18], rbp
mov qword [rax + 0x20], rsi
movaps xmmword [rax - 0x38], xmm6
movaps xmmword [rax - 0x48], xmm7
mov rbx, rdx
mov rsi, qword [rdx + 0x18]
mov al, byte [rsi + 2]
sub al, 0x10
mov r14d, 1
cmp al, r14b
ja 0x140012329
lea rcx, [rdx + 0x30]
lea r8, [0x1401cdbac]
lea r12d, [r14 + 0x1f]
mov rdx, r12
call fcn.140158644
mov dword [rbx + 0x2c], r14d
jmp 0x140012342
lea rcx, [rdx + 0x30]
lea r8, [0x1401cdba4]
mov r12d, 0x20
mov rdx, r12
call fcn.140158644
mov dword [rbx + 0x28], 0xa
mov dword [rbx + 0x384], 0x3f99999a
movzx ecx, byte [rsi + 3]
and ecx, 0xf
cmp ecx, 6
jg 0x1400124a1
cmp ecx, 6
je 0x140012472
sub ecx, r14d
je 0x140012443
sub ecx, r14d
je 0x140012414
sub ecx, r14d
je 0x1400123e5
sub ecx, r14d
je 0x1400123b6
cmp ecx, r14d
jne 0x140012557
lea rcx, [rbx + 0x2f8]
lea r8, str.Mini_RDIMM
mov rdx, r12
call fcn.140044464
mov dword [rbx + 0x318], 0x20001
jmp 0x140012557
lea rcx, [rbx + 0x2f8]
lea r8, str.LRDIMM
mov rdx, r12
call fcn.140044464
mov dword [rbx + 0x31c], 0x4305599a
mov dword [rbx + 0x318], 0x20004
jmp 0x140012557
lea rcx, [rbx + 0x2f8]
lea r8, str.SO_DIMM
mov rdx, r12
call fcn.140044464
mov dword [rbx + 0x31c], 0x42893333
mov dword [rbx + 0x318], 0x20003
jmp 0x140012557
lea rcx, [rbx + 0x2f8]
lea r8, str.UDIMM
mov rdx, r12
call fcn.140044464
mov dword [rbx + 0x31c], 0x4305599a
mov dword [rbx + 0x318], 0x20002
jmp 0x140012557
lea rcx, [rbx + 0x2f8]
lea r8, str.RDIMM
mov rdx, r12
call fcn.140044464
mov dword [rbx + 0x31c], 0x4305599a
mov dword [rbx + 0x318], 0x20001
jmp 0x140012557
lea rcx, [rbx + 0x2f8]
lea r8, str.Mini_UDIMM
mov rdx, r12
call fcn.140044464
mov dword [rbx + 0x31c], 0x42a00000
mov dword [rbx + 0x318], 0x20002
jmp 0x140012557
sub ecx, 8
je 0x140012541
sub ecx, r14d
je 0x140012515
sub ecx, 3
je 0x1400124e9
cmp ecx, r14d
jne 0x140012557
lea rcx, [rbx + 0x2f8]
lea r8, str.32b_SO_DIMM
mov rdx, r12
call fcn.140044464
mov dword [rbx + 0x31c], 0x42893333
mov dword [rbx + 0x318], 0x20003
jmp 0x140012557
lea rcx, [rbx + 0x2f8]
lea r8, str.16b_SO_DIMM
mov rdx, r12
call fcn.140044464
mov dword [rbx + 0x31c], 0x42893333
mov dword [rbx + 0x318], 0x20003
jmp 0x140012557
lea rcx, [rbx + 0x2f8]
lea r8, str.72b_SO_DIMM
mov rdx, r12
call fcn.140044464
mov dword [rbx + 0x31c], 0x42893333
mov dword [rbx + 0x318], 0x20003
jmp 0x140012557
lea rcx, [rbx + 0x2f8]
lea r8, str.72b_SO_RDIMM
mov rdx, r12
call fcn.140044464
or ebp, 0xffffffff
mov r15d, ebp
mov dword [rsp + 0x88], ebp
mov r13d, ebp
movzx ecx, byte [rsi + 4]
and ecx, 0xf
xor edi, edi
lea r9d, [rbp + 6]
cmp ecx, r9d
jg 0x1400125c0
cmp ecx, r9d
je 0x1400125b9
cmp ecx, edi
je 0x1400125b2
sub ecx, r14d
je 0x1400125ab
sub ecx, r14d
je 0x1400125a4
sub ecx, r14d
je 0x14001259d
cmp ecx, r14d
jne 0x1400125ee
mov ebp, 0x1000
jmp 0x1400125ee
mov ebp, 0x800
jmp 0x1400125ee
mov ebp, 0x400
jmp 0x1400125ee
mov ebp, 0x200
jmp 0x1400125ee
mov ebp, 0x100
jmp 0x1400125ee
mov ebp, 0x2000
jmp 0x1400125ee
sub ecx, 6
je 0x1400125e9
sub ecx, r14d
je 0x1400125e2
sub ecx, r14d
je 0x1400125db
cmp ecx, r14d
jne 0x1400125ee
mov ebp, 0x6000
jmp 0x1400125ee
mov ebp, 0x3000
jmp 0x1400125ee
mov ebp, 0x8000
jmp 0x1400125ee
mov ebp, 0x4000
movzx ecx, byte [rsi + 6]
shr ecx, 4
mov r8d, 7
and ecx, r8d
lea r10d, [r8 - 3]
lea r11d, [r8 - 5]
cmp ecx, edi
je 0x140012657
sub ecx, r14d
je 0x140012652
sub ecx, r14d
je 0x14001264a
sub ecx, r14d
je 0x140012645
sub ecx, r14d
je 0x140012640
sub ecx, r14d
je 0x140012638
sub ecx, r14d
je 0x140012633
cmp ecx, r14d
jne 0x14001265a
lea r13d, [r8 + 1]
jmp 0x14001265a
mov r13d, r8d
jmp 0x14001265a
mov r13d, 6
jmp 0x14001265a
mov r13d, r9d
jmp 0x14001265a
mov r13d, r10d
jmp 0x14001265a
mov r13d, 3
jmp 0x14001265a
mov r13d, r11d
jmp 0x14001265a
mov r13d, r14d
movzx ecx, byte [rsi + 0xc]
mov edx, ecx
and edx, r8d
cmp edx, edi
je 0x14001269a
sub edx, r14d
je 0x14001268d
sub edx, r14d
je 0x140012680
cmp edx, r14d
jne 0x1400126a2
mov dword [rsp + 0x88], r12d
jmp 0x1400126a2
mov dword [rsp + 0x88], 0x10
jmp 0x1400126a2
mov dword [rsp + 0x88], 8
jmp 0x1400126a2
mov dword [rsp + 0x88], r10d
shr ecx, 3
and ecx, r8d
cmp ecx, edi
je 0x140012717
sub ecx, r14d
je 0x14001270e
sub ecx, r14d
je 0x140012702
sub ecx, r14d
je 0x1400126f9
sub ecx, r14d
je 0x1400126f0
sub ecx, r14d
je 0x1400126e4
sub ecx, r14d
je 0x1400126db
cmp ecx, r14d
jne 0x14001271e
mov dword [rbx + 0x334], 8
jmp 0x14001271e
mov dword [rbx + 0x334], r8d
jmp 0x14001271e
mov dword [rbx + 0x334], 6
jmp 0x14001271e
mov dword [rbx + 0x334], r9d
jmp 0x14001271e
mov dword [rbx + 0x334], r10d
jmp 0x14001271e
mov dword [rbx + 0x334], 3
jmp 0x14001271e
mov dword [rbx + 0x334], r11d
jmp 0x14001271e
mov dword [rbx + 0x334], r14d
mov r14d, dword [rbx + 0x334]
mov ecx, r14d
call fcn.140001bb0
cmp eax, edi
je 0x140012751
mov ecx, r13d
call fcn.140001bb0
cmp eax, edi
je 0x140012751
mov al, byte [rsi + 6]
and al, 3
cmp al, 2
jne 0x140012751
imul r14d, r13d
mov dword [rbx + 0x334], r14d
movzx ecx, byte [rsi + 0xd]
and ecx, 7
cmp ecx, edi
je 0x14001277e
sub ecx, 1
je 0x140012776
sub ecx, 1
je 0x140012771
cmp ecx, 1
jne 0x140012784
lea r15d, [rcx + 0x3f]
jmp 0x140012784
mov r15d, r12d
jmp 0x140012784
mov r15d, 0x10
jmp 0x140012784
mov r15d, 8
mov ecx, ebp
call fcn.140001bb0
cmp eax, edi
je 0x1400127e3
mov ecx, r15d
call fcn.140001bb0
cmp eax, edi
je 0x1400127e3
mov r14d, dword [rsp + 0x88]
mov ecx, r14d
call fcn.140001bb0
cmp eax, edi
je 0x1400127e3
mov r13d, dword [rbx + 0x334]
mov ecx, r13d
call fcn.140001bb0
cmp eax, edi
je 0x1400127e3
mov eax, r15d
cdq
idiv r14d
mov ecx, eax
mov eax, ebp
cdq
and edx, 7
add eax, edx
sar eax, 3
imul ecx, eax
imul ecx, r13d
mov dword [rbx + 0x2f0], ecx
movzx eax, byte [rsi + 0xe]
shr eax, 7
mov dword [rbx + 0x390], eax
movsx eax, byte [rsi + 0x7d]
movd xmm1, eax
cvtdq2ps xmm1, xmm1
mulss xmm1, dword [0x1401cd778]
movzx eax, byte [rsi + 0x12]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss xmm7, dword [0x1401cbd74]
mulss xmm0, xmm7
addss xmm1, xmm0
movss xmm0, dword [0x1401cdb58]
divss xmm0, xmm1
divss xmm0, dword [0x140230af8]
call fcn.140042048
mov r11d, eax
mov ecx, eax
imul ecx, ecx, 0x64
mov r8d, 0x55555556
mov eax, r8d
imul ecx
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
mov dword [rbx + 0x344], edx
mov ecx, r11d
imul ecx, ecx, 0x640
mov eax, r8d
imul ecx
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
mov dword [rbx + 0x340], edx
imul r11d, r11d, 0xc8
mov eax, r8d
imul r11d
mov r9d, edx
shr r9d, 0x1f
add r9d, edx
lea rcx, [rbx + 0x50]
lea r8, str.DDR4__d
mov rdx, r12
call fcn.140044464
test byte [rsi + 0x14], 1
je 0x1400128e1
mov ebp, 0x10
mov rcx, rbp
call fcn.14013f12c
mov qword [rsp + 0x88], rax
cmp rax, rdi
je 0x1400128c6
mov rcx, rax
call fcn.140004218
jmp 0x1400128c9
mov rax, rdi
mov dword [rax + 8], 0x40e00000
mov rdx, rax
mov rcx, qword [rbx + 0x350]
call fcn.14000c940
jmp 0x1400128e6
mov ebp, 0x10
test byte [rsi + 0x14], 2
je 0x140012924
mov rcx, rbp
call fcn.14013f12c
mov qword [rsp + 0x88], rax
cmp rax, rdi
je 0x14001290b
mov rcx, rax
call fcn.140004218
jmp 0x14001290e
mov rax, rdi
mov dword [rax + 8], 0x41000000
mov rdx, rax
mov rcx, qword [rbx + 0x350]
call fcn.14000c940
test byte [rsi + 0x14], 4
je 0x140012962
mov rcx, rbp
call fcn.14013f12c
mov qword [rsp + 0x88], rax
cmp rax, rdi
je 0x140012949
mov rcx, rax
call fcn.140004218
jmp 0x14001294c
mov rax, rdi
mov dword [rax + 8], 0x41100000
mov rdx, rax
mov rcx, qword [rbx + 0x350]
call fcn.14000c940
test byte [rsi + 0x14], 8
je 0x1400129a0
mov rcx, rbp
call fcn.14013f12c
mov qword [rsp + 0x88], rax
cmp rax, rdi
je 0x140012987
mov rcx, rax
call fcn.140004218
jmp 0x14001298a
mov rax, rdi
mov dword [rax + 8], 0x41200000
mov rdx, rax
mov rcx, qword [rbx + 0x350]
call fcn.14000c940
test byte [rsi + 0x14], bpl
je 0x1400129de
mov rcx, rbp
call fcn.14013f12c
mov qword [rsp + 0x88], rax
cmp rax, rdi
je 0x1400129c5
mov rcx, rax
call fcn.140004218
jmp 0x1400129c8
mov rax, rdi
mov dword [rax + 8], 0x41300000
mov rdx, rax
mov rcx, qword [rbx + 0x350]
call fcn.14000c940
test byte [rsi + 0x14], r12b
je 0x140012a1c
mov rcx, rbp
call fcn.14013f12c
mov qword [rsp + 0x88], rax
cmp rax, rdi
je 0x140012a03
mov rcx, rax
call fcn.140004218
jmp 0x140012a06
mov rax, rdi
mov dword [rax + 8], 0x41400000
mov rdx, rax
mov rcx, qword [rbx + 0x350]
call fcn.14000c940
test byte [rsi + 0x14], 0x40
je 0x140012a5a
mov rcx, rbp
call fcn.14013f12c
mov qword [rsp + 0x88], rax
cmp rax, rdi
je 0x140012a41
mov rcx, rax
call fcn.140004218
jmp 0x140012a44
mov rax, rdi
mov dword [rax + 8], 0x41500000
mov rdx, rax
mov rcx, qword [rbx + 0x350]
call fcn.14000c940
test byte [rsi + 0x14], 0x80
je 0x140012a98
mov rcx, rbp
call fcn.14013f12c
mov qword [rsp + 0x88], rax
cmp rax, rdi
je 0x140012a7f
mov rcx, rax
call fcn.140004218
jmp 0x140012a82
mov rax, rdi
mov dword [rax + 8], 0x41600000
mov rdx, rax
mov rcx, qword [rbx + 0x350]
call fcn.14000c940
cmp byte [rsi + 0x15], dil
je 0x140012c92
test byte [rsi + 0x15], 1
je 0x140012ae0
mov rcx, rbp
call fcn.14013f12c
mov qword [rsp + 0x88], rax
cmp rax, rdi
je 0x140012ac7
mov rcx, rax
call fcn.140004218
jmp 0x140012aca
mov rax, rdi
mov dword [rax + 8], 0x41700000
mov rdx, rax
mov rcx, qword [rbx + 0x350]
call fcn.14000c940
test byte [rsi + 0x15], 2
je 0x140012b1e
mov rcx, rbp
call fcn.14013f12c
mov qword [rsp + 0x88], rax
cmp rax, rdi
je 0x140012b05
mov rcx, rax
call fcn.140004218
jmp 0x140012b08
mov rax, rdi
mov dword [rax + 8], 0x41800000
mov rdx, rax
mov rcx, qword [rbx + 0x350]
call fcn.14000c940
test byte [rsi + 0x15], 4
je 0x140012b5c
mov rcx, rbp
call fcn.14013f12c
mov qword [rsp + 0x88], rax
cmp rax, rdi
je 0x140012b43
mov rcx, rax
call fcn.140004218
jmp 0x140012b46
mov rax, rdi
mov dword [rax + 8], 0x41880000
mov rdx, rax
mov rcx, qword [rbx + 0x350]
call fcn.14000c940
test byte [rsi + 0x15], 8
je 0x140012b9a
mov rcx, rbp
call fcn.14013f12c
mov qword [rsp + 0x88], rax
cmp rax, rdi
je 0x140012b81
mov rcx, rax
call fcn.140004218
jmp 0x140012b84
mov rax, rdi
mov dword [rax + 8], 0x41900000
mov rdx, rax
mov rcx, qword [rbx + 0x350]
call fcn.14000c940
test byte [rsi + 0x15], bpl
je 0x140012bd8
mov rcx, rbp
call fcn.14013f12c
mov qword [rsp + 0x88], rax
cmp rax, rdi
je 0x140012bbf
mov rcx, rax
call fcn.140004218
jmp 0x140012bc2
mov rax, rdi
mov dword [rax + 8], 0x41980000
mov rdx, rax
mov rcx, qword [rbx + 0x350]
call fcn.14000c940
test byte [rsi + 0x15], r12b
je 0x140012c16
mov rcx, rbp
call fcn.14013f12c
mov qword [rsp + 0x88], rax
cmp rax, rdi
je 0x140012bfd
mov rcx, rax
call fcn.140004218
jmp 0x140012c00
mov rax, rdi
mov dword [rax + 8], 0x41a00000
mov rdx, rax
mov rcx, qword [rbx + 0x350]
call fcn.14000c940
test byte [rsi + 0x15], 0x40
je 0x140012c54
mov rcx, rbp
call fcn.14013f12c
mov qword [rsp + 0x88], rax
cmp rax, rdi
je 0x140012c3b
mov rcx, rax
call fcn.140004218
jmp 0x140012c3e
mov rax, rdi
mov dword [rax + 8], 0x41a80000
mov rdx, rax
mov rcx, qword [rbx + 0x350]
call fcn.14000c940
test byte [rsi + 0x15], 0x80
je 0x140012c92
mov rcx, rbp
call fcn.14013f12c
mov qword [rsp + 0x88], rax
cmp rax, rdi
je 0x140012c79
mov rcx, rax
call fcn.140004218
jmp 0x140012c7c
mov rax, rdi
mov dword [rax + 8], 0x41b00000
mov rdx, rax
mov rcx, qword [rbx + 0x350]
call fcn.14000c940
cmp byte [rsi + 0x16], dil
je 0x140012d14
test byte [rsi + 0x16], 1
je 0x140012cd6
mov rcx, rbp
call fcn.14013f12c
mov qword [rsp + 0x88], rax
cmp rax, rdi
je 0x140012cbd
mov rcx, rax
call fcn.140004218
jmp 0x140012cc0
mov rax, rdi
mov dword [rax + 8], 0x41b80000
mov rdx, rax
mov rcx, qword [rbx + 0x350]
call fcn.14000c940
test byte [rsi + 0x16], 2
je 0x140012d14
mov rcx, rbp
call fcn.14013f12c
mov qword [rsp + 0x88], rax
cmp rax, rdi
je 0x140012cfb
mov rcx, rax
call fcn.140004218
jmp 0x140012cfe
mov rax, rdi
mov dword [rax + 8], 0x41c00000
mov rdx, rax
mov rcx, qword [rbx + 0x350]
call fcn.14000c940
movsx eax, byte [rsi + 0x7b]
movd xmm6, eax
cvtdq2ps xmm6, xmm6
mulss xmm6, dword [0x1401cd778]
movzx eax, byte [rsi + 0x18]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm7
addss xmm6, xmm0
mov r13, qword [rbx + 0x350]
cmp r13, rdi
je 0x140012dcd
mov r13, qword [r13 + 8]
cmp r13, rdi
je 0x140012d59
mov rbp, qword [r13 + 8]
jmp 0x140012d5c
mov rbp, rdi
cmp rbp, rdi
je 0x140012dcd
movss xmm0, dword [rbp + 8]
comiss xmm0, dword [0x140204d54]
jbe 0x140012db1
mulss xmm0, dword [0x1401cdb54]
divss xmm0, xmm6
call fcn.140042048
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x140230af8]
divss xmm0, dword [0x1401cdb50]
movss dword [rbp + 0xc], xmm0
movd xmm1, dword [rbx + 0x344]
cvtdq2ps xmm1, xmm1
comiss xmm0, xmm1
jbe 0x140012db1
movss dword [rbp + 0xc], xmm1
cmp r13, rdi
je 0x140012dc5
mov r13, qword [r13 + 0x10]
cmp r13, rdi
je 0x140012dcd
mov rbp, qword [r13 + 8]
jmp 0x140012dc8
mov rbp, rdi
cmp rbp, rdi
jne 0x140012d61
movsx eax, byte [rsi + 0x7a]
movd xmm1, eax
cvtdq2ps xmm1, xmm1
mulss xmm1, dword [0x1401cd778]
movss dword [rbx + 0x358], xmm1
movzx eax, byte [rsi + 0x19]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm7
addss xmm0, xmm1
movss dword [rbx + 0x358], xmm0
movsx eax, byte [rsi + 0x79]
movd xmm1, eax
cvtdq2ps xmm1, xmm1
mulss xmm1, dword [0x1401cd778]
movss dword [rbx + 0x360], xmm1
movzx eax, byte [rsi + 0x1a]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm7
addss xmm0, xmm1
movss dword [rbx + 0x360], xmm0
movzx ecx, byte [rsi + 0x1b]
mov r13d, 0xf
and ecx, r13d
shl ecx, 8
movzx eax, byte [rsi + 0x1c]
add ecx, eax
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm7
movss dword [rbx + 0x364], xmm0
movzx ecx, byte [rsi + 0x1b]
shr ecx, 4
shl ecx, 8
movzx eax, byte [rsi + 0x1d]
add ecx, eax
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm7
movss dword [rbx + 0x368], xmm0
cmp dword [rbx + 0x20], 0x200
jl 0x140012fee
movzx eax, byte [rsi + 0x140]
and eax, 0x7f
cmp eax, r13d
cmovg eax, r13d
mov ecx, edi
movsxd rbp, eax
cmp rbp, rdi
jle 0x140012ebd
lea rcx, [rbx + 0x70]
mov r8, rbp
mov dl, 0x7f
call fcn.140158a90
mov ecx, ebp
movsxd rcx, ecx
mov al, byte [rsi + 0x141]
mov byte [rcx + rbx + 0x70], al
lea rdx, [rbx + 0xb0]
lea rcx, [rbx + 0x70]
call fcn.140009b9c
mov r11b, byte [rsi + 0x143]
mov cl, r11b
shr cl, 4
mov al, cl
shl al, 2
add cl, al
add cl, cl
and r11b, r13b
add cl, r11b
mov byte [rbx + 0x380], cl
mov cl, byte [rsi + 0x144]
mov dl, cl
shr dl, 4
mov al, dl
shl al, 2
add dl, al
add dl, dl
and cl, r13b
add dl, cl
mov byte [rbx + 0x381], dl
movzx r9d, byte [rsi + 0x145]
shl r9d, 8
movzx eax, byte [rsi + 0x146]
add r9d, eax
shl r9d, 8
movzx eax, byte [rsi + 0x147]
add r9d, eax
shl r9d, 8
movzx eax, byte [rsi + 0x148]
add r9d, eax
mov dword [rbx + 0x2f4], r9d
lea rcx, [rbx + 0x2d0]
lea r8, [0x1401cb428]
mov rdx, r12
call fcn.140044464
lea r11, [rbx + 0x2b0]
lea rdx, [rsi + 0x149]
mov r8d, 0x14
movzx ecx, byte [rdx]
mov eax, edi
cmp cl, 0xff
cmovne eax, ecx
mov byte [r11], al
inc rdx
inc r11
sub r8, 1
jne 0x140012f7e
mov byte [rbx + 0x2c4], dil
movzx eax, byte [rsi + 0x15e]
and eax, 0x7f
cmp eax, r13d
cmovg eax, r13d
movsxd rbp, eax
cmp rbp, rdi
jle 0x140012fcb
lea rcx, [rbx + 0x90]
mov r8, rbp
mov dl, 0x7f
call fcn.140158a90
mov edi, ebp
movsxd rcx, edi
mov al, byte [rsi + 0x15f]
mov byte [rcx + rbx + 0x90], al
lea rdx, [rbx + 0x1b0]
lea rcx, [rbx + 0x90]
call fcn.140009b9c
lea r11, [rsp + 0x50]
mov rbx, qword [r11 + 0x30]
mov rbp, qword [r11 + 0x40]
mov rsi, qword [r11 + 0x48]
movaps xmm6, xmmword [rsp + 0x40]
movaps xmm7, xmmword [rsp + 0x30]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret