Function at 0x1400d06e0
Capabilities:
Encrypt data using rc4 ksa

Disassembly:
mov rax, rsp
push rsi
push rdi
push r12
push r13
push r14
sub rsp, 0x60
mov qword [rsp + 0x20], 0xfffffffffffffffe
mov qword [rax + 8], rbx
mov qword [rax + 0x18], rbp
movaps xmmword [rax - 0x38], xmm6
movaps xmmword [rax - 0x48], xmm7
movaps xmmword [rax - 0x58], xmm8
mov rbx, rdx
mov rdi, qword [rdx + 0x18]
lea rcx, [rdx + 0x2c]
lea r8, [0x140118ac0]
mov edx, 0x20
call fcn.1400f27f0
mov dword [rbx + 0x28], 9
mov dword [rbx + 0x218], 0x3fc00000
test byte [rdi + 6], 2
je 0x1400d074a
mov dword [rbx + 0x218], 0x3faccccd
test byte [rdi + 6], 2
je 0x1400d075a
mov dword [rbx + 0x218], 0x3fa3d70a
mov al, byte [rdi + 3]
and eax, 0xf
add eax, 0xffffffff
lea r14, [0x140000000]
cmp eax, 5
ja case.default.0x1400d0780
cdqe
mov ecx, dword [r14 + rax*4 + 0xd123c]
add rcx, r14
jmp rcx
lea rcx, [rbx + 0x19c]
lea r8, str.RDIMM
mov edx, 0x20
call fcn.14002c260
mov dword [rbx + 0x1c0], 0x4305599a
mov dword [rbx + 0x1bc], 0x20001
jmp case.default.0x1400d0780
lea rcx, [rbx + 0x19c]
lea r8, str.UDIMM
mov edx, 0x20
call fcn.14002c260
mov dword [rbx + 0x1c0], 0x4305599a
mov dword [rbx + 0x1bc], 0x20002
jmp case.default.0x1400d0780
lea rcx, [rbx + 0x19c]
lea r8, str.SO_DIMM
mov edx, 0x20
call fcn.14002c260
mov dword [rbx + 0x1c0], 0x42873333
mov dword [rbx + 0x1bc], 0x20003
jmp case.default.0x1400d0780
lea rcx, [rbx + 0x19c]
lea r8, str.Micro_DIMM
mov edx, 0x20
call fcn.14002c260
mov dword [rbx + 0x1c0], 0x42360000
mov dword [rbx + 0x1bc], 0x20004
jmp case.default.0x1400d0780
lea rcx, [rbx + 0x19c]
lea r8, str.Mini_RDIMM
mov edx, 0x20
call fcn.14002c260
mov dword [rbx + 0x1c0], 0x42a40000
mov dword [rbx + 0x1bc], 0x20005
jmp case.default.0x1400d0780
lea rcx, [rbx + 0x19c]
lea r8, str.Mini_UDIMM
mov edx, 0x20
call fcn.14002c260
mov dword [rbx + 0x1c0], 0x42a40000
mov dword [rbx + 0x1bc], 0x20006
mov cl, byte [rdi + 4]
shr ecx, 4
and ecx, 7
je 0x1400d08db
sub ecx, 1
je 0x1400d08cf
sub ecx, 1
je 0x1400d08c3
cmp ecx, 1
jne 0x1400d08e5
mov dword [rbx + 0x1d4], 0x40
jmp 0x1400d08e5
mov dword [rbx + 0x1d4], 0x20
jmp 0x1400d08e5
mov dword [rbx + 0x1d4], SafeArrayGetUBound
jmp 0x1400d08e5
mov dword [rbx + 0x1d4], 8
or esi, 0xffffffff
mov ebp, esi
mov r13d, esi
mov r12d, esi
mov al, byte [rdi + 4]
and eax, 0xf
cmp eax, 9
ja case.default.0x1400d0908
cdqe
mov ecx, dword [r14 + rax*4 + 0xd1254]
add rcx, r14
jmp rcx
mov esi, 0x100
jmp case.default.0x1400d0908
mov esi, 0x200
jmp case.default.0x1400d0908
mov esi, 0x400
jmp case.default.0x1400d0908
mov esi, 0x800
jmp case.default.0x1400d0908
mov esi, 0x1000
jmp case.default.0x1400d0908
mov esi, 0x2000
jmp case.default.0x1400d0908
mov esi, 0x4000
jmp case.default.0x1400d0908
mov esi, 0x8000
jmp case.default.0x1400d0908
mov esi, 0x10000
jmp case.default.0x1400d0908
mov esi, 0x20000
movzx ecx, byte [rdi + 7]
mov edx, ecx
and edx, 7
je 0x1400d097e
sub edx, 1
je 0x1400d0976
sub edx, 1
je 0x1400d096e
cmp edx, 1
jne 0x1400d0984
lea r13d, [rdx + 0x1f]
jmp 0x1400d0984
mov r13d, SafeArrayGetUBound
jmp 0x1400d0984
mov r13d, 8
jmp 0x1400d0984
mov r13d, 4
shr ecx, 3
and ecx, 7
je 0x1400d09b1
sub ecx, 1
je 0x1400d09a9
sub ecx, 1
je 0x1400d09a1
sub ecx, 1
jne 0x1400d09b7
lea r12d, [rcx + 4]
jmp 0x1400d09b7
mov r12d, 3
jmp 0x1400d09b7
mov r12d, 2
jmp 0x1400d09b7
mov r12d, 1
mov cl, byte [rdi + 8]
and ecx, 7
je 0x1400d09e1
sub ecx, 1
je 0x1400d09da
sub ecx, 1
je 0x1400d09d3
cmp ecx, 1
jne 0x1400d09e6
lea ebp, [rcx + 0x3f]
jmp 0x1400d09e6
mov ebp, 0x20
jmp 0x1400d09e6
mov ebp, SafeArrayGetUBound
jmp 0x1400d09e6
mov ebp, 8
mov ecx, esi
call fcn.14000d9d0
test eax, eax
je 0x1400d0a34
mov ecx, ebp
call fcn.14000d9d0
test eax, eax
je 0x1400d0a34
mov ecx, r13d
call fcn.14000d9d0
test eax, eax
je 0x1400d0a34
mov ecx, r12d
call fcn.14000d9d0
test eax, eax
je 0x1400d0a34
mov eax, ebp
cdq
idiv r13d
mov ecx, eax
mov eax, esi
cdq
and edx, 7
add eax, edx
sar eax, 3
imul ecx, eax
imul ecx, r12d
mov dword [rbx + 0x194], ecx
movzx eax, byte [rdi + 0xa]
cvtsi2ss xmm8, eax
movzx eax, byte [rdi + 0xb]
cvtsi2ss xmm0, eax
divss xmm8, xmm0
movzx eax, byte [rdi + 0xc]
cvtsi2ss xmm3, eax
mulss xmm3, xmm8
movss xmm7, dword [0x140142ff8]
movaps xmm1, xmm7
divss xmm1, xmm3
movaps xmm0, xmm1
movss xmm2, dword [0x140113800]
addss xmm0, xmm2
cvttss2si eax, xmm0
mov dword [rbx + 0x1e0], eax
mulss xmm1, dword [0x140114d50]
mulss xmm1, dword [0x140114ec0]
divss xmm1, dword [0x14014302c]
addss xmm1, xmm2
cvttss2si r9d, xmm1
imul r9d, r9d, 0x64
mov dword [rbx + 0x1dc], r9d
movss xmm0, dword [0x14011b288]
divss xmm0, xmm3
addss xmm0, xmm2
cvttss2si eax, xmm0
mov dword [rbx + 0x1e4], eax
lea r8, [0x140129c94]
mov edx, 0x20
lea rcx, [rbx + 0x4c]
call fcn.14002c260
test byte [rdi + 0xe], 1
je 0x1400d0b19
mov ecx, SafeArrayGetUBound
call fcn.1400d8d04
mov qword [rsp + 0x98], rax
test rax, rax
je 0x1400d0b01
mov rcx, rax
call fcn.1400ca830
jmp 0x1400d0b03
xor eax, eax
mov dword [rax + 8], 0x40800000
mov rdx, rax
mov rcx, qword [rbx + 0x1e8]
call fcn.1400ceee0
test byte [rdi + 0xe], 2
je 0x1400d0b58
mov ecx, SafeArrayGetUBound
call fcn.1400d8d04
mov qword [rsp + 0x98], rax
test rax, rax
je 0x1400d0b40
mov rcx, rax
call fcn.1400ca830
jmp 0x1400d0b42
xor eax, eax
mov dword [rax + 8], 0x40a00000
mov rdx, rax
mov rcx, qword [rbx + 0x1e8]
call fcn.1400ceee0
test byte [rdi + 0xe], 4
je 0x1400d0b97
mov ecx, SafeArrayGetUBound
call fcn.1400d8d04
mov qword [rsp + 0x98], rax
test rax, rax
je 0x1400d0b7f
mov rcx, rax
call fcn.1400ca830
jmp 0x1400d0b81
xor eax, eax
mov dword [rax + 8], 0x40c00000
mov rdx, rax
mov rcx, qword [rbx + 0x1e8]
call fcn.1400ceee0
test byte [rdi + 0xe], 8
je 0x1400d0bd6
mov ecx, SafeArrayGetUBound
call fcn.1400d8d04
mov qword [rsp + 0x98], rax
test rax, rax
je 0x1400d0bbe
mov rcx, rax
call fcn.1400ca830
jmp 0x1400d0bc0
xor eax, eax
mov dword [rax + 8], 0x40e00000
mov rdx, rax
mov rcx, qword [rbx + 0x1e8]
call fcn.1400ceee0
test byte [rdi + 0xe], 0x10
je 0x1400d0c15
mov ecx, SafeArrayGetUBound
call fcn.1400d8d04
mov qword [rsp + 0x98], rax
test rax, rax
je 0x1400d0bfd
mov rcx, rax
call fcn.1400ca830
jmp 0x1400d0bff
xor eax, eax
mov dword [rax + 8], 0x41000000
mov rdx, rax
mov rcx, qword [rbx + 0x1e8]
call fcn.1400ceee0
test byte [rdi + 0xe], 0x20
je 0x1400d0c54
mov ecx, SafeArrayGetUBound
call fcn.1400d8d04
mov qword [rsp + 0x98], rax
test rax, rax
je 0x1400d0c3c
mov rcx, rax
call fcn.1400ca830
jmp 0x1400d0c3e
xor eax, eax
mov dword [rax + 8], 0x41100000
mov rdx, rax
mov rcx, qword [rbx + 0x1e8]
call fcn.1400ceee0
test byte [rdi + 0xe], 0x40
je 0x1400d0c93
mov ecx, SafeArrayGetUBound
call fcn.1400d8d04
mov qword [rsp + 0x98], rax
test rax, rax
je 0x1400d0c7b
mov rcx, rax
call fcn.1400ca830
jmp 0x1400d0c7d
xor eax, eax
mov dword [rax + 8], 0x41200000
mov rdx, rax
mov rcx, qword [rbx + 0x1e8]
call fcn.1400ceee0
test byte [rdi + 0xe], 0x80
je 0x1400d0cd2
mov ecx, SafeArrayGetUBound
call fcn.1400d8d04
mov qword [rsp + 0x98], rax
test rax, rax
je 0x1400d0cba
mov rcx, rax
call fcn.1400ca830
jmp 0x1400d0cbc
xor eax, eax
mov dword [rax + 8], 0x41300000
mov rdx, rax
mov rcx, qword [rbx + 0x1e8]
call fcn.1400ceee0
test byte [rdi + 0xf], 1
je 0x1400d0d11
mov ecx, SafeArrayGetUBound
call fcn.1400d8d04
mov qword [rsp + 0x98], rax
test rax, rax
je 0x1400d0cf9
mov rcx, rax
call fcn.1400ca830
jmp 0x1400d0cfb
xor eax, eax
mov dword [rax + 8], 0x41400000
mov rdx, rax
mov rcx, qword [rbx + 0x1e8]
call fcn.1400ceee0
test byte [rdi + 0xf], 2
je 0x1400d0d50
mov ecx, SafeArrayGetUBound
call fcn.1400d8d04
mov qword [rsp + 0x98], rax
test rax, rax
je 0x1400d0d38
mov rcx, rax
call fcn.1400ca830
jmp 0x1400d0d3a
xor eax, eax
mov dword [rax + 8], 0x41500000
mov rdx, rax
mov rcx, qword [rbx + 0x1e8]
call fcn.1400ceee0
test byte [rdi + 0xf], 4
je 0x1400d0d8f
mov ecx, SafeArrayGetUBound
call fcn.1400d8d04
mov qword [rsp + 0x98], rax
test rax, rax
je 0x1400d0d77
mov rcx, rax
call fcn.1400ca830
jmp 0x1400d0d79
xor eax, eax
mov dword [rax + 8], 0x41600000
mov rdx, rax
mov rcx, qword [rbx + 0x1e8]
call fcn.1400ceee0
test byte [rdi + 0xf], 8
je 0x1400d0dce
mov ecx, SafeArrayGetUBound
call fcn.1400d8d04
mov qword [rsp + 0x98], rax
test rax, rax
je 0x1400d0db6
mov rcx, rax
call fcn.1400ca830
jmp 0x1400d0db8
xor eax, eax
mov dword [rax + 8], 0x41700000
mov rdx, rax
mov rcx, qword [rbx + 0x1e8]
call fcn.1400ceee0
test byte [rdi + 0xf], 0x10
je 0x1400d0e0d
mov ecx, SafeArrayGetUBound
call fcn.1400d8d04
mov qword [rsp + 0x98], rax
test rax, rax
je 0x1400d0df5
mov rcx, rax
call fcn.1400ca830
jmp 0x1400d0df7
xor eax, eax
mov dword [rax + 8], 0x41800000
mov rdx, rax
mov rcx, qword [rbx + 0x1e8]
call fcn.1400ceee0
test byte [rdi + 0xf], 0x20
je 0x1400d0e4c
mov ecx, SafeArrayGetUBound
call fcn.1400d8d04
mov qword [rsp + 0x98], rax
test rax, rax
je 0x1400d0e34
mov rcx, rax
call fcn.1400ca830
jmp 0x1400d0e36
xor eax, eax
mov dword [rax + 8], 0x41880000
mov rdx, rax
mov rcx, qword [rbx + 0x1e8]
call fcn.1400ceee0
test byte [rdi + 0xf], 0x40
je 0x1400d0e8b
mov ecx, SafeArrayGetUBound
call fcn.1400d8d04
mov qword [rsp + 0x98], rax
test rax, rax
je 0x1400d0e73
mov rcx, rax
call fcn.1400ca830
jmp 0x1400d0e75
xor eax, eax
mov dword [rax + 8], 0x41900000
mov rdx, rax
mov rcx, qword [rbx + 0x1e8]
call fcn.1400ceee0
movzx eax, byte [rdi + 0x10]
cvtsi2ss xmm6, eax
mulss xmm6, xmm8
mov ecx, dword [rbx + 0x1e0]
cmp ecx, 0x190
je 0x1400d101c
cmp ecx, 0x215
je 0x1400d0fca
cmp ecx, 0x29b
je 0x1400d0f4c
cmp ecx, 0x320
jne 0x1400d1050
cmp eax, 0x50
je 0x1400d0f32
cmp eax, 0x5a
je 0x1400d0f18
cmp eax, 0x64
je 0x1400d0efe
cmp eax, 0x6e
jne 0x1400d1050
lea r8, [0x140123524]
lea edx, [rax - 0x4e]
lea rcx, [rbx + 0x4c]
call fcn.14002c340
jmp 0x1400d1050
lea r8, [0x140129c90]
mov edx, 0x20
lea rcx, [rbx + 0x4c]
call fcn.14002c340
jmp 0x1400d1050
lea r8, [0x140129c8c]
mov edx, 0x20
lea rcx, [rbx + 0x4c]
call fcn.14002c340
jmp 0x1400d1050
lea r8, [0x140129c88]
mov edx, 0x20
lea rcx, [rbx + 0x4c]
call fcn.14002c340
jmp 0x1400d1050
cmp eax, 0x54
je 0x1400d0fb0
cmp eax, 0x60
je 0x1400d0f96
cmp eax, 0x6c
je 0x1400d0f7c
cmp eax, 0x78
jne 0x1400d1050
lea r8, [0x140129c90]
lea edx, [rax - 0x58]
lea rcx, [rbx + 0x4c]
call fcn.14002c340
jmp 0x1400d1050
lea r8, [0x140129c8c]
mov edx, 0x20
lea rcx, [rbx + 0x4c]
call fcn.14002c340
jmp 0x1400d1050
lea r8, [0x140129c88]
mov edx, 0x20
lea rcx, [rbx + 0x4c]
call fcn.14002c340
jmp 0x1400d1050
lea r8, [0x140129c84]
mov edx, 0x20
lea rcx, [rbx + 0x4c]
call fcn.14002c340
jmp 0x1400d1050
cmp eax, 0x5a
je 0x1400d1005
cmp eax, 0x69
je 0x1400d0fee
cmp eax, 0x78
jne 0x1400d1050
lea r8, [0x140129c88]
lea edx, [rax - 0x58]
lea rcx, [rbx + 0x4c]
call fcn.14002c340
jmp 0x1400d1050
lea r8, [0x140129c84]
mov edx, 0x20
lea rcx, [rbx + 0x4c]
call fcn.14002c340
jmp 0x1400d1050
lea r8, str.EFGHJ
mov edx, 0x20
lea rcx, [rbx + 0x4c]
call fcn.14002c340
jmp 0x1400d1050
cmp eax, 0x64
je 0x1400d103b
cmp eax, 0x78
jne 0x1400d1050
lea r8, str.EFGHJ
lea edx, [rax - 0x58]
lea rcx, [rbx + 0x4c]
call fcn.14002c340
jmp 0x1400d1050
lea r8, [0x140112e5c]
mov edx, 0x20
lea rcx, [rbx + 0x4c]
call fcn.14002c340
mov rax, qword [rbx + 0x1e8]
test rax, rax
je 0x1400d10a5
mov rax, qword [rax + 8]
test rax, rax
je 0x1400d10a5
mov rcx, qword [rax + 8]
test rcx, rcx
je 0x1400d10a5
xorps xmm2, xmm2
movss xmm0, dword [rcx + 8]
comiss xmm0, xmm2
jbe 0x1400d108e
movaps xmm1, xmm6
divss xmm1, xmm0
movaps xmm0, xmm7
divss xmm0, xmm1
movss dword [rcx + 0xc], xmm0
test rax, rax
je 0x1400d10a5
mov rax, qword [rax + 0x10]
test rax, rax
je 0x1400d10a5
mov rcx, qword [rax + 8]
test rcx, rcx
jne 0x1400d1071
movzx eax, byte [rdi + 0x12]
cvtsi2ss xmm0, eax
mulss xmm0, xmm8
movss dword [rbx + 0x1f0], xmm0
movzx eax, byte [rdi + 0x13]
cvtsi2ss xmm1, eax
mulss xmm1, xmm8
movss dword [rbx + 0x1f4], xmm1
movzx eax, byte [rdi + 0x14]
cvtsi2ss xmm0, eax
mulss xmm0, xmm8
movss dword [rbx + 0x1f8], xmm0
mov cl, byte [rdi + 0x15]
and ecx, 0xf
shl ecx, 8
movzx eax, byte [rdi + 0x16]
add ecx, eax
cvtsi2ss xmm0, ecx
mulss xmm0, xmm8
movss dword [rbx + 0x1fc], xmm0
movzx ecx, byte [rdi + 0x15]
shr ecx, 4
shl ecx, 8
movzx eax, byte [rdi + 0x17]
add ecx, eax
cvtsi2ss xmm0, ecx
mulss xmm0, xmm8
movss dword [rbx + 0x200], xmm0
mov al, byte [rdi + 0x3c]
and eax, 0x1f
mov dword [rbx + 0x1c4], eax
mov al, byte [rdi + 0x75]
and eax, 0x7f
mov ecx, 7
cmp eax, ecx
cmovg eax, ecx
xor ecx, ecx
movsxd rsi, eax
test eax, eax
jle 0x1400d115a
lea rcx, [rbx + 0x6c]
mov r8, rsi
mov dl, 0x7f
call fcn.1400f1600
mov ecx, esi
movsxd rcx, ecx
movzx eax, byte [rdi + 0x76]
mov byte [rcx + rbx + 0x6c], al
lea rdx, [rbx + 0x74]
lea rcx, [rbx + 0x6c]
call fcn.1400cd460
movzx r11d, byte [rdi + 0x78]
movzx ecx, r11b
shr cl, 4
movzx eax, cl
shl al, 2
add cl, al
add cl, cl
and r11b, 0xf
add cl, r11b
mov byte [rbx + 0x214], cl
movzx ecx, byte [rdi + 0x79]
movzx edx, cl
shr dl, 4
movzx eax, dl
shl al, 2
add dl, al
add dl, dl
and cl, 0xf
add dl, cl
mov byte [rbx + 0x215], dl
movzx ecx, byte [rdi + 0x7a]
shl ecx, 8
movzx eax, byte [rdi + 0x7b]
add ecx, eax
shl ecx, 8
movzx eax, byte [rdi + 0x7c]
add ecx, eax
shl ecx, 8
movzx eax, byte [rdi + 0x7d]
add ecx, eax
mov dword [rbx + 0x198], ecx
lea rdx, [rbx + 0x174]
sub rdi, 0xffffffffffffff80
mov r8d, reloc.OLEAUT32.dll_SafeArrayGetUBound
nop
nop
movzx ecx, byte [rdi]
xor eax, eax
cmp cl, 0xff
cmovne eax, ecx
mov byte [rdx], al
add rdi, 1
add rdx, 1
sub r8, 1
jne 0x1400d11f0
mov byte [rbx + 0x186], r8b
lea r11, [rsp + 0x60]
mov rbx, qword [r11 + 0x30]
mov rbp, qword [r11 + 0x40]
movaps xmm6, xmmword [rsp + 0x50]
movaps xmm7, xmmword [rsp + 0x40]
movaps xmm8, xmmword [r11 - 0x30]
mov rsp, r11
pop r14
pop r13
pop r12
pop rdi
pop rsi
ret