Function at 0x18007aa30
Capabilities:
Encrypt data using rc4 ksa
Resolve function by parsing pe exports

Disassembly:
push rbx
push rbp
push rsi
push r12
push r13
push r15
sub rsp, 0x118
mov rax, qword [0x18012a010]
xor rax, rsp
mov qword [rsp + 0xf0], rax
mov rax, qword [rcx]
xor r11d, r11d
mov rbx, qword [rcx + 0x18]
mov r13, r8
mov word [rsp + 0x20], r9w
mov rsi, rdx
mov qword [rsp + 0x40], rdx
mov r15, rcx
mov r10, qword [rax]
mov ebp, r11d
mov qword [rsp + 0x58], rcx
mov r12d, r11d
mov qword [rsp + 0x38], r11
mov rax, qword [r10]
mov qword [rsp + 0x48], rax
cmp byte [rax + 0x50], r11b
je 0x18007aa9b
lea eax, [r11 + 7]
jmp 0x18007b1fa
test byte [rbx + 0x28], 0x20
mov qword [rsp + 0x110], rdi
je 0x18007aab0
mov ecx, 0x18
jmp 0x18007aac6
cmp dword [r8 + 0x58], ebp
jle 0x18007aac1
test byte [rdx + 0x3c], 8
mov ecx, 0xbf
je 0x18007aac6
mov ecx, 0x3f
mov eax, dword [r8 + 0x64]
mov r9d, ecx
mov r8, qword [r8 + 8]
and r9d, 0xffffffc3
mov r10d, dword [rdx + 0x48]
and al, 4
movzx eax, word [rbx + 0x18]
cmove r9d, ecx
mov qword [rsp + 0x108], r14
movsx rdi, word [r8 + rax*2]
mov rax, qword [r15 + 8]
mov qword [rsp + 0x70], rax
mov qword [rsp + 0x78], rax
test edi, edi
js 0x18007ab5d
mov rcx, qword [r13 + 0x18]
lea rdx, [rdi + rdi*2]
add rdx, rdx
mov rax, qword [rcx + 8]
movzx ecx, byte [rax + rdx*8 + 0x29]
movsx eax, word [r8]
mov byte [rsp + 0x88], cl
mov ecx, r11d
cmp eax, edi
je 0x18007ab43
movzx edx, word [r13 + 0x60]
nop dword [rax]
cmp ecx, edx
jg 0x18007ab58
movsx eax, word [r8 + 2]
add r8, 2
inc ecx
cmp eax, edi
jne 0x18007ab30
mov rax, qword [r13 + 0x40]
movsxd rcx, ecx
mov rcx, qword [rax + rcx*8]
mov qword [rsp + 0x80], rcx
jmp 0x18007ab6d
mov r14, r11
jmp 0x18007aba3
mov byte [rsp + 0x88], bpl
mov qword [rsp + 0x80], r11
lea rcx, [rsp + 0x70]
mov dword [rsp + 0x8c], r9d
mov dword [rsp + 0x90], r11d
mov dword [rsp + 0x94], r10d
mov dword [rsp + 0x98], edi
mov word [rsp + 0x89], 0x202
call fcn.180074e90
mov r14, rax
movzx eax, word [rbx + 0x1a]
movzx r9d, word [rbx + 0x18]
movzx r10d, word [rbx + 0x2c]
mov r11d, dword [rbx + 0x28]
mov word [rsp + 0x26], ax
mov rax, qword [rbx]
mov qword [rsp + 0x50], rax
movzx eax, word [rbx + 0x16]
mov word [rsp + 0x22], ax
xor eax, eax
mov word [rbx + 0x12], ax
mov r8, qword [r13 + 0x10]
mov word [rsp + 0x24], r9w
mov word [rsp + 0x28], r10w
mov dword [rsp + 0x30], r11d
movzx eax, word [r8]
movzx ecx, ax
mov word [rsp + 0x2c], ax
call fcn.1800769c0
mov word [rsp + 0x2a], ax
cmp r9w, word [rsp + 0x26]
jne 0x18007acd0
movzx ecx, word [r13 + 0x5e]
lea eax, [r9 + 1]
cmp eax, ecx
jae 0x18007acd0
cmp word [r8 + r9*2 + 2], 0x2a
mov esi, r9d
jl 0x18007accb
mov rcx, qword [rsp + 0x48]
lea r8d, [r10 + 1]
mov rdx, rbx
call fcn.18007a320
mov ebp, eax
test eax, eax
jne 0x18007b1b5
movzx edx, word [rbx + 0x2c]
xor eax, eax
inc word [rbx + 0x18]
mov r8, r13
inc word [rbx + 0x1a]
mov rcx, qword [rbx + 0x30]
mov qword [rcx + rdx*8], rax
inc word [rbx + 0x2c]
or dword [rbx + 0x28], 0x8000
mov rcx, qword [r13 + 0x10]
movzx edx, word [rcx + rsi*2]
sub dx, word [rcx + rsi*2 + 2]
mov rcx, r15
mov rsi, qword [rsp + 0x40]
test r14, r14
lea r9d, [rdx + 0xa]
cmove r9w, dx
mov rdx, rsi
sub word [rbx + 0x16], r9w
add r9w, 5
add r9w, word [rsp + 0x20]
call fcn.18007aa30
movzx eax, word [rsp + 0x22]
movzx r9d, word [rsp + 0x24]
movzx r10d, word [rsp + 0x28]
mov r11d, dword [rsp + 0x30]
mov word [rbx + 0x16], ax
movzx eax, word [rsp + 0x26]
mov word [rbx + 0x1a], ax
mov word [rbx + 0x18], r9w
jmp 0x18007acd0
mov rsi, qword [rsp + 0x40]
mov qword [rsp + 0x60], rdi
mov ecx, 0x80
nop word [rax + rax]
test r14, r14
je 0x18007b1b5
movzx r15d, word [r14 + 0x1a]
cmp r15w, cx
jne 0x18007ad17
test rdi, rdi
js 0x18007b185
mov rax, qword [rsi + 0x20]
lea rcx, [rdi + rdi*2]
add rcx, rcx
mov rax, qword [rax + 8]
cmp byte [rax + rcx*8 + 0x28], 0
jne 0x18007b185
mov rax, qword [rbx + 8]
test qword [r14 + 0x28], rax
jne 0x18007b185
mov rcx, qword [rsp + 0x48]
mov rdx, rbx
movzx r8d, r10w
inc r8d
mov dword [rbx + 0x28], r11d
mov word [rbx + 0x18], r9w
mov word [rbx + 0x2c], r10w
call fcn.18007a320
test eax, eax
jne 0x18007b1b5
movzx ecx, word [rbx + 0x2c]
mov rax, qword [rbx + 0x30]
mov qword [rax + rcx*8], r14
movzx r8d, word [rbx + 0x2c]
mov rax, qword [rbx + 8]
inc r8w
mov word [rbx + 0x2c], r8w
not rax
mov rcx, qword [r14 + 0x28]
or rcx, qword [rsp + 0x50]
and rcx, rax
mov qword [rbx], rcx
test r15b, 1
je 0x18007ae66
mov rax, qword [r14]
or dword [rbx + 0x28], 4
test dword [rax + 4], 0x800
je 0x18007adab
mov rcx, qword [rsp + 0x38]
mov esi, 0x2e
xor r10d, r10d
jmp 0x18007af23
mov rcx, qword [rax + 0x20]
xor edx, edx
mov esi, edx
test rcx, rcx
je 0x18007ae59
movsxd rax, dword [rcx]
test eax, eax
je 0x18007ae59
lea ecx, [rdx + 0x28]
cmp rax, 8
jae 0x18007adff
cmp rax, 2
jae 0x18007adf0
mov rcx, qword [rsp + 0x38]
movzx eax, dx
movzx esi, dx
xor r10d, r10d
jmp 0x18007af23
add cx, 0xfff6
add rax, rax
cmp rax, 8
jb 0x18007adf0
jmp 0x18007ae3d
cmp rax, 0xff
jbe 0x18007ae20
nop word [rax + rax]
add cx, 0x28
shr rax, 4
cmp rax, 0xff
ja 0x18007ae10
cmp rax, 0xf
jbe 0x18007ae3d
nop word [rax + rax]
add cx, 0xa
shr rax, 1
cmp rax, 0xf
ja 0x18007ae30
and eax, 7
lea rdx, [0x180000000]
movzx eax, word [rdx + rax*2 + 0x115510]
sub ax, 0xa
add ax, cx
movzx esi, ax
mov rcx, qword [rsp + 0x38]
xor r10d, r10d
jmp 0x18007af23
mov edx, dword [rbx + 0x28]
test r15b, 2
je 0x18007aec3
mov r8d, edx
or r8d, 1
mov dword [rbx + 0x28], r8d
test rdi, rdi
js 0x18007aeb0
cmp word [rsp + 0x20], 0
jne 0x18007aeb9
movzx ecx, word [r13 + 0x5e]
movzx eax, word [rbx + 0x18]
dec ecx
cmp eax, ecx
jne 0x18007aeb9
cmp byte [r13 + 0x62], 0
jne 0x18007aeb0
mov rcx, qword [rsp + 0x38]
bts r8d, 0x10
mov dword [rbx + 0x28], r8d
xor r10d, r10d
jmp 0x18007af1f
or edx, 0x1001
mov dword [rbx + 0x28], edx
mov rcx, qword [rsp + 0x38]
xor r10d, r10d
jmp 0x18007af1f
test r15b, r15b
jns 0x18007aed8
mov rcx, qword [rsp + 0x38]
or edx, 8
mov dword [rbx + 0x28], edx
xor r10d, r10d
jmp 0x18007af1f
test r15b, 0x24
je 0x18007aef4
or edx, 0x22
mov r12, r14
xor r10d, r10d
mov dword [rbx + 0x28], edx
mov ecx, r10d
mov qword [rsp + 0x38], rcx
jmp 0x18007af1f
or edx, 0x12
xor r10d, r10d
mov dword [rbx + 0x28], edx
mov rcx, r14
mov qword [rsp + 0x38], rcx
test dl, 0x20
je 0x18007af1c
mov rax, qword [rbx + 0x30]
movzx ecx, r8w
mov r12, qword [rax + rcx*8 - 0x10]
mov rcx, r14
jmp 0x18007af1f
mov r12, r10
movzx esi, r10w
mov r9d, dword [rbx + 0x28]
test r9b, 2
je 0x18007afab
movsx edx, word [rbx + 0x16]
mov r8d, edx
test r12, r12
je 0x18007af4d
movzx eax, word [r12 + 0x18]
test ax, ax
jg 0x18007af49
add dx, ax
jmp 0x18007af4d
add dx, 0xffec
test rcx, rcx
je 0x18007af69
movzx eax, word [rcx + 0x18]
lea ecx, [rdx + rax]
sub dx, 0x14
test ax, ax
cmovle dx, cx
mov rcx, qword [rsp + 0x38]
test r12, r12
je 0x18007af77
test rcx, rcx
je 0x18007af77
sub dx, 0x14
test r12, r12
mov eax, r10d
setne al
sub r8d, eax
mov eax, r10d
test rcx, rcx
setne al
sub r8d, eax
cmp dx, 0xa
jge 0x18007af9a
mov edx, 0xa
movzx edi, dx
cmp edi, r8d
cmovge di, r8w
mov word [rbx + 0x16], di
jmp 0x18007b000
movzx ecx, word [rbx + 0x18]
inc cx
mov word [rbx + 0x18], cx
movzx eax, word [r14 + 0x18]
test ax, ax
jg 0x18007afd2
test rdi, rdi
js 0x18007afd2
sub ax, si
add word [rbx + 0x16], ax
movzx edi, word [rbx + 0x16]
jmp 0x18007b000
mov rax, qword [r13 + 0x10]
movzx ecx, cx
movzx edx, word [rax + rcx*2]
sub dx, word [rax + rcx*2 - 2]
add dx, word [rbx + 0x16]
mov word [rbx + 0x16], dx
movzx eax, dx
movzx edi, dx
test r15b, r15b
jns 0x18007b000
add ax, 0xa
mov word [rbx + 0x16], ax
movzx edi, ax
mov r14, qword [rsp + 0x40]
lea r10, [0x180000000]
movsx eax, word [r13 + 0x5c]
movsx r15d, word [rsp + 0x2a]
imul eax, eax, 0xf
mov rcx, qword [r14 + 0x20]
movsx r8d, word [rcx + 0x46]
cdq
idiv r8d
add ax, di
movsx edx, ax
inc edx
lea ecx, [rax + 1]
cmp r15w, cx
jl 0x18007b064
lea eax, [rdx + 0x31]
mov ecx, r15d
cmp r15d, eax
jg 0x18007b08b
lea eax, [rdx + 0x1f]
cmp ecx, eax
jle 0x18007b050
lea ecx, [r15 + 1]
jmp 0x18007b08b
sub ecx, edx
movsxd rax, ecx
movzx ecx, byte [rax + r10 + 0x116888]
add cx, r15w
jmp 0x18007b08b
lea eax, [r15 + 0x31]
cmp edx, eax
jg 0x18007b08b
lea eax, [r15 + 0x1f]
cmp edx, eax
jle 0x18007b079
inc cx
jmp 0x18007b08b
sub edx, r15d
movsxd rax, edx
movzx eax, byte [rax + r10 + 0x116888]
add cx, ax
test r9d, 0x140
jne 0x18007b101
movsx r8d, di
lea r9d, [rdi + 0x10]
add r8d, 0x10
movsx edx, cx
cmp cx, r9w
jl 0x18007b0d2
lea eax, [r8 + 0x31]
cmp edx, eax
jg 0x18007b101
lea eax, [r8 + 0x1f]
cmp edx, eax
jle 0x18007b0be
inc cx
jmp 0x18007b101
sub edx, r8d
movsxd rax, edx
movzx eax, byte [rax + r10 + 0x116888]
add cx, ax
jmp 0x18007b101
lea eax, [rdx + 0x31]
cmp r8d, eax
jle 0x18007b0e0
movzx ecx, r9w
jmp 0x18007b101
lea eax, [rdx + 0x1f]
cmp r8d, eax
jle 0x18007b0ee
lea ecx, [r9 + 1]
jmp 0x18007b101
sub r8d, edx
movsxd rax, r8d
movzx ecx, byte [rax + r10 + 0x116888]
add cx, r9w
mov r15, qword [rsp + 0x58]
lea eax, [rcx + rsi]
add ax, word [rsp + 0x20]
mov rdx, rbx
movzx r8d, word [rsp + 0x2c]
mov word [rbx + 0x14], ax
lea eax, [rdi + rsi]
add ax, word [rsp + 0x20]
mov word [rbx + 0x16], ax
mov rcx, qword [r15 + 8]
call fcn.18007a910
mov rdx, rbx
mov rcx, r15
call fcn.18007a6a0
mov ecx, dword [rbx + 0x28]
mov ebp, eax
movzx eax, word [rsp + 0x22]
test cl, 2
cmove ax, di
mov word [rbx + 0x16], ax
test cl, 0x10
jne 0x18007b177
movzx eax, word [r13 + 0x60]
cmp word [rbx + 0x18], ax
jae 0x18007b177
add si, word [rsp + 0x20]
mov r8, r13
movzx r9d, si
mov rdx, r14
mov rcx, r15
call fcn.18007aa30
movzx eax, word [rsp + 0x22]
mov rdi, qword [rsp + 0x60]
mov word [rbx + 0x16], ax
lea rcx, [rsp + 0x70]
call fcn.180074e90
mov rsi, qword [rsp + 0x40]
mov r14, rax
movzx r9d, word [rsp + 0x24]
mov ecx, 0x80
movzx r10d, word [rsp + 0x28]
mov r11d, dword [rsp + 0x30]
test ebp, ebp
je 0x18007ace0
mov rax, qword [rsp + 0x50]
mov r14, qword [rsp + 0x108]
mov rdi, qword [rsp + 0x110]
mov qword [rbx], rax
movzx eax, word [rsp + 0x24]
mov word [rbx + 0x18], ax
movzx eax, word [rsp + 0x26]
mov word [rbx + 0x1a], ax
mov eax, dword [rsp + 0x30]
mov dword [rbx + 0x28], eax
movzx eax, word [rsp + 0x22]
mov word [rbx + 0x16], ax
movzx eax, word [rsp + 0x28]
mov word [rbx + 0x2c], ax
mov eax, ebp
mov rcx, qword [rsp + 0xf0]
xor rcx, rsp
call fcn.1800cf6f0
add rsp, 0x118
pop r15
pop r13
pop r12
pop rsi
pop rbp
pop rbx
ret