Function at 0x18f38d0
Capabilities:
Encode data using xor
Encrypt data using rc4 prga

Disassembly:
mov ecx, edx
sar ecx, 1
mov eax, ecx
shr eax, 0x1f
add ecx, eax
mov eax, 0xbfa02fe9
imul ecx
add edx, ecx
sar edx, 8
mov eax, edx
shr eax, 0x1f
add edx, eax
movsx rax, byte [rbp - 0x59]
movsxd rcx, edx
imul r9, rax, 0xd7c
imul rax, rax, 0xd7c
mov r11d, resource.6
sub r11, rax
add r9, rcx
sub r11, rcx
add r9, r14
sub r11, r14
movsxd rcx, r10d
movabs rax, 0x642c8590b21642c9
inc r10d
mul rcx
mov rax, rcx
sub rax, rdx
shr rax, 1
add rax, rdx
shr rax, 4
imul rax, rax, 0x17
sub rcx, rax
sub rcx, rbx
mov al, byte [rsp + rcx + 0x20]
xor al, byte [r11 + r9]
mov byte [r9], al
inc r9
cmp r10d, r12d
jb 0x18f3919
mov rcx, r14
call fcn.018f3ba4
movsx r9d, byte [rbp - 0x51]
mov r8d, esi
shl r9d, 3
mov rdx, rax
xor ecx, ecx
call rdi
mov rbx, rax
test rax, rax
je 0x18f3b8e
movsxd rdi, dword [r14 + 0x3c]
mov r13, rax
mov rdx, r14
add rdi, r14
mov rcx, rax
sub r13, qword [rdi + 0x30]
mov r8d, dword [rdi + 0x54]
movzx esi, word [rdi + 0x14]
mov qword [rbp + 0x77], r13
mov qword [rbp + 0x7f], rdi
mov qword [rdi + 0x30], rax
call fcn.018f3bc4
mov r10, qword [rdi + 0xb0]
mov r11, qword [rdi + 0x90]
xor eax, eax
mov qword [rbp + 0x6f], r10
mov r12, r15
cmp ax, word [rdi + 6]
jae 0x18f3b8e
add rsi, 0x24
mov r13d, eax
add rsi, rdi
mov r9d, dword [rsi]
cmp r10d, r9d
jb 0x18f39ef
mov ecx, dword [rsi - 4]
add ecx, r9d
cmp r10d, ecx
jae 0x18f39ef
lea r12, [rsi - 0xc]
cmp r11d, r9d
jb 0x18f3a03
mov ecx, dword [rsi - 4]
add ecx, r9d
cmp r11d, ecx
jae 0x18f3a03
lea r13, [rsi - 0xc]
mov edx, dword [rsi + 8]
mov r8d, dword [rsi + 4]
lea rcx, [rbx + r9]
add rdx, r14
call fcn.018f3bc4
movzx eax, word [rdi + 6]
inc r15d
add rsi, 0x28
cmp r15d, eax
jl 0x18f39d8
xor r8d, r8d
test r13, r13
mov r13, qword [rbp + 0x77]
je 0x18f3b8e
mov eax, dword [rbp + 0x73]
mov r11d, r8d
test rax, rax
je 0x18f3ac7
xor edi, edi
mov r15d, dword [r12 + 0x14]
add r15, r11
add r11, 8
mov esi, dword [r15 + r14 + 4]
sub rsi, 8
shr rsi, 1
je 0x18f3abb
mov eax, dword [r12 + 0x14]
add rax, r11
add r11, 2
movzx ecx, word [rax + r14]
mov eax, 0xf000
test ax, cx
je 0x18f3ab3
mov r10d, dword [r15 + r14]
and ecx, 0xfff
mov r8d, 8
lea rax, [rbx + rcx]
lea rcx, [rbp + 0x67]
mov qword [rbp + 0x67], rdi
add r10, rax
mov rdx, r10
call fcn.018f3bc4
add qword [rbp + 0x67], r13
lea rdx, [rbp + 0x67]
lea edx, [rbp + 0x67]
mov rcx, r10
call fcn.018f3bc4
dec rsi
jne 0x18f3a61
mov eax, dword [rbp + 0x73]
cmp r11, rax
jb 0x18f3a47
mov rdi, qword [rbp + 0x7f]
xor r8d, r8d
mov r15d, dword [rdi + 0x90]
add r15, rbx
je 0x18f3b8e
add r15, 0xc
cmp dword [r15], r8d
je 0x18f3b41
mov r13, qword [rbp - 0x71]
mov ecx, dword [r15]
add rcx, rbx
call qword [rbp - 0x69]
xor r8d, r8d
mov r12, rax
test rax, rax
je 0x18f3b8e
mov esi, dword [r15 + 4]
add rsi, rbx
jmp 0x18f3b33
mov rax, qword [rsi]
movabs rcx, 0x8000000000000000
test rcx, rax
mov rcx, r12
je 0x18f3b1f
movzx edx, ax
jmp 0x18f3b26
lea rdx, [rax + 2]
add rdx, rbx
call r13
mov qword [rsi], rax
add rsi, 8
xor r8d, r8d
cmp qword [rsi], r8
jne 0x18f3b05
add r15, 0x14
cmp dword [r15], r8d
jne 0x18f3ae4
mov rcx, r14
call fcn.018f3bb0
test eax, eax
je 0x18f3b72
mov eax, dword [rdi + 0xd0]
mov rsi, qword [rax + rbx + 0x18]
jmp 0x18f3b6a
xor r8d, r8d
mov rcx, r14
lea edx, [r8 + 1]
call rax
lea rsi, [rsi + 8]
mov rax, qword [rsi]
test rax, rax
jne 0x18f3b5a
mov eax, dword [rdi + 0x28]
xor r8d, r8d
mov rcx, rbx
lea edx, [r8 + 1]
add rax, rbx
call rax
neg eax
sbb rax, rax
and rax, rbx
jmp 0x18f3b90
xor eax, eax
add rsp, 0xe8
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret