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

Disassembly:
mov r11, rsp
mov qword [r11 + 0x10], rdx
mov qword [r11 + 8], rcx
push rbp
push rsi
push r12
push r13
push r14
sub rsp, 0x90
mov r12, rcx
mov rcx, qword [rcx + 0x10]
mov rbp, r9
mov r14, qword [r12]
mov qword [rsp + 0x30], rcx
xor ecx, ecx
test byte [r14 + 0x4c], 0x20
mov qword [r11 - 0x50], rcx
mov qword [r11 - 0x60], rcx
mov qword [r11 - 0x58], rcx
mov qword [r11 - 0x48], rcx
mov qword [r11 - 0x40], rcx
movzx ecx, word [rsp + 0xe8]
mov qword [r11 - 0x50], r9
mov rsi, r8
mov rax, rdx
mov qword [rsp + 0x38], r14
je 0x14028b669
mov edx, 0xfbff
and cx, dx
mov r13d, dword [rax]
mov word [rsp + 0xd8], cx
cmp r13d, 0x40
jle 0x14028b6a1
lea rdx, str.at_most__d_tables_in_a_join
mov r8d, 0x40
mov rcx, r12
call fcn.14021e490
xor eax, eax
add rsp, 0x90
pop r14
pop r13
pop r12
pop rsi
pop rbp
ret
mov qword [rsp + 0xd0], rbx
movzx eax, cx
mov qword [rsp + 0x88], rdi
and ax, 0x40
mov rcx, r14
mov qword [rsp + 0x80], r15
mov word [rsp + 0x40], ax
mov eax, 1
cmovne r13d, eax
mov dword [rsp + 0x44], r13d
lea ebx, [r13*4]
add ebx, r13d
shl ebx, 4
add ebx, 0x347
and ebx, 0xfffffff8
lea edi, [rbx + 0x60]
mov edx, edi
call fcn.14021bb70
mov r15, rax
test rax, rax
je 0x14028b70c
movsxd r8, edi
xor edx, edx
mov rcx, rax
call fcn.1402c5760
cmp byte [r14 + 0x50], 0
je 0x14028b723
mov rdx, r15
mov rcx, r14
call fcn.14021b8a0
jmp 0x14028bf5b
mov r14, qword [rsp + 0xe0]
mov rcx, qword [rsp + 0x30]
or rax, 0xffffffffffffffff
mov qword [rsp + 0x48], rax
mov dword [r15 + 0x50], eax
mov dword [r15 + 0x4c], eax
mov rax, qword [rsp + 0xc8]
mov byte [r15 + 0x38], r13b
mov qword [r15], r12
mov qword [r15 + 0x10], rbp
mov qword [r15 + 0x18], r14
mov qword [r15 + 8], rax
call fcn.14023b570
lea rdx, [r15 + 0x158]
movsxd rcx, ebx
mov dword [r15 + 0x44], eax
movzx eax, word [rsp + 0xd8]
add rcx, r15
mov word [r15 + 0x32], ax
mov eax, dword [r12 + 0x1d8]
xor ebx, ebx
mov dword [r15 + 0x48], eax
mov dword [rcx + 0x2c], 0x40000
mov dword [rcx + 0x28], ebx
lea rax, [rcx + 0x40]
mov qword [rsp + 0x60], rdx
mov qword [rsp + 0x70], rcx
mov qword [rcx + 0x30], rax
mov dword [r15 + 0x54], ebx
lea rax, [rdx + 0x28]
mov qword [rdx], r15
mov qword [rdx + 8], rbx
mov dword [rdx + 0x14], ebx
mov qword [rdx + 0x20], rax
mov dword [rdx + 0x18], 8
mov rdx, rsi
lea rsi, [r15 + 0x158]
mov r8b, 0x48
mov qword [rsp + 0x58], r15
mov rcx, rsi
call fcn.1402835a0
mov edi, ebx
cmp dword [rsi + 0x14], ebx
jle 0x14028b82d
test r13d, r13d
je 0x14028b7fd
mov rcx, qword [rsi + 0x20]
mov rcx, qword [rcx + rbx]
call fcn.14024f0c0
test eax, eax
je 0x14028b820
mov rdx, qword [rsi + 0x20]
mov r8d, dword [r15 + 0x44]
mov r9d, 8
mov rdx, qword [rdx + rbx]
mov rcx, r12
call fcn.1402528e0
mov rax, qword [rsi + 0x20]
or byte [rax + rbx + 0x1c], 4
inc edi
add rbx, 0x38
cmp edi, dword [rsi + 0x14]
jl 0x14028b7e7
xor ebx, ebx
mov r10d, 0x400
test r13d, r13d
jne 0x14028b857
test rbp, rbp
je 0x14028b842
mov byte [r15 + 0x34], 1
movzx edi, word [rsp + 0xd8]
test r10w, di
je 0x14028b85f
mov byte [r15 + 0x37], 1
jmp 0x14028b85f
movzx edi, word [rsp + 0xd8]
mov rsi, qword [rsp + 0xc8]
mov r8d, ebx
cmp dword [rsi], 0
jle 0x14028b89b
lea rdx, [rsi + 0x50]
nop dword [rax]
nop word [rax + rax]
mov eax, dword [rdx]
movsxd rcx, dword [r15 + 0x54]
inc r8d
mov dword [r15 + rcx*4 + 0x58], eax
inc dword [r15 + 0x54]
lea rdx, [rdx + 0x78]
cmp r8d, dword [rsi]
jl 0x14028b880
lea rax, [r15 + 0x158]
mov ebx, dword [rax + 0x14]
dec ebx
js 0x14028b8d3
nop dword [rax]
lea rdx, [r15 + 0x158]
mov r8d, ebx
mov rcx, rsi
call fcn.140284a30
dec ebx
jns 0x14028b8b0
lea rax, [r15 + 0x158]
mov r10d, 0x400
mov r8, qword [rsp + 0x38]
cmp byte [r8 + 0x50], 0
jne 0x14028bf44
mov ebx, 0x200
and di, r10w
je 0x14028b918
mov r9, r14
mov r8, rax
mov rdx, rsi
mov rcx, r12
call fcn.140285610
test eax, eax
je 0x14028b90a
mov byte [r15 + 0x37], 1
jmp 0x14028b918
test rbp, rbp
jne 0x14028b918
or word [r15 + 0x32], bx
mov qword [r15 + 0x10], r14
cmp r13d, 1
jne 0x14028b936
test byte [r15 + 0x32], 0x20
jne 0x14028b936
lea rcx, [rsp + 0x58]
mov rdx, r15
call fcn.14028b3a0
test eax, eax
jne 0x14028b98b
lea rcx, [rsp + 0x58]
call fcn.14028a3d0
test eax, eax
jne 0x14028bf3f
xor edx, edx
mov rcx, r15
call fcn.14028ac90
mov r8, qword [rsp + 0x38]
cmp byte [r8 + 0x50], 0
jne 0x14028bf44
cmp qword [r15 + 0x10], 0
je 0x14028b997
movzx edx, word [r15 + 0x30]
mov rcx, r15
inc dx
call fcn.14028ac90
mov r8, qword [rsp + 0x38]
cmp byte [r8 + 0x50], 0
jne 0x14028bf44
jmp 0x14028b990
mov r8, qword [rsp + 0x38]
cmp qword [r15 + 0x10], 0
jne 0x14028b9a9
test dword [r8 + 0x2c], 0x20000
je 0x14028b9a9
mov qword [r15 + 0x28], 0xffffffffffffffff
cmp dword [r12 + 0x50], 0
jne 0x14028bf44
cmp byte [r8 + 0x50], 0
jne 0x14028bf44
cmp byte [r15 + 0x38], 2
mov r10d, 0x400
jb 0x14028baaf
test r14, r14
je 0x14028baaf
test word [r8 + 0x4c], r10w
jne 0x14028baaf
lea rcx, [r15 + 0x54]
mov rdx, r14
call fcn.1402836e0
mov rdx, qword [rsp + 0x68]
mov rbx, rax
test rdx, rdx
je 0x14028ba0a
lea rcx, [r15 + 0x54]
call fcn.1402836e0
or rbx, rax
cmp byte [r15 + 0x38], 2
jb 0x14028baa4
mov r11, qword [r15 + 8]
mov r10, qword [rsp + 0x60]
nop
movzx r9d, byte [r15 + 0x38]
lea rax, [r9 + r9*4]
add rax, rax
mov rdx, qword [r15 + rax*8 + 0x330]
movzx eax, byte [rdx + 0x10]
imul rcx, rax, 0x78
test byte [rcx + r11 + 0x44], 8
je 0x14028ba9f
test di, di
jne 0x14028ba52
test dword [rdx + 0x28], 0x1000
je 0x14028ba9f
mov r8, qword [rdx + 8]
test rbx, r8
jne 0x14028ba9f
mov rax, qword [r10 + 0x20]
movsxd rcx, dword [r10 + 0x14]
imul rdx, rcx, 0x38
add rdx, rax
cmp rax, rdx
jae 0x14028ba8f
nop
test qword [rax + 0x30], r8
je 0x14028ba7f
mov rcx, qword [rax]
test byte [rcx + 4], 1
je 0x14028ba8a
add rax, 0x38
cmp rax, rdx
jb 0x14028ba70
jmp 0x14028ba8f
cmp rax, rdx
jb 0x14028ba9f
dec r9b
dec r13d
mov byte [r15 + 0x38], r9b
cmp r9b, 2
jae 0x14028ba20
mov dword [rsp + 0x44], r13d
mov r8, qword [rsp + 0x38]
mov r10d, 0x400
mov rcx, qword [r15]
movsx eax, word [r15 + 0x30]
movzx edx, word [rsp + 0xd8]
add dword [rcx + 0x1d8], eax
test dl, 4
je 0x14028baed
mov rcx, qword [r15 + 0x380]
test dword [rcx + 0x28], 0x1000
je 0x14028baed
mov byte [r15 + 0x35], 1
mov rax, qword [rsi + 0x28]
test byte [rax + 0x48], 0x20
jne 0x14028baed
and dword [rcx + 0x28], 0xffffffbf
xor edi, edi
test r13d, r13d
jle 0x14028be6f
mov r9d, dword [rsp + 0xf0]
mov eax, r13d
lea r12, [r15 + 0x380]
mov qword [rsp + 0x50], rax
nop
movzx eax, byte [r12 - 0x1c]
mov rbp, 0xfffffffffff0bdc0
imul r13, rax, 0x78
add r13, rsi
mov esi, 0xfff0bdc0
mov rbx, qword [r13 + 0x28]
mov rcx, qword [rbx + 0x70]
test rcx, rcx
je 0x14028bb6b
movsxd rax, dword [r8 + 0x28]
mov esi, edi
mov rbp, rdi
test eax, eax
jle 0x14028bb6b
mov rdx, rax
mov rax, qword [r8 + 0x20]
add rax, 0x18
nop
cmp qword [rax], rcx
je 0x14028bb63
inc rbp
inc esi
add rax, 0x20
cmp rbp, rdx
jl 0x14028bb50
movzx edx, word [rsp + 0xd8]
movzx ecx, byte [rbx + 0x48]
mov r14, qword [r12]
test cl, 2
jne 0x14028bcda
cmp qword [rbx + 0x18], 0
jne 0x14028bcda
mov eax, dword [r14 + 0x28]
test r10d, eax
je 0x14028bc3e
mov rbx, qword [rbx + 0x60]
test rbx, rbx
je 0x14028bbae
nop dword [rax]
cmp qword [rbx], r8
je 0x14028bbae
mov rbx, qword [rbx + 0x28]
test rbx, rbx
jne 0x14028bba0
mov r8d, dword [r13 + 0x50]
mov rcx, qword [rsp + 0x30]
xor r9d, r9d
mov edx, 0x94
mov dword [rsp + 0x20], edi
call fcn.14023b2f0
mov r10, qword [rsp + 0x30]
mov r8, qword [r10 + 8]
mov rcx, qword [r10]
test r8, r8
je 0x14028bd61
cmp byte [rcx + 0x50], 0
jne 0x14028bd61
test eax, eax
jns 0x14028bbf1
mov eax, dword [r10 + 0x3c]
dec eax
cdqe
lea rdx, [rax + rax*2]
lea rdi, [r8 + rdx*8]
movsx edx, byte [r8 + rdx*8 + 1]
mov r8, qword [rdi + 0x10]
call fcn.14023b8c0
mov r9d, dword [rsp + 0xf0]
mov r10, qword [rsp + 0x30]
xor eax, eax
mov qword [rdi + 0x10], rax
test rbx, rbx
jne 0x14028bc2e
mov qword [rdi + 0x10], rax
mov byte [rdi + 1], al
jmp 0x14028bcdf
mov qword [rdi + 0x10], rbx
mov byte [rdi + 1], 0xf6
inc dword [rbx + 0x18]
jmp 0x14028bcdf
test cl, 0x10
jne 0x14028bcda
test al, 0x40
jne 0x14028bd31
test dl, 0x10
jne 0x14028bd31
cmp byte [r15 + 0x35], 0
mov ecx, 0x34
je 0x14028bc71
mov eax, dword [r13 + 0x50]
mov ecx, 0x35
mov dword [r15 + 0x4c], eax
mov edx, dword [r13 + 0x50]
mov dword [rsp + 0x20], ecx
mov rcx, qword [rsp + 0xc0]
mov r9, rbx
mov r8d, esi
call fcn.140267e30
cmp byte [r15 + 0x35], 0
jne 0x14028bcd2
cmp word [rbx + 0x42], 0x40
jge 0x14028bcd2
test byte [rbx + 0x48], 0x20
jne 0x14028bcd2
mov rax, qword [r13 + 0x68]
mov ecx, edi
test rax, rax
je 0x14028bcb7
nop dword [rax + rax]
inc ecx
shr rax, 1
jne 0x14028bcb0
mov rax, qword [rsp + 0x30]
movsxd r8, ecx
mov r9d, 0xfffffff2
mov edx, dword [rax + 0x3c]
mov rcx, rax
dec edx
call fcn.14023bb10
mov r9d, dword [rsp + 0xf0]
mov r10, qword [rsp + 0x30]
mov rdi, qword [rsp + 0xc0]
test dword [r14 + 0x28], 0x200
je 0x14028bdab
cmp byte [r15 + 0x35], 0
mov rbx, qword [r14 + 0x20]
mov edx, 0x34
je 0x14028bd6e
mov rax, qword [r13 + 0x28]
mov r8d, r9d
mov rcx, qword [rax + 0x10]
test rcx, rcx
je 0x14028bd26
cmp rcx, rbx
je 0x14028bd26
mov rcx, qword [rcx + 0x28]
inc r8d
test rcx, rcx
jne 0x14028bd15
mov edx, 0x35
mov dword [r15 + 0x50], r8d
jmp 0x14028bd8b
mov rax, qword [rbx]
mov rdi, qword [rsp + 0xc0]
mov r8d, dword [rbx + 0x3c]
mov rcx, rdi
xor r9d, r9d
mov edx, esi
mov qword [rsp + 0x20], rax
call fcn.140257530
mov r9d, dword [rsp + 0xf0]
mov r10, qword [rsp + 0x30]
jmp 0x14028bce7
mov r9d, dword [rsp + 0xf0]
jmp 0x14028bcdf
test r9d, r9d
je 0x14028bd80
cmp word [rsp + 0x40], 0
je 0x14028bd80
mov r8d, r9d
jmp 0x14028bd8b
mov r8d, dword [rdi + 0x54]
lea eax, [r8 + 1]
mov dword [rdi + 0x54], eax
mov dword [r12 - 0x38], r8d
mov r9d, dword [rbx + 0x58]
mov rcx, r10
mov dword [rsp + 0x20], esi
call fcn.14023b2f0
mov rdx, rbx
mov rcx, rdi
call fcn.14023bc20
test esi, esi
js 0x14028be07
mov rax, qword [rdi + 0x1c0]
mov ecx, esi
mov r8, rdi
test rax, rax
cmovne r8, rax
mov eax, 1
shl eax, cl
mov ecx, dword [r8 + 0x16c]
test eax, ecx
jne 0x14028be07
or ecx, eax
mov rax, qword [r8]
mov rdx, rbp
mov dword [r8 + 0x16c], ecx
mov rax, qword [rax + 0x20]
shl rdx, 5
mov rdx, qword [rax + rdx + 0x18]
mov eax, dword [rdx]
mov dword [r8 + rbp*4 + 0x170], eax
cmp esi, 1
jne 0x14028be07
mov rcx, r8
call fcn.14025dc70
movsxd rax, dword [r15 + 0x54]
xor edi, edi
mov ecx, edi
test eax, eax
jle 0x14028be30
mov edx, dword [r13 + 0x50]
mov r8, rax
lea rax, [r15 + 0x58]
nop
cmp dword [rax], edx
je 0x14028be30
inc rcx
add rax, 4
cmp rcx, r8
jl 0x14028be20
mov r8, qword [rsp + 0x38]
mov r9d, dword [rsp + 0xf0]
mov rsi, qword [rsp + 0xc8]
movzx edx, word [rsp + 0xd8]
add r12, 0x50
dec qword [rsp + 0x50]
mov r10d, 0x400
jne 0x14028bb10
mov r12, qword [rsp + 0xc0]
mov r13d, dword [rsp + 0x44]
mov rbp, qword [rsp + 0x30]
mov eax, dword [rbp + 0x3c]
mov dword [r15 + 0x3c], eax
cmp byte [r8 + 0x50], 0
jne 0x14028bf44
test r13d, r13d
jle 0x14028bf3a
lea rbx, [r15 + 0x364]
nop word [rax + rax]
mov rax, qword [rbx + 0x1c]
test dword [rax + 0x28], 0x4000
je 0x14028bee4
movzx eax, byte [rbx]
mov r9, qword [rsp + 0x48]
lea rdx, [rbx - 0x24]
imul r8, rax, 0x78
add r8, 8
mov qword [rsp + 0x20], rdx
lea rdx, [r15 + 0x158]
add r8, rsi
mov rcx, r12
call fcn.1402858b0
mov r8, qword [rsp + 0x38]
cmp byte [r8 + 0x50], 0
jne 0x14028bf44
movzx ecx, word [rsp + 0xd8]
movzx eax, byte [rbx]
lea r8, [rbx - 0x24]
mov word [rsp + 0x28], cx
mov r9d, edi
mov rdx, rsi
mov rcx, r12
mov dword [rsp + 0x20], eax
call fcn.140286e80
mov eax, dword [rbp + 0x3c]
mov r8, qword [rsp + 0x48]
mov edx, edi
mov rcx, r15
mov dword [rbx - 4], eax
call fcn.1402871c0
inc edi
add rbx, 0x50
mov qword [rsp + 0x48], rax
mov eax, dword [rbx - 0x5c]
mov dword [r15 + 0x40], eax
cmp edi, r13d
jl 0x14028bea0
mov rax, r15
jmp 0x14028bf5d
mov r8, qword [rsp + 0x38]
mov eax, dword [r15 + 0x48]
mov rdx, r15
mov rcx, r8
mov dword [r12 + 0x1d8], eax
call fcn.140288ac0
xor eax, eax
mov rdi, qword [rsp + 0x88]
mov rbx, qword [rsp + 0xd0]
mov r15, qword [rsp + 0x80]
add rsp, 0x90
pop r14
pop r13
pop r12
pop rsi
pop rbp
ret