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

Disassembly:
mov word [rsp + 0x20], r9w
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x108
mov rax, qword [rcx]
mov rbx, rdx
movzx r9d, word [rsp + 0x170]
xor edx, edx
mov qword [rsp + 0x28], rdx
mov rdi, r8
mov rsi, rcx
mov r15d, edx
mov rbp, qword [rax]
mov r8d, edx
mov qword [rsp + 0x58], rbp
test r9w, r9w
je 0x18007c522
test byte [rbp + 0x4c], 0x80
jne 0x18007ccaa
movzx r11d, word [rbx]
mov word [rsp + 0x40], r11w
cmp r11d, 0x3f
ja 0x18007ccaa
mov ecx, r11d
mov dword [rsp + 0x3c], r11d
mov r13d, r11d
mov qword [rsp + 0x60], rdx
mov r11d, 1
mov qword [rsp + 0x50], rdx
mov r10d, r11d
mov dword [rsp + 0x44], edx
shl r10, cl
mov r14b, 1
dec r10
mov dword [rsp + 0x24], r14d
mov qword [rsp + 0x70], r10
mov rbp, rdx
mov ecx, edx
mov qword [rsp + 0x68], rdx
mov r12d, 0x100
nop dword [rax + rax]
cmp r8, r10
jae 0x18007cc72
movzx eax, r9w
cmp ecx, eax
jg 0x18007cc6f
test ecx, ecx
jle 0x18007c5a2
or rbp, qword [r15 + 8]
mov qword [rsp + 0x50], rbp
cmp ecx, eax
jge 0x18007c5b0
mov rax, qword [rdi + 0x18]
mov r9, qword [rax + rdx*8]
jmp 0x18007c5b8
mov r9, qword [rsp + 0x178]
mov edx, dword [r9 + 0x28]
mov qword [rsp + 0x48], r9
bt edx, 0xa
jb 0x18007cc60
movzx eax, byte [r9 + 0x10]
xor edi, edi
imul rcx, rax, 0x78
mov rax, qword [rsi + 8]
mov r15d, edi
mov r10d, dword [rcx + rax + 0x50]
mov dword [rsp + 0x34], r10d
test r13d, r13d
je 0x18007c809
mov eax, r15d
bt r8, rax
jb 0x18007c7e3
mov r12d, r15d
lea rax, [r12 + r12*4]
lea r14, [rax*8]
mov rax, qword [rbx + 8]
mov rbx, qword [r14 + rax]
test rbx, rbx
je 0x18007c645
nop dword [rax]
mov eax, dword [rbx + 4]
bt eax, 0xc
jae 0x18007c645
bt eax, 0x12
jae 0x18007c63c
mov rax, qword [rbx + 0x20]
mov rcx, qword [rax + 8]
mov rbx, qword [rcx]
jmp 0x18007c640
mov rbx, qword [rbx + 0x10]
test rbx, rbx
jne 0x18007c620
cmp byte [rbx], 0x9a
jne 0x18007c7db
cmp dword [rbx + 0x2c], r10d
jne 0x18007c7db
lea rax, [rsi + 0x158]
mov word [rsp + 0x98], 0x200
mov qword [rsp + 0x80], rax
lea rcx, [rsp + 0x80]
mov qword [rsp + 0x88], rax
mov rsi, rdi
movsx eax, word [rbx + 0x30]
mov dword [rsp + 0xa8], eax
mov qword [rsp + 0x90], rdi
mov qword [rsp + 0x9c], 0x82
mov dword [rsp + 0xa4], r10d
mov byte [rsp + 0x9a], 2
call fcn.180074bf0
mov rdi, rax
test rax, rax
je 0x18007c6f3
not rbp
mov rax, qword [rdi + 0x28]
test rbp, rax
jne 0x18007c6de
test rax, rax
jne 0x18007c6d7
test byte [rdi + 0x1a], 2
jne 0x18007c6f6
test rsi, rsi
cmove rsi, rdi
lea rcx, [rsp + 0x80]
call fcn.180074bf0
mov rdi, rax
test rax, rax
jne 0x18007c6c3
mov rdi, rsi
mov rsi, qword [rsp + 0x150]
test rdi, rdi
je 0x18007c7ca
test byte [rdi + 0x1a], 2
je 0x18007c7ba
cmp word [rbx + 0x30], 0
jl 0x18007c7ba
mov rax, qword [rsp + 0x158]
mov rcx, qword [rsi]
mov rdx, qword [rax + 8]
mov rdx, qword [rdx + r14]
call fcn.180039790
mov rbp, qword [rsp + 0x58]
test rax, rax
jne 0x18007c742
mov rax, qword [rbp + 0x10]
mov rdx, qword [rdi]
mov rcx, qword [rsi]
mov rbx, qword [rax]
call fcn.180039790
test rax, rax
jne 0x18007c759
mov rax, qword [rbp + 0x10]
movzx r8d, byte [rbx]
lea r11, [0x1800eec60]
mov rdx, qword [rax]
test r8b, r8b
je 0x18007c7a5
movzx ecx, r8b
sub rbx, rdx
nop dword [rax]
nop word [rax + rax]
movzx eax, byte [rdx]
movzx r8d, cl
movzx ecx, cl
movzx eax, byte [rax + r11]
cmp byte [rcx + r11], al
jne 0x18007c7a5
movzx ecx, byte [rbx + rdx + 1]
inc rdx
movzx r8d, cl
test cl, cl
jne 0x18007c780
movzx eax, byte [rdx]
movzx ecx, byte [rax + r11]
movzx eax, r8b
movzx eax, byte [rax + r11]
cmp eax, ecx
jne 0x18007c7ca
mov r8, qword [rsp + 0x28]
bts r8, r12
mov qword [rsp + 0x28], r8
jmp 0x18007c7cf
mov r8, qword [rsp + 0x28]
mov r10d, dword [rsp + 0x34]
xor edi, edi
mov rbp, qword [rsp + 0x50]
mov rbx, qword [rsp + 0x158]
inc r15d
cmp r15d, r13d
jl 0x18007c5f0
mov r9, qword [rsp + 0x48]
mov r11d, 1
mov r14d, dword [rsp + 0x24]
mov r12d, 0x100
mov edx, dword [r9 + 0x28]
bt edx, 0xc
jb 0x18007cb6a
test r12d, edx
je 0x18007c82a
mov esi, dword [rsp + 0x24]
mov r14, rdi
mov word [rsp + 0x30], di
movzx eax, r11w
jmp 0x18007c85e
mov r14, qword [r9 + 0x20]
test r14, r14
je 0x18007ccaa
test byte [r14 + 0x64], 4
jne 0x18007ccaa
movzx eax, word [r14 + 0x5e]
cmp byte [r14 + 0x62], 0
mov word [rsp + 0x30], ax
movzx eax, word [r14 + 0x60]
setne sil
mov dword [rsp + 0x24], esi
xor cl, cl
movzx eax, ax
xor r11b, r11b
mov byte [rsp + 0x21], cl
mov byte [rsp + 0x20], cl
mov r13d, edi
mov dword [rsp + 0x38], r11d
mov r15, rdi
mov qword [rsp + 0x78], rax
test rax, rax
je 0x18007cb60
nop word [rax + rax]
movzx edx, word [r9 + 0x18]
cmp r13d, edx
jge 0x18007c8c9
cmp word [r9 + 0x1a], 0
jne 0x18007c8c9
mov rax, qword [r9 + 0x30]
mov rcx, qword [rax + r15*8]
movzx eax, word [rcx + 0x1a]
test al, 0x82
je 0x18007c8c9
test al, 0x80
mov ecx, edi
movzx eax, sil
cmove ecx, eax
movzx esi, cl
mov dword [rsp + 0x24], esi
jmp 0x18007cb3d
test r14, r14
je 0x18007c8ee
mov rax, qword [r14 + 8]
movsx ebp, word [rax + r15*2]
mov rax, qword [r14 + 0x38]
movzx r12d, byte [r15 + rax]
mov rax, qword [r14 + 0x18]
movsx ecx, word [rax + 0x40]
cmp ebp, ecx
jne 0x18007c8f6
jmp 0x18007c8f1
xor r12b, r12b
mov ebp, 0xffffffff
test sil, sil
je 0x18007c926
test ebp, ebp
js 0x18007c926
cmp r13d, edx
jl 0x18007c926
mov rax, qword [r14 + 0x18]
movsxd rcx, ebp
movzx esi, sil
mov rdx, qword [rax + 8]
lea rax, [rcx + rcx*2]
add rax, rax
cmp byte [rdx + rax*8 + 0x28], 0
cmove esi, edi
mov dword [rsp + 0x24], esi
mov r9b, 1
nop dword [rax]
cmp edi, dword [rsp + 0x3c]
jge 0x18007caa3
mov eax, edi
bt r8, rax
jb 0x18007ca54
mov rax, qword [rbx + 8]
movsxd rsi, edi
lea rcx, [rsi + rsi*4]
mov r8, qword [rax + rcx*8]
mov rax, r8
test r8, r8
je 0x18007c985
nop dword [rax]
mov ecx, dword [rax + 4]
bt ecx, 0xc
jae 0x18007c985
bt ecx, 0x12
jae 0x18007c97c
mov rcx, qword [rax + 0x20]
mov rax, qword [rcx + 8]
mov rax, qword [rax]
jmp 0x18007c980
mov rax, qword [rax + 0x10]
test rax, rax
jne 0x18007c960
mov ecx, 0x300
mov edx, 0
test word [rsp + 0x168], cx
movzx ecx, r9b
cmovne edx, ecx
cmp byte [rax], 0x9a
movzx r9d, dl
movzx ebx, dl
jne 0x18007ca4f
cmp dword [rax + 0x2c], r10d
jne 0x18007ca4f
movsx ecx, word [rax + 0x30]
cmp ecx, ebp
jne 0x18007ca4f
test ebp, ebp
js 0x18007ca6d
mov rax, qword [rsp + 0x150]
mov rdx, r8
mov rcx, qword [rax]
call fcn.180039790
test rax, rax
jne 0x18007c9ed
mov rax, qword [rsp + 0x58]
mov rax, qword [rax + 0x10]
mov r9, qword [rax]
lea r10, [0x1800eec60]
mov rax, qword [r14 + 0x40]
movzx r8d, byte [r9]
mov rdx, qword [rax + r15*8]
test r8b, r8b
je 0x18007ca36
movzx ecx, r8b
sub r9, rdx
nop
movzx eax, byte [rdx]
movzx r8d, cl
movzx ecx, cl
movzx eax, byte [rax + r10]
cmp byte [rcx + r10], al
jne 0x18007ca36
movzx ecx, byte [r9 + rdx + 1]
inc rdx
movzx r8d, cl
test cl, cl
jne 0x18007ca10
movzx eax, byte [rdx]
movzx r9d, bl
movzx ecx, byte [rax + r10]
movzx eax, r8b
movzx eax, byte [rax + r10]
cmp eax, ecx
je 0x18007ca6d
mov r8, qword [rsp + 0x28]
inc edi
test r9b, r9b
je 0x18007caa3
mov r10d, dword [rsp + 0x34]
mov rbx, qword [rsp + 0x158]
jmp 0x18007c930
mov eax, 0x100
test word [rsp + 0x168], ax
jne 0x18007cb08
cmp byte [rsp + 0x21], 0
lea rcx, [rsi + rsi*4]
mov rax, qword [rsp + 0x158]
mov rax, qword [rax + 8]
je 0x18007cadc
xor r12b, byte [rsp + 0x20]
cmp r12b, byte [rax + rcx*8 + 0x18]
je 0x18007cb08
test r15, r15
je 0x18007cab2
movzx eax, word [rsp + 0x30]
cmp r13d, eax
jge 0x18007cab7
mov byte [rsp + 0x24], 0
mov r8, qword [rsp + 0x28]
mov r11d, dword [rsp + 0x38]
mov r13d, dword [rsp + 0x3c]
test r11b, r11b
je 0x18007cb65
mov r14b, 1
mov dword [rsp + 0x24], r14d
jmp 0x18007cb73
movzx r10d, r12b
xor r10b, byte [rax + rcx*8 + 0x18]
mov byte [rsp + 0x20], r10b
je 0x18007cb03
mov rdx, qword [rsp + 0x180]
movsxd rax, dword [rsp + 0x44]
mov rcx, qword [rdx]
bts rcx, rax
mov qword [rdx], rcx
mov byte [rsp + 0x21], 1
mov r11d, dword [rsp + 0x38]
test ebp, ebp
mov r8, qword [rsp + 0x28]
mov eax, 1
mov esi, dword [rsp + 0x24]
mov r9, qword [rsp + 0x48]
movzx r11d, r11b
cmovs r11d, eax
movsxd rax, edi
bts r8, rax
mov dword [rsp + 0x38], r11d
mov qword [rsp + 0x28], r8
xor edi, edi
inc r13d
inc r15
cmp r15, qword [rsp + 0x78]
jge 0x18007cac1
mov r10d, dword [rsp + 0x34]
mov rbx, qword [rsp + 0x158]
jmp 0x18007c890
mov r13d, dword [rsp + 0x3c]
mov r14d, dword [rsp + 0x24]
test r14b, r14b
je 0x18007cc02
mov r12, qword [rsp + 0x60]
xor ebx, ebx
mov r15, qword [rsp + 0x48]
or r12, qword [r15 + 8]
mov qword [rsp + 0x60], r12
test r13d, r13d
je 0x18007cc07
nop dword [rax]
mov eax, ebx
bt r8, rax
jb 0x18007cbf9
mov rax, qword [rsp + 0x158]
lea rcx, [rbx + rbx*4]
mov edi, ebx
mov rax, qword [rax + 8]
mov rsi, qword [rax + rcx*8]
mov rcx, qword [rsp + 0x150]
mov rdx, rsi
add rcx, 0x54
call fcn.180074940
mov rbp, rax
test rax, rax
jne 0x18007cbd9
lea edx, [rax + 1]
mov rcx, rsi
call fcn.18003b540
test eax, eax
je 0x18007cbf4
mov r8, qword [rsp + 0x28]
mov rax, r12
not rax
test rbp, rax
jne 0x18007cbf9
bts r8, rdi
mov qword [rsp + 0x28], r8
jmp 0x18007cbf9
mov r8, qword [rsp + 0x28]
inc ebx
cmp ebx, r13d
jl 0x18007cb90
jmp 0x18007cc07
mov r15, qword [rsp + 0x48]
mov ecx, dword [rsp + 0x44]
mov r11d, 1
mov rdx, qword [rsp + 0x68]
inc ecx
mov rsi, qword [rsp + 0x150]
inc rdx
mov rbx, qword [rsp + 0x158]
mov r12d, 0x100
mov rbp, qword [rsp + 0x50]
mov r10, qword [rsp + 0x70]
movzx r9d, word [rsp + 0x170]
mov rdi, qword [rsp + 0x160]
mov dword [rsp + 0x44], ecx
mov qword [rsp + 0x68], rdx
test r14b, r14b
jne 0x18007c580
jmp 0x18007cc6f
cmp byte [r9 + 0x1d], 0
mov rcx, r10
cmove rcx, r8
mov r8, rcx
cmp r8, r10
jne 0x18007cc7b
movzx eax, byte [rsp + 0x40]
jmp 0x18007ccac
test r14b, r14b
jne 0x18007ccc5
lea ecx, [r13 - 1]
test ecx, ecx
jle 0x18007ccaa
nop dword [rax + rax]
mov rdx, r11
shl rdx, cl
dec rdx
mov rax, rdx
and rax, r8
cmp rax, rdx
je 0x18007ccc0
dec ecx
test ecx, ecx
jg 0x18007cc90
xor al, al
add rsp, 0x108
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret
movzx eax, cl
jmp 0x18007ccac
mov al, 0xff
jmp 0x18007ccac