Function at 0x438730
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push rbp
push rbx
sub rsp, 0x38
mov rbp, rsp
mov rbx, rcx
movsd qword [rbp + 0x58], xmm1
movzx eax, word [rbp + 0x5e]
shr eax, 4
mov dword [rbp + 0x2c], eax
mov rax, qword [rbx + 0x30]
mov ecx, dword [rbp + 0x2c]
and ecx, 0x800
cmp ecx, 0x800
sete cl
mov byte [rax + 2], cl
and dword [rbp + 0x2c], 0x7ff
cmp dword [rbp + 0x2c], 0
jne 0x4387af
movzx rax, word [rbp + 0x5e]
test ax, 0xf
jne 0x4387af
cmp word [rbp + 0x5c], 0
jne 0x4387af
cmp word [rbp + 0x5a], 0
jne 0x4387af
cmp word [rbp + 0x58], 0
jne 0x4387af
mov rax, qword [rbx + 0x30]
mov word [rax], 0
mov rax, qword [rbx + 0x30]
mov byte [rax + 3], 0
mov rax, qword [rbx + 0x30]
mov byte [rax + 2], 0
jmp 0x438a19
cmp dword [rbp + 0x2c], 0x7ff
jne 0x438801
movzx rax, word [rbp + 0x5e]
test ax, 0xf
jne 0x4387e3
cmp word [rbp + 0x5c], 0
jne 0x4387e3
cmp word [rbp + 0x5a], 0
jne 0x4387e3
cmp word [rbp + 0x58], 0
jne 0x4387e3
mov rax, qword [rbx + 0x30]
mov word [rax], 0x7ff
jmp 0x4387f4
mov rax, qword [rbx + 0x30]
mov word [rax], 0x800
mov rax, qword [rbx + 0x30]
mov byte [rax + 2], 0
mov rax, qword [rbx + 0x30]
mov byte [rax + 3], 0
jmp 0x438a19
mov rax, qword [rbx + 0x30]
cmp byte [rax + 2], 0
je 0x43881d
movsd xmm0, qword [rbp + 0x58]
xorpd xmm0, xmmword [0x00438a20]
movsd qword [rbp + 0x58], xmm0
cmp dword [rbp + 0x2c], 0
jne 0x438842
mov rax, qword [rbp + 0x58]
jmp 0x438830
sub dword [rbp + 0x2c], 1
add rax, rax
movabs rcx, 0x8000000000000
mov rdx, rax
test rcx, rdx
je 0x438829
sub dword [rbp + 0x2c], 0x3ff
mov eax, dword [rbp + 0x2c]
imul eax, eax, 0x4d10
mov dword [rbp + 0x2c], eax
movsx rax, word [rbp + 0x2e]
mov dword [rbp + 0x2c], eax
add dword [rbp + 0x2c], 1
mov rax, qword [rbx + 0x30]
movzx rcx, word [rbp + 0x2c]
mov word [rax], cx
movsd xmm0, qword [rbp + 0x58]
mov edx, 0x12
sub edx, dword [rbp + 0x2c]
call fcn.0040d740
call fcn.0040b420
cvtsi2sd xmm0, rax
movsd qword [rbp + 0x58], xmm0
movsd xmm0, qword [rbp + 0x58]
comisd xmm0, xmmword [0x0073ee58]
jb 0x4388bb
cvtsi2sd xmm0, dword [0x0073ee60]
movsd xmm1, qword [rbp + 0x58]
divsd xmm1, xmm0
movsd qword [rbp + 0x58], xmm1
mov rax, qword [rbx + 0x30]
add word [rax], 1
mov rcx, rbx
lea rdx, [rbp + 0x22]
movsd xmm2, qword [rbp + 0x58]
call fcn.00438670
mov eax, 8
lea rcx, [rbp + 0x2a]
movzx rdx, byte [rcx]
mov r8, qword [rbx + 0x30]
mov r9d, 0x10
mov r10d, eax
add r10d, r10d
sub r9d, r10d
movsxd r9, r9d
mov r10d, edx
and r10b, 0xf
movzx r10w, r10b
shl r10d, 8
and dl, 0xf0
movzx rdx, dl
shr edx, 4
add r10w, dx
add r10w, 0x3030
mov word [r8 + r9 + 3], r10w
sub eax, 1
sub rcx, 1
cmp eax, 0xffffffff
jne 0x4388d5
nop
mov rax, qword [rbx + 0x30]
mov byte [rax + 0x15], 0
mov rax, qword [rbx + 0x30]
movsx rax, word [rax]
add eax, dword [rbx + 0x50]
test eax, eax
jge 0x43895b
mov rax, qword [rbx + 0x30]
mov word [rax], 0
mov rax, qword [rbx + 0x30]
mov byte [rax + 2], 0
mov rax, qword [rbx + 0x30]
mov byte [rax + 3], 0
jmp 0x438a19
mov rax, qword [rbx + 0x30]
movsx rax, word [rax]
add eax, dword [rbx + 0x50]
cmp eax, dword [rbx + 0x48]
jl 0x43896e
mov eax, dword [rbx + 0x48]
cmp eax, 0x12
jge 0x438986
mov rcx, qword [rbx + 0x30]
movsxd rdx, eax
movzx cx, byte [rcx + rdx + 3]
cmp cx, 0x35
jae 0x4389c2
cmp eax, 0x12
jle 0x438990
mov eax, 0x12
mov rcx, qword [rbx + 0x30]
movsxd rdx, eax
mov byte [rcx + rdx + 3], 0
sub eax, 1
test eax, eax
jge 0x4389ad
mov rax, qword [rbx + 0x30]
mov byte [rax + 2], 0
jmp 0x438a19
mov rcx, qword [rbx + 0x30]
movsxd rdx, eax
movzx cx, byte [rcx + rdx + 3]
cmp cx, 0x30
jne 0x438a19
jmp 0x438990
mov rcx, qword [rbx + 0x30]
mov edx, eax
add edx, 1
movsxd rdx, edx
mov byte [rcx + rdx + 3], 0
mov rcx, qword [rbx + 0x30]
movsxd rdx, eax
mov byte [rcx + rdx + 3], 0
sub eax, 1
test eax, eax
jge 0x4389f8
mov rax, qword [rbx + 0x30]
mov byte [rax + 3], 0x31
mov rax, qword [rbx + 0x30]
add word [rax], 1
jmp 0x438a19
movsxd rcx, eax
mov rdx, qword [rbx + 0x30]
lea rdx, [rdx + rcx + 3]
add byte [rdx], 1
mov rdx, qword [rbx + 0x30]
movzx cx, byte [rdx + rcx + 3]
cmp cx, 0x39
jbe 0x438a19
jmp 0x4389d3
lea rsp, [rbp + 0x38]
pop rbx
pop rbp
ret