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

Disassembly:
mov rax, rsp
mov word [rax + 0x20], r9w
mov qword [rax + 0x18], r8
mov qword [rax + 0x10], rdx
mov qword [rax + 8], rcx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0xa8
xor r12d, r12d
mov rbp, r8
mov r10, rcx
mov r8, rdx
mov r13d, r12d
mov r15d, r12d
mov qword [rsp + 0x68], r12
cmp word [rsp + 0x110], r12w
je 0x18009c0c5
mov rax, qword [rcx]
mov r10, qword [rax]
test byte [r10 + 0x60], 0x40
je 0x18009c0bd
xor al, al
jmp 0x18009c8b1
mov r10, qword [rsp + 0xf0]
movzx eax, word [rdx]
mov word [rsp + 0x58], ax
cmp ax, 0x3f
ja 0x18009c0b6
mov r14d, 1
movzx edi, ax
mov eax, 0x803
mov ecx, edi
mov edx, r14d
mov r11b, r14b
shl rdx, cl
mov dword [rsp + 0x40], edi
mov qword [rsp + 0x88], r12
sub rdx, r14
mov dword [rsp + 0x34], r11d
mov rsi, r12
mov qword [rsp + 0x50], r12
mov dword [rsp + 0x5c], 0x182
mov qword [rsp + 0x80], rdx
test ax, r9w
je 0x18009c128
mov eax, 0x183
mov word [rsp + 0x5c], ax
mov ecx, r12d
mov rbx, r12
mov dword [rsp + 0x48], ecx
mov qword [rsp + 0x78], rbx
cmp r15, rdx
jae 0x18009c86d
movzx eax, word [rsp + 0x110]
cmp ecx, eax
jg 0x18009c86a
test ecx, ecx
jle 0x18009c15d
or rsi, qword [r13 + 8]
mov qword [rsp + 0x50], rsi
cmp ecx, eax
jge 0x18009c182
mov rax, qword [rbp + 0x18]
mov r13, qword [rax + rbx*8]
mov eax, 0x800
mov qword [rsp + 0x90], r13
test ax, r9w
jne 0x18009c82a
jmp 0x18009c192
mov r13, qword [rsp + 0x118]
mov qword [rsp + 0x90], r13
test dword [r13 + 0x38], 0x400
jne 0x18009c84d
movzx eax, r9w
mov ecx, 0x80
and ax, cx
mov word [rsp + 0x60], ax
je 0x18009c1b8
mov word [r13 + 0x1e], r12w
movzx ecx, byte [r13 + 0x10]
mov rax, qword [r10 + 8]
mov r14d, r12d
imul rcx, rcx, 0x68
mov edx, dword [rcx + rax + 0x4c]
mov dword [rsp + 0x3c], edx
test edi, edi
jle 0x18009c33e
lea rbp, [r8 + 8]
mov ecx, r14d
mov r12d, 1
shl r12, cl
test r15, r12
jne 0x18009c310
mov rcx, qword [rbp]
call fcn.18005c2a4
xor r11d, r11d
mov rbx, rax
test rax, rax
je 0x18009c310
cmp byte [rax], 0xa7
je 0x18009c217
cmp byte [rax], 0xa9
jne 0x18009c310
cmp dword [rax + 0x2c], edx
jne 0x18009c310
movzx eax, word [rsp + 0x5c]
movsx r8d, word [rbx + 0x30]
mov qword [rsp + 0x28], r11
mov r9, rsi
lea rcx, [r10 + 0x70]
mov dword [rsp + 0x20], eax
not r9
call fcn.1800981c0
xor r11d, r11d
mov rsi, rax
test rax, rax
je 0x18009c2ff
lea r10d, [r11 + 1]
cmp word [rax + 0x14], r10w
jne 0x18009c285
movzx edx, word [r13 + 0x3c]
mov ecx, r11d
test edx, edx
jle 0x18009c281
mov r8, qword [r13 + 0x48]
movsxd rax, ecx
cmp rsi, qword [r8 + rax*8]
je 0x18009c281
movzx eax, word [r13 + 0x3c]
add ecx, r10d
cmp ecx, eax
jl 0x18009c26c
cmp ecx, edx
jge 0x18009c2ff
test byte [rsi + 0x14], 0x82
je 0x18009c2f6
cmp word [rbx + 0x30], r11w
jl 0x18009c2f6
mov rbx, qword [rsp + 0xf0]
mov rdx, qword [rbp]
mov rbx, qword [rbx]
mov rcx, rbx
call fcn.18005c2d0
mov rdi, rax
test rax, rax
jne 0x18009c2b8
mov rax, qword [rbx]
mov rdi, qword [rax + 0x10]
mov rdx, qword [rsi]
mov rcx, rbx
test dword [rdx + 4], 0x400
je 0x18009c2d1
mov r8, qword [rdx + 0x10]
mov rdx, qword [rdx + 0x18]
jmp 0x18009c2d9
mov r8, qword [rdx + 0x18]
mov rdx, qword [rdx + 0x10]
call fcn.18005c524
test rax, rax
je 0x18009c2fb
mov rdx, qword [rax]
mov rcx, qword [rdi]
call fcn.18002bf28
mov edi, dword [rsp + 0x40]
test eax, eax
jne 0x18009c2ff
or r15, r12
jmp 0x18009c2ff
mov edi, dword [rsp + 0x40]
mov edx, dword [rsp + 0x3c]
mov r10, qword [rsp + 0xf0]
mov rsi, qword [rsp + 0x50]
inc r14d
add rbp, 0x20
cmp r14d, edi
jl 0x18009c1dc
mov r11d, dword [rsp + 0x34]
movzx r9d, word [rsp + 0x108]
mov r8, qword [rsp + 0xf8]
mov qword [rsp + 0x68], r15
xor r12d, r12d
test dword [r13 + 0x38], 0x1000
jne 0x18009c74e
test dword [r13 + 0x38], 0x100
je 0x18009c369
mov edi, 1
mov r14, r12
mov word [rsp + 0x4c], r12w
movzx eax, di
jmp 0x18009c3b7
mov r14, qword [r13 + 0x20]
test r14, r14
je 0x18009c0b6
test byte [r14 + 0x64], 4
jne 0x18009c0b6
movzx eax, word [r14 + 0x5e]
mov word [rsp + 0x4c], ax
movzx eax, word [r14 + 0x60]
cmp byte [r14 + 0x62], r12b
je 0x18009c3aa
test dword [r13 + 0x38], 0x8000
jne 0x18009c3aa
mov edi, 1
mov r11b, dil
jmp 0x18009c3b2
mov r11b, r12b
mov edi, 1
mov dword [rsp + 0x34], r11d
movzx eax, ax
mov bpl, r12b
mov byte [rsp + 0x38], r12b
mov byte [rsp + 0x39], r12b
mov esi, r12d
mov dword [rsp + 0x44], ebp
mov dword [rsp + 0x70], eax
test eax, eax
jle 0x18009c74e
movzx r10d, word [r13 + 0x18]
mov byte [rsp + 0x30], dil
cmp esi, r10d
jge 0x18009c45a
movzx eax, word [r13 + 0x3e]
cmp esi, eax
jl 0x18009c45a
mov r8, qword [r13 + 0x48]
movsxd rax, esi
mov rcx, qword [r8 + rax*8]
mov eax, dword [rsp + 0x5c]
test word [rcx + 0x14], ax
je 0x18009c42b
mov r8, qword [rsp + 0xf8]
mov eax, 0x180
test word [rcx + 0x14], ax
je 0x18009c73d
mov r11b, r12b
mov dword [rsp + 0x34], r11d
jmp 0x18009c73d
test byte [rcx + 0x14], dil
je 0x18009c45a
mov r9, qword [rcx]
lea edx, [rsi + 1]
cmp edx, r10d
jge 0x18009c45a
movsxd rax, edx
mov rcx, qword [r8 + rax*8]
cmp qword [rcx], r9
je 0x18009c455
movzx eax, word [r13 + 0x18]
add edx, edi
cmp edx, eax
jl 0x18009c43c
jmp 0x18009c45a
mov byte [rsp + 0x30], r12b
test r14, r14
je 0x18009c5bc
mov rax, qword [r14 + 8]
movsxd rcx, esi
movsx r12d, word [rax + rcx*2]
mov rax, qword [r14 + 0x38]
mov r15b, byte [rcx + rax]
mov rax, qword [r14 + 0x18]
movsx ecx, word [rax + 0x34]
and r15b, dil
cmp r12d, ecx
jne 0x18009c48b
or r12d, 0xffffffff
xor r9d, r9d
test r11b, r11b
je 0x18009c4ca
test r12d, r12d
js 0x18009c4b9
cmp esi, r10d
jl 0x18009c4b9
movsxd rax, r12d
lea rdx, [rax + rax*2]
mov rax, qword [r14 + 0x18]
mov rcx, qword [rax + 8]
mov al, byte [rcx + rdx*8 + 8]
and al, 0xf
neg al
sbb al, al
and r11b, al
movzx r11d, r11b
cmp r12d, 0xfffffffe
cmove r11d, r9d
mov dword [rsp + 0x34], r11d
mov al, byte [rsp + 0x30]
mov edi, r9d
test al, al
je 0x18009c575
mov ecx, 1
cmp edi, dword [rsp + 0x40]
jge 0x18009c56c
mov rbx, qword [rsp + 0x68]
mov eax, edi
bt rbx, rax
jb 0x18009c6ba
mov r8, qword [rsp + 0xf8]
movsxd rbp, edi
shl rbp, 5
mov rcx, qword [r8 + rbp + 8]
call fcn.18005c2a4
mov rdx, rax
test rax, rax
je 0x18009c559
mov al, byte [rsp + 0x108]
and al, 0xc0
neg al
sbb al, al
and al, byte [rsp + 0x30]
mov byte [rsp + 0x30], al
cmp r12d, 0xffffffff
jl 0x18009c5cb
cmp byte [rdx], 0xa7
je 0x18009c543
cmp byte [rdx], 0xa9
jne 0x18009c55d
mov ecx, dword [rsp + 0x3c]
cmp dword [rdx + 0x2c], ecx
jne 0x18009c55d
movsx eax, word [rdx + 0x30]
cmp eax, r12d
je 0x18009c60d
mov al, byte [rsp + 0x30]
mov ecx, 1
add edi, ecx
test al, al
jne 0x18009c4de
mov ebp, dword [rsp + 0x44]
mov r11d, dword [rsp + 0x34]
movzx r9d, word [rsp + 0x108]
mov r8, qword [rsp + 0xf8]
xor r12d, r12d
test esi, esi
je 0x18009c596
movzx eax, word [rsp + 0x4c]
cmp esi, eax
jge 0x18009c599
mov r11b, r12b
mov r15, qword [rsp + 0x68]
movzx eax, r11b
test bpl, bpl
mov r14d, 1
cmovne eax, r14d
mov r11b, al
mov dword [rsp + 0x34], r11d
jmp 0x18009c754
or r12d, 0xffffffff
xor r9d, r9d
mov r15b, r9b
jmp 0x18009c48e
mov rax, qword [r14 + 0x50]
movsxd rcx, esi
shl rcx, 5
mov rcx, qword [rcx + rax + 8]
call fcn.18005c2a4
mov rcx, rdx
mov r8, rax
call fcn.18005c2a4
mov r9d, dword [rsp + 0x3c]
mov rdx, rax
xor ecx, ecx
call fcn.180062844
xor r9d, r9d
test eax, eax
jne 0x18009c559
mov r8, qword [rsp + 0xf8]
cmp r12d, 0xffffffff
je 0x18009c65d
mov rax, qword [rsp + 0xf0]
mov rdx, qword [r8 + rbp + 8]
mov rbx, qword [rax]
mov rcx, rbx
call fcn.18005c2d0
mov rcx, rax
test rax, rax
jne 0x18009c63a
mov rax, qword [rbx]
mov rcx, qword [rax + 0x10]
mov rdx, qword [r14 + 0x40]
mov rcx, qword [rcx]
movsxd rax, esi
mov rdx, qword [rdx + rax*8]
call fcn.18002bf28
xor r9d, r9d
test eax, eax
jne 0x18009c559
mov rbx, qword [rsp + 0x68]
mov r11d, 1
cmp word [rsp + 0x60], r9w
je 0x18009c674
lea eax, [r11 + rsi]
mov word [r13 + 0x1e], ax
movzx r9d, word [rsp + 0x108]
mov r8, qword [rsp + 0xf8]
test r9b, 0x40
jne 0x18009c6ee
movsxd rax, edi
xor edx, edx
shl rax, 5
cmp byte [rsp + 0x38], dl
je 0x18009c6c3
mov cl, byte [rax + r8 + 0x18]
xor r15b, byte [rsp + 0x39]
and cl, r11b
cmp r15b, cl
je 0x18009c6ee
mov r11d, dword [rsp + 0x34]
mov ebp, dword [rsp + 0x44]
jmp 0x18009c586
mov al, byte [rsp + 0x30]
jmp 0x18009c562
mov dl, byte [rax + r8 + 0x18]
and dl, r11b
xor dl, r15b
mov byte [rsp + 0x39], dl
je 0x18009c6e9
mov ecx, dword [rsp + 0x48]
mov rax, r11
shl rax, cl
mov rcx, qword [rsp + 0x120]
or qword [rcx], rax
mov byte [rsp + 0x38], r11b
movsxd rax, edi
shl rax, 5
test byte [rax + r8 + 0x18], 2
je 0x18009c70c
movzx eax, word [r13 + 0x18]
cmp esi, eax
jne 0x18009c6ac
bts dword [r13 + 0x38], 0x13
mov ebp, dword [rsp + 0x44]
cmp r12d, 0xffffffff
mov ecx, edi
mov rax, r11
movzx ebp, bpl
cmove ebp, r11d
mov r11d, dword [rsp + 0x34]
shl rax, cl
or rbx, rax
xor r12d, r12d
mov dword [rsp + 0x44], ebp
lea edi, [r12 + 1]
mov qword [rsp + 0x68], rbx
add esi, edi
cmp esi, dword [rsp + 0x70]
jge 0x18009c599
jmp 0x18009c3da
mov r14d, 1
mov edi, dword [rsp + 0x40]
test r11b, r11b
je 0x18009c811
mov r14, qword [rsp + 0x88]
mov ebx, r12d
or r14, qword [r13 + 8]
mov qword [rsp + 0x88], r14
test edi, edi
jle 0x18009c80b
mov r13, qword [rsp + 0xf0]
lea rsi, [r8 + 8]
mov eax, 1
mov ecx, ebx
mov edi, eax
shl rdi, cl
test r15, rdi
jne 0x18009c7d7
mov rbp, qword [rsi]
lea rcx, [r13 + 0x258]
mov rdx, rbp
call fcn.180097c40
mov r12, rax
test rax, rax
jne 0x18009c7c9
lea edx, [rax + 1]
xor r8d, r8d
mov rcx, rbp
call fcn.18005e500
test eax, eax
je 0x18009c7d7
mov rax, r14
not rax
test r12, rax
jne 0x18009c7d7
or r15, rdi
mov edi, dword [rsp + 0x40]
inc ebx
add rsi, 0x20
cmp ebx, edi
jl 0x18009c78c
mov r13, qword [rsp + 0x90]
mov r11d, dword [rsp + 0x34]
movzx r9d, word [rsp + 0x108]
mov r8, qword [rsp + 0xf8]
mov qword [rsp + 0x68], r15
xor r12d, r12d
mov r14d, 1
mov rdx, qword [rsp + 0x80]
mov ecx, dword [rsp + 0x48]
mov rsi, qword [rsp + 0x50]
mov rbp, qword [rsp + 0x100]
add qword [rsp + 0x78], r14
add ecx, r14d
mov dword [rsp + 0x48], ecx
test r11b, r11b
je 0x18009c86a
mov r10, qword [rsp + 0xf0]
mov rbx, qword [rsp + 0x78]
jmp 0x18009c137
cmp byte [r13 + 0x20], r12b
je 0x18009c86a
mov eax, 0x280
and r9w, ax
mov eax, 0x80
cmp r9w, ax
je 0x18009c86a
mov r15, rdx
cmp r15, rdx
jne 0x18009c875
mov al, byte [rsp + 0x58]
jmp 0x18009c8b1
test r11b, r11b
jne 0x18009c8af
lea edx, [rdi - 1]
jmp 0x18009c8a2
mov ecx, edx
mov rax, r14
shl rax, cl
mov rcx, r12
sub rax, r14
cmp edx, 0x40
cmovl rcx, rax
mov rax, rcx
and rax, r15
cmp rax, rcx
je 0x18009c8ab
sub edx, r14d
test edx, edx
jg 0x18009c87f
jmp 0x18009c0b6
mov al, dl
jmp 0x18009c8b1
mov al, 0xff
add rsp, 0xa8
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret