Function at 0x8eeef0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x118
mov r12d, 7
mov rax, qword [rcx]
mov rax, qword [rax]
mov rbp, rcx
mov r14, rdx
mov rdi, r8
mov dword [rsp + 0x9c], r9d
mov word [rsp + 0x58], r9w
mov qword [rsp + 0x90], rax
mov rax, qword [rax]
cmp byte [rax + 0x67], 0
mov qword [rsp + 0x78], rax
jne 0x8ef321
mov rbx, qword [rcx + 0x10]
lea rsi, [rsp + 0xa0]
mov qword [rsp + 0x38], rsi
movzx ecx, word [rbx + 0x1a]
mov eax, dword [rbx + 0x38]
movzx r9d, word [rbx + 0x18]
mov word [rsp + 0x5a], cx
movzx ecx, word [rbx + 0x1c]
mov dword [rsp + 0x54], eax
and eax, 0x20
cmp eax, 1
mov word [rsp + 0x50], r9w
sbb eax, eax
mov dword [rsp + 0x6c], r9d
mov word [rsp + 0x98], cx
mov rcx, qword [rbx + 0x16]
and eax, 0x1a7
add eax, 0x18
mov edx, eax
and edx, 0xffffffc3
test byte [r8 + 0x64], 4
mov qword [rsp + 0x88], rcx
movzx ecx, word [rbx + 0x3e]
cmovne eax, edx
mov rdx, qword [rbp + 8]
mov word [rsp + 0x9a], cx
mov rcx, qword [rbx + 0x38]
mov qword [rsp + 0x80], rcx
movzx ecx, word [rbx + 0x3c]
mov word [rsp + 0x52], cx
mov rcx, qword [rbx]
mov qword [rsp + 0x48], rcx
movzx ecx, word [rbx + 0x16]
mov qword [rsp + 0x28], r8
mov r8d, dword [r14 + 0x44]
mov dword [rsp + 0x20], eax
mov word [rsp + 0x44], cx
mov rcx, rsi
call fcn.008eed60
xor r8d, r8d
xor r9d, r9d
mov rsi, rax
mov rax, qword [rdi + 0x10]
mov word [rbx + 0x12], r8w
mov word [rsp + 0x46], r9w
movsx ecx, word [rax]
cmp cx, 0xa
mov dword [rsp + 0x68], ecx
jg 0x8ef601
test rsi, rsi
je 0x8ef8b0
mov qword [rsp + 0x60], 0
movzx eax, word [rsp + 0x52]
mov qword [rsp + 0x70], 0
movzx r15d, word [rsp + 0x50]
add eax, 1
add r15, r15
mov dword [rsp + 0x5c], eax
nop word [rax + rax]
movzx r12d, word [rsi + 0x14]
cmp r12w, 0x100
je 0x8ef063
test byte [rsi + 0x12], 0x80
je 0x8ef080
mov rax, qword [rdi + 8]
movsx rdx, word [rax + r15]
test edx, edx
mov rax, rdx
jns 0x8ef340
cmp edx, 0xffffffff
je 0x8ef360
mov rcx, qword [rsi + 0x28]
mov r9, qword [rbx + 8]
test rcx, r9
jne 0x8ef360
cmp r12w, 0x10
sete dl
and dl, byte [rsi + 0x13]
mov r13d, edx
jne 0x8ef366
test byte [r14 + 0x3c], 8
je 0x8ef0b9
mov rax, qword [rsi]
test byte [rax + 4], 1
je 0x8ef360
cmp byte [rdi + 0x62], 0
movzx eax, byte [rbp + 0x20]
je 0x8ef0d4
movzx edx, word [rdi + 0x5e]
sub edx, 1
cmp dword [rsp + 0x6c], edx
je 0x8ef4e0
or eax, 1
mov byte [rbp + 0x20], al
mov eax, dword [rsp + 0x54]
mov r11d, dword [rsp + 0x5c]
movzx edx, word [rsp + 0x52]
mov dword [rbx + 0x38], eax
movzx eax, word [rsp + 0x50]
mov word [rbx + 0x3c], dx
mov word [rbx + 0x18], ax
movzx eax, word [rsp + 0x5a]
mov word [rbx + 0x1a], ax
movzx eax, word [rsp + 0x98]
mov word [rbx + 0x1c], ax
movzx eax, word [rbx + 0x40]
cmp r11d, eax
jle 0x8ef13a
mov rcx, qword [rsp + 0x78]
mov r8d, r11d
mov rdx, rbx
call fcn.008d4170
test eax, eax
jne 0x8ef8b0
movzx edx, word [rbx + 0x3c]
mov rcx, qword [rsi + 0x28]
mov r9, qword [rbx + 8]
or rcx, qword [rsp + 0x48]
lea r8d, [rdx + 1]
not r9
mov rax, qword [rbx + 0x48]
mov word [rbx + 0x3c], r8w
and r9, rcx
test r12b, 1
mov qword [rax + rdx*8], rsi
mov qword [rbx], r9
je 0x8ef370
movzx edx, byte [rdi + 0x64]
mov r9, qword [rsi]
shr dl, 7
cmp word [rsp + 0x46], 9
setg cl
and edx, ecx
test byte [r9 + 5], 8
jne 0x8ef691
mov rax, qword [r9 + 0x20]
test rax, rax
je 0x8ef197
movsxd rax, dword [rax]
test eax, eax
jne 0x8ef4f0
test dl, dl
jne 0x8ef8c0
mov r11d, dword [rbx + 0x38]
xor r13d, r13d
or r11d, 4
mov dword [rbx + 0x38], r11d
test r11b, 2
movzx eax, word [rbx + 0x16]
jne 0x8ef3e3
mov ecx, dword [rbx + 0x38]
movzx edx, word [rbx + 0x18]
movzx r8d, word [rsi + 0x10]
add edx, 1
test r8w, r8w
mov word [rbx + 0x18], dx
jle 0x8ef494
mov r9, qword [rdi + 0x10]
movzx edx, dx
mov r11d, ecx
add ax, word [r9 + rdx*2]
mov r10d, eax
sub r10w, word [r9 + rdx*2 - 2]
test r12w, 0x100
mov esi, r10d
mov word [rbx + 0x16], r10w
je 0x8ef20d
add r10d, 0xa
mov esi, r10d
mov word [rbx + 0x16], r10w
movsx edx, word [rdi + 0x5c]
mov eax, edx
shl eax, 4
sub eax, edx
mov rdx, qword [r14 + 0x20]
movsx ecx, word [rdx + 0x3c]
cdq
idiv ecx
movsx ecx, word [rsp + 0x46]
lea eax, [r10 + rax + 1]
movsx edx, ax
call fcn.008c0bf0
and r11d, 0x140
jne 0x8ef24d
lea edx, [r10 + 0x10]
movsx ecx, ax
movsx edx, dx
call fcn.008c0bf0
add r13w, word [rsp + 0x58]
mov rdx, rbx
mov rcx, qword [rbp + 8]
lea r8d, [r13 + r10]
add eax, r13d
mov word [rbx + 0x16], r8w
mov r8d, dword [rsp + 0x68]
mov word [rbx + 0x14], ax
call fcn.008c3300
mov rdx, rbx
mov rcx, rbp
call fcn.008d41f0
mov r12d, eax
mov eax, dword [rbx + 0x38]
test al, 2
cmovne si, word [rsp + 0x44]
test al, 0x10
mov word [rbx + 0x16], si
jne 0x8ef2c3
movzx eax, word [rbx + 0x18]
cmp ax, word [rdi + 0x60]
jae 0x8ef2c3
cmp ax, word [rdi + 0x5e]
jb 0x8ef2b1
movzx eax, byte [rdi + 0x64]
and eax, 3
cmp al, 2
je 0x8ef2c3
movsx r9d, r13w
mov r8, rdi
mov rdx, r14
mov rcx, rbp
call fcn.008eeef0
movzx eax, word [rsp + 0x44]
test r12d, r12d
sete r13b
mov word [rbx + 0x16], ax
mov rcx, qword [rsp + 0x38]
call fcn.008ee9c0
test rax, rax
mov rsi, rax
je 0x8ef2ee
test r13b, r13b
jne 0x8ef050
mov rax, qword [rsp + 0x48]
movzx esi, word [rsp + 0x9a]
cmp word [rsp + 0x50], si
mov qword [rbx], rax
mov rax, qword [rsp + 0x88]
mov qword [rbx + 0x16], rax
mov rax, qword [rsp + 0x80]
mov qword [rbx + 0x38], rax
je 0x8ef6f0
mov eax, r12d
add rsp, 0x118
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov rdx, qword [rdi + 0x18]
lea rax, [rax + rax*2]
mov rcx, qword [rdx + 8]
lea rax, [rcx + rax*8]
test byte [rax + 8], 0xf
je 0x8ef080
nop word [rax + rax]
mov r13d, 1
xor r12d, r12d
jmp 0x8ef2d3
test r12b, 0x82
mov eax, dword [rbx + 0x38]
je 0x8ef4c0
mov rdx, qword [rdi + 8]
mov r11d, eax
or r11d, 1
movsx edx, word [rdx + r15]
mov dword [rbx + 0x38], r11d
cmp edx, 0xffffffff
je 0x8ef670
test edx, edx
js 0x8ef3b9
cmp word [rsp + 0x58], 0
jne 0x8ef3b9
movzx edx, word [rdi + 0x5e]
mov ecx, edx
sub edx, 1
cmp dword [rsp + 0x6c], edx
je 0x8ef62d
xor r13d, r13d
cmp byte [rsp + 0xc9], 1
jbe 0x8ef1ae
or r11d, 0x200000
movzx eax, word [rbx + 0x16]
test r11b, 2
mov dword [rbx + 0x38], r11d
je 0x8ef1bc
xor r8d, r8d
cmp qword [rsp + 0x60], 0
movsx edx, ax
je 0x8ef417
mov rsi, qword [rsp + 0x60]
movzx ecx, word [rsi + 0x10]
test cx, cx
jle 0x8ef620
mov rsi, qword [rsp + 0x60]
mov r8d, 1
test byte [rsi + 0x12], 0x80
jne 0x8ef417
sub eax, 0x14
xor ecx, ecx
cmp qword [rsp + 0x70], 0
je 0x8ef466
mov rsi, qword [rsp + 0x70]
movzx r9d, word [rsi + 0x10]
test r9w, r9w
jle 0x8ef610
mov rsi, qword [rsp + 0x70]
lea ecx, [rax - 0x14]
test byte [rsi + 0x12], 0x80
cmove eax, ecx
mov rsi, qword [rsp + 0x60]
mov ecx, 1
test rsi, rsi
je 0x8ef466
cmp word [rsi + 0x10], 0
jle 0x8ef466
mov esi, eax
sub eax, 0x14
test r9w, r9w
cmovle eax, esi
add ecx, r8d
mov r8d, 0xa
sub edx, ecx
cmp ax, 0xa
cmovge r8d, eax
movsx r8d, r8w
cmp r8d, edx
cmovg r8d, edx
mov esi, r8d
mov word [rbx + 0x16], r8w
mov r10d, r8d
jmp 0x8ef20d
mov r9, qword [rdi + 8]
cmp word [r9 + r15], 0
js 0x8ef1d9
sub eax, r13d
mov r11d, ecx
lea r10d, [rax + r8]
mov esi, r10d
mov word [rbx + 0x16], r10w
jmp 0x8ef20d
test r12w, 0x100
je 0x8ef560
or eax, 8
xor r13d, r13d
mov r11d, eax
mov dword [rbx + 0x38], eax
jmp 0x8ef1ae
or eax, 2
jmp 0x8ef0d7
cmp rax, 7
ja 0x8ef830
cmp rax, 1
mov r10d, 0x1e
jne 0x8ef523
xor r13d, r13d
test dl, dl
je 0x8ef550
mov rax, qword [rdi + 0x10]
movzx r8d, word [rax + r15]
xor eax, eax
jmp 0x8ef8ce
mov r10d, ecx
lea ecx, [r10 - 0xa]
add rax, rax
cmp rax, 7
jbe 0x8ef520
lea rcx, [0x00e9e280]
and eax, 7
test dl, dl
movzx r9d, word [rcx + rax*2]
lea r13d, [r10 + r9 - 0xa]
movsx ecx, r13w
jne 0x8ef6d4
mov r11d, dword [rbx + 0x38]
jmp 0x8ef1a6
test r12b, 0x24
mov edx, dword [r14 + 0x44]
je 0x8ef851
mov r9d, dword [rsp + 0x6c]
or eax, 0x22
mov r8, rdi
mov rcx, qword [rsp + 0x90]
mov dword [rbx + 0x38], eax
mov qword [rsp + 0x20], rsi
call fcn.008e93f0
test byte [rsi + 0x13], 1
mov word [rbx + 0x1a], ax
je 0x8ef930
movzx r8d, word [rbx + 0x3c]
lea rax, [rsi + 0x38]
movzx edx, word [rbx + 0x40]
mov qword [rsp + 0x70], rax
mov rax, r8
add r8d, 1
cmp r8d, edx
jg 0x8ef952
mov r11d, dword [rbx + 0x38]
lea ecx, [rax + 1]
mov rdx, qword [rbx + 0x48]
mov word [rbx + 0x3c], cx
lea rcx, [rsi + 0x38]
or r11d, 0x10
mov qword [rdx + rax*8], rcx
mov eax, 1
mov dword [rbx + 0x38], r11d
mov word [rbx + 0x1c], ax
test r11b, 2
movzx eax, word [rbx + 0x16]
jne 0x8ef942
mov qword [rsp + 0x60], rsi
xor r13d, r13d
jmp 0x8ef1bc
call fcn.008cba90
mov word [rsp + 0x46], ax
jmp 0x8ef01a
add eax, r9d
jmp 0x8ef444
add eax, ecx
mov r8d, 1
jmp 0x8ef417
test byte [rdi + 0x64], 8
jne 0x8ef670
cmp cx, 1
je 0x8ef65a
or eax, 0x10001
xor r13d, r13d
cmp byte [rsp + 0xc9], 1
mov r11d, eax
mov dword [rbx + 0x38], eax
ja 0x8ef3ca
jmp 0x8ef1ae
cmp byte [rdi + 0x62], 0
je 0x8ef639
cmp r12w, 2
jne 0x8ef639
nop word [rax + rax]
or eax, 0x1001
xor r13d, r13d
cmp byte [rsp + 0xc9], 1
mov r11d, eax
mov dword [rbx + 0x38], eax
ja 0x8ef3ca
jmp 0x8ef1ae
cmp r8w, 1
jbe 0x8ef970
movzx r8d, r8w
xor r11d, r11d
lea ecx, [r8 - 2]
lea r10, [rax + rcx*8 + 8]
mov ecx, 0x2e
mov r8, qword [rax]
test r8, r8
je 0x8ef6c0
cmp qword [r8], r9
cmove ecx, r11d
add rax, 8
cmp r10, rax
jne 0x8ef6b1
test dl, dl
mov r13d, ecx
je 0x8ef550
mov rax, qword [rdi + 0x10]
cmp ecx, 0xa
movzx r8d, word [rax + r15]
jle 0x8ef9b8
call fcn.008cba90
jmp 0x8ef8ce
mov eax, dword [rsp + 0x6c]
movzx edx, word [rdi + 0x5e]
add eax, 1
cmp eax, edx
jge 0x8ef321
movzx esi, word [rsp + 0x52]
cmp word [rsp + 0x50], si
jne 0x8ef321
movzx eax, byte [rdi + 0x64]
and eax, 0xffffffc0
cmp al, 0x80
jne 0x8ef321
mov rcx, qword [rsp + 0x78]
test byte [rcx + 0x61], 0x40
jne 0x8ef321
movzx edx, word [rsp + 0x50]
mov rax, qword [rdi + 0x10]
lea rsi, [rdx + rdx + 2]
lea r9, [rax + rsi]
cmp word [r9], 0x29
jle 0x8ef321
movzx r8d, word [rsp + 0x52]
movzx edx, word [rbx + 0x40]
add r8d, 1
cmp r8d, edx
jle 0x8ef9bf
mov rdx, rbx
call fcn.008d4170
test eax, eax
mov r12d, eax
jne 0x8ef321
movzx eax, word [rbx + 0x3c]
movzx r8d, word [rbx + 0x18]
movzx ecx, word [rbx + 0x3e]
mov edx, dword [rbx + 0x38]
mov word [rsp + 0x52], ax
mov rax, qword [rdi + 0x10]
movzx r10d, word [rbx + 0x16]
lea r9, [rax + rsi]
movzx r15d, word [rsp + 0x52]
add r8d, 1
add ecx, 1
or dh, 0x80
mov word [rbx + 0x18], r8w
mov r8, qword [rbx + 0x48]
xor r12d, r12d
mov word [rbx + 0x3e], cx
lea ecx, [r15 + 1]
mov word [rbx + 0x3c], cx
movzx ecx, r15w
movzx eax, word [rax + rsi - 2]
mov qword [r8 + rcx*8], 0
movzx ecx, word [r9]
mov r8, rdi
movzx esi, word [rsp + 0x9c]
mov dword [rbx + 0x38], edx
lea edx, [r10 + rcx]
sub edx, eax
lea eax, [rax + rsi + 5]
mov word [rbx + 0x16], dx
mov rdx, r14
sub eax, ecx
mov rcx, rbp
movsx r9d, ax
call fcn.008eeef0
movzx eax, word [rsp + 0x44]
mov word [rbx + 0x16], ax
movzx eax, word [rsp + 0x50]
mov word [rbx + 0x18], ax
movzx eax, word [rsp + 0x9a]
mov word [rbx + 0x3e], ax
mov eax, dword [rsp + 0x54]
mov dword [rbx + 0x38], eax
jmp 0x8ef321
bsr r8, rax
mov ecx, 0x3c
xor r8, 0x3f
sub ecx, r8d
lea r10d, [rcx + rcx*4]
shr rax, cl
lea r10d, [r10 + r10 + 0x28]
jmp 0x8ef530
mov rcx, qword [rsp + 0x90]
or eax, 0x12
mov r8, rdi
mov r9d, dword [rsp + 0x6c]
mov dword [rbx + 0x38], eax
mov qword [rsp + 0x20], rsi
call fcn.008e93f0
mov r11d, dword [rbx + 0x38]
mov word [rbx + 0x1c], ax
test r11b, 0x20
mov ecx, r11d
jne 0x8ef910
test r11b, 2
movzx eax, word [rbx + 0x16]
jne 0x8ef983
mov qword [rsp + 0x70], rsi
xor r13d, r13d
mov qword [rsp + 0x60], 0
jmp 0x8ef1bf
xor r12d, r12d
jmp 0x8ef2ee
mov rax, qword [rdi + 0x10]
xor r13d, r13d
movzx r8d, word [rax + r15]
xor eax, eax
sub ax, word [rsp + 0x46]
lea eax, [r8 + rax + 0xa]
cmp ax, r13w
jns 0x8ef550
cmp word [rsp + 0x58], 1
jg 0x8ef360
mov rax, qword [rsp + 0x78]
test byte [rax + 0x62], 2
jne 0x8ef360
mov r11d, dword [rbx + 0x38]
or r11d, 0x100000
jmp 0x8ef1a6
movzx edx, word [rbx + 0x3c]
mov qword [rsp + 0x70], rsi
xor r13d, r13d
mov rax, qword [rbx + 0x48]
mov rax, qword [rax + rdx*8 - 0x10]
mov qword [rsp + 0x60], rax
jmp 0x8ef1ae
mov qword [rsp + 0x70], 0
mov r11d, dword [rbx + 0x38]
jmp 0x8ef5e6
movsx edx, ax
mov qword [rsp + 0x60], rsi
xor r13d, r13d
jmp 0x8ef3f1
mov rcx, qword [rsp + 0x78]
mov rdx, rbx
call fcn.008d4170
test eax, eax
jne 0x8ef8b0
movzx eax, word [rbx + 0x3c]
jmp 0x8ef5be
test dl, dl
jne 0x8ef99f
mov r11d, dword [rbx + 0x38]
mov r13d, 0x2e
jmp 0x8ef1a6
movsx edx, ax
mov qword [rsp + 0x70], rsi
xor r13d, r13d
xor r8d, r8d
mov qword [rsp + 0x60], 0
jmp 0x8ef421
mov rax, qword [rdi + 0x10]
mov r13d, 0x2e
mov ecx, 0x2e
movzx r8d, word [rax + r15]
jmp 0x8ef6e6
xor eax, eax
jmp 0x8ef8ce
movzx r8d, word [rsp + 0x50]
movzx r10d, word [rsp + 0x44]
mov edx, dword [rsp + 0x54]
mov ecx, r8d
jmp 0x8ef79a