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

Disassembly:
push rbp
push rsi
push rdi
push r12
push r13
sub rsp, 0xe0
mov rax, qword [0x180124010]
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 0x18007cba9
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 0x18007cbfc
mov r8d, 0x40
lea rdx, str.at_most__d_tables_in_a_join
call fcn.180008790
xor eax, eax
jmp 0x18007d71f
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.180005af0
mov qword [rsp + 0x80], rax
mov r15, rax
test rax, rax
je 0x18007cc5f
lea r8, [r14 + 0x60]
xor edx, edx
mov rcx, rax
call fcn.1800cdea0
cmp byte [rsi + 0x50], r12b
je 0x18007ccc2
test r15, r15
je 0x18007d705
cmp qword [rsi + 0x320], r12
je 0x18007cc87
mov rdx, r15
mov rcx, rsi
call fcn.1800057a0
jmp 0x18007d705
cmp r15, qword [rsi + 0x168]
jb 0x18007ccb5
cmp r15, qword [rsi + 0x170]
jae 0x18007ccb5
mov rax, qword [rsi + 0x160]
mov qword [r15], rax
dec dword [rsi + 0x14c]
mov qword [rsi + 0x160], r15
jmp 0x18007d705
mov rcx, r15
call fcn.1800056f0
jmp 0x18007d705
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 0x18007cd3d
mov rdx, qword [rsi + 0x80]
lea eax, [rbx*2 + 1]
mov rcx, qword [rsi]
movsxd r8, eax
shl r8, 2
call fcn.180005ca0
mov rdx, qword [rsp + 0x38]
mov r8, 0xffffffffffffffff
mov qword [rsi + 0x80], rax
mov rcx, qword [rsi + 0x80]
test rcx, rcx
je 0x18007cd4d
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 0x18007cdfc
cmp byte [rbp], 0x48
mov rcx, rsi
je 0x18007cde1
xor r8d, r8d
mov rdx, rbp
call fcn.1800739e0
jmp 0x18007cdfc
mov rdx, qword [rbp + 0x10]
mov r8b, 0x48
call fcn.180073c30
mov rdx, qword [rbp + 0x18]
mov r8b, 0x48
mov rcx, rsi
call fcn.180073c30
mov rax, qword [rsp + 0x90]
mov esi, r12d
mov r14, qword [rsp + 0x38]
mov ebp, dword [rsp + 0x44]
cmp dword [rax + 0x14], r12d
jle 0x18007ce84
mov rbx, r12
nop dword [rax]
test ebp, ebp
je 0x18007ce42
mov rax, qword [rax + 0x20]
mov edx, 2
mov rcx, qword [rbx + rax]
call fcn.18003b910
test eax, eax
je 0x18007ce6d
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.18003f930
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 0x18007ce20
lea rbx, [r15 + 0x54]
mov r9d, 0x400
test ebp, ebp
jne 0x18007cead
test rdi, rdi
je 0x18007ce9a
movzx eax, byte [rdi]
mov byte [r15 + 0x34], al
movzx r12d, word [rsp + 0x30]
test r9w, r12w
je 0x18007ceb3
mov byte [r15 + 0x38], 1
jmp 0x18007ceb3
movzx r12d, word [rsp + 0x30]
mov r11, qword [rsp + 0x50]
xor esi, esi
mov r8d, esi
cmp dword [r11], esi
jle 0x18007cee7
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 0x18007ced0
lea rax, [r15 + 0x158]
mov ebx, dword [rax + 0x14]
sub ebx, 1
js 0x18007cf29
nop word [rax + rax]
mov r8d, ebx
lea rdx, [r15 + 0x158]
mov rcx, r11
call fcn.180074d60
sub ebx, 1
mov r11, qword [rsp + 0x50]
jns 0x18007cf00
lea rax, [r15 + 0x158]
mov r9d, 0x400
mov r10, qword [rsp + 0x58]
cmp byte [r10 + 0x50], sil
jne 0x18007d6ea
and r12w, r9w
mov ebx, 0x200
mov word [rsp + 0x48], r12w
je 0x18007cf73
mov r9, r13
mov r8, rax
mov rdx, r11
mov rcx, r14
call fcn.1800757e0
test eax, eax
je 0x18007cf65
mov byte [r15 + 0x38], 1
jmp 0x18007cf73
test rdi, rdi
jne 0x18007cf73
or word [r15 + 0x32], bx
mov qword [r15 + 0x10], r13
cmp ebp, 1
jne 0x18007cf8d
lea rcx, [rsp + 0x88]
call fcn.18007c860
test eax, eax
jne 0x18007d109
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 0x18007d0a2
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 0x18007d015
mov r8d, dword [rsi + 0xc]
mov r9, rax
lea rax, [r12 + 0x58]
cmp dword [rax], r8d
je 0x18007d051
inc edx
inc rcx
add rax, 4
cmp rcx, r9
jl 0x18007d002
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 0x18007d05d
call fcn.18007a9e0
jmp 0x18007d062
mov ecx, edx
mov eax, 1
shl rax, cl
jmp 0x18007d018
call fcn.18007a2e0
mov ebx, eax
test eax, eax
jne 0x18007d07a
mov rdx, rdi
lea rcx, [rsp + 0x88]
call fcn.18007b190
mov ebx, eax
or r15, qword [rbp + 8]
test ebx, ebx
jne 0x18007d0a0
cmp byte [r13 + 0x50], bl
jne 0x18007d0a0
movzx r10d, byte [rsp + 0x40]
inc r14d
add rsi, 0x78
cmp r14d, dword [rsp + 0x70]
jl 0x18007cfe0
xor esi, esi
mov rdx, rbp
mov rcx, r13
call fcn.180079340
mov r15, qword [rsp + 0x80]
test ebx, ebx
jne 0x18007d6e5
xor edx, edx
mov rcx, r15
call fcn.18007bea0
mov r10, qword [rsp + 0x58]
cmp byte [r10 + 0x50], bl
jne 0x18007d6ea
cmp qword [r15 + 0x10], 0
je 0x18007d0fc
movzx edx, word [r15 + 0x30]
mov rcx, r15
inc dx
call fcn.18007bea0
mov r10, qword [rsp + 0x58]
cmp byte [r10 + 0x50], bl
jne 0x18007d6ea
mov r13, qword [rsp + 0x68]
movzx r12d, word [rsp + 0x48]
jmp 0x18007d10e
mov r10, qword [rsp + 0x58]
cmp qword [r15 + 0x10], 0
jne 0x18007d127
test dword [r10 + 0x2c], 0x20000
je 0x18007d127
mov qword [r15 + 0x28], 0xffffffffffffffff
mov r11, qword [rsp + 0x38]
cmp dword [r11 + 0x4c], 0
jne 0x18007d6ef
cmp byte [r10 + 0x50], 0
jne 0x18007d6ef
cmp byte [r15 + 0x39], 2
mov edx, 0x1000
jb 0x18007d295
test r13, r13
je 0x18007d295
mov eax, 0x400
test word [r10 + 0x4c], ax
jne 0x18007d295
cmp dword [r13], 0
mov r14, rsi
mov edi, esi
jle 0x18007d1a0
mov rbx, rsi
nop word [rax + rax]
mov rdx, qword [r13 + 8]
lea rcx, [r15 + 0x54]
mov rdx, qword [rbx + rdx]
call fcn.180073ca0
or r14, rax
lea rbx, [rbx + 0x28]
inc edi
cmp edi, dword [r13]
jl 0x18007d180
mov rbp, qword [rsp + 0x98]
test rbp, rbp
je 0x18007d1e4
cmp dword [rbp], 0
mov rdi, rsi
jle 0x18007d1df
xor ebx, ebx
nop dword [rax + rax]
mov rdx, qword [rbp + 8]
lea rcx, [r15 + 0x54]
mov rdx, qword [rbx + rdx]
call fcn.180073ca0
or rdi, rax
lea rbx, [rbx + 0x28]
inc esi
cmp esi, dword [rbp]
jl 0x18007d1c0
or r14, rdi
xor esi, esi
movzx eax, byte [r15 + 0x39]
cmp al, 2
jb 0x18007d286
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 0x18007d286
test r12w, r12w
jne 0x18007d229
mov eax, 0x1000
test dword [r8 + 0x28], eax
je 0x18007d286
mov r8, qword [r8 + 8]
test r14, r8
jne 0x18007d286
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 0x18007d26f
nop
test qword [rax + 0x30], r8
je 0x18007d25f
mov rcx, qword [rax]
test byte [rcx + 4], 1
je 0x18007d26a
add rax, 0x38
cmp rax, rdx
jb 0x18007d250
jmp 0x18007d26f
cmp rax, rdx
jb 0x18007d286
movzx eax, byte [r15 + 0x39]
dec dword [rsp + 0x44]
dec al
mov byte [r15 + 0x39], al
cmp al, 2
jae 0x18007d1f5
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 0x18007d2d3
mov rcx, qword [r15 + 0x380]
test dword [rcx + 0x28], edx
mov rdx, qword [rsp + 0x50]
je 0x18007d2d8
mov byte [r15 + 0x36], 1
mov rax, qword [rdx + 0x28]
test byte [rax + 0x48], 0x20
jne 0x18007d2d8
and dword [rcx + 0x28], 0xffffffbf
jmp 0x18007d2d8
mov rdx, qword [rsp + 0x50]
mov edi, dword [rsp + 0x44]
test edi, edi
jle 0x18007d560
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 0x18007d352
mov ecx, dword [r10 + 0x28]
mov esi, r8d
mov ebp, r8d
test ecx, ecx
jle 0x18007d352
mov rax, qword [r10 + 0x20]
add rax, 0x18
nop
cmp qword [rax], rdx
je 0x18007d352
inc esi
inc rbp
add rax, 0x20
cmp esi, ecx
jl 0x18007d340
movzx ecx, byte [r14 + 0x48]
mov rdi, qword [r12]
test cl, 2
jne 0x18007d475
cmp qword [r14 + 0x18], 0
jne 0x18007d475
mov eax, dword [rdi + 0x28]
bt eax, 0xa
jae 0x18007d3c9
mov rbx, qword [r14 + 0x60]
test rbx, rbx
je 0x18007d38f
cmp qword [rbx], r10
je 0x18007d38f
mov rbx, qword [rbx + 0x28]
test rbx, rbx
jne 0x18007d381
mov rcx, qword [rsp + 0x60]
xor r9d, r9d
mov dword [rsp + 0x20], r8d
mov edx, 0x93
mov r8d, dword [r13 + 0x50]
call fcn.180025ce0
mov rcx, qword [rsp + 0x60]
mov r9d, 0xfffffff6
mov r8, rbx
mov edx, eax
call fcn.1800262c0
movzx ebx, word [rsp + 0x30]
jmp 0x18007d46d
test cl, 0x10
jne 0x18007d475
test al, 0x40
jne 0x18007d454
test bl, 0x10
jne 0x18007d454
cmp byte [r15 + 0x36], 0
mov ecx, 0x36
je 0x18007d3f4
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.180056f20
cmp byte [r15 + 0x36], 0
jne 0x18007d46d
cmp word [r14 + 0x42], 0x40
jge 0x18007d46d
test byte [r14 + 0x48], 0x20
jne 0x18007d46d
mov rax, qword [r13 + 0x68]
xor ecx, ecx
test rax, rax
je 0x18007d437
nop dword [rax + rax]
inc ecx
shr rax, 1
jne 0x18007d430
mov rax, qword [rsp + 0x60]
mov r9d, 0xfffffff2
movsxd r8, ecx
mov rcx, rax
mov edx, dword [rax + 0x3c]
dec edx
call fcn.1800262c0
jmp 0x18007d46d
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.180044ff0
mov r9d, dword [rsp + 0x140]
test dword [rdi + 0x28], 0x200
je 0x18007d4b2
test byte [r14 + 0x48], 0x20
mov edx, 0x36
mov rdi, qword [rdi + 0x20]
je 0x18007d636
mov eax, dword [rdi + 0x64]
and al, 3
cmp al, 2
jne 0x18007d636
test bl, 0x40
je 0x18007d636
mov eax, dword [r12 - 0x3c]
mov dword [r12 - 0x38], eax
mov r14, qword [rsp + 0x38]
test esi, esi
js 0x18007d506
mov rax, qword [r14 + 0x1c0]
mov rcx, r14
test rax, rax
cmovne rcx, rax
mov eax, dword [rcx + 0x16c]
bt eax, esi
jb 0x18007d506
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 0x18007d506
call fcn.18004c740
movsxd rax, dword [r15 + 0x54]
xor esi, esi
mov ecx, esi
test eax, eax
jle 0x18007d530
mov edx, dword [r13 + 0x50]
mov r8, rax
lea rax, [r15 + 0x58]
nop dword [rax]
cmp dword [rax], edx
je 0x18007d530
inc rcx
add rax, 4
cmp rcx, r8
jl 0x18007d520
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 0x18007d300
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 0x18007d6ea
test edi, edi
jle 0x18007d62e
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 0x18007d5de
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.180075b20
mov r10, qword [rsp + 0x58]
cmp byte [r10 + 0x50], 0
jne 0x18007d73e
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.180076f30
mov eax, dword [r13 + 0x3c]
mov edx, esi
mov r8, qword [rsp + 0x78]
mov rcx, r15
mov dword [rbx - 4], eax
call fcn.1800773c0
mov qword [rsp + 0x78], rax
inc esi
mov eax, dword [rbx - 0xc]
add rbx, 0x50
mov dword [r15 + 0x40], eax
cmp esi, edi
jl 0x18007d591
mov rax, r15
jmp 0x18007d707
cmp byte [r15 + 0x36], 0
je 0x18007d66c
mov rax, qword [r13 + 0x28]
mov r8d, r9d
mov rcx, qword [rax + 0x10]
test rcx, rcx
je 0x18007d661
nop dword [rax]
cmp rcx, rdi
je 0x18007d661
mov rcx, qword [rcx + 0x28]
inc r8d
test rcx, rcx
jne 0x18007d650
mov edx, 0x37
mov dword [r15 + 0x50], r8d
jmp 0x18007d69e
test r9d, r9d
je 0x18007d68e
test bl, 0x40
je 0x18007d68e
movzx eax, bx
mov ecx, 0x1000
and ax, cx
mov r8d, r9d
neg ax
sbb edx, edx
add edx, 0x36
jmp 0x18007d69e
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.180025ce0
mov r14, qword [rsp + 0x38]
mov rdx, rdi
mov rcx, r14
mov rbx, qword [r14 + 0x10]
call fcn.18004d500
mov edx, 0xffffffff
mov r8, rax
mov rcx, rbx
lea r9d, [rdx - 5]
call fcn.1800262c0
jmp 0x18007d4b7
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.1800794d0
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.1800ca770
add rsp, 0xe0
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
mov r11, r14
jmp 0x18007d6ef