Function at 0x14003d900
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push rsi
push rdi
push rbx
sub rsp, 0x350
mov rsi, qword [0x1401054a8]
mov rax, qword [rsi]
xor rax, rsp
mov qword [rsp + 0x348], rax
mov r8, qword [rcx]
mov eax, dword [rcx + 8]
test eax, eax
jle 0x14003d93f
xor ecx, ecx
nop dword [rax + rax]
cmp byte [r8 + rcx], 0x30
jne 0x14003d943
inc rcx
cmp rax, rcx
jne 0x14003d930
xor eax, eax
jmp 0x14003d948
add r8, rcx
sub eax, ecx
mov eax, eax
lea r9, [rax + r8]
dec r9
xor r10d, r10d
nop word cs:[rax + rax]
lea ecx, [rax + r10]
test ecx, ecx
jle 0x14003dc97
lea rcx, [r10 - 1]
cmp byte [r9 + r10], 0x30
mov r10, rcx
je 0x14003d960
lea r10, [rax + rcx]
inc r10
dec edx
sub rdx, rcx
cmp r10d, 0x30c
jbe 0x14003dca4
lea r9, [rsp + 0x30]
mov r10, r9
sub r10, r8
cmp r10, 0x20
jb 0x14003dcae
movups xmm0, xmmword [r8]
movups xmm1, xmmword [r8 + 0x10]
movaps xmmword [rsp + 0x30], xmm0
movaps xmmword [rsp + 0x40], xmm1
movups xmm0, xmmword [r8 + 0x20]
movups xmm1, xmmword [r8 + 0x30]
movaps xmmword [rsp + 0x50], xmm0
movaps xmmword [rsp + 0x60], xmm1
movups xmm0, xmmword [r8 + 0x40]
movups xmm1, xmmword [r8 + 0x50]
movaps xmmword [rsp + 0x70], xmm0
movaps xmmword [rsp + 0x80], xmm1
movups xmm0, xmmword [r8 + 0x60]
movups xmm1, xmmword [r8 + 0x70]
movaps xmmword [rsp + 0x90], xmm0
movaps xmmword [rsp + 0xa0], xmm1
movups xmm0, xmmword [r8 + 0x80]
movups xmm1, xmmword [r8 + 0x90]
movaps xmmword [rsp + 0xb0], xmm0
movaps xmmword [rsp + 0xc0], xmm1
movups xmm0, xmmword [r8 + 0xa0]
movups xmm1, xmmword [r8 + 0xb0]
movaps xmmword [rsp + 0xd0], xmm0
movaps xmmword [rsp + 0xe0], xmm1
movups xmm0, xmmword [r8 + 0xc0]
movups xmm1, xmmword [r8 + 0xd0]
movaps xmmword [rsp + 0xf0], xmm0
movaps xmmword [rsp + 0x100], xmm1
movups xmm0, xmmword [r8 + 0xe0]
movups xmm1, xmmword [r8 + 0xf0]
movaps xmmword [rsp + 0x110], xmm0
movaps xmmword [rsp + 0x120], xmm1
movups xmm0, xmmword [r8 + 0x100]
movups xmm1, xmmword [r8 + 0x110]
movaps xmmword [rsp + 0x130], xmm0
movaps xmmword [rsp + 0x140], xmm1
movups xmm0, xmmword [r8 + 0x120]
movups xmm1, xmmword [r8 + 0x130]
movaps xmmword [rsp + 0x150], xmm0
movaps xmmword [rsp + 0x160], xmm1
movups xmm0, xmmword [r8 + 0x140]
movups xmm1, xmmword [r8 + 0x150]
movaps xmmword [rsp + 0x170], xmm0
movaps xmmword [rsp + 0x180], xmm1
movups xmm0, xmmword [r8 + 0x160]
movups xmm1, xmmword [r8 + 0x170]
movaps xmmword [rsp + 0x190], xmm0
movaps xmmword [rsp + 0x1a0], xmm1
movups xmm0, xmmword [r8 + 0x180]
movups xmm1, xmmword [r8 + 0x190]
movaps xmmword [rsp + 0x1b0], xmm0
movaps xmmword [rsp + 0x1c0], xmm1
movups xmm0, xmmword [r8 + 0x1a0]
movups xmm1, xmmword [r8 + 0x1b0]
movaps xmmword [rsp + 0x1d0], xmm0
movaps xmmword [rsp + 0x1e0], xmm1
movups xmm0, xmmword [r8 + 0x1c0]
movups xmm1, xmmword [r8 + 0x1d0]
movaps xmmword [rsp + 0x1f0], xmm0
movaps xmmword [rsp + 0x200], xmm1
movups xmm0, xmmword [r8 + 0x1e0]
movups xmm1, xmmword [r8 + 0x1f0]
movaps xmmword [rsp + 0x210], xmm0
movaps xmmword [rsp + 0x220], xmm1
movups xmm0, xmmword [r8 + 0x200]
movups xmm1, xmmword [r8 + 0x210]
movaps xmmword [rsp + 0x230], xmm0
movaps xmmword [rsp + 0x240], xmm1
movups xmm0, xmmword [r8 + 0x220]
movups xmm1, xmmword [r8 + 0x230]
movaps xmmword [rsp + 0x250], xmm0
movaps xmmword [rsp + 0x260], xmm1
movups xmm0, xmmword [r8 + 0x240]
movups xmm1, xmmword [r8 + 0x250]
movaps xmmword [rsp + 0x270], xmm0
movaps xmmword [rsp + 0x280], xmm1
movups xmm0, xmmword [r8 + 0x260]
movups xmm1, xmmword [r8 + 0x270]
movaps xmmword [rsp + 0x290], xmm0
movaps xmmword [rsp + 0x2a0], xmm1
movups xmm0, xmmword [r8 + 0x280]
movups xmm1, xmmword [r8 + 0x290]
movaps xmmword [rsp + 0x2b0], xmm0
movaps xmmword [rsp + 0x2c0], xmm1
movups xmm0, xmmword [r8 + 0x2a0]
movups xmm1, xmmword [r8 + 0x2b0]
movaps xmmword [rsp + 0x2d0], xmm0
movaps xmmword [rsp + 0x2e0], xmm1
movups xmm0, xmmword [r8 + 0x2c0]
movups xmm1, xmmword [r8 + 0x2d0]
movaps xmmword [rsp + 0x2f0], xmm0
movaps xmmword [rsp + 0x300], xmm1
movups xmm0, xmmword [r8 + 0x2e0]
movups xmm1, xmmword [r8 + 0x2f0]
movaps xmmword [rsp + 0x310], xmm0
movaps xmmword [rsp + 0x320], xmm1
mov r11, qword [r8 + 0x300]
mov qword [rsp + 0x330], r11
mov r11d, 0x308
jmp 0x14003dcb1
add eax, edx
xor r10d, r10d
mov r9, r8
jmp 0x14003dd30
mov eax, edx
mov r9, r8
jmp 0x14003dd30
xor r11d, r11d
mov edi, 3
nop word cs:[rax + rax]
movzx ebx, byte [r8 + r11]
mov byte [rsp + r11 + 0x30], bl
inc r11
dec rdi
jne 0x14003dcc0
cmp r10, 0x1f
ja 0x14003dd18
nop dword [rax + rax]
movzx r10d, byte [r8 + r11]
mov byte [rsp + r11 + 0x30], r10b
movzx r10d, byte [r8 + r11 + 1]
mov byte [rsp + r11 + 0x31], r10b
movzx r10d, byte [r8 + r11 + 2]
mov byte [rsp + r11 + 0x32], r10b
movzx r10d, byte [r8 + r11 + 3]
mov byte [rsp + r11 + 0x33], r10b
add r11, 4
cmp r11, 0x30b
jne 0x14003dce0
mov byte [rsp + 0x33b], 0x31
add ecx, eax
lea eax, [rdx + rcx]
add eax, 0xfffffcf5
mov r10d, 0x30c
mov qword [rsp + 0x20], r9
mov dword [rsp + 0x28], r10d
lea rcx, [rsp + 0x20]
mov edx, eax
call fcn.14003d150
mov rax, qword [rsp + 0x348]
xor rax, rsp
mov rcx, qword [rsi]
cmp rcx, rax
jne 0x14003dd64
add rsp, 0x350
pop rbx
pop rdi
pop rsi
ret
call fcn.1400d58e0
int3