Function at 0x40ed20
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.00412ee0
nop
movsd xmm0, qword [0x0040ef90]
movq qword [rbp + 0x28], xmm0
mov rax, qword [rbp + 0x20]
mov dword [rax], 0
cmp qword [rbp + 0x60], 0
jne 0x40ed68
mov rax, qword [rbp + 0x20]
add dword [rax], 1
jmp 0x40ef71
xor esi, esi
xor edx, edx
xor edi, edi
jmp 0x40ed79
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 0x40ed72
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 0x40edb3
cmp bx, 0x2d
jne 0x40edc2
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 0x40ee19
cmp ax, 0x39
ja 0x40ee19
movq xmm0, qword [rbp + 0x28]
mulsd xmm0, qword [0x0040ef98]
movzx eax, ax
cvtsi2sd xmm1, eax
addsd xmm0, xmm1
subsd xmm0, qword [0x0040efa0]
movq qword [rbp + 0x28], xmm0
mov dil, 1
jmp 0x40edc2
nop
xor eax, eax
cmp bx, 0x2e
jne 0x40ee95
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 0x40ee4f
cmp cx, 0x39
jbe 0x40ee65
test dil, dil
jne 0x40ee94
test bx, bx
jne 0x40ee94
mov rcx, qword [rbp + 0x20]
sub dword [rcx], 1
mov dil, 1
jmp 0x40ee94
movq xmm0, qword [rbp + 0x28]
mulsd xmm0, qword [0x0040ef98]
movzx ecx, cx
cvtsi2sd xmm1, ecx
addsd xmm0, xmm1
subsd xmm0, qword [0x0040efa0]
movq qword [rbp + 0x28], xmm0
sub eax, 1
mov dil, 1
jmp 0x40ee22
nop
xor ecx, ecx
mov r8d, ebx
or r8w, 0x20
cmp r8w, 0x65
jne 0x40ef2a
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 0x40eed1
cmp bx, 0x2d
jne 0x40eedf
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 0x40ef23
cmp r8w, 0x39
ja 0x40ef23
add ecx, ecx
lea rcx, [rcx + rcx*4]
movzx ebx, bx
add ecx, ebx
sub ecx, 0x30
mov dil, 1
jmp 0x40eedf
nop
test dl, dl
je 0x40ef2a
neg ecx
add eax, ecx
test eax, eax
je 0x40ef43
movq xmm0, qword [rbp + 0x28]
mov edx, eax
call fcn.0040f080
movq qword [rbp + 0x28], xmm0
test sil, sil
je 0x40ef5c
movq xmm0, qword [rbp + 0x28]
pxor xmm0, xmmword [0x0040efb0]
movq qword [rbp + 0x28], xmm0
test dil, dil
je 0x40ef70
test bx, bx
jne 0x40ef70
mov rax, qword [rbp + 0x20]
mov dword [rax], 0
nop
lea rcx, [rbp + 0x60]
call fcn.00412d10
movq xmm0, qword [rbp + 0x28]
lea rsp, [rbp + 0x38]
pop rbx
pop rsi
pop rdi
pop rbp
ret