Function at 0x40e0b0
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x38
mov rbp, rsp
mov qword [rbp + 0x20], rdx
mov qword [rbp + 0x60], rcx
mov rcx, qword [rbp + 0x60]
call fcn.00412250
nop
movsd xmm0, qword [0x0040e320]
movq qword [rbp + 0x28], xmm0
mov rax, qword [rbp + 0x20]
mov dword [rax], 0
cmp qword [rbp + 0x60], 0
jne 0x40e0f8
mov rax, qword [rbp + 0x20]
add dword [rax], 1
jmp 0x40e301
xor esi, esi
xor edx, edx
xor edi, edi
jmp 0x40e109
mov rax, qword [rbp + 0x20]
add dword [rax], 1
mov rax, qword [rbp + 0x60]
mov rcx, qword [rbp + 0x20]
mov ecx, dword [rcx]
add ecx, 1
movsxd rcx, ecx
cmp word [rax + rcx*2 - 2], 0x20
je 0x40e102
mov rax, qword [rbp + 0x60]
mov rcx, qword [rbp + 0x20]
mov ecx, dword [rcx]
add ecx, 1
movsxd rcx, ecx
movzx rbx, word [rax + rcx*2 - 2]
cmp bx, 0x2b
je 0x40e143
cmp bx, 0x2d
jne 0x40e152
mov rax, qword [rbp + 0x20]
add dword [rax], 1
cmp bx, 0x2d
sete sil
mov rax, qword [rbp + 0x60]
mov rcx, qword [rbp + 0x20]
mov ecx, dword [rcx]
add ecx, 1
movsxd rcx, ecx
movzx rbx, word [rax + rcx*2 - 2]
mov rax, qword [rbp + 0x20]
add dword [rax], 1
mov eax, ebx
cmp ax, 0x30
jb 0x40e1a9
cmp ax, 0x39
ja 0x40e1a9
movq xmm0, qword [rbp + 0x28]
mulsd xmm0, qword [0x0040e328]
movzx eax, ax
cvtsi2sd xmm1, eax
addsd xmm0, xmm1
subsd xmm0, qword [0x0040e330]
movq qword [rbp + 0x28], xmm0
mov dil, 1
jmp 0x40e152
nop
xor eax, eax
cmp bx, 0x2e
jne 0x40e225
mov rcx, qword [rbp + 0x60]
mov r8, qword [rbp + 0x20]
mov r8d, dword [r8]
add r8d, 1
movsxd r8, r8d
movzx rbx, word [rcx + r8*2 - 2]
mov rcx, qword [rbp + 0x20]
add dword [rcx], 1
mov ecx, ebx
cmp cx, 0x30
jb 0x40e1df
cmp cx, 0x39
jbe 0x40e1f5
test dil, dil
jne 0x40e224
test bx, bx
jne 0x40e224
mov rcx, qword [rbp + 0x20]
sub dword [rcx], 1
mov dil, 1
jmp 0x40e224
movq xmm0, qword [rbp + 0x28]
mulsd xmm0, qword [0x0040e328]
movzx ecx, cx
cvtsi2sd xmm1, ecx
addsd xmm0, xmm1
subsd xmm0, qword [0x0040e330]
movq qword [rbp + 0x28], xmm0
sub eax, 1
mov dil, 1
jmp 0x40e1b2
nop
xor ecx, ecx
mov r8d, ebx
or r8w, 0x20
cmp r8w, 0x65
jne 0x40e2ba
xor edi, edi
mov r8, qword [rbp + 0x60]
mov r9, qword [rbp + 0x20]
mov r9d, dword [r9]
add r9d, 1
movsxd r9, r9d
movzx rbx, word [r8 + r9*2 - 2]
cmp bx, 0x2b
je 0x40e261
cmp bx, 0x2d
jne 0x40e26f
mov rdx, qword [rbp + 0x20]
add dword [rdx], 1
cmp bx, 0x2d
sete dl
mov r8, qword [rbp + 0x60]
mov r9, qword [rbp + 0x20]
mov r9d, dword [r9]
add r9d, 1
movsxd r9, r9d
movzx rbx, word [r8 + r9*2 - 2]
mov r8, qword [rbp + 0x20]
add dword [r8], 1
mov r8d, ebx
cmp r8w, 0x30
jb 0x40e2b3
cmp r8w, 0x39
ja 0x40e2b3
add ecx, ecx
lea rcx, [rcx + rcx*4]
movzx ebx, bx
add ecx, ebx
sub ecx, 0x30
mov dil, 1
jmp 0x40e26f
nop
test dl, dl
je 0x40e2ba
neg ecx
add eax, ecx
test eax, eax
je 0x40e2d3
movq xmm0, qword [rbp + 0x28]
mov edx, eax
call fcn.0040e410
movq qword [rbp + 0x28], xmm0
test sil, sil
je 0x40e2ec
movq xmm0, qword [rbp + 0x28]
xorpd xmm0, xmmword [0x0040e340]
movq qword [rbp + 0x28], xmm0
test dil, dil
je 0x40e300
test bx, bx
jne 0x40e300
mov rax, qword [rbp + 0x20]
mov dword [rax], 0
nop
lea rcx, [rbp + 0x60]
call fcn.00412080
movq xmm0, qword [rbp + 0x28]
lea rsp, [rbp + 0x38]
pop rbx
pop rsi
pop rdi
pop rbp
ret