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

Disassembly:
mov rax, rsp
mov qword [rax + 0x18], r8
mov qword [rax + 0x10], rdx
mov qword [rax + 8], rcx
push rbp
push rbx
push rsi
push rdi
lea rbp, [rax - 0xd8]
sub rsp, 0x1b8
xor eax, eax
mov rdi, rdx
mov rsi, rcx
mov qword [rbp + 0x10], rax
mov rax, qword [rcx]
mov ebx, 1
mov qword [rsp + 0x70], rax
call fcn.14005896c
xor ecx, ecx
mov qword [rsp + 0x40], rax
test rdi, rdi
je 0x14005ed28
mov rax, qword [rsp + 0x70]
cmp byte [rax + 0x63], cl
jne 0x14005ed28
cmp dword [rsi + 0x30], ecx
jne 0x14005ed28
mov qword [rsp + 0x20], rcx
lea edx, [rbx + 0x14]
xor r9d, r9d
xor r8d, r8d
mov rcx, rsi
call fcn.14003f9a4
xor r11d, r11d
test eax, eax
jne 0x14005ed28
mov rax, qword [rbp + 0xf0]
cmp byte [rax], 6
ja 0x14005cf7f
mov r8, qword [rdi + 0x48]
test r8, r8
je 0x14005cf76
lea rdx, [0x140035550]
mov rcx, rsi
call fcn.1400556f8
xor r11d, r11d
mov qword [rdi + 0x48], r11
and dword [rdi + 4], 0xfffffffe
bts dword [rdi + 4], 0x16
mov rax, qword [rsi]
cmp byte [rax + 0x63], r11b
jne 0x14005cf99
xor r8d, r8d
mov rdx, rdi
mov rcx, rsi
call fcn.14005c79c
xor r11d, r11d
cmp dword [rsi + 0x30], r11d
jne 0x14005ed00
mov rcx, qword [rsp + 0x70]
cmp byte [rcx + 0x63], r11b
jne 0x14005ed00
test dword [rdi + 4], 0x800000
je 0x14005d058
mov r11, qword [rdi + 0x28]
mov ecx, ebx
mov dword [rbp + 0xf8], ebx
cmp dword [r11], ebx
jle 0x14005d058
mov r9, qword [r11 + 0x28]
lea rax, [r11 + 0x90]
mov qword [rbp - 0x70], rax
cmp r9, qword [rax + 8]
jne 0x14005d021
mov rdx, qword [rax]
xor r10d, r10d
cmp qword [r11 + 0x20], r10
jne 0x14005cffd
neg rdx
sbb r8d, r8d
jmp 0x14005d01c
test rdx, rdx
je 0x14005d021
mov rcx, qword [r11 + 0x20]
call fcn.1400065c0
mov ecx, dword [rbp + 0xf8]
mov r9, qword [r11 + 0x28]
mov r8d, eax
mov rax, qword [rbp - 0x70]
test r8d, r8d
je 0x14005d038
add ecx, ebx
add rax, 0x70
mov dword [rbp + 0xf8], ecx
mov qword [rbp - 0x70], rax
cmp ecx, dword [r11]
jge 0x14005d058
jmp 0x14005cfe3
mov r8, qword [r11 + 0x20]
test r8, r8
jne 0x14005d044
mov r8, qword [r9]
lea rdx, str.target_object_alias_may_not_appear_in_FROM_clause:__s
mov rcx, rsi
call fcn.1400064c8
jmp 0x14005ed00
mov rax, qword [rbp + 0xf0]
cmp byte [rax], 9
jne 0x14005d06f
mov rdx, rdi
mov rcx, rsi
call fcn.1400581cc
mov rdx, rdi
mov rcx, rsi
call fcn.140071410
test eax, eax
jne 0x14005ed00
mov rax, qword [rdi + 0x28]
xor edx, edx
lea rcx, [rbp + 0x48]
mov qword [rsp + 0x60], rax
mov eax, dword [rdi + 4]
lea r8d, [rdx + 0x30]
shr eax, 3
and eax, ebx
mov dword [rbp - 0x54], eax
call fcn.1400a2620
mov rax, qword [rdi + 0x48]
xor r11d, r11d
mov qword [rbp - 0x78], rax
mov qword [rbp + 0x48], rax
mov eax, r11d
mov edx, r11d
lea ecx, [r11 + 8]
mov qword [rbp - 0x50], rax
mov dword [rbp + 0xf8], edx
cmp qword [rdi + 0x50], r11
jne 0x14005d252
mov r8, qword [rsp + 0x60]
cmp edx, dword [r8]
jge 0x14005d24c
imul rax, rax, 0x70
mov qword [rsp + 0x68], rax
mov r9, qword [rax + r8 + 0x30]
mov r10, qword [rax + r8 + 0x28]
mov qword [rbp - 0x70], r9
mov qword [rbp - 0x80], r10
test byte [rax + r8 + 0x44], cl
je 0x14005d156
mov edx, dword [rax + r8 + 0x4c]
mov rcx, qword [rdi + 0x30]
call fcn.140039e10
mov r8, qword [rsp + 0x60]
xor r11d, r11d
test eax, eax
je 0x14005d143
mov rax, qword [rsp + 0x70]
test dword [rax + 0x5c], 0x2000
jne 0x14005d143
mov rax, qword [rsp + 0x68]
and byte [rax + r8 + 0x44], 0xd7
mov edx, dword [rax + r8 + 0x4c]
mov rcx, qword [rdi + 0x30]
call fcn.1400564b8
mov edx, dword [rbp + 0xf8]
mov r9, qword [rbp - 0x70]
mov r10, qword [rbp - 0x80]
mov ecx, 8
test r9, r9
je 0x14005d20c
mov rax, qword [r9 + 0x20]
movsx ecx, word [r10 + 0x46]
cmp ecx, dword [rax]
jne 0x14005d22a
mov ecx, 8
test byte [r9 + 4], cl
jne 0x14005d20c
cmp qword [r9 + 0x48], r11
je 0x14005d1a1
test edx, edx
jne 0x14005d1a1
test dword [rdi + 4], 0x40000
je 0x14005d1a1
cmp dword [r8], ebx
je 0x14005d20c
test byte [r8 + 0xb4], 0xa
jne 0x14005d20c
mov r9d, dword [rbp - 0x54]
mov r8d, edx
mov rcx, rsi
mov rdx, rdi
call fcn.14005aa04
xor r11d, r11d
test eax, eax
je 0x14005d1d2
cmp dword [rsi + 0x30], r11d
jne 0x14005ed00
or rax, 0xffffffffffffffff
mov dword [rbp + 0xf8], eax
mov qword [rbp - 0x50], rax
mov rax, qword [rsp + 0x70]
mov r8, qword [rdi + 0x28]
mov qword [rsp + 0x60], r8
cmp byte [rax + 0x63], r11b
jne 0x14005ed00
mov rax, qword [rbp + 0xf0]
mov edx, dword [rbp + 0xf8]
mov ecx, 8
cmp byte [rax], cl
jbe 0x14005d20c
mov rax, qword [rdi + 0x48]
mov qword [rbp - 0x78], rax
mov qword [rbp + 0x48], rax
mov rax, qword [rbp - 0x50]
add edx, ebx
add rax, rbx
mov dword [rbp + 0xf8], edx
mov qword [rbp - 0x50], rax
cmp qword [rdi + 0x50], r11
jne 0x14005d252
jmp 0x14005d0d7
mov eax, dword [rax]
movsx r8d, word [r10 + 0x46]
mov r9, qword [r10]
lea rdx, str.expected__d_columns_for__s_but_got__d
mov rcx, rsi
mov dword [rsp + 0x20], eax
call fcn.1400064c8
jmp 0x14005ed00
cmp qword [rdi + 0x50], r11
je 0x14005d27f
mov r8, qword [rbp + 0xf0]
mov rdx, rdi
mov rcx, rsi
call fcn.140059110
mov r11d, eax
xor eax, eax
cmp qword [rdi + 0x58], rax
jne 0x14005d277
mov rcx, rsi
call fcn.1400212e4
mov eax, r11d
jmp 0x14005ed2a
mov rax, qword [rdi + 0x30]
test rax, rax
je 0x14005d2a9
cmp byte [rax], 0x2c
jne 0x14005d2a9
mov rax, qword [rsp + 0x70]
test dword [rax + 0x5c], 0x8000
jne 0x14005d2a9
mov rdx, rdi
mov rcx, rsi
call fcn.14005b3ac
xor r11d, r11d
mov rcx, qword [rsp + 0x60]
mov edx, r11d
mov rax, r11
mov dword [rbp + 0xf8], edx
mov qword [rbp - 0x70], rax
lea r9, [0x1400c4580]
cmp dword [rcx], r11d
jle 0x14005d7d4
imul rax, rax, 0x70
lea rax, [rax + rcx + 8]
mov qword [rsp + 0x48], rax
cmp qword [rax + 0x58], r11
jne 0x14005d314
mov r8, qword [rax + 0x10]
test r8, r8
je 0x14005d314
mov rax, qword [rax + 8]
mov edx, 0x14
mov rcx, rsi
mov qword [rsp + 0x20], rax
call fcn.14003f9a4
mov rax, qword [rsp + 0x48]
mov rcx, qword [rsp + 0x60]
mov edx, dword [rbp + 0xf8]
xor r11d, r11d
mov rax, qword [rax + 0x28]
mov qword [rbp - 0x38], rax
test rax, rax
je 0x14005d7b2
lea rdx, [rsp + 0x50]
mov rcx, rdi
mov dword [rsp + 0x50], r11d
call fcn.140033e84
mov eax, dword [rsp + 0x50]
mov r11, qword [rsp + 0x48]
add dword [rsi + 0x11c], eax
mov rax, qword [rsp + 0x70]
test dword [rax + 0x5c], 0x1000
jne 0x14005d38f
test byte [r11 + 0x40], 0x80
je 0x14005d368
mov rax, qword [r11 + 0x68]
xor r10d, r10d
cmp byte [rax + 0x12], r10b
je 0x14005d392
movzx eax, byte [r11 + 0x3c]
mov r9d, dword [r11 + 0x44]
mov r8, qword [rdi + 0x30]
mov rdx, qword [rbp - 0x38]
shr eax, 5
mov rcx, rsi
and eax, ebx
mov dword [rsp + 0x20], eax
call fcn.14005b484
mov r11, qword [rsp + 0x48]
xor r10d, r10d
mov rax, qword [rsi + 0x158]
mov qword [rbp], rax
mov rax, qword [r11 + 0x10]
mov qword [rsi + 0x158], rax
mov rax, qword [rsp + 0x60]
cmp qword [rbp - 0x70], r10
jne 0x14005d4af
cmp dword [rax], ebx
je 0x14005d3c8
test byte [rax + 0xb4], 0xa
je 0x14005d4af
test byte [r11 + 0x40], 0x80
je 0x14005d3dd
mov rax, qword [r11 + 0x68]
cmp byte [rax + 0x12], r10b
je 0x14005d4aa
mov r8d, dword [rsi + 0x38]
mov rcx, qword [rsp + 0x40]
xor r9d, r9d
mov ebx, dword [rcx + 0x90]
inc r8d
lea edx, [r9 + 0xd]
mov dword [rsi + 0x38], r8d
inc ebx
mov dword [r11 + 0x34], r8d
mov dword [rsp + 0x20], ebx
call fcn.140020f34
mov r11, qword [rsp + 0x48]
mov eax, dword [r11 + 0x34]
lea r8, str.CO_ROUTINE___S
mov r9, r11
mov dword [rbp + 0x1c], eax
xor eax, eax
mov rcx, rsi
lea edx, [rax + 1]
mov dword [r11 + 0x30], ebx
mov byte [rbp + 0x18], 0xd
mov qword [rbp + 0x30], rax
mov qword [rbp + 0x20], rax
mov dword [rbp + 0x28], eax
call fcn.14002125c
mov rdx, qword [rbp - 0x38]
lea r8, [rbp + 0x18]
mov rcx, rsi
call fcn.14005cec4
mov rcx, qword [rsp + 0x48]
mov rax, qword [rbp - 0x38]
movzx eax, word [rax + 2]
mov r11, qword [rcx + 0x20]
mov word [r11 + 0x4a], ax
mov eax, dword [rbp + 0x24]
or dword [rcx + 0x40], 0x10
mov edx, dword [rcx + 0x34]
mov dword [rcx + 0x38], eax
mov rcx, qword [rsp + 0x40]
call fcn.1400213fc
mov r9, qword [rsp + 0x40]
lea edx, [rbx - 1]
mov rcx, r9
call fcn.140021a4c
mov ecx, dword [r9 + 0x90]
xor r11d, r11d
mov dword [rax + 8], ecx
mov byte [rsi + 0x1f], r11b
mov dword [rsi + 0x28], r11d
lea ebx, [r11 + 1]
jmp 0x14005d76e
mov rax, qword [rsp + 0x60]
test byte [r11 + 0x40], 0x80
je 0x14005d516
mov rcx, qword [r11 + 0x68]
mov qword [rbp - 0x28], rcx
cmp dword [rcx + 4], r10d
jle 0x14005d516
mov r9d, dword [rcx + 4]
mov r8d, dword [rcx + 8]
mov rcx, qword [rsp + 0x40]
mov edx, 0xc
mov dword [rsp + 0x20], r10d
call fcn.140020f34
mov r11, qword [rsp + 0x48]
mov rax, qword [rbp - 0x28]
mov r8d, dword [r11 + 0x44]
mov r9d, dword [rax + 0xc]
cmp r8d, r9d
je 0x14005d50d
mov rcx, qword [rsp + 0x40]
xor eax, eax
lea edx, [rax + 0x64]
mov dword [rsp + 0x20], eax
call fcn.140020f34
mov rax, qword [rbp - 0x28]
movzx eax, word [rax + 0x10]
jmp 0x14005d617
mov rcx, qword [r11 + 0x28]
test dword [rcx + 4], 0x1000000
jne 0x14005d627
lea rcx, [rax + 8]
mov qword [rsp + 0x58], rcx
cmp rcx, r11
jae 0x14005d5b2
mov rax, qword [rcx + 0x28]
mov qword [rbp - 0x28], rax
test rax, rax
je 0x14005d5a5
test byte [rcx + 0x40], 0x10
jne 0x14005d5a5
mov r8, qword [rcx + 0x10]
test r8, r8
je 0x14005d5a5
mov rax, qword [rcx + 0x20]
mov rdx, qword [rax + 0x70]
mov rax, qword [r11 + 0x20]
mov qword [rsp + 0x68], rdx
cmp rdx, qword [rax + 0x70]
jne 0x14005d5a5
mov rdx, qword [r11 + 0x10]
test rdx, rdx
je 0x14005d5a5
mov rcx, r8
call fcn.1400065c0
xor r10d, r10d
test eax, eax
jne 0x14005d5a0
mov rcx, qword [rbp - 0x28]
cmp qword [rsp + 0x68], r10
jne 0x14005d597
mov rdx, qword [r11 + 0x28]
mov eax, dword [rcx + 0x10]
cmp dword [rdx + 0x10], eax
jne 0x14005d5a0
test dword [rcx + 4], 0x1000000
je 0x14005d5ab
mov rcx, qword [rsp + 0x58]
add rcx, 0x70
jmp 0x14005d52b
mov rax, qword [rsp + 0x58]
jmp 0x14005d5ba
mov rax, r10
mov qword [rsp + 0x58], rax
test rax, rax
je 0x14005d627
mov r9d, dword [rax + 0x30]
test r9d, r9d
je 0x14005d5ed
mov r8d, dword [rax + 0x34]
mov rcx, qword [rsp + 0x40]
mov edx, 0xc
mov dword [rsp + 0x20], r10d
call fcn.140020f34
mov r11, qword [rsp + 0x48]
mov rax, qword [rsp + 0x58]
xor r10d, r10d
mov r9d, dword [rax + 0x44]
mov r8d, dword [r11 + 0x44]
mov rcx, qword [rsp + 0x40]
mov edx, 0x64
mov dword [rsp + 0x20], r10d
call fcn.140020f34
mov r10, qword [rsp + 0x58]
mov r11, qword [r10 + 0x28]
movzx eax, word [r11 + 2]
mov rcx, qword [rbp - 0x38]
xor r11d, r11d
mov word [rcx + 2], ax
jmp 0x14005d76e
mov r9d, dword [rsi + 0x38]
mov rcx, qword [rsp + 0x40]
xor r8d, r8d
inc r9d
lea edx, [r8 + 0x45]
mov dword [rsp + 0x50], r10d
mov dword [rsi + 0x38], r9d
mov dword [r11 + 0x34], r9d
mov dword [rsp + 0x20], r10d
call fcn.140020f34
mov dword [rbp - 0x48], eax
lea ecx, [rax + 1]
mov rax, qword [rsp + 0x48]
mov dword [rax + 0x30], ecx
mov ecx, 8
test byte [rax + 0x40], cl
jne 0x14005d68b
lea edx, [rcx + 9]
mov rcx, qword [rsp + 0x40]
xor eax, eax
xor r9d, r9d
xor r8d, r8d
mov dword [rsp + 0x20], eax
call fcn.140020f34
mov dword [rsp + 0x50], eax
mov rax, qword [rsp + 0x48]
mov ecx, dword [rax + 0x44]
lea r8, str.MATERIALIZE___S
mov r9, rax
mov dword [rbp + 0x1c], ecx
xor ecx, ecx
mov edx, ebx
mov qword [rbp + 0x30], rcx
mov qword [rbp + 0x20], rcx
mov dword [rbp + 0x28], ecx
mov rcx, rsi
mov byte [rbp + 0x18], 0xc
call fcn.14002125c
mov rdx, qword [rbp - 0x38]
lea r8, [rbp + 0x18]
mov rcx, rsi
call fcn.14005cec4
mov rax, qword [rbp - 0x38]
mov r11, qword [rsp + 0x48]
movzx eax, word [rax + 2]
mov rcx, qword [r11 + 0x20]
xor r10d, r10d
mov word [rcx + 0x4a], ax
mov eax, dword [rsp + 0x50]
test eax, eax
je 0x14005d6ff
mov r9, qword [rsp + 0x40]
mov edx, eax
mov rcx, r9
call fcn.140021a4c
mov ecx, dword [r9 + 0x90]
mov dword [rax + 8], ecx
mov r8d, dword [r11 + 0x34]
mov rcx, qword [rsp + 0x40]
xor r9d, r9d
lea edx, [r9 + 0x41]
mov dword [rsp + 0x20], r10d
call fcn.140020f34
mov edx, dword [rbp - 0x48]
mov rcx, qword [rsp + 0x40]
mov r11d, eax
call fcn.140021a4c
mov rdx, qword [rsp + 0x48]
mov dword [rax + 4], r11d
xor r11d, r11d
mov byte [rsi + 0x1f], r11b
mov dword [rsi + 0x28], r11d
test byte [rdx + 0x40], 0x80
je 0x14005d76e
lea eax, [r11 + 8]
test byte [rdx + 0x40], al
jne 0x14005d76e
mov eax, dword [rdx + 0x30]
mov rcx, qword [rdx + 0x68]
mov dword [rcx + 4], eax
mov eax, dword [rdx + 0x34]
mov dword [rcx + 8], eax
mov eax, dword [rdx + 0x44]
mov dword [rcx + 0xc], eax
mov rax, qword [rbp - 0x38]
movzx eax, word [rax + 2]
mov word [rcx + 0x10], ax
mov rax, qword [rsp + 0x70]
cmp byte [rax + 0x63], r11b
jne 0x14005ed00
lea rdx, [rsp + 0x50]
mov rcx, rdi
mov dword [rsp + 0x50], r11d
call fcn.140033e84
mov edx, dword [rsp + 0x50]
mov rax, qword [rbp]
sub dword [rsi + 0x11c], edx
mov rcx, qword [rsp + 0x60]
mov edx, dword [rbp + 0xf8]
xor r11d, r11d
mov qword [rsi + 0x158], rax
mov rax, qword [rbp - 0x70]
add edx, ebx
lea r9, [0x1400c4580]
add rax, rbx
mov dword [rbp + 0xf8], edx
mov qword [rbp - 0x70], rax
cmp edx, dword [rcx]
jl 0x14005d2ce
mov rax, qword [rdi + 0x30]
mov rcx, qword [rdi + 0x20]
mov qword [rbp - 0x48], rax
mov rax, qword [rdi + 0x38]
mov qword [rbp - 0x50], rcx
mov qword [rsp + 0x48], rax
mov rax, qword [rdi + 0x40]
mov qword [rbp - 0x70], rax
mov al, byte [rdi + 4]
and al, bl
mov byte [rbp - 0x18], al
mov eax, dword [rdi + 4]
and al, 9
cmp al, bl
jne 0x14005d84c
mov rdx, rcx
mov rcx, qword [rbp - 0x78]
or r8d, 0xffffffff
call fcn.1400399dc
xor ecx, ecx
test eax, eax
jne 0x14005d848
cmp qword [rdi + 0x70], rcx
jne 0x14005d848
mov rdx, qword [rbp - 0x50]
mov rcx, qword [rsp + 0x70]
and dword [rdi + 4], 0xfffffffe
xor r8d, r8d
call fcn.140034ac0
mov qword [rsp + 0x48], rax
mov qword [rdi + 0x38], rax
mov eax, 8
or dword [rdi + 4], eax
mov rcx, qword [rbp - 0x50]
mov rax, qword [rbp - 0x78]
xor edx, edx
test rax, rax
je 0x14005d8c2
mov r9d, dword [rcx]
xor r8d, r8d
mov rdx, rax
mov rcx, rsi
call fcn.1400579f4
mov r8d, dword [rsi + 0x34]
mov rbx, rax
mov rax, qword [rbp - 0x50]
lea ecx, [r8 + 1]
mov dword [rsi + 0x34], ecx
mov edx, dword [rax]
mov rax, qword [rbp - 0x78]
mov ecx, dword [rax]
xor eax, eax
mov dword [rbp + 0x54], r8d
lea r9d, [rdx + rcx + 1]
mov rcx, qword [rsp + 0x40]
lea edx, [rax + 0x70]
mov dword [rsp + 0x20], eax
call fcn.140020f34
mov rcx, qword [rsp + 0x40]
mov edx, eax
mov r9d, 0xfffffff7
mov r8, rbx
mov dword [rbp - 0x40], eax
call fcn.14002195c
mov eax, dword [rbp - 0x40]
mov ebx, 1
xor edx, edx
jmp 0x14005d8c8
or eax, 0xffffffff
mov dword [rbp - 0x40], eax
mov rcx, qword [rbp + 0xf0]
mov dword [rbp + 0x60], eax
cmp byte [rcx], 0xc
jne 0x14005d8f5
mov rax, qword [rbp - 0x50]
mov r8d, dword [rcx + 4]
mov rcx, qword [rsp + 0x40]
mov r9d, dword [rax]
mov dword [rsp + 0x20], edx
mov edx, 0x70
call fcn.140020f34
dec dword [rsi + 0x44]
mov eax, dword [rsi + 0x44]
mov ecx, 0x4000
mov dword [rbp - 0x38], eax
test dword [rdi + 4], ecx
jne 0x14005d911
mov ecx, 0x140
mov word [rdi + 2], cx
mov r8d, eax
mov rdx, rdi
mov rcx, rsi
call fcn.14005899c
xor edx, edx
cmp dword [rdi + 8], edx
jne 0x14005d941
mov eax, dword [rbp - 0x40]
test eax, eax
js 0x14005d941
mov rcx, qword [rsp + 0x40]
mov edx, eax
call fcn.140021a4c
or byte [rbp + 0x6c], bl
xor edx, edx
mov byte [rax], 0x72
test byte [rdi + 4], bl
je 0x14005d9d3
mov ebx, dword [rsi + 0x34]
xor r9d, r9d
xor r8d, r8d
lea eax, [rbx + 1]
mov rcx, rsi
mov dword [rbp - 0x14], ebx
mov dword [rsi + 0x34], eax
mov rdx, qword [rdi + 0x20]
call fcn.1400579f4
mov rcx, qword [rsp + 0x40]
xor r9d, r9d
mov rdi, rax
xor eax, eax
mov r8d, ebx
lea edx, [rax + 0x70]
mov dword [rsp + 0x20], eax
call fcn.140020f34
mov r8, rdi
mov rdi, qword [rsp + 0x40]
mov rcx, rdi
mov r9d, 0xfffffff7
mov edx, eax
mov ebx, eax
call fcn.14002195c
movsxd rax, dword [rdi + 0x90]
xor edx, edx
mov dword [rbp - 0x10], ebx
test eax, eax
jle 0x14005d9c3
lea rcx, [rax + rax*2]
mov rax, qword [rdi + 0x88]
lea r8d, [rdx + 8]
mov word [rax + rcx*8 - 0x16], r8w
mov rdi, qword [rbp + 0xe8]
mov al, 3
mov ebx, 1
jmp 0x14005d9d5
mov al, dl
mov r9, qword [rsp + 0x48]
mov byte [rbp - 0x17], al
mov dword [rbp - 0x20], eax
cmp dword [rbp - 0x54], edx
jne 0x14005dc38
test r9, r9
jne 0x14005dc38
mov al, byte [rbp - 0x18]
mov r8d, 0x4000
neg al
mov eax, 0x100
sbb cx, cx
and cx, ax
movzx eax, word [rdi + 4]
and ax, r8w
or cx, ax
mov rax, qword [rdi + 0x70]
mov word [rbp + 0xf8], cx
mov qword [rsp + 0x68], rax
test rax, rax
je 0x14005da3a
mov rdx, rdi
mov rcx, rsi
call fcn.140071e00
movzx ecx, word [rbp + 0xf8]
movsx eax, word [rdi + 2]
mov r9, qword [rbp - 0x78]
mov r8, qword [rbp - 0x48]
mov rdx, qword [rsp + 0x60]
mov dword [rsp + 0x30], eax
mov rax, qword [rdi + 0x20]
mov word [rsp + 0x28], cx
mov rcx, rsi
mov qword [rsp + 0x20], rax
call fcn.14006f220
xor r11d, r11d
mov rdx, rax
mov qword [rbp + 0xf8], rax
test rax, rax
je 0x14005ed00
movzx eax, word [rax + 0x48]
cmp ax, word [rdi + 2]
jge 0x14005da89
mov word [rdi + 2], ax
cmp byte [rbp - 0x18], r11b
je 0x14005daa4
movzx ecx, byte [rdx + 0x43]
mov eax, dword [rbp - 0x20]
movzx eax, al
test cl, cl
cmovne eax, ecx
mov dword [rbp - 0x20], eax
mov byte [rbp - 0x17], al
mov r8, qword [rbp - 0x78]
test r8, r8
je 0x14005dae2
test byte [rdx + 0x44], 4
movsx r9d, byte [rdx + 0x41]
mov dword [rbp + 0x50], r9d
jne 0x14005dac1
mov eax, dword [rdx + 0x30]
jmp 0x14005dad4
movzx eax, byte [rdx + 0x40]
lea rcx, [rax + rax*2]
shl rcx, 5
mov eax, dword [rcx + rdx + 0x310]
cmp r9d, dword [r8]
mov dword [rbp + 0x68], eax
cmove r8, r11
mov qword [rbp + 0x48], r8
mov eax, dword [rbp - 0x40]
test eax, eax
js 0x14005db04
test r8, r8
jne 0x14005db04
mov rcx, qword [rsp + 0x40]
mov edx, eax
call fcn.140021858
mov rdx, qword [rbp + 0xf8]
xor r11d, r11d
cmp qword [rsp + 0x68], r11
je 0x14005dbec
dec dword [rsi + 0x44]
mov ebx, dword [rsi + 0x44]
mov rcx, qword [rbp + 0xe0]
inc dword [rcx + 0x38]
mov edi, dword [rcx + 0x38]
mov r8, rdx
mov rdx, qword [rbp + 0xe8]
lea esi, [rbx - 1]
mov r9d, edi
lea eax, [rsi - 1]
mov dword [rsp + 0x20], ebx
mov dword [rcx + 0x44], eax
call fcn.1400739b8
mov rcx, qword [rsp + 0x40]
xor eax, eax
lea r9d, [rsi - 1]
xor r8d, r8d
lea edx, [rax + 0xb]
mov dword [rsp + 0x20], eax
call fcn.140020f34
mov rcx, qword [rsp + 0x40]
mov edx, ebx
call fcn.14002149c
mov rdx, qword [rbp + 0xe8]
mov rcx, qword [rbp + 0xe0]
xor eax, eax
lea ebx, [rsi - 1]
lea r9, [rbp + 0x48]
mov dword [rbp + 0x68], eax
mov rax, qword [rbp + 0xf0]
mov dword [rsp + 0x38], ebx
mov dword [rsp + 0x30], esi
mov qword [rsp + 0x28], rax
lea rax, [rbp - 0x18]
or r8d, 0xffffffff
mov qword [rsp + 0x20], rax
call fcn.140056f68
mov rcx, qword [rsp + 0x40]
mov edx, esi
call fcn.14002149c
xor eax, eax
mov r8d, edi
mov rdi, qword [rsp + 0x40]
lea edx, [rax + 0x41]
xor r9d, r9d
mov rcx, rdi
mov dword [rsp + 0x20], eax
call fcn.140020f34
mov edx, ebx
mov rcx, rdi
call fcn.14002149c
mov rsi, qword [rbp + 0xe0]
mov rbx, qword [rbp + 0xf0]
jmp 0x14005ec7b
mov eax, dword [rdx + 0x34]
mov rbx, qword [rbp + 0xf0]
lea r9, [rbp + 0x48]
mov dword [rsp + 0x38], eax
mov eax, dword [rdx + 0x30]
or r8d, 0xffffffff
mov dword [rsp + 0x30], eax
lea rax, [rbp - 0x18]
mov rdx, rdi
mov rcx, rsi
mov qword [rsp + 0x28], rbx
mov qword [rsp + 0x20], rax
call fcn.140056f68
mov rcx, qword [rbp + 0xf8]
call fcn.14006fe2c
mov rdi, qword [rsp + 0x40]
jmp 0x14005ec7b
mov dword [rbp - 0x68], edx
mov dword [rbp - 0x64], edx
mov dword [rbp + 8], edx
test r9, r9
je 0x14005dcd9
mov rcx, qword [rdi + 0x20]
mov eax, dword [rcx]
test eax, eax
jle 0x14005dc65
add rcx, 0x22
sub eax, ebx
mov word [rcx], dx
add rcx, 0x20
test eax, eax
jg 0x14005dc58
mov eax, dword [r9]
test eax, eax
jle 0x14005dc7d
lea rcx, [r9 + 0x22]
sub eax, ebx
mov word [rcx], dx
add rcx, 0x20
test eax, eax
jg 0x14005dc70
mov eax, 0x42
cmp word [rdi + 2], ax
jle 0x14005dc8c
mov word [rdi + 2], ax
mov rcx, qword [rbp - 0x78]
test rcx, rcx
je 0x14005dcdd
mov eax, dword [r9]
cmp eax, dword [rcx]
jne 0x14005dcdd
mov r10d, edx
test eax, eax
jle 0x14005dcc1
mov r8, rcx
lea rdx, [r9 + 0x18]
sub r8, r9
mov al, byte [r8 + rdx]
add r10d, ebx
and al, bl
mov byte [rdx], al
add rdx, 0x20
cmp r10d, dword [r9]
jl 0x14005dcad
mov rdx, rcx
or r8d, 0xffffffff
mov rcx, r9
call fcn.1400399dc
test eax, eax
jne 0x14005dcdd
mov dword [rbp + 8], ebx
jmp 0x14005dcdd
mov word [rdi + 2], dx
dec dword [rsi + 0x44]
mov eax, dword [rsi + 0x44]
mov rcx, qword [rsp + 0x70]
mov edx, 0x40
mov dword [rbp - 0x58], eax
call fcn.140003d24
xor r11d, r11d
mov qword [rsp + 0x58], rax
test rax, rax
je 0x14005dd1c
lea rdx, [0x14005ce80]
mov r8, rax
mov rcx, rsi
call fcn.1400556f8
mov rax, qword [rsp + 0x58]
xor r11d, r11d
mov rcx, qword [rsp + 0x70]
cmp byte [rcx + 0x63], r11b
jne 0x14005ed00
mov ecx, dword [rdi + 0x10]
xor edx, edx
mov dword [rax + 0x3c], ecx
lea rcx, [rbp + 0x78]
lea r8d, [rdx + 0x38]
call fcn.1400a2620
mov rax, qword [rsp + 0x60]
mov rcx, qword [rsp + 0x58]
mov qword [rbp + 0x80], rax
mov eax, dword [rsi + 0x38]
mov qword [rbp + 0x78], rsi
add eax, ebx
mov qword [rbp + 0x88], rcx
xor r11d, r11d
mov dword [rcx + 0x10], eax
mov rax, qword [rsp + 0x48]
test rax, rax
je 0x14005dd75
mov edx, dword [rax]
jmp 0x14005dd78
mov edx, r11d
mov qword [rcx + 0x18], rax
mov rax, qword [rbp - 0x50]
mov dword [rcx + 0xc], edx
test rax, rax
je 0x14005dd97
lea rcx, [rbp + 0x78]
mov rdx, rax
call fcn.14003a45c
xor r11d, r11d
mov rax, qword [rbp - 0x78]
test rax, rax
je 0x14005ddaf
lea rcx, [rbp + 0x78]
mov rdx, rax
call fcn.14003a45c
xor r11d, r11d
mov rax, qword [rbp - 0x70]
test rax, rax
je 0x14005de0e
cmp qword [rsp + 0x48], r11
je 0x14005ddff
xor edx, edx
lea rcx, [rbp + 0x18]
lea r8d, [rdx + 0x30]
call fcn.1400a2620
mov rdx, qword [rdi + 0x40]
lea rax, [0x14005cd70]
mov qword [rbp + 0x18], rsi
mov qword [rbp + 0x20], rax
mov qword [rbp + 0x40], rdi
test rdx, rdx
je 0x14005ddf3
lea rcx, [rbp + 0x18]
call fcn.140030b84
mov rax, qword [rdi + 0x30]
mov qword [rbp - 0x48], rax
mov rax, qword [rbp - 0x70]
lea rcx, [rbp + 0x78]
mov rdx, rax
call fcn.14003a410
xor r11d, r11d
mov rdx, qword [rsp + 0x58]
mov eax, dword [rdx + 0x28]
mov dword [rdx + 0x2c], eax
cmp qword [rdi + 0x38], r11
jne 0x14005de5b
cmp qword [rdi + 0x40], r11
jne 0x14005de5b
cmp dword [rdx + 0x38], ebx
jne 0x14005de5b
mov rax, qword [rdx + 0x30]
mov rcx, qword [rax]
mov r9, qword [rcx + 0x20]
test r9, r9
je 0x14005de5b
mov rdx, rcx
mov rcx, qword [rsp + 0x70]
lea r8, [rbp + 0x10]
call fcn.14005b664
mov rdx, qword [rsp + 0x58]
xor r11d, r11d
mov byte [rbp + 0xf8], al
jmp 0x14005de62
mov byte [rbp + 0xf8], r11b
mov r8d, r11d
mov dword [rsp + 0x78], r11d
cmp dword [rdx + 0x38], r11d
jle 0x14005df08
mov rcx, r11
mov qword [rbp - 0x80], rcx
mov rax, qword [rdx + 0x30]
mov rax, qword [rcx + rax]
bts dword [rbp + 0xa0], 0x11
mov r9, qword [rax + 0x20]
mov qword [rsp + 0x68], rax
test r9, r9
je 0x14005deb8
lea rcx, [rbp + 0x78]
mov rdx, r9
call fcn.14003a45c
mov rdx, qword [rsp + 0x58]
mov rax, qword [rsp + 0x68]
mov rcx, qword [rbp - 0x80]
mov r8d, dword [rsp + 0x78]
test dword [rax + 4], 0x1000000
je 0x14005dee0
mov rdx, qword [rax + 0x40]
lea rcx, [rbp + 0x78]
mov rdx, qword [rdx + 0x48]
call fcn.14003a410
mov rdx, qword [rsp + 0x58]
mov rcx, qword [rbp - 0x80]
mov r8d, dword [rsp + 0x78]
btr dword [rbp + 0xa0], 0x11
add r8d, ebx
add rcx, 0x20
mov dword [rsp + 0x78], r8d
mov qword [rbp - 0x80], rcx
mov r11d, 0
cmp r8d, dword [rdx + 0x38]
jl 0x14005de7b
mov eax, dword [rsi + 0x38]
mov dword [rdx + 0x14], eax
mov rax, qword [rsp + 0x70]
cmp byte [rax + 0x63], r11b
jne 0x14005ed00
mov r10, qword [rsp + 0x48]
test r10, r10
je 0x14005e796
mov qword [rbp - 0x80], r11
mov word [rbp + 0xf8], r11w
cmp dword [rdx + 0x38], ebx
jne 0x14005dfc5
mov rax, qword [rdx + 0x30]
cmp dword [rax + 0x14], r11d
jl 0x14005dfc5
mov rax, qword [rax]
mov rcx, qword [rax + 0x20]
test rcx, rcx
je 0x14005dfc5
mov rdx, qword [rcx + 8]
test rdx, rdx
je 0x14005df78
mov rcx, qword [rsp + 0x70]
xor r9d, r9d
xor r8d, r8d
call fcn.1400347dc
mov qword [rbp + 0xf8], rax
jmp 0x14005df7f
mov qword [rbp + 0xf8], r11
mov rdx, qword [rsp + 0x48]
mov rcx, qword [rsp + 0x70]
xor r8d, r8d
call fcn.140034ac0
mov r8, qword [rbp + 0xf8]
mov rcx, rsi
mov rdx, rax
call fcn.140035284
mov rdx, qword [rsp + 0x58]
mov r10, qword [rsp + 0x48]
mov rcx, rax
mov qword [rbp - 0x80], rax
neg rcx
sbb ax, ax
and ax, 0x500
mov word [rbp + 0xf8], ax
mov ecx, dword [rsi + 0x34]
xor r8d, r8d
mov dword [rdx + 4], ecx
add dword [rsi + 0x34], ebx
mov r9d, dword [rdx + 0x28]
mov rdx, r10
mov rcx, rsi
call fcn.1400579f4
mov rcx, qword [rsp + 0x40]
mov edx, 0x72
mov qword [rbp], rax
xor eax, eax
mov dword [rsp + 0x20], eax
mov rax, qword [rsp + 0x58]
mov r9d, dword [rax + 0xc]
mov r8d, dword [rax + 4]
call fcn.140020f34
mov r8, qword [rbp]
mov rcx, qword [rsp + 0x40]
mov edx, eax
mov r9d, 0xfffffff7
mov dword [rbp - 0x78], eax
call fcn.14002195c
add dword [rsi + 0x38], ebx
mov eax, dword [rsi + 0x38]
mov ecx, dword [rsi + 0x44]
mov rdx, qword [rsp + 0x48]
lea r8d, [rax + 1]
dec ecx
mov dword [rsp + 0x50], eax
lea eax, [r8 + 2]
mov dword [rsi + 0x38], eax
mov dword [rbp - 8], ecx
dec ecx
mov dword [rsi + 0x44], ecx
mov dword [rbp - 0x5c], eax
mov eax, dword [rdx]
add dword [rsi + 0x38], eax
mov dword [rbp - 0x54], ecx
mov ecx, dword [rsi + 0x38]
lea eax, [rcx + 1]
add ecx, dword [rdx]
mov dword [rbp - 0x60], r8d
mov dword [rsp + 0x78], eax
xor eax, eax
mov dword [rsi + 0x38], ecx
mov rcx, qword [rsp + 0x40]
mov r9d, r8d
lea edx, [rax + 0x45]
xor r8d, r8d
mov dword [rsp + 0x20], eax
call fcn.140020f34
mov rax, qword [rsp + 0x48]
mov r9d, dword [rbp - 0x5c]
mov r11d, dword [rax]
mov rcx, qword [rsp + 0x40]
xor r8d, r8d
lea eax, [r9 + r11]
lea edx, [r8 + 0x48]
inc r9d
mov dword [rsp + 0x20], eax
call fcn.140020f34
mov r9d, dword [rbp - 0x54]
mov r8d, dword [rbp - 0x5c]
mov rcx, qword [rsp + 0x40]
xor eax, eax
lea edx, [rax + 0xc]
mov dword [rsp + 0x20], eax
call fcn.140020f34
mov r11d, dword [rbp + 8]
mov r9, qword [rsp + 0x48]
neg r11d
sbb ax, ax
and ax, 0x200
or ax, word [rbp + 0xf8]
or ax, 0x40
xor ecx, ecx
mov dword [rsp + 0x30], ecx
mov word [rsp + 0x28], ax
mov rax, qword [rbp - 0x80]
mov qword [rsp + 0x20], rax
mov r8, qword [rbp - 0x48]
mov rdx, qword [rsp + 0x60]
mov rcx, rsi
call fcn.14006f220
xor r11d, r11d
mov rcx, rax
mov qword [rbp - 0x28], rax
test rax, rax
jne 0x14005e131
mov rax, qword [rbp - 0x80]
test rax, rax
je 0x14005ed00
mov rcx, qword [rsp + 0x70]
mov rdx, rax
call fcn.1400354e4
jmp 0x14005ed00
movzx eax, byte [rax + 0x43]
mov r10, qword [rsp + 0x48]
mov dword [rbp - 0x48], eax
movsx eax, byte [rcx + 0x41]
cmp eax, dword [r10]
jne 0x14005e159
mov rdi, qword [rsp + 0x58]
mov eax, r11d
mov dword [rbp + 0xf8], eax
jmp 0x14005e376
cmp byte [rbp - 0x18], r11b
je 0x14005e16b
lea r9, str.DISTINCT
test byte [rdi + 4], bl
je 0x14005e172
lea r9, str.GROUP_BY
lea r8, str.USE_TEMP_B_TREE_FOR__s
xor edx, edx
mov rcx, rsi
call fcn.14002125c
mov r10, qword [rsp + 0x48]
mov rdi, qword [rsp + 0x58]
mov eax, dword [r10]
xor r11d, r11d
mov dword [rbp + 0xf8], ebx
mov dword [rbp - 0x68], eax
mov edx, eax
mov dword [rbp - 0x30], eax
mov r8d, eax
cmp dword [rdi + 0x28], r11d
jle 0x14005e1cf
mov rcx, qword [rdi + 0x20]
mov r9d, dword [rdi + 0x28]
add rcx, 0x1a
movsx eax, word [rcx]
cmp eax, r8d
jl 0x14005e1c3
add edx, ebx
add r8d, ebx
add rcx, 0x20
sub r9, rbx
jne 0x14005e1b6
mov dword [rbp - 0x30], edx
mov rcx, rsi
call fcn.14003a4ac
xor r9d, r9d
mov rdx, r10
mov rcx, rsi
mov r8d, eax
mov byte [rsp + 0x20], r11b
mov dword [rbp - 0x64], eax
call fcn.140038c2c
xor eax, eax
mov r8d, eax
mov dword [rsp + 0x60], eax
cmp dword [rdi + 0x28], eax
jle 0x14005e26b
mov rsi, qword [rsp + 0x40]
mov edx, dword [rbp - 0x68]
mov ecx, eax
mov qword [rsp + 0x68], rax
mov r10, qword [rdi + 0x20]
movsx eax, word [rcx + r10 + 0x1a]
cmp eax, edx
jl 0x14005e24d
mov eax, dword [rbp - 0x64]
movsx r9d, word [rcx + r10 + 0x18]
mov r8d, dword [rcx + r10 + 0x10]
add eax, edx
mov rdx, qword [rcx + r10]
mov rcx, rsi
mov dword [rsp + 0x20], eax
call fcn.14003736c
mov edx, dword [rbp - 0x68]
mov rcx, qword [rsp + 0x68]
mov r8d, dword [rsp + 0x60]
add edx, ebx
mov dword [rbp - 0x68], edx
add r8d, ebx
add rcx, 0x20
mov dword [rsp + 0x60], r8d
mov qword [rsp + 0x68], rcx
cmp r8d, dword [rdi + 0x28]
jl 0x14005e20d
mov rsi, qword [rbp + 0xe0]
mov al, byte [rsi + 0x1f]
test al, al
jne 0x14005e27a
add dword [rsi + 0x38], ebx
mov eax, dword [rsi + 0x38]
jmp 0x14005e289
sub al, bl
movzx eax, al
mov byte [rsi + 0x1f], al
mov eax, dword [rsi + rax*4 + 0xd0]
mov r9d, dword [rbp - 0x30]
mov r8d, dword [rbp - 0x64]
mov rcx, qword [rsp + 0x40]
mov edx, 0x5d
mov dword [rbp + 0xe0], eax
mov dword [rsp + 0x20], eax
call fcn.140020f34
mov r9d, dword [rbp + 0xe0]
mov r8d, dword [rdi + 4]
mov rcx, qword [rsp + 0x40]
xor eax, eax
mov edx, 0x87
mov dword [rsp + 0x20], eax
call fcn.140020f34
mov ecx, dword [rbp + 0xe0]
xor eax, eax
test ecx, ecx
je 0x14005e2ee
mov eax, 8
cmp byte [rsi + 0x1f], al
jae 0x14005e2ee
movzx eax, byte [rsi + 0x1f]
mov dword [rsi + rax*4 + 0xd0], ecx
add byte [rsi + 0x1f], bl
mov r8d, dword [rbp - 0x30]
mov edx, dword [rbp - 0x64]
mov rcx, rsi
call fcn.14003a500
mov rcx, qword [rbp - 0x28]
call fcn.14006fe2c
mov edx, dword [rsi + 0x34]
mov dword [rdi + 8], edx
mov al, byte [rsi + 0x1f]
add dword [rsi + 0x34], ebx
mov dword [rbp - 0x68], edx
test al, al
jne 0x14005e321
add dword [rsi + 0x38], ebx
mov ecx, dword [rsi + 0x38]
jmp 0x14005e330
sub al, bl
movzx eax, al
mov byte [rsi + 0x1f], al
mov ecx, dword [rsi + rax*4 + 0xd0]
mov eax, dword [rbp - 0x30]
mov dword [rbp - 0x64], ecx
mov r9d, ecx
mov rcx, qword [rsp + 0x40]
mov r8d, edx
mov edx, 0x75
mov dword [rsp + 0x20], eax
call fcn.140020f34
mov r9d, dword [rbp - 0x58]
mov r8d, dword [rdi + 4]
mov rcx, qword [rsp + 0x40]
xor eax, eax
lea edx, [rax + 0x23]
mov dword [rsp + 0x20], eax
call fcn.140020f34
mov rcx, qword [rbp - 0x28]
mov byte [rdi + 1], bl
mov eax, ebx
xor r11d, r11d
cmp dword [rbp + 8], r11d
je 0x14005e3a9
mov rdx, qword [rsp + 0x70]
test byte [rdx + 0x5c], 4
jne 0x14005e3a9
test eax, eax
jne 0x14005e395
mov eax, 8
test byte [rcx + 0x44], al
je 0x14005e3a9
mov edx, dword [rbp - 0x40]
mov rcx, qword [rsp + 0x40]
mov qword [rbp + 0x48], r11
call fcn.140021858
xor r11d, r11d
mov rcx, qword [rsp + 0x40]
mov eax, dword [rcx + 0x90]
mov dword [rsp + 0x60], eax
mov eax, dword [rbp + 0xf8]
test eax, eax
je 0x14005e3e9
mov eax, dword [rbp - 0x68]
mov r9d, dword [rbp - 0x64]
mov r8d, dword [rdi + 4]
mov edx, 0x81
mov dword [rsp + 0x20], eax
call fcn.140020f34
mov rcx, qword [rsp + 0x40]
mov eax, dword [rbp + 0xf8]
xor r11d, r11d
movsxd r8, eax
mov rax, qword [rsp + 0x48]
mov edx, r11d
mov dword [rbp + 0xe0], edx
mov qword [rbp + 8], r8
cmp dword [rax], r11d
jle 0x14005e46d
lea r9, [rax + 8]
mov qword [rsp + 0x68], r9
mov eax, dword [rsp + 0x78]
test r8, r8
je 0x14005e42e
mov r8d, dword [rbp - 0x68]
add eax, edx
mov r9d, edx
mov edx, 0x5b
mov dword [rsp + 0x20], eax
call fcn.140020f34
jmp 0x14005e43f
mov byte [rdi], bl
lea r8d, [rdx + rax]
mov rdx, qword [r9]
mov rcx, rsi
call fcn.140038afc
mov edx, dword [rbp + 0xe0]
mov r9, qword [rsp + 0x68]
mov rax, qword [rsp + 0x48]
mov rcx, qword [rsp + 0x40]
mov r8, qword [rbp + 8]
add edx, ebx
add r9, 0x20
mov dword [rbp + 0xe0], edx
mov qword [rsp + 0x68], r9
cmp edx, dword [rax]
jl 0x14005e40c
mov rcx, qword [rbp]
test rcx, rcx
je 0x14005e478
add dword [rcx], ebx
mov r8d, dword [rbp - 0x5c]
mov eax, dword [rax]
mov rbx, qword [rsp + 0x40]
mov r9d, dword [rsp + 0x78]
inc r8d
mov rcx, rbx
mov edx, 0x57
mov dword [rsp + 0x20], eax
call fcn.140020f34
mov r8, qword [rbp]
mov r9d, 0xfffffff7
mov edx, eax
mov rcx, rbx
call fcn.14002195c
mov ebx, dword [rbx + 0x90]
mov rcx, qword [rsp + 0x40]
xor r9d, r9d
lea r8d, [rbx + 1]
lea edx, [r9 + 0x10]
mov dword [rsp + 0x20], r8d
call fcn.140020f34
mov rax, qword [rsp + 0x48]
mov r9d, dword [rbp - 0x5c]
mov r11d, dword [rax]
mov r8d, dword [rsp + 0x78]
mov rcx, qword [rsi + 0x10]
inc r9d
mov edx, 0x4c
mov dword [rsp + 0x20], r11d
call fcn.140020f34
mov r8d, dword [rbp - 0x60]
mov r9d, dword [rbp - 8]
mov rcx, qword [rsp + 0x40]
xor eax, eax
inc r8d
lea edx, [rax + 0xc]
mov dword [rsp + 0x20], eax
call fcn.140020f34
mov r9d, dword [rbp - 0x58]
mov r8d, dword [rbp - 0x60]
mov rcx, qword [rsp + 0x40]
xor eax, eax
lea edx, [rax + 0x30]
mov dword [rsp + 0x20], eax
call fcn.140020f34
mov r9d, dword [rbp - 0x54]
mov r8d, dword [rbp - 0x5c]
mov rcx, qword [rsp + 0x40]
xor eax, eax
lea edx, [rax + 0xc]
mov dword [rsp + 0x20], eax
call fcn.140020f34
mov r9, qword [rsp + 0x40]
mov edx, ebx
mov rcx, r9
call fcn.140021a4c
mov ecx, dword [r9 + 0x90]
mov ebx, dword [rsp + 0x50]
mov r9d, dword [rbp - 0x48]
mov dword [rax + 8], ecx
mov r8, rdi
mov rcx, rsi
mov edx, ebx
call fcn.14005ca68
mov rcx, qword [rsp + 0x40]
xor eax, eax
mov r9d, ebx
lea ebx, [rax + 1]
lea edx, [rax + 0x45]
mov r8d, ebx
mov dword [rsp + 0x20], eax
call fcn.140020f34
xor eax, eax
cmp dword [rbp + 0xf8], eax
je 0x14005e5be
mov r8d, dword [rdi + 4]
mov rdi, qword [rsp + 0x40]
mov r9d, dword [rsp + 0x60]
lea edx, [rbx + 2]
mov rcx, rdi
mov dword [rsp + 0x20], eax
call fcn.140020f34
jmp 0x14005e5d7
mov rcx, qword [rbp - 0x28]
call fcn.14006fe2c
mov rdi, qword [rsp + 0x40]
mov edx, dword [rbp - 0x78]
mov rcx, rdi
call fcn.140021858
mov rax, qword [rbp - 0x80]
test rax, rax
je 0x14005e5ed
mov rcx, qword [rsp + 0x70]
mov rdx, rax
call fcn.1400354e4
mov r8d, dword [rbp - 0x60]
mov r9d, dword [rbp - 8]
xor eax, eax
lea edx, [rax + 0xc]
mov rcx, rdi
inc r8d
mov dword [rsp + 0x20], eax
call fcn.140020f34
mov r9d, dword [rbp - 0x58]
xor eax, eax
xor r8d, r8d
mov rcx, rdi
lea edx, [rax + 0xb]
mov dword [rsp + 0x20], eax
call fcn.140020f34
mov r9d, dword [rbp - 0x60]
mov edi, dword [rdi + 0x90]
xor eax, eax
mov r8d, ebx
mov rbx, qword [rsp + 0x40]
lea edx, [rax + 0x45]
mov rcx, rbx
mov dword [rsp + 0x20], eax
call fcn.140020f34
mov r8d, dword [rbp - 0x60]
xor eax, eax
lea edx, [rax + 0x41]
xor r9d, r9d
mov rcx, rbx
inc r8d
mov dword [rsp + 0x20], eax
call fcn.140020f34
mov edx, dword [rbp - 8]
mov rcx, rbx
call fcn.14002149c
mov ebx, dword [rbx + 0x90]
mov r8d, dword [rsp + 0x50]
mov rcx, qword [rsp + 0x40]
xor eax, eax
lea r9d, [rbx + 2]
lea edx, [rax + 0x30]
mov dword [rsp + 0x20], eax
call fcn.140020f34
mov r8d, dword [rbp - 0x60]
mov rcx, qword [rsp + 0x40]
xor eax, eax
inc r8d
xor r9d, r9d
lea edx, [rax + 0x41]
mov dword [rsp + 0x20], eax
call fcn.140020f34
mov rdx, qword [rsp + 0x58]
mov rcx, rsi
call fcn.14005c9e4
mov rdx, qword [rbp - 0x70]
inc ebx
mov r8d, ebx
mov r9d, 0x10
mov rcx, rsi
call fcn.140039294
mov rax, qword [rbp + 0xf0]
mov rdx, qword [rbp + 0xe8]
mov dword [rsp + 0x38], edi
mov dword [rsp + 0x30], ebx
mov qword [rsp + 0x28], rax
lea rax, [rbp - 0x18]
lea r9, [rbp + 0x48]
or r8d, 0xffffffff
mov rcx, rsi
mov qword [rsp + 0x20], rax
call fcn.140056f68
mov r8d, dword [rbp - 0x60]
mov rdi, qword [rsp + 0x40]
xor eax, eax
inc r8d
mov rcx, rdi
lea edx, [rax + 0x41]
xor r9d, r9d
mov dword [rsp + 0x20], eax
call fcn.140020f34
mov edx, dword [rbp - 0x54]
mov rcx, rdi
call fcn.14002149c
mov rbx, qword [rsp + 0x58]
mov rcx, rsi
mov rdx, rbx
call fcn.14005c8b4
mov r9d, dword [rsp + 0x50]
xor eax, eax
lea edx, [rax + 0x45]
xor r8d, r8d
mov rcx, rdi
mov dword [rsp + 0x20], eax
call fcn.140020f34
mov r8d, dword [rbp - 0x5c]
xor eax, eax
xor r9d, r9d
mov rcx, rdi
lea edx, [rax + 0x41]
mov dword [rsp + 0x20], eax
call fcn.140020f34
mov ecx, dword [rbp - 0x48]
test ecx, ecx
je 0x14005e78a
mov rax, qword [rbx + 0x30]
mov edx, ecx
mov rcx, rsi
mov r9d, dword [rax + 0x18]
mov r8d, dword [rax + 0x14]
call fcn.140056ee4
mov rbx, qword [rbp + 0xf0]
jmp 0x14005ec70
cmp qword [rdi + 0x30], r11
jne 0x14005e884
mov rax, qword [rdi + 0x20]
cmp dword [rax], ebx
jne 0x14005e884
mov r8, qword [rdi + 0x28]
cmp dword [r8], ebx
jne 0x14005e884
cmp qword [r8 + 0x30], r11
jne 0x14005e884
mov r8, qword [r8 + 0x28]
mov r9, qword [rax + 8]
mov qword [rbp - 0x78], r8
cmp dword [r8 + 0x54], r11d
jne 0x14005e801
cmp byte [r9], 0xa7
jne 0x14005e801
cmp dword [rdx + 0x38], r11d
je 0x14005e801
mov rax, qword [rdx + 0x30]
mov rcx, qword [rax + 8]
mov eax, 0x100
test dword [rcx + 4], eax
je 0x14005e801
test dword [r9 + 4], 0x1000002
je 0x14005e88b
mov dword [rsp + 0x50], r11d
mov qword [rsp + 0x68], r11
mov word [rbp + 0xe0], r11w
cmp dword [rdx + 0x2c], r11d
je 0x14005eabf
mov r8d, r11d
cmp dword [rdx + 0x38], r11d
jle 0x14005e84d
mov rcx, qword [rdx + 0x30]
mov rax, qword [rcx]
test dword [rax + 4], 0x1000000
jne 0x14005e840
mov rax, qword [rcx + 8]
test byte [rax + 4], 0x20
jne 0x14005e84d
add r8d, ebx
add rcx, 0x20
cmp r8d, dword [rdx + 0x38]
jl 0x14005e82a
cmp r8d, dword [rdx + 0x38]
jne 0x14005eaeb
add dword [rsi + 0x38], ebx
mov eax, dword [rsi + 0x38]
mov rcx, qword [rsp + 0x40]
xor r8d, r8d
mov r9d, eax
mov dword [rsp + 0x50], eax
lea edx, [r8 + 0x45]
mov dword [rsp + 0x20], r11d
call fcn.140020f34
mov rdx, qword [rsp + 0x58]
jmp 0x14005eaeb
mov r8, r11
mov qword [rbp - 0x78], r11
test r8, r8
je 0x14005e801
mov r9, qword [r8 + 0x70]
mov edx, 0xffff8000
mov dword [rbp + 0xe0], edx
test r9, r9
je 0x14005e8d7
mov rax, qword [rsi]
mov edx, r11d
mov rcx, qword [rax + 0x20]
mov dword [rbp + 0xe0], edx
cmp qword [rcx + 0x18], r9
je 0x14005e8d7
mov rcx, qword [rax + 0x20]
add rcx, 0x18
add rcx, 0x20
add edx, ebx
cmp qword [rcx], r9
jne 0x14005e8c6
mov dword [rbp + 0xe0], edx
mov eax, dword [rsi + 0x34]
mov rcx, rsi
mov qword [rsp + 0x68], r11
mov dword [rbp + 0xf8], eax
inc eax
mov qword [rsp + 0x48], r11
mov dword [rsi + 0x34], eax
mov eax, dword [r8 + 0x38]
mov dword [rbp - 0x48], eax
call fcn.140045edc
mov r10, qword [rbp - 0x78]
mov r11, qword [r10]
mov edx, dword [rbp + 0xe0]
mov r8d, dword [r10 + 0x38]
xor r9d, r9d
mov rcx, rsi
mov qword [rsp + 0x20], r11
call fcn.14003fb34
mov rdx, qword [rbp - 0x78]
xor r9d, r9d
test byte [rdx + 0x40], 0x80
je 0x14005e953
mov rcx, qword [rdx + 0x10]
mov qword [rsp + 0x48], rcx
test rcx, rcx
je 0x14005e958
mov eax, dword [rcx + 0x64]
and al, 3
cmp al, 2
je 0x14005e94c
mov rcx, qword [rcx + 0x28]
test rcx, rcx
jne 0x14005e93a
mov qword [rsp + 0x48], rcx
jmp 0x14005e958
mov rcx, qword [rsp + 0x48]
mov rax, qword [rdi + 0x28]
test byte [rax + 0x48], bl
jne 0x14005e99f
mov rax, qword [rdx + 0x10]
test rax, rax
je 0x14005e99f
test byte [rax + 0x64], 4
jne 0x14005e991
movzx r8d, word [rax + 0x5c]
cmp r8w, word [rdx + 0x4c]
jge 0x14005e991
cmp qword [rax + 0x48], r9
jne 0x14005e991
test rcx, rcx
je 0x14005e98e
cmp r8w, word [rcx + 0x5c]
jge 0x14005e991
mov rcx, rax
mov rax, qword [rax + 0x28]
test rax, rax
jne 0x14005e96a
mov qword [rsp + 0x48], rcx
test rcx, rcx
je 0x14005e9ba
mov eax, dword [rcx + 0x58]
mov rdx, rcx
mov rcx, rsi
mov dword [rbp - 0x48], eax
call fcn.140046588
mov qword [rsp + 0x68], rax
mov eax, dword [rbp + 0xe0]
mov r9d, dword [rbp - 0x48]
mov r8d, dword [rbp + 0xf8]
mov rcx, qword [rsp + 0x40]
mov edx, 0x62
mov dword [rsp + 0x28], ebx
mov dword [rsp + 0x20], eax
call fcn.1400213b8
mov rax, qword [rsp + 0x68]
xor ecx, ecx
test rax, rax
je 0x14005ea04
lea r9d, [rcx - 9]
mov rcx, qword [rsp + 0x40]
mov r8, rax
or edx, 0xffffffff
call fcn.14002195c
xor ecx, ecx
mov r8, qword [rsp + 0x58]
mov dword [rsp + 0x20], ecx
mov rcx, qword [rsp + 0x40]
mov rax, qword [r8 + 0x30]
mov r8d, dword [rbp + 0xf8]
mov edx, 0x5e
mov r9d, dword [rax + 0x10]
call fcn.140020f34
mov r8d, dword [rbp + 0xf8]
mov rcx, qword [rsp + 0x40]
xor eax, eax
xor r9d, r9d
lea edx, [rax + 0x76]
mov dword [rsp + 0x20], eax
call fcn.140020f34
cmp byte [rsi + 0x113], 2
jne 0x14005ec21
mov rcx, qword [rsp + 0x48]
mov r10, qword [rbp - 0x78]
xor r8d, r8d
test rcx, rcx
je 0x14005ea82
test byte [r10 + 0x40], 0x80
je 0x14005ea76
mov eax, dword [rcx + 0x64]
and al, 3
cmp al, 2
je 0x14005ea82
mov rax, qword [rcx]
lea rcx, [0x1400c4580]
jmp 0x14005ea8f
lea rcx, [0x1400c4580]
mov ebx, r8d
mov rax, rcx
mov r9, qword [r10]
lea rdx, str._USING_COVERING_INDEX
test ebx, ebx
cmovne rcx, rdx
mov qword [rsp + 0x28], rax
lea r8, str.SCAN__s_s_s
mov qword [rsp + 0x20], rcx
mov rcx, rsi
xor edx, edx
call fcn.14002125c
jmp 0x14005ec21
cmp dword [rdx + 0x38], ebx
jne 0x14005eaeb
mov rax, qword [rdx + 0x30]
cmp dword [rax + 0x14], r11d
jl 0x14005eaeb
mov rax, qword [rax]
mov rax, qword [rax + 0x20]
mov qword [rsp + 0x68], rax
neg rax
sbb ax, ax
and ax, 0x500
mov word [rbp + 0xe0], ax
mov rcx, rsi
call fcn.14005c8b4
movzx r11d, byte [rbp + 0xf8]
mov r9, qword [rbp + 0x10]
or r11w, word [rbp + 0xe0]
mov r8, qword [rbp - 0x48]
mov rdx, qword [rsp + 0x60]
xor eax, eax
mov rcx, rsi
mov dword [rsp + 0x30], eax
mov rax, qword [rsp + 0x68]
mov word [rsp + 0x28], r11w
mov qword [rsp + 0x20], rax
call fcn.14006f220
mov qword [rbp - 0x80], rax
test rax, rax
je 0x14005ed00
movzx eax, byte [rax + 0x43]
mov r8, qword [rsp + 0x58]
mov edx, dword [rsp + 0x50]
mov r9d, eax
mov rcx, rsi
mov dword [rbp + 0xe0], eax
call fcn.14005ca68
mov edx, dword [rbp + 0xe0]
xor r9d, r9d
test edx, edx
je 0x14005eb82
mov rax, qword [rsp + 0x58]
mov rcx, qword [rax + 0x30]
mov r9d, dword [rcx + 0x18]
mov r8d, dword [rcx + 0x14]
mov rcx, rsi
call fcn.140056ee4
xor r9d, r9d
mov eax, dword [rsp + 0x50]
test eax, eax
je 0x14005eba7
mov rcx, qword [rsp + 0x40]
mov dword [rsp + 0x20], r9d
mov r8d, ebx
mov r9d, eax
mov edx, 0x45
call fcn.140020f34
xor r9d, r9d
mov rdx, qword [rbp - 0x80]
cmp byte [rbp + 0xf8], r9b
je 0x14005ec0c
test byte [rdx + 0x44], 4
je 0x14005ec0c
cmp byte [rdx + 0x41], r9b
je 0x14005ec0c
movzx eax, byte [rdx + 0x40]
sub eax, ebx
movsxd r8, eax
js 0x14005ebee
lea rcx, [r8 + r8*2 + 0x1b]
shl rcx, 5
add rcx, rdx
mov rax, qword [rcx + 0x50]
test byte [rax + 0x28], 4
jne 0x14005ed36
sub rcx, 0x60
sub r8, rbx
jns 0x14005ebd7
mov dword [rsp + 0x20], r9d
mov r9d, dword [rdx + 0x34]
mov rcx, qword [rsp + 0x40]
xor r8d, r8d
lea edx, [r8 + 0xb]
call fcn.140020f34
mov rdx, qword [rbp - 0x80]
mov rcx, rdx
call fcn.14006fe2c
mov rdx, qword [rsp + 0x58]
mov rcx, rsi
call fcn.14005c9e4
mov r8d, dword [rbp - 0x58]
mov rdx, qword [rbp - 0x70]
xor eax, eax
lea r9d, [rax + 0x10]
mov rcx, rsi
mov qword [rbp + 0x48], rax
call fcn.140039294
mov eax, dword [rbp - 0x58]
mov rbx, qword [rbp + 0xf0]
mov dword [rsp + 0x38], eax
mov dword [rsp + 0x30], eax
xor eax, eax
xor r9d, r9d
or r8d, 0xffffffff
mov rdx, rdi
mov rcx, rsi
mov qword [rsp + 0x28], rbx
mov qword [rsp + 0x20], rax
call fcn.140056f68
mov rdi, qword [rsp + 0x40]
mov edx, dword [rbp - 0x58]
mov rcx, rdi
call fcn.14002149c
cmp byte [rbp - 0x20], 3
jne 0x14005ec99
lea r9, str.DISTINCT
lea r8, str.USE_TEMP_B_TREE_FOR__s
xor edx, edx
mov rcx, rsi
call fcn.14002125c
xor ecx, ecx
cmp qword [rbp + 0x48], rcx
je 0x14005ece6
cmp dword [rbp + 0x50], ecx
lea rax, str.RIGHT_PART_OF_ORDER_BY
lea r9, str.ORDER_BY
cmovg r9, rax
lea r8, str.USE_TEMP_B_TREE_FOR__s
mov rcx, rsi
xor edx, edx
call fcn.14002125c
mov rax, qword [rbp - 0x50]
mov rdx, qword [rbp + 0xe8]
mov r9d, dword [rax]
lea r8, [rbp + 0x48]
mov rcx, rsi
mov qword [rsp + 0x20], rbx
call fcn.140057adc
mov edx, dword [rbp - 0x38]
mov rcx, rdi
call fcn.14002149c
xor eax, eax
cmp dword [rsi + 0x30], eax
mov r11d, eax
setg r11b
mov ebx, r11d
mov rdi, qword [rsp + 0x70]
movzx eax, byte [rdi + 0x63]
add dword [rsi + 0x30], eax
mov rax, qword [rbp + 0x10]
test rax, rax
je 0x14005ed20
mov rdx, rax
mov rcx, rdi
call fcn.1400354e4
mov rcx, rsi
call fcn.1400212e4
mov eax, ebx
add rsp, 0x1b8
pop rdi
pop rsi
pop rbx
pop rbp
ret
mov dword [rsp + 0x20], r9d
mov r9d, dword [rcx + 0x10]
jmp 0x14005ebf7