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

Disassembly:
push rbp
push rsi
push rdi
push r12
push r13
sub rsp, 0xe0
mov rax, qword [0x18012a010]
xor rax, rsp
mov qword [rsp + 0xb0], rax
mov r13, qword [rsp + 0x130]
mov rdi, r9
mov rax, qword [rcx + 0x10]
xor r12d, r12d
mov rsi, qword [rcx]
mov rbp, r8
mov qword [rsp + 0x50], rdx
mov r9, rdx
mov qword [rsp + 0x38], rcx
mov qword [rsp + 0x68], r13
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x58], rsi
mov qword [rsp + 0xa8], r12
test rdi, rdi
je 0x18007d9f9
cmp dword [rdi], 0x40
cmovge rdi, r12
movzx r8d, word [rsp + 0x138]
mov r10d, 0xfbff
mov eax, dword [r9]
and r8w, r10w
mov qword [rsp + 0x98], rdi
movzx edx, byte [rsi + 0x4c]
and dl, 0x20
cmove r8w, word [rsp + 0x138]
mov word [rsp + 0x30], r8w
cmp eax, 0x40
jle 0x18007da4c
mov r8d, 0x40
lea rdx, str.at_most__d_tables_in_a_join
call fcn.1800095e0
xor eax, eax
jmp 0x18007e56f
test r8b, 0x40
mov qword [rsp + 0xd8], rbx
mov ecx, 1
mov qword [rsp + 0xd0], r14
cmovne eax, ecx
mov qword [rsp + 0xc8], r15
mov dword [rsp + 0x44], eax
mov rcx, rsi
lea eax, [rax + rax*4]
shl eax, 4
add eax, 0x347
and eax, 0xfffffff8
movsxd r14, eax
lea rdx, [r14 + 0x60]
call fcn.180006940
mov qword [rsp + 0x80], rax
mov r15, rax
test rax, rax
je 0x18007daaf
lea r8, [r14 + 0x60]
xor edx, edx
mov rcx, rax
call fcn.1800d31b0
cmp byte [rsi + 0x50], r12b
je 0x18007db12
test r15, r15
je 0x18007e555
cmp qword [rsi + 0x320], r12
je 0x18007dad7
mov rdx, r15
mov rcx, rsi
call fcn.1800065f0
jmp 0x18007e555
cmp r15, qword [rsi + 0x168]
jb 0x18007db05
cmp r15, qword [rsi + 0x170]
jae 0x18007db05
mov rax, qword [rsi + 0x160]
mov qword [r15], rax
dec dword [rsi + 0x14c]
mov qword [rsi + 0x160], r15
jmp 0x18007e555
mov rcx, r15
call fcn.180006540
jmp 0x18007e555
mov eax, dword [rsp + 0x44]
mov r8, 0xffffffffffffffff
mov rsi, qword [rsp + 0x60]
mov rdx, qword [rsp + 0x38]
mov qword [r15 + 0x4c], r8
mov byte [r15 + 0x39], al
mov rax, qword [rsp + 0x50]
mov qword [r15 + 8], rax
mov qword [r15], rdx
mov qword [r15 + 0x10], rdi
mov qword [r15 + 0x18], r13
mov rsi, qword [rsi + 0x30]
mov qword [rsp + 0x78], r8
movsxd rbx, dword [rsi + 0x78]
lea eax, [rbx + 1]
mov dword [rsi + 0x78], eax
lea eax, [rbx - 1]
test ebx, eax
jne 0x18007db8d
mov rdx, qword [rsi + 0x80]
lea eax, [rbx*2 + 1]
mov rcx, qword [rsi]
movsxd r8, eax
shl r8, 2
call fcn.180006af0
mov rdx, qword [rsp + 0x38]
mov r8, 0xffffffffffffffff
mov qword [rsi + 0x80], rax
mov rcx, qword [rsi + 0x80]
test rcx, rcx
je 0x18007db9d
mov dword [rcx + rbx*4], r8d
movzx eax, word [rsp + 0x30]
lea rsi, [r15 + 0x158]
mov word [r15 + 0x32], ax
lea rcx, [r14 + r15]
not ebx
mov dword [r15 + 0x40], ebx
mov dword [r15 + 0x44], ebx
lea rbx, [r15 + 0x54]
mov eax, dword [rdx + 0x1d8]
mov dword [r15 + 0x48], eax
lea rax, [rcx + 0x40]
mov qword [rsp + 0x88], r15
mov qword [rsp + 0x90], rsi
mov qword [rsp + 0xa0], rcx
mov qword [rcx + 0x30], rax
lea rax, [rsi + 0x28]
mov dword [rcx + 0x2c], 0x40000
mov dword [rcx + 0x28], r12d
mov dword [rbx], r12d
mov qword [rsi + 0x20], rax
mov qword [rsi], r15
mov qword [rsi + 8], r12
mov dword [rsi + 0x14], r12d
mov dword [rsi + 0x18], 8
mov byte [rsi + 0x10], 0x48
test rbp, rbp
je 0x18007dc4c
cmp byte [rbp], 0x48
mov rcx, rsi
je 0x18007dc31
xor r8d, r8d
mov rdx, rbp
call fcn.180074830
jmp 0x18007dc4c
mov rdx, qword [rbp + 0x10]
mov r8b, 0x48
call fcn.180074a80
mov rdx, qword [rbp + 0x18]
mov r8b, 0x48
mov rcx, rsi
call fcn.180074a80
mov rax, qword [rsp + 0x90]
mov esi, r12d
mov r14, qword [rsp + 0x38]
mov ebp, dword [rsp + 0x44]
cmp dword [rax + 0x14], r12d
jle 0x18007dcd4
mov rbx, r12
nop dword [rax]
test ebp, ebp
je 0x18007dc92
mov rax, qword [rax + 0x20]
mov edx, 2
mov rcx, qword [rbx + rax]
call fcn.18003c760
test eax, eax
je 0x18007dcbd
mov rax, qword [rsp + 0x90]
mov rdx, qword [rax + 0x20]
mov r9d, 0x10
mov r8d, dword [r15 + 0x44]
mov rcx, r14
mov rdx, qword [rdx + rbx]
call fcn.180040780
mov rax, qword [rsp + 0x90]
mov rcx, qword [rax + 0x20]
or byte [rcx + rbx + 0x1c], 4
mov rax, qword [rsp + 0x90]
inc esi
add rbx, 0x38
cmp esi, dword [rax + 0x14]
jl 0x18007dc70
lea rbx, [r15 + 0x54]
mov r9d, 0x400
test ebp, ebp
jne 0x18007dcfd
test rdi, rdi
je 0x18007dcea
movzx eax, byte [rdi]
mov byte [r15 + 0x34], al
movzx r12d, word [rsp + 0x30]
test r9w, r12w
je 0x18007dd03
mov byte [r15 + 0x38], 1
jmp 0x18007dd03
movzx r12d, word [rsp + 0x30]
mov r11, qword [rsp + 0x50]
xor esi, esi
mov r8d, esi
cmp dword [r11], esi
jle 0x18007dd37
lea rdx, [r11 + 0x50]
nop word [rax + rax]
mov eax, dword [rdx]
lea rdx, [rdx + 0x78]
movsxd rcx, dword [rbx]
inc r8d
mov dword [rbx + rcx*4 + 4], eax
inc dword [rbx]
cmp r8d, dword [r11]
jl 0x18007dd20
lea rax, [r15 + 0x158]
mov ebx, dword [rax + 0x14]
sub ebx, 1
js 0x18007dd79
nop word [rax + rax]
mov r8d, ebx
lea rdx, [r15 + 0x158]
mov rcx, r11
call fcn.180075bb0
sub ebx, 1
mov r11, qword [rsp + 0x50]
jns 0x18007dd50
lea rax, [r15 + 0x158]
mov r9d, 0x400
mov r10, qword [rsp + 0x58]
cmp byte [r10 + 0x50], sil
jne 0x18007e53a
and r12w, r9w
mov ebx, 0x200
mov word [rsp + 0x48], r12w
je 0x18007ddc3
mov r9, r13
mov r8, rax
mov rdx, r11
mov rcx, r14
call fcn.180076630
test eax, eax
je 0x18007ddb5
mov byte [r15 + 0x38], 1
jmp 0x18007ddc3
test rdi, rdi
jne 0x18007ddc3
or word [r15 + 0x32], bx
mov qword [r15 + 0x10], r13
cmp ebp, 1
jne 0x18007dddd
lea rcx, [rsp + 0x88]
call fcn.18007d6b0
test eax, eax
jne 0x18007df59
mov r12, qword [rsp + 0x88]
xor r10b, r10b
mov rbp, qword [rsp + 0xa0]
mov rdi, rsi
mov r15, rsi
mov ebx, esi
mov r14d, esi
mov rax, qword [r12]
movzx edx, byte [r12 + 0x39]
mov rcx, qword [r12 + 8]
mov dword [rsp + 0x70], edx
mov r13, qword [rax]
lea rax, [rbp + 0x40]
mov qword [rbp + 0x30], rax
mov dword [rbp + 0x2c], 0x40000
mov dword [rbp + 0x28], esi
test edx, edx
je 0x18007def2
lea rsi, [rcx + 0x44]
nop
xor r11d, r11d
mov byte [rbp + 0x10], r14b
movsxd rax, dword [r12 + 0x54]
mov edx, r11d
mov ecx, r11d
test eax, eax
jle 0x18007de65
mov r8d, dword [rsi + 0xc]
mov r9, rax
lea rax, [r12 + 0x58]
cmp dword [rax], r8d
je 0x18007dea1
inc edx
inc rcx
add rax, 4
cmp rcx, r9
jl 0x18007de52
mov rax, r11
mov qword [rbp + 8], rax
movzx ecx, byte [rsi]
movzx eax, cl
mov byte [rsp + 0x40], cl
or al, r10b
lea rcx, [rsp + 0x88]
test al, 0xa
mov rax, r15
cmove rax, rdi
mov rdi, rax
mov rax, qword [rsi - 0x1c]
mov rdx, rdi
test byte [rax + 0x48], 0x10
je 0x18007dead
call fcn.18007b830
jmp 0x18007deb2
mov ecx, edx
mov eax, 1
shl rax, cl
jmp 0x18007de68
call fcn.18007b130
mov ebx, eax
test eax, eax
jne 0x18007deca
mov rdx, rdi
lea rcx, [rsp + 0x88]
call fcn.18007bfe0
mov ebx, eax
or r15, qword [rbp + 8]
test ebx, ebx
jne 0x18007def0
cmp byte [r13 + 0x50], bl
jne 0x18007def0
movzx r10d, byte [rsp + 0x40]
inc r14d
add rsi, 0x78
cmp r14d, dword [rsp + 0x70]
jl 0x18007de30
xor esi, esi
mov rdx, rbp
mov rcx, r13
call fcn.18007a190
mov r15, qword [rsp + 0x80]
test ebx, ebx
jne 0x18007e535
xor edx, edx
mov rcx, r15
call fcn.18007ccf0
mov r10, qword [rsp + 0x58]
cmp byte [r10 + 0x50], bl
jne 0x18007e53a
cmp qword [r15 + 0x10], 0
je 0x18007df4c
movzx edx, word [r15 + 0x30]
mov rcx, r15
inc dx
call fcn.18007ccf0
mov r10, qword [rsp + 0x58]
cmp byte [r10 + 0x50], bl
jne 0x18007e53a
mov r13, qword [rsp + 0x68]
movzx r12d, word [rsp + 0x48]
jmp 0x18007df5e
mov r10, qword [rsp + 0x58]
cmp qword [r15 + 0x10], 0
jne 0x18007df77
test dword [r10 + 0x2c], 0x20000
je 0x18007df77
mov qword [r15 + 0x28], 0xffffffffffffffff
mov r11, qword [rsp + 0x38]
cmp dword [r11 + 0x4c], 0
jne 0x18007e53f
cmp byte [r10 + 0x50], 0
jne 0x18007e53f
cmp byte [r15 + 0x39], 2
mov edx, 0x1000
jb 0x18007e0e5
test r13, r13
je 0x18007e0e5
mov eax, 0x400
test word [r10 + 0x4c], ax
jne 0x18007e0e5
cmp dword [r13], 0
mov r14, rsi
mov edi, esi
jle 0x18007dff0
mov rbx, rsi
nop word [rax + rax]
mov rdx, qword [r13 + 8]
lea rcx, [r15 + 0x54]
mov rdx, qword [rbx + rdx]
call fcn.180074af0
or r14, rax
lea rbx, [rbx + 0x28]
inc edi
cmp edi, dword [r13]
jl 0x18007dfd0
mov rbp, qword [rsp + 0x98]
test rbp, rbp
je 0x18007e034
cmp dword [rbp], 0
mov rdi, rsi
jle 0x18007e02f
xor ebx, ebx
nop dword [rax + rax]
mov rdx, qword [rbp + 8]
lea rcx, [r15 + 0x54]
mov rdx, qword [rbx + rdx]
call fcn.180074af0
or rdi, rax
lea rbx, [rbx + 0x28]
inc esi
cmp esi, dword [rbp]
jl 0x18007e010
or r14, rdi
xor esi, esi
movzx eax, byte [r15 + 0x39]
cmp al, 2
jb 0x18007e0d6
mov r9, qword [r15 + 8]
movzx eax, al
lea rcx, [rax + rax*4]
add rcx, rcx
mov r8, qword [r15 + rcx*8 + 0x330]
movzx eax, byte [r8 + 0x10]
imul rcx, rax, 0x78
test byte [rcx + r9 + 0x44], 8
je 0x18007e0d6
test r12w, r12w
jne 0x18007e079
mov eax, 0x1000
test dword [r8 + 0x28], eax
je 0x18007e0d6
mov r8, qword [r8 + 8]
test r14, r8
jne 0x18007e0d6
mov rcx, qword [rsp + 0x90]
mov rax, qword [rcx + 0x20]
movsxd rcx, dword [rcx + 0x14]
imul rdx, rcx, 0x38
add rdx, rax
cmp rax, rdx
jae 0x18007e0bf
nop
test qword [rax + 0x30], r8
je 0x18007e0af
mov rcx, qword [rax]
test byte [rcx + 4], 1
je 0x18007e0ba
add rax, 0x38
cmp rax, rdx
jb 0x18007e0a0
jmp 0x18007e0bf
cmp rax, rdx
jb 0x18007e0d6
movzx eax, byte [r15 + 0x39]
dec dword [rsp + 0x44]
dec al
mov byte [r15 + 0x39], al
cmp al, 2
jae 0x18007e045
mov r11, qword [rsp + 0x38]
mov edx, 0x1000
mov r10, qword [rsp + 0x58]
mov rcx, qword [r15]
movsx eax, word [r15 + 0x30]
movzx ebx, word [rsp + 0x30]
add dword [rcx + 0x1d8], eax
test bl, 4
je 0x18007e123
mov rcx, qword [r15 + 0x380]
test dword [rcx + 0x28], edx
mov rdx, qword [rsp + 0x50]
je 0x18007e128
mov byte [r15 + 0x36], 1
mov rax, qword [rdx + 0x28]
test byte [rax + 0x48], 0x20
jne 0x18007e128
and dword [rcx + 0x28], 0xffffffbf
jmp 0x18007e128
mov rdx, qword [rsp + 0x50]
mov edi, dword [rsp + 0x44]
test edi, edi
jle 0x18007e3b0
mov r9d, dword [rsp + 0x140]
lea r12, [r15 + 0x380]
mov qword [rsp + 0x68], rdi
nop dword [rax + rax]
movzx eax, byte [r12 - 0x1c]
xor r8d, r8d
imul r13, rax, 0x78
mov esi, 0xfff0bdc0
mov rbp, 0xfffffffffff0bdc0
add r13, rdx
mov r14, qword [r13 + 0x28]
mov rdx, qword [r14 + 0x70]
test rdx, rdx
je 0x18007e1a2
mov ecx, dword [r10 + 0x28]
mov esi, r8d
mov ebp, r8d
test ecx, ecx
jle 0x18007e1a2
mov rax, qword [r10 + 0x20]
add rax, 0x18
nop
cmp qword [rax], rdx
je 0x18007e1a2
inc esi
inc rbp
add rax, 0x20
cmp esi, ecx
jl 0x18007e190
movzx ecx, byte [r14 + 0x48]
mov rdi, qword [r12]
test cl, 2
jne 0x18007e2c5
cmp qword [r14 + 0x18], 0
jne 0x18007e2c5
mov eax, dword [rdi + 0x28]
bt eax, 0xa
jae 0x18007e219
mov rbx, qword [r14 + 0x60]
test rbx, rbx
je 0x18007e1df
cmp qword [rbx], r10
je 0x18007e1df
mov rbx, qword [rbx + 0x28]
test rbx, rbx
jne 0x18007e1d1
mov rcx, qword [rsp + 0x60]
xor r9d, r9d
mov dword [rsp + 0x20], r8d
mov edx, 0x93
mov r8d, dword [r13 + 0x50]
call fcn.180026b30
mov rcx, qword [rsp + 0x60]
mov r9d, 0xfffffff6
mov r8, rbx
mov edx, eax
call fcn.180027110
movzx ebx, word [rsp + 0x30]
jmp 0x18007e2bd
test cl, 0x10
jne 0x18007e2c5
test al, 0x40
jne 0x18007e2a4
test bl, 0x10
jne 0x18007e2a4
cmp byte [r15 + 0x36], 0
mov ecx, 0x36
je 0x18007e244
mov eax, dword [r13 + 0x50]
mov ecx, 0x37
mov dword [r15 + 0x4c], eax
mov edx, dword [r13 + 0x50]
mov r9, r14
mov dword [rsp + 0x20], ecx
mov r8d, esi
mov rcx, r11
call fcn.180057d70
cmp byte [r15 + 0x36], 0
jne 0x18007e2bd
cmp word [r14 + 0x42], 0x40
jge 0x18007e2bd
test byte [r14 + 0x48], 0x20
jne 0x18007e2bd
mov rax, qword [r13 + 0x68]
xor ecx, ecx
test rax, rax
je 0x18007e287
nop dword [rax + rax]
inc ecx
shr rax, 1
jne 0x18007e280
mov rax, qword [rsp + 0x60]
mov r9d, 0xfffffff2
movsxd r8, ecx
mov rcx, rax
mov edx, dword [rax + 0x3c]
dec edx
call fcn.180027110
jmp 0x18007e2bd
mov rax, qword [r14]
xor r9d, r9d
mov r8d, dword [r14 + 0x3c]
mov edx, esi
mov rcx, r11
mov qword [rsp + 0x20], rax
call fcn.180045e40
mov r9d, dword [rsp + 0x140]
test dword [rdi + 0x28], 0x200
je 0x18007e302
test byte [r14 + 0x48], 0x20
mov edx, 0x36
mov rdi, qword [rdi + 0x20]
je 0x18007e486
mov eax, dword [rdi + 0x64]
and al, 3
cmp al, 2
jne 0x18007e486
test bl, 0x40
je 0x18007e486
mov eax, dword [r12 - 0x3c]
mov dword [r12 - 0x38], eax
mov r14, qword [rsp + 0x38]
test esi, esi
js 0x18007e356
mov rax, qword [r14 + 0x1c0]
mov rcx, r14
test rax, rax
cmovne rcx, rax
mov eax, dword [rcx + 0x16c]
bt eax, esi
jb 0x18007e356
bts eax, esi
mov r8, rbp
mov dword [rcx + 0x16c], eax
mov rax, qword [rcx]
shl r8, 5
mov rdx, qword [rax + 0x20]
mov rax, qword [r8 + rdx + 0x18]
mov edx, dword [rax]
mov dword [rcx + rbp*4 + 0x170], edx
cmp esi, 1
jne 0x18007e356
call fcn.18004d590
movsxd rax, dword [r15 + 0x54]
xor esi, esi
mov ecx, esi
test eax, eax
jle 0x18007e380
mov edx, dword [r13 + 0x50]
mov r8, rax
lea rax, [r15 + 0x58]
nop dword [rax]
cmp dword [rax], edx
je 0x18007e380
inc rcx
add rax, 4
cmp rcx, r8
jl 0x18007e370
mov r9d, dword [rsp + 0x140]
add r12, 0x50
sub qword [rsp + 0x68], 1
mov r10, qword [rsp + 0x58]
mov r11, qword [rsp + 0x38]
movzx ebx, word [rsp + 0x30]
mov rdx, qword [rsp + 0x50]
jne 0x18007e150
mov edi, dword [rsp + 0x44]
mov r13, qword [rsp + 0x60]
mov eax, dword [r13 + 0x3c]
mov dword [r15 + 0x3c], eax
cmp byte [r10 + 0x50], 0
jne 0x18007e53a
test edi, edi
jle 0x18007e47e
mov r14, qword [rsp + 0x38]
lea rbx, [r15 + 0x364]
movzx ebp, word [rsp + 0x30]
mov rax, qword [rbx + 0x1c]
test dword [rax + 0x28], 0x4000
je 0x18007e42e
movzx eax, byte [rbx]
lea rdx, [rbx - 0x24]
mov r8, qword [rsp + 0x50]
mov r9, qword [rsp + 0x78]
add r8, 8
imul rcx, rax, 0x78
mov qword [rsp + 0x20], rdx
lea rdx, [r15 + 0x158]
add r8, rcx
mov rcx, r14
call fcn.180076970
mov r10, qword [rsp + 0x58]
cmp byte [r10 + 0x50], 0
jne 0x18007e58e
movzx eax, byte [rbx]
lea r8, [rbx - 0x24]
mov rdx, qword [rsp + 0x50]
mov r9d, esi
mov word [rsp + 0x28], bp
mov rcx, r14
mov dword [rsp + 0x20], eax
call fcn.180077d80
mov eax, dword [r13 + 0x3c]
mov edx, esi
mov r8, qword [rsp + 0x78]
mov rcx, r15
mov dword [rbx - 4], eax
call fcn.180078210
mov qword [rsp + 0x78], rax
inc esi
mov eax, dword [rbx - 0xc]
add rbx, 0x50
mov dword [r15 + 0x40], eax
cmp esi, edi
jl 0x18007e3e1
mov rax, r15
jmp 0x18007e557
cmp byte [r15 + 0x36], 0
je 0x18007e4bc
mov rax, qword [r13 + 0x28]
mov r8d, r9d
mov rcx, qword [rax + 0x10]
test rcx, rcx
je 0x18007e4b1
nop dword [rax]
cmp rcx, rdi
je 0x18007e4b1
mov rcx, qword [rcx + 0x28]
inc r8d
test rcx, rcx
jne 0x18007e4a0
mov edx, 0x37
mov dword [r15 + 0x50], r8d
jmp 0x18007e4ee
test r9d, r9d
je 0x18007e4de
test bl, 0x40
je 0x18007e4de
movzx eax, bx
mov ecx, 0x1000
and ax, cx
mov r8d, r9d
neg ax
sbb edx, edx
add edx, 0x36
jmp 0x18007e4ee
mov rcx, qword [rsp + 0x38]
mov r8d, dword [rcx + 0x50]
lea eax, [r8 + 1]
mov dword [rcx + 0x50], eax
mov rcx, qword [rsp + 0x60]
mov eax, r8d
mov dword [r12 - 0x38], eax
mov r9d, dword [rdi + 0x58]
mov dword [rsp + 0x20], esi
call fcn.180026b30
mov r14, qword [rsp + 0x38]
mov rdx, rdi
mov rcx, r14
mov rbx, qword [r14 + 0x10]
call fcn.18004e350
mov edx, 0xffffffff
mov r8, rax
mov rcx, rbx
lea r9d, [rdx - 5]
call fcn.180027110
jmp 0x18007e307
mov r10, qword [rsp + 0x58]
mov r11, qword [rsp + 0x38]
mov eax, dword [r15 + 0x48]
mov rdx, r15
mov rcx, r10
mov dword [r11 + 0x1d8], eax
call fcn.18007a320
xor eax, eax
mov r14, qword [rsp + 0xd0]
mov rbx, qword [rsp + 0xd8]
mov r15, qword [rsp + 0xc8]
mov rcx, qword [rsp + 0xb0]
xor rcx, rsp
call fcn.1800cfa80
add rsp, 0xe0
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
mov r11, r14
jmp 0x18007e53f