Function at 0x18007c650
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 0x18007c6b2
test byte [rbp + 0x4c], 0x80
jne 0x18007ce3a
movzx r11d, word [rbx]
mov word [rsp + 0x40], r11w
cmp r11d, 0x3f
ja 0x18007ce3a
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 0x18007ce02
movzx eax, r9w
cmp ecx, eax
jg 0x18007cdff
test ecx, ecx
jle 0x18007c732
or rbp, qword [r15 + 8]
mov qword [rsp + 0x50], rbp
cmp ecx, eax
jge 0x18007c740
mov rax, qword [rdi + 0x18]
mov r9, qword [rax + rdx*8]
jmp 0x18007c748
mov r9, qword [rsp + 0x178]
mov edx, dword [r9 + 0x28]
mov qword [rsp + 0x48], r9
bt edx, 0xa
jb 0x18007cdf0
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 0x18007c999
mov eax, r15d
bt r8, rax
jb 0x18007c973
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 0x18007c7d5
nop dword [rax]
mov eax, dword [rbx + 4]
bt eax, 0xc
jae 0x18007c7d5
bt eax, 0x12
jae 0x18007c7cc
mov rax, qword [rbx + 0x20]
mov rcx, qword [rax + 8]
mov rbx, qword [rcx]
jmp 0x18007c7d0
mov rbx, qword [rbx + 0x10]
test rbx, rbx
jne 0x18007c7b0
cmp byte [rbx], 0x9a
jne 0x18007c96b
cmp dword [rbx + 0x2c], r10d
jne 0x18007c96b
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.180074d80
mov rdi, rax
test rax, rax
je 0x18007c883
not rbp
mov rax, qword [rdi + 0x28]
test rbp, rax
jne 0x18007c86e
test rax, rax
jne 0x18007c867
test byte [rdi + 0x1a], 2
jne 0x18007c886
test rsi, rsi
cmove rsi, rdi
lea rcx, [rsp + 0x80]
call fcn.180074d80
mov rdi, rax
test rax, rax
jne 0x18007c853
mov rdi, rsi
mov rsi, qword [rsp + 0x150]
test rdi, rdi
je 0x18007c95a
test byte [rdi + 0x1a], 2
je 0x18007c94a
cmp word [rbx + 0x30], 0
jl 0x18007c94a
mov rax, qword [rsp + 0x158]
mov rcx, qword [rsi]
mov rdx, qword [rax + 8]
mov rdx, qword [rdx + r14]
call fcn.180039920
mov rbp, qword [rsp + 0x58]
test rax, rax
jne 0x18007c8d2
mov rax, qword [rbp + 0x10]
mov rdx, qword [rdi]
mov rcx, qword [rsi]
mov rbx, qword [rax]
call fcn.180039920
test rax, rax
jne 0x18007c8e9
mov rax, qword [rbp + 0x10]
movzx r8d, byte [rbx]
lea r11, [0x180100cf0]
mov rdx, qword [rax]
test r8b, r8b
je 0x18007c935
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 0x18007c935
movzx ecx, byte [rbx + rdx + 1]
inc rdx
movzx r8d, cl
test cl, cl
jne 0x18007c910
movzx eax, byte [rdx]
movzx ecx, byte [rax + r11]
movzx eax, r8b
movzx eax, byte [rax + r11]
cmp eax, ecx
jne 0x18007c95a
mov r8, qword [rsp + 0x28]
bts r8, r12
mov qword [rsp + 0x28], r8
jmp 0x18007c95f
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 0x18007c780
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 0x18007ccfa
test r12d, edx
je 0x18007c9ba
mov esi, dword [rsp + 0x24]
mov r14, rdi
mov word [rsp + 0x30], di
movzx eax, r11w
jmp 0x18007c9ee
mov r14, qword [r9 + 0x20]
test r14, r14
je 0x18007ce3a
test byte [r14 + 0x64], 4
jne 0x18007ce3a
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 0x18007ccf0
nop word [rax + rax]
movzx edx, word [r9 + 0x18]
cmp r13d, edx
jge 0x18007ca59
cmp word [r9 + 0x1a], 0
jne 0x18007ca59
mov rax, qword [r9 + 0x30]
mov rcx, qword [rax + r15*8]
movzx eax, word [rcx + 0x1a]
test al, 0x82
je 0x18007ca59
test al, 0x80
mov ecx, edi
movzx eax, sil
cmove ecx, eax
movzx esi, cl
mov dword [rsp + 0x24], esi
jmp 0x18007cccd
test r14, r14
je 0x18007ca7e
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 0x18007ca86
jmp 0x18007ca81
xor r12b, r12b
mov ebp, 0xffffffff
test sil, sil
je 0x18007cab6
test ebp, ebp
js 0x18007cab6
cmp r13d, edx
jl 0x18007cab6
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 0x18007cc33
mov eax, edi
bt r8, rax
jb 0x18007cbe4
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 0x18007cb15
nop dword [rax]
mov ecx, dword [rax + 4]
bt ecx, 0xc
jae 0x18007cb15
bt ecx, 0x12
jae 0x18007cb0c
mov rcx, qword [rax + 0x20]
mov rax, qword [rcx + 8]
mov rax, qword [rax]
jmp 0x18007cb10
mov rax, qword [rax + 0x10]
test rax, rax
jne 0x18007caf0
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 0x18007cbdf
cmp dword [rax + 0x2c], r10d
jne 0x18007cbdf
movsx ecx, word [rax + 0x30]
cmp ecx, ebp
jne 0x18007cbdf
test ebp, ebp
js 0x18007cbfd
mov rax, qword [rsp + 0x150]
mov rdx, r8
mov rcx, qword [rax]
call fcn.180039920
test rax, rax
jne 0x18007cb7d
mov rax, qword [rsp + 0x58]
mov rax, qword [rax + 0x10]
mov r9, qword [rax]
lea r10, [0x180100cf0]
mov rax, qword [r14 + 0x40]
movzx r8d, byte [r9]
mov rdx, qword [rax + r15*8]
test r8b, r8b
je 0x18007cbc6
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 0x18007cbc6
movzx ecx, byte [r9 + rdx + 1]
inc rdx
movzx r8d, cl
test cl, cl
jne 0x18007cba0
movzx eax, byte [rdx]
movzx r9d, bl
movzx ecx, byte [rax + r10]
movzx eax, r8b
movzx eax, byte [rax + r10]
cmp eax, ecx
je 0x18007cbfd
mov r8, qword [rsp + 0x28]
inc edi
test r9b, r9b
je 0x18007cc33
mov r10d, dword [rsp + 0x34]
mov rbx, qword [rsp + 0x158]
jmp 0x18007cac0
mov eax, 0x100
test word [rsp + 0x168], ax
jne 0x18007cc98
cmp byte [rsp + 0x21], 0
lea rcx, [rsi + rsi*4]
mov rax, qword [rsp + 0x158]
mov rax, qword [rax + 8]
je 0x18007cc6c
xor r12b, byte [rsp + 0x20]
cmp r12b, byte [rax + rcx*8 + 0x18]
je 0x18007cc98
test r15, r15
je 0x18007cc42
movzx eax, word [rsp + 0x30]
cmp r13d, eax
jge 0x18007cc47
mov byte [rsp + 0x24], 0
mov r8, qword [rsp + 0x28]
mov r11d, dword [rsp + 0x38]
mov r13d, dword [rsp + 0x3c]
test r11b, r11b
je 0x18007ccf5
mov r14b, 1
mov dword [rsp + 0x24], r14d
jmp 0x18007cd03
movzx r10d, r12b
xor r10b, byte [rax + rcx*8 + 0x18]
mov byte [rsp + 0x20], r10b
je 0x18007cc93
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 0x18007cc51
mov r10d, dword [rsp + 0x34]
mov rbx, qword [rsp + 0x158]
jmp 0x18007ca20
mov r13d, dword [rsp + 0x3c]
mov r14d, dword [rsp + 0x24]
test r14b, r14b
je 0x18007cd92
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 0x18007cd97
nop dword [rax]
mov eax, ebx
bt r8, rax
jb 0x18007cd89
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.180074ad0
mov rbp, rax
test rax, rax
jne 0x18007cd69
lea edx, [rax + 1]
mov rcx, rsi
call fcn.18003b6d0
test eax, eax
je 0x18007cd84
mov r8, qword [rsp + 0x28]
mov rax, r12
not rax
test rbp, rax
jne 0x18007cd89
bts r8, rdi
mov qword [rsp + 0x28], r8
jmp 0x18007cd89
mov r8, qword [rsp + 0x28]
inc ebx
cmp ebx, r13d
jl 0x18007cd20
jmp 0x18007cd97
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 0x18007c710
jmp 0x18007cdff
cmp byte [r9 + 0x1d], 0
mov rcx, r10
cmove rcx, r8
mov r8, rcx
cmp r8, r10
jne 0x18007ce0b
movzx eax, byte [rsp + 0x40]
jmp 0x18007ce3c
test r14b, r14b
jne 0x18007ce55
lea ecx, [r13 - 1]
test ecx, ecx
jle 0x18007ce3a
nop dword [rax + rax]
mov rdx, r11
shl rdx, cl
dec rdx
mov rax, rdx
and rax, r8
cmp rax, rdx
je 0x18007ce50
dec ecx
test ecx, ecx
jg 0x18007ce20
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 0x18007ce3c
mov al, 0xff
jmp 0x18007ce3c