Function at 0x18007d9f0
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 0x18007da59
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 0x18007daac
mov r8d, 0x40
lea rdx, str.at_most__d_tables_in_a_join
call fcn.180009640
xor eax, eax
jmp 0x18007e5cf
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.1800069a0
mov qword [rsp + 0x80], rax
mov r15, rax
test rax, rax
je 0x18007db0f
lea r8, [r14 + 0x60]
xor edx, edx
mov rcx, rax
call fcn.1800d33c0
cmp byte [rsi + 0x50], r12b
je 0x18007db72
test r15, r15
je 0x18007e5b5
cmp qword [rsi + 0x320], r12
je 0x18007db37
mov rdx, r15
mov rcx, rsi
call fcn.180006650
jmp 0x18007e5b5
cmp r15, qword [rsi + 0x168]
jb 0x18007db65
cmp r15, qword [rsi + 0x170]
jae 0x18007db65
mov rax, qword [rsi + 0x160]
mov qword [r15], rax
dec dword [rsi + 0x14c]
mov qword [rsi + 0x160], r15
jmp 0x18007e5b5
mov rcx, r15
call fcn.1800065a0
jmp 0x18007e5b5
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 0x18007dbed
mov rdx, qword [rsi + 0x80]
lea eax, [rbx*2 + 1]
mov rcx, qword [rsi]
movsxd r8, eax
shl r8, 2
call fcn.180006b50
mov rdx, qword [rsp + 0x38]
mov r8, 0xffffffffffffffff
mov qword [rsi + 0x80], rax
mov rcx, qword [rsi + 0x80]
test rcx, rcx
je 0x18007dbfd
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 0x18007dcac
cmp byte [rbp], 0x48
mov rcx, rsi
je 0x18007dc91
xor r8d, r8d
mov rdx, rbp
call fcn.180074890
jmp 0x18007dcac
mov rdx, qword [rbp + 0x10]
mov r8b, 0x48
call fcn.180074ae0
mov rdx, qword [rbp + 0x18]
mov r8b, 0x48
mov rcx, rsi
call fcn.180074ae0
mov rax, qword [rsp + 0x90]
mov esi, r12d
mov r14, qword [rsp + 0x38]
mov ebp, dword [rsp + 0x44]
cmp dword [rax + 0x14], r12d
jle 0x18007dd34
mov rbx, r12
nop dword [rax]
test ebp, ebp
je 0x18007dcf2
mov rax, qword [rax + 0x20]
mov edx, 2
mov rcx, qword [rbx + rax]
call fcn.18003c7c0
test eax, eax
je 0x18007dd1d
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.1800407e0
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 0x18007dcd0
lea rbx, [r15 + 0x54]
mov r9d, 0x400
test ebp, ebp
jne 0x18007dd5d
test rdi, rdi
je 0x18007dd4a
movzx eax, byte [rdi]
mov byte [r15 + 0x34], al
movzx r12d, word [rsp + 0x30]
test r9w, r12w
je 0x18007dd63
mov byte [r15 + 0x38], 1
jmp 0x18007dd63
movzx r12d, word [rsp + 0x30]
mov r11, qword [rsp + 0x50]
xor esi, esi
mov r8d, esi
cmp dword [r11], esi
jle 0x18007dd97
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 0x18007dd80
lea rax, [r15 + 0x158]
mov ebx, dword [rax + 0x14]
sub ebx, 1
js 0x18007ddd9
nop word [rax + rax]
mov r8d, ebx
lea rdx, [r15 + 0x158]
mov rcx, r11
call fcn.180075c10
sub ebx, 1
mov r11, qword [rsp + 0x50]
jns 0x18007ddb0
lea rax, [r15 + 0x158]
mov r9d, 0x400
mov r10, qword [rsp + 0x58]
cmp byte [r10 + 0x50], sil
jne 0x18007e59a
and r12w, r9w
mov ebx, 0x200
mov word [rsp + 0x48], r12w
je 0x18007de23
mov r9, r13
mov r8, rax
mov rdx, r11
mov rcx, r14
call fcn.180076690
test eax, eax
je 0x18007de15
mov byte [r15 + 0x38], 1
jmp 0x18007de23
test rdi, rdi
jne 0x18007de23
or word [r15 + 0x32], bx
mov qword [r15 + 0x10], r13
cmp ebp, 1
jne 0x18007de3d
lea rcx, [rsp + 0x88]
call fcn.18007d710
test eax, eax
jne 0x18007dfb9
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 0x18007df52
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 0x18007dec5
mov r8d, dword [rsi + 0xc]
mov r9, rax
lea rax, [r12 + 0x58]
cmp dword [rax], r8d
je 0x18007df01
inc edx
inc rcx
add rax, 4
cmp rcx, r9
jl 0x18007deb2
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 0x18007df0d
call fcn.18007b890
jmp 0x18007df12
mov ecx, edx
mov eax, 1
shl rax, cl
jmp 0x18007dec8
call fcn.18007b190
mov ebx, eax
test eax, eax
jne 0x18007df2a
mov rdx, rdi
lea rcx, [rsp + 0x88]
call fcn.18007c040
mov ebx, eax
or r15, qword [rbp + 8]
test ebx, ebx
jne 0x18007df50
cmp byte [r13 + 0x50], bl
jne 0x18007df50
movzx r10d, byte [rsp + 0x40]
inc r14d
add rsi, 0x78
cmp r14d, dword [rsp + 0x70]
jl 0x18007de90
xor esi, esi
mov rdx, rbp
mov rcx, r13
call fcn.18007a1f0
mov r15, qword [rsp + 0x80]
test ebx, ebx
jne 0x18007e595
xor edx, edx
mov rcx, r15
call fcn.18007cd50
mov r10, qword [rsp + 0x58]
cmp byte [r10 + 0x50], bl
jne 0x18007e59a
cmp qword [r15 + 0x10], 0
je 0x18007dfac
movzx edx, word [r15 + 0x30]
mov rcx, r15
inc dx
call fcn.18007cd50
mov r10, qword [rsp + 0x58]
cmp byte [r10 + 0x50], bl
jne 0x18007e59a
mov r13, qword [rsp + 0x68]
movzx r12d, word [rsp + 0x48]
jmp 0x18007dfbe
mov r10, qword [rsp + 0x58]
cmp qword [r15 + 0x10], 0
jne 0x18007dfd7
test dword [r10 + 0x2c], 0x20000
je 0x18007dfd7
mov qword [r15 + 0x28], 0xffffffffffffffff
mov r11, qword [rsp + 0x38]
cmp dword [r11 + 0x4c], 0
jne 0x18007e59f
cmp byte [r10 + 0x50], 0
jne 0x18007e59f
cmp byte [r15 + 0x39], 2
mov edx, 0x1000
jb 0x18007e145
test r13, r13
je 0x18007e145
mov eax, 0x400
test word [r10 + 0x4c], ax
jne 0x18007e145
cmp dword [r13], 0
mov r14, rsi
mov edi, esi
jle 0x18007e050
mov rbx, rsi
nop word [rax + rax]
mov rdx, qword [r13 + 8]
lea rcx, [r15 + 0x54]
mov rdx, qword [rbx + rdx]
call fcn.180074b50
or r14, rax
lea rbx, [rbx + 0x28]
inc edi
cmp edi, dword [r13]
jl 0x18007e030
mov rbp, qword [rsp + 0x98]
test rbp, rbp
je 0x18007e094
cmp dword [rbp], 0
mov rdi, rsi
jle 0x18007e08f
xor ebx, ebx
nop dword [rax + rax]
mov rdx, qword [rbp + 8]
lea rcx, [r15 + 0x54]
mov rdx, qword [rbx + rdx]
call fcn.180074b50
or rdi, rax
lea rbx, [rbx + 0x28]
inc esi
cmp esi, dword [rbp]
jl 0x18007e070
or r14, rdi
xor esi, esi
movzx eax, byte [r15 + 0x39]
cmp al, 2
jb 0x18007e136
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 0x18007e136
test r12w, r12w
jne 0x18007e0d9
mov eax, 0x1000
test dword [r8 + 0x28], eax
je 0x18007e136
mov r8, qword [r8 + 8]
test r14, r8
jne 0x18007e136
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 0x18007e11f
nop
test qword [rax + 0x30], r8
je 0x18007e10f
mov rcx, qword [rax]
test byte [rcx + 4], 1
je 0x18007e11a
add rax, 0x38
cmp rax, rdx
jb 0x18007e100
jmp 0x18007e11f
cmp rax, rdx
jb 0x18007e136
movzx eax, byte [r15 + 0x39]
dec dword [rsp + 0x44]
dec al
mov byte [r15 + 0x39], al
cmp al, 2
jae 0x18007e0a5
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 0x18007e183
mov rcx, qword [r15 + 0x380]
test dword [rcx + 0x28], edx
mov rdx, qword [rsp + 0x50]
je 0x18007e188
mov byte [r15 + 0x36], 1
mov rax, qword [rdx + 0x28]
test byte [rax + 0x48], 0x20
jne 0x18007e188
and dword [rcx + 0x28], 0xffffffbf
jmp 0x18007e188
mov rdx, qword [rsp + 0x50]
mov edi, dword [rsp + 0x44]
test edi, edi
jle 0x18007e410
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 0x18007e202
mov ecx, dword [r10 + 0x28]
mov esi, r8d
mov ebp, r8d
test ecx, ecx
jle 0x18007e202
mov rax, qword [r10 + 0x20]
add rax, 0x18
nop
cmp qword [rax], rdx
je 0x18007e202
inc esi
inc rbp
add rax, 0x20
cmp esi, ecx
jl 0x18007e1f0
movzx ecx, byte [r14 + 0x48]
mov rdi, qword [r12]
test cl, 2
jne 0x18007e325
cmp qword [r14 + 0x18], 0
jne 0x18007e325
mov eax, dword [rdi + 0x28]
bt eax, 0xa
jae 0x18007e279
mov rbx, qword [r14 + 0x60]
test rbx, rbx
je 0x18007e23f
cmp qword [rbx], r10
je 0x18007e23f
mov rbx, qword [rbx + 0x28]
test rbx, rbx
jne 0x18007e231
mov rcx, qword [rsp + 0x60]
xor r9d, r9d
mov dword [rsp + 0x20], r8d
mov edx, 0x93
mov r8d, dword [r13 + 0x50]
call fcn.180026b90
mov rcx, qword [rsp + 0x60]
mov r9d, 0xfffffff6
mov r8, rbx
mov edx, eax
call fcn.180027170
movzx ebx, word [rsp + 0x30]
jmp 0x18007e31d
test cl, 0x10
jne 0x18007e325
test al, 0x40
jne 0x18007e304
test bl, 0x10
jne 0x18007e304
cmp byte [r15 + 0x36], 0
mov ecx, 0x36
je 0x18007e2a4
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.180057dd0
cmp byte [r15 + 0x36], 0
jne 0x18007e31d
cmp word [r14 + 0x42], 0x40
jge 0x18007e31d
test byte [r14 + 0x48], 0x20
jne 0x18007e31d
mov rax, qword [r13 + 0x68]
xor ecx, ecx
test rax, rax
je 0x18007e2e7
nop dword [rax + rax]
inc ecx
shr rax, 1
jne 0x18007e2e0
mov rax, qword [rsp + 0x60]
mov r9d, 0xfffffff2
movsxd r8, ecx
mov rcx, rax
mov edx, dword [rax + 0x3c]
dec edx
call fcn.180027170
jmp 0x18007e31d
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.180045ea0
mov r9d, dword [rsp + 0x140]
test dword [rdi + 0x28], 0x200
je 0x18007e362
test byte [r14 + 0x48], 0x20
mov edx, 0x36
mov rdi, qword [rdi + 0x20]
je 0x18007e4e6
mov eax, dword [rdi + 0x64]
and al, 3
cmp al, 2
jne 0x18007e4e6
test bl, 0x40
je 0x18007e4e6
mov eax, dword [r12 - 0x3c]
mov dword [r12 - 0x38], eax
mov r14, qword [rsp + 0x38]
test esi, esi
js 0x18007e3b6
mov rax, qword [r14 + 0x1c0]
mov rcx, r14
test rax, rax
cmovne rcx, rax
mov eax, dword [rcx + 0x16c]
bt eax, esi
jb 0x18007e3b6
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 0x18007e3b6
call fcn.18004d5f0
movsxd rax, dword [r15 + 0x54]
xor esi, esi
mov ecx, esi
test eax, eax
jle 0x18007e3e0
mov edx, dword [r13 + 0x50]
mov r8, rax
lea rax, [r15 + 0x58]
nop dword [rax]
cmp dword [rax], edx
je 0x18007e3e0
inc rcx
add rax, 4
cmp rcx, r8
jl 0x18007e3d0
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 0x18007e1b0
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 0x18007e59a
test edi, edi
jle 0x18007e4de
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 0x18007e48e
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.1800769d0
mov r10, qword [rsp + 0x58]
cmp byte [r10 + 0x50], 0
jne 0x18007e5ee
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.180077de0
mov eax, dword [r13 + 0x3c]
mov edx, esi
mov r8, qword [rsp + 0x78]
mov rcx, r15
mov dword [rbx - 4], eax
call fcn.180078270
mov qword [rsp + 0x78], rax
inc esi
mov eax, dword [rbx - 0xc]
add rbx, 0x50
mov dword [r15 + 0x40], eax
cmp esi, edi
jl 0x18007e441
mov rax, r15
jmp 0x18007e5b7
cmp byte [r15 + 0x36], 0
je 0x18007e51c
mov rax, qword [r13 + 0x28]
mov r8d, r9d
mov rcx, qword [rax + 0x10]
test rcx, rcx
je 0x18007e511
nop dword [rax]
cmp rcx, rdi
je 0x18007e511
mov rcx, qword [rcx + 0x28]
inc r8d
test rcx, rcx
jne 0x18007e500
mov edx, 0x37
mov dword [r15 + 0x50], r8d
jmp 0x18007e54e
test r9d, r9d
je 0x18007e53e
test bl, 0x40
je 0x18007e53e
movzx eax, bx
mov ecx, 0x1000
and ax, cx
mov r8d, r9d
neg ax
sbb edx, edx
add edx, 0x36
jmp 0x18007e54e
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.180026b90
mov r14, qword [rsp + 0x38]
mov rdx, rdi
mov rcx, r14
mov rbx, qword [r14 + 0x10]
call fcn.18004e3b0
mov edx, 0xffffffff
mov r8, rax
mov rcx, rbx
lea r9d, [rdx - 5]
call fcn.180027170
jmp 0x18007e367
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.18007a380
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.1800cfc90
add rsp, 0xe0
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
mov r11, r14
jmp 0x18007e59f