Function at 0x14005e8dc
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x20], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0xc0]
sub rsp, 0x1c0
mov rax, qword [0x1400c9040]
xor rax, rsp
mov qword [rbp + 0xb8], rax
mov eax, dword [rcx + 0x200]
xor r15d, r15d
mov rbx, qword [rcx]
mov rdi, r8
mov dword [rbp - 0x40], eax
mov r14, rdx
mov eax, dword [rcx + 0x204]
mov rsi, rcx
mov dword [rcx + 0x200], eax
mov r12d, 1
inc eax
mov qword [rsp + 0x70], r8
mov qword [rbp - 0x28], rdx
mov qword [rbp - 0x38], rcx
mov dword [rcx + 0x204], eax
mov qword [rbp - 0x78], rbx
test rdx, rdx
je 0x14005fe96
cmp byte [rbx + 0x50], r15b
jne 0x14005fe96
cmp dword [rcx + 0x4c], r15d
jne 0x14005fe96
xor r9d, r9d
mov qword [rsp + 0x20], r15
xor r8d, r8d
lea edx, [r12 + 0x14]
call fcn.140044868
test eax, eax
jne 0x14005fe96
xor edx, edx
lea r8d, [r12 + 0x3f]
lea rcx, [rbp + 0x10]
call fcn.1400a5660
cmp byte [rdi], 8
mov r13d, 0xfffe
ja 0x14005e9b9
mov rdx, qword [r14 + 0x48]
mov rcx, rbx
call fcn.14003df3c
and word [r14 + 0xa], r13w
mov qword [r14 + 0x48], r15
xor r8d, r8d
mov rdx, r14
mov rcx, rsi
call fcn.14005e310
mov rax, qword [r14 + 0x48]
xor r11d, r11d
xorps xmm0, xmm0
mov r13, qword [r14 + 0x28]
mov qword [rbp - 0x10], rax
mov rax, qword [r14]
mov qword [rsp + 0x68], rax
movdqu xmmword [rbp - 8], xmm0
mov qword [rbp + 8], r11
mov qword [rbp - 0x58], r13
cmp dword [rsi + 0x4c], r11d
jne 0x14005fe5d
cmp byte [rbx + 0x50], r11b
jne 0x14005fe5d
movzx eax, word [r14 + 0xa]
mov rcx, rsi
shr eax, 2
and eax, r12d
mov dword [rsp + 0x60], eax
call fcn.14005adf4
xor r11d, r11d
mov qword [rbp - 0x48], rax
mov r15, rax
test rax, rax
je 0x14005fe58
mov r9, qword [rsp + 0x68]
mov al, byte [rdi]
cmp dword [r9], r12d
jle 0x14005ea53
sub al, 0xa
cmp al, r12b
ja 0x14005ea53
lea rdx, str.only_a_single_result_allowed_for_a_SELECT_that_is_part_of_an_expression
mov rcx, rsi
call fcn.140014ac0
jmp 0x14005fe58
mov rcx, qword [r14 + 0x50]
xor r8d, r8d
mov dword [rsp + 0x50], r11d
mov edx, 4
test rcx, rcx
jne 0x14005edbc
mov edi, r8d
mov qword [rbp - 0x70], r8
cmp r11d, dword [r13]
jge 0x14005edb7
imul rdi, rdi, 0x78
mov r11, qword [rdi + r13 + 0x30]
mov qword [rbp - 0x30], r11
test r11, r11
je 0x14005ed92
mov r9d, dword [rdi + r13 + 0x38]
test r9d, r9d
je 0x14005eac5
test byte [rdi + r13 + 0x48], dl
jne 0x14005ed92
mov dword [rsp + 0x20], r8d
mov edx, 0x11
mov r8d, dword [rdi + r13 + 0x3c]
mov rcx, r15
call fcn.14002cef0
jmp 0x14005ed8b
lea rdx, [rbp + 0x88]
mov dword [rbp + 0x88], r8d
mov rcx, r14
call fcn.14003cbe8
mov eax, dword [rbp + 0x88]
mov rdx, r14
add dword [rsi + 0x1fc], eax
mov rcx, rsi
movzx eax, word [r11 + 0xa]
mov r9d, dword [rsp + 0x60]
mov r8d, dword [rsp + 0x50]
shr eax, 2
and eax, r12d
mov dword [rsp + 0x54], eax
mov dword [rsp + 0x20], eax
call fcn.14005cde8
xor r11d, r11d
test eax, eax
je 0x14005eb3c
cmp dword [rsp + 0x54], r11d
je 0x14005eb2b
lea r9d, [r11 + 4]
mov dword [rsp + 0x60], r12d
or word [r14 + 0xa], r9w
or rax, 0xffffffffffffffff
mov dword [rsp + 0x50], eax
mov qword [rbp - 0x70], rax
jmp 0x14005ed3f
cmp dword [r13], r12d
jne 0x14005ec34
mov eax, 0x100
test word [rbx + 0x4c], ax
jne 0x14005ec34
mov eax, dword [r15 + 0x3c]
xor r9d, r9d
add dword [rsi + 0x54], r12d
mov rcx, r15
mov r8d, dword [rsi + 0x54]
mov dword [rsp + 0x54], eax
lea ebx, [rax + 1]
mov dword [rdi + r13 + 0x3c], r8d
lea edx, [r9 + 0x14]
mov dword [rsp + 0x20], ebx
call fcn.14002cef0
mov eax, dword [rdi + r13 + 0x3c]
lea r8, [rbp + 0xa0]
mov dword [rdi + r13 + 0x38], ebx
mov rcx, rsi
mov rbx, qword [rbp - 0x30]
mov dword [rbp + 0xa4], eax
mov rdx, rbx
xor eax, eax
mov word [rbp + 0xa0], 0xd
mov qword [rbp + 0xa8], rax
mov al, byte [rsi + 0x204]
mov byte [rdi + r13 + 0x4c], al
call fcn.14005e8dc
mov rcx, qword [rbx + 0x20]
call fcn.140015a08
mov rcx, qword [rdi + r13 + 0x28]
mov r9d, 4
xor edx, edx
mov dword [rsp + 0x20], edx
mov word [rcx + 0x38], ax
mov rcx, r15
or dword [rdi + r13 + 0x48], r9d
xor r9d, r9d
mov eax, dword [rbp + 0xa8]
mov r8d, dword [rdi + r13 + 0x3c]
mov dword [rdi + r13 + 0x40], eax
lea edx, [r9 + 0x15]
call fcn.14002cef0
mov eax, dword [rsp + 0x54]
mov edx, dword [r15 + 0x3c]
cmp edx, eax
jbe 0x14005ec1d
lea rcx, [rax + rax*2]
mov rax, qword [r15 + 8]
mov dword [rax + rcx*8 + 8], edx
mov ecx, dword [r15 + 0x3c]
mov rax, qword [r15 + 0x30]
sub ecx, r12d
mov rbx, qword [rbp - 0x78]
mov dword [rax + 0x64], ecx
jmp 0x14005ed34
mov r9d, dword [rsi + 0x54]
xor r8d, r8d
inc r9d
mov dword [rbp + 0x88], r11d
mov dword [rsi + 0x54], r9d
mov rcx, r15
mov dword [rdi + r13 + 0x3c], r9d
lea edx, [r8 + 0x19]
mov dword [rsp + 0x20], r11d
call fcn.14002cef0
test byte [rdi + r13 + 0x48], 2
mov dword [rsp + 0x54], eax
lea ecx, [rax + 1]
mov dword [rdi + r13 + 0x38], ecx
jne 0x14005ec81
mov rcx, rsi
call fcn.14003e27c
mov dword [rbp + 0x88], eax
mov ecx, dword [rdi + r13 + 0x50]
lea r8, [rbp + 0xa0]
mov rdx, qword [rbp - 0x30]
xor eax, eax
mov dword [rbp + 0xa4], ecx
mov cl, byte [rsi + 0x204]
mov word [rbp + 0xa0], 0xc
mov qword [rbp + 0xa8], rax
mov byte [rdi + r13 + 0x4c], cl
mov rcx, rsi
call fcn.14005e8dc
mov rax, qword [rbp - 0x30]
mov rcx, qword [rax + 0x20]
call fcn.140015a08
mov rcx, qword [rdi + r13 + 0x28]
xor r8d, r8d
mov word [rcx + 0x38], ax
mov eax, dword [rbp + 0x88]
test eax, eax
je 0x14005ed01
mov edx, dword [r15 + 0x3c]
cmp edx, eax
jbe 0x14005ecf3
lea rcx, [rax + rax*2]
mov rax, qword [r15 + 8]
mov dword [rax + rcx*8 + 8], edx
mov ecx, dword [r15 + 0x3c]
mov rax, qword [r15 + 0x30]
sub ecx, r12d
mov dword [rax + 0x64], ecx
xor r9d, r9d
mov dword [rsp + 0x20], r8d
mov r8d, dword [rdi + r13 + 0x3c]
mov rcx, r15
lea edx, [r9 + 0x12]
call fcn.14002cef0
mov r8d, eax
mov eax, dword [rsp + 0x54]
cmp dword [r15 + 0x3c], eax
jbe 0x14005ed34
mov rcx, qword [r15 + 8]
lea rdx, [rax + rax*2]
mov dword [rcx + rdx*8 + 4], r8d
xor r11d, r11d
mov dword [rsi + 0x44], r11d
mov byte [rsi + 0x1f], r11b
cmp byte [rbx + 0x50], r11b
jne 0x14005fe53
lea rdx, [rbp + 0x88]
mov dword [rbp + 0x88], r11d
mov rcx, r14
call fcn.14003cbe8
mov edx, dword [rsi + 0x1fc]
sub edx, dword [rbp + 0x88]
mov rax, qword [rsp + 0x70]
mov dword [rsi + 0x1fc], edx
mov r13, qword [r14 + 0x28]
mov qword [rbp - 0x58], r13
cmp byte [rax], 8
jbe 0x14005ed8b
mov rax, qword [r14 + 0x48]
mov qword [rbp - 0x10], rax
xor r8d, r8d
lea edx, [r8 + 4]
mov r11d, dword [rsp + 0x50]
mov rdi, qword [rbp - 0x70]
add r11d, r12d
mov rcx, qword [r14 + 0x50]
add rdi, r12
mov dword [rsp + 0x50], r11d
mov qword [rbp - 0x70], rdi
test rcx, rcx
je 0x14005ea74
mov rdi, qword [rsp + 0x70]
mov rax, qword [r14 + 0x30]
mov rdx, qword [r14]
mov r13, qword [r14 + 0x38]
mov qword [rbp - 0x50], rax
mov rax, qword [r14 + 0x40]
mov qword [rbp - 0x18], rax
mov al, byte [r14 + 0xa]
and al, r12b
mov qword [rsp + 0x68], rdx
mov qword [rbp - 0x20], r13
mov byte [rbp + 0x90], al
test rcx, rcx
je 0x14005ee0a
mov r8, rdi
mov rdx, r14
mov rcx, rsi
call fcn.14005b5e0
mov ecx, dword [rbp - 0x40]
mov dword [rsi + 0x200], ecx
jmp 0x14005fe99
mov al, byte [r14 + 0xa]
and al, 5
cmp al, r12b
jne 0x14005ee51
mov rcx, qword [rbp - 0x10]
or r8d, 0xffffffff
call fcn.140041154
test eax, eax
jne 0x14005ee51
mov rdx, qword [r14]
mov ecx, 0xfffe
and word [r14 + 0xa], cx
xor r8d, r8d
mov rcx, rbx
call fcn.14003d89c
xor ebx, ebx
mov qword [rbp - 0x20], rax
mov qword [rbp - 0x10], rbx
mov r13, rax
mov qword [r14 + 0x38], rax
jmp 0x14005ee53
xor ebx, ebx
mov rdx, qword [rbp - 0x10]
test rdx, rdx
je 0x14005eec1
xor r9d, r9d
xor r8d, r8d
mov rcx, rsi
call fcn.140059f54
mov r8d, dword [rsi + 0x50]
mov rdi, rax
mov r9, qword [rsp + 0x68]
mov dword [rbp - 4], r8d
mov dword [rsp + 0x20], ebx
lea ecx, [r8 + 1]
mov dword [rsi + 0x50], ecx
mov rcx, qword [rbp - 0x10]
mov r9d, dword [r9]
mov edx, dword [rcx]
mov rcx, r15
inc edx
add r9d, edx
mov edx, 0x39
call fcn.14002cef0
mov r9d, 0xfffffffa
mov r8, rdi
mov edx, eax
mov rcx, r15
mov ebx, eax
call fcn.14002d4a4
mov rdi, qword [rsp + 0x70]
mov dword [rbp + 8], ebx
xor ebx, ebx
jmp 0x14005eec5
or dword [rbp + 8], 0xffffffff
cmp byte [rdi], 0xc
jne 0x14005eee7
mov rax, qword [rsp + 0x68]
mov edx, 0x39
mov r8d, dword [rdi + 4]
mov rcx, r15
mov dword [rsp + 0x20], ebx
mov r9d, dword [rax]
call fcn.14002cef0
mov rcx, r15
call fcn.14002d02c
movabs rcx, 0x7fffffffffffffff
mov dword [rbp - 0x30], eax
mov qword [r14 + 0x20], rcx
mov r8d, eax
mov rcx, rsi
mov rdx, r14
call fcn.14005ae58
cmp dword [r14 + 0xc], ebx
jne 0x14005ef2a
mov edx, dword [rbp + 8]
test edx, edx
js 0x14005ef2a
mov rcx, r15
call fcn.14002d594
mov byte [rax], 0x3a
or byte [rbp + 0xc], r12b
test byte [r14 + 0xa], r12b
je 0x14005efad
mov eax, dword [rsi + 0x50]
xor r9d, r9d
mov dword [rbp + 0x94], eax
xor r8d, r8d
inc eax
mov rcx, rsi
mov dword [rsi + 0x50], eax
mov rdx, qword [r14]
call fcn.140059f54
mov r8d, dword [rbp + 0x94]
xor r9d, r9d
mov rcx, r15
mov dword [rsp + 0x20], ebx
mov rdi, rax
lea edx, [r9 + 0x39]
call fcn.14002cef0
mov r9d, 0xfffffffa
mov r8, rdi
mov edx, eax
mov rcx, r15
mov ebx, eax
call fcn.14002d4a4
mov dword [rbp + 0x98], ebx
xor ebx, ebx
mov rdx, qword [r15 + 8]
test rdx, rdx
je 0x14005ef9f
movsxd rax, dword [r15 + 0x3c]
lea rcx, [rax + rax*2]
mov byte [rdx + rcx*8 - 0x15], 8
mov rdi, qword [rsp + 0x70]
mov byte [rbp + 0x91], 3
jmp 0x14005efb3
mov byte [rbp + 0x91], bl
cmp dword [rsp + 0x60], ebx
jne 0x14005f0b9
test r13, r13
jne 0x14005f0b9
mov al, byte [rbp + 0x90]
mov r13, qword [rbp - 0x58]
neg al
mov rax, qword [r14]
mov rdx, r13
mov r9, qword [rbp - 0x10]
sbb cx, cx
mov r8, qword [rbp - 0x50]
and cx, 0x400
mov dword [rsp + 0x30], ebx
mov word [rsp + 0x28], cx
mov rcx, rsi
mov qword [rsp + 0x20], rax
call fcn.14006b4cc
xor r11d, r11d
mov rbx, rax
test rax, rax
je 0x14005fe47
movzx ecx, word [rax + 0x30]
call fcn.140015a68
cmp rax, qword [r14 + 0x20]
jae 0x14005f020
mov qword [r14 + 0x20], rax
cmp byte [rbp + 0x90], r11b
je 0x14005f03f
movzx ecx, byte [rbx + 0x38]
movzx eax, byte [rbp + 0x91]
test cl, cl
cmovne eax, ecx
mov byte [rbp + 0x91], al
mov rcx, qword [rbp - 0x10]
test rcx, rcx
je 0x14005f059
movsx eax, byte [rbx + 0x34]
mov dword [rbp - 8], eax
cmp eax, dword [rcx]
cmove rcx, r11
mov qword [rbp - 0x10], rcx
mov edx, dword [rbp + 8]
test edx, edx
js 0x14005f06d
test rcx, rcx
jne 0x14005f06d
mov rcx, r15
call fcn.14002d430
mov eax, dword [rbx + 0x44]
or r9d, 0xffffffff
mov r12, qword [rsp + 0x68]
mov rdx, r14
mov dword [rsp + 0x40], eax
mov r8, r12
mov eax, dword [rbx + 0x40]
mov rcx, rsi
mov dword [rsp + 0x38], eax
lea rax, [rbp + 0x90]
mov qword [rsp + 0x30], rdi
mov qword [rsp + 0x28], rax
lea rax, [rbp - 0x10]
mov qword [rsp + 0x20], rax
call fcn.140059638
mov rcx, rbx
call fcn.14006be24
jmp 0x14005fddf
mov dword [rsp + 0x5c], ebx
mov dword [rsp + 0x58], ebx
test r13, r13
je 0x14005f114
mov rax, qword [r14]
mov ecx, dword [rax]
mov rdx, qword [rax + 8]
test ecx, ecx
jle 0x14005f0e5
lea rax, [rdx + 0x22]
sub ecx, r12d
mov word [rax], bx
lea rax, [rax + 0x28]
test ecx, ecx
jg 0x14005f0d7
mov eax, dword [r13]
mov rcx, qword [r13 + 8]
test eax, eax
jle 0x14005f103
add rcx, 0x22
sub eax, r12d
mov word [rcx], bx
lea rcx, [rcx + 0x28]
test eax, eax
jg 0x14005f0f5
cmp qword [r14 + 0x20], 0x64
jbe 0x14005f118
mov qword [r14 + 0x20], 0x64
jmp 0x14005f118
mov qword [r14 + 0x20], r12
mov rdx, qword [rbp - 0x10]
or r8d, 0xffffffff
mov rcx, r13
call fcn.140041154
mov rcx, r15
mov dword [rsp + 0x78], eax
call fcn.14002d02c
mov ecx, dword [rsi + 0x54]
xorps xmm0, xmm0
mov dword [rbp + 0x88], eax
add ecx, r12d
lea rax, [rbp + 0x10]
mov qword [rbp + 0x60], rbx
mov qword [rbp + 0x68], rax
xor eax, eax
mov qword [rbp + 0x80], rbx
mov rbx, qword [rbp - 0x58]
mov qword [rbp + 0x50], rsi
mov qword [rbp + 0x58], rbx
mov dword [rbp + 0x20], ecx
movdqu xmmword [rbp + 0x70], xmm0
test r13, r13
je 0x14005f175
mov eax, dword [r13]
mov rdx, qword [rsp + 0x68]
lea rcx, [rbp + 0x50]
mov dword [rbp + 0x1c], eax
mov qword [rbp + 0x28], r13
call fcn.1400415dc
mov rdx, qword [rbp - 0x10]
lea rcx, [rbp + 0x50]
call fcn.1400415dc
mov rax, qword [rbp - 0x18]
xor r11d, r11d
test rax, rax
je 0x14005f1b2
mov rdx, rax
lea rcx, [rbp + 0x50]
call fcn.140041580
xor r11d, r11d
mov ecx, dword [rbp + 0x48]
mov eax, dword [rbp + 0x38]
mov dword [rbp + 0x3c], eax
test ecx, ecx
jle 0x14005f218
movzx eax, word [rbp + 0x80]
mov rdi, r11
mov r14d, r11d
or ax, 8
lea rcx, [rbp + 0x50]
mov word [rbp + 0x80], ax
mov rax, qword [rbp + 0x40]
mov rdx, qword [rdi + rax]
mov rdx, qword [rdx + 0x20]
call fcn.1400415dc
movzx eax, word [rbp + 0x80]
lea rdi, [rdi + 0x18]
mov ecx, 0xfff7
add r14d, r12d
and ax, cx
mov ecx, dword [rbp + 0x48]
mov word [rbp + 0x80], ax
cmp r14d, ecx
jl 0x14005f1cc
mov r14, qword [rbp - 0x28]
xor r11d, r11d
mov rdi, qword [rbp - 0x78]
mov eax, dword [rsi + 0x54]
mov dword [rbp + 0x24], eax
cmp byte [rdi + 0x50], r11b
jne 0x14005fe4d
test r13, r13
je 0x14005f92d
mov eax, dword [rsi + 0x50]
xor r9d, r9d
mov dword [rbp + 0x14], eax
xor r8d, r8d
inc eax
mov rdx, r13
mov rcx, rsi
mov dword [rsi + 0x50], eax
call fcn.140059f54
mov r9d, dword [rbp + 0x1c]
xor edx, edx
mov r8d, dword [rbp + 0x14]
mov rcx, r15
mov dword [rsp + 0x20], edx
mov edx, 0x3a
mov qword [rbp - 0x80], rax
call fcn.14002cef0
mov r8, qword [rbp - 0x80]
mov r9d, 0xfffffffa
mov edx, eax
mov dword [rbp - 0x70], eax
mov rcx, r15
call fcn.14002d4a4
mov eax, dword [rsi + 0x54]
mov rcx, r15
inc eax
mov dword [rbp - 0x60], eax
inc eax
mov dword [rsp + 0x50], eax
inc eax
mov dword [rsi + 0x54], eax
call fcn.14002d02c
mov dword [rsp + 0x54], eax
mov rcx, r15
mov eax, dword [rsi + 0x54]
inc eax
mov dword [rbp - 0x48], eax
mov dword [rsi + 0x54], eax
call fcn.14002d02c
mov edx, dword [rsi + 0x54]
mov rcx, r15
mov r8d, dword [r13]
mov r9d, dword [rsp + 0x50]
add r8d, edx
mov dword [rbp - 0x5c], eax
lea eax, [rdx + 1]
mov dword [rsi + 0x54], r8d
mov edx, dword [r13]
add edx, r8d
mov dword [rbp - 0x68], eax
lea eax, [r8 + 1]
mov dword [rsi + 0x54], edx
mov dword [rbp - 0x64], eax
xor r8d, r8d
xor eax, eax
mov dword [rsp + 0x20], eax
lea edx, [rax + 0x19]
call fcn.14002cef0
mov r9d, dword [rbp - 0x60]
xor eax, eax
xor r8d, r8d
mov dword [rsp + 0x20], eax
mov rcx, r15
lea edx, [rax + 0x19]
call fcn.14002cef0
mov edx, dword [rbp - 0x68]
xor r8d, r8d
mov r9d, edx
lea ecx, [rdx - 1]
add ecx, dword [r13]
lea edx, [r8 + 0x1c]
mov dword [rsp + 0x20], ecx
mov rcx, r15
call fcn.14002cef0
mov r9d, dword [rbp - 0x5c]
xor eax, eax
mov r8d, dword [rbp - 0x48]
mov rcx, r15
mov dword [rsp + 0x20], eax
lea edx, [rax + 0x11]
call fcn.14002cef0
mov eax, dword [rsp + 0x78]
mov r9, r13
mov r8, qword [rbp - 0x50]
neg eax
mov rdx, rbx
sbb cx, cx
xor eax, eax
and cx, 0xf800
mov dword [rsp + 0x30], eax
add cx, 0x900
mov word [rsp + 0x28], cx
mov rcx, rsi
mov qword [rsp + 0x20], rax
call fcn.14006b4cc
xor r11d, r11d
mov qword [rbp - 0x50], rax
test rax, rax
je 0x14005fe4d
movsx ecx, byte [rax + 0x34]
cmp ecx, dword [r13]
jne 0x14005f3a6
mov ebx, r11d
mov dword [rsp + 0x60], ebx
jmp 0x14005f5cc
cmp byte [rbp + 0x90], r11b
je 0x14005f3bc
lea rdx, str.DISTINCT
test byte [r14 + 0xa], r12b
je 0x14005f3c3
lea rdx, str.GROUP_BY
mov rcx, rsi
call fcn.14005a03c
mov eax, dword [r13]
mov ebx, eax
mov ecx, dword [rbp + 0x38]
mov edx, eax
mov dword [rsp + 0x60], r12d
mov dword [rbp - 0x38], eax
test ecx, ecx
jle 0x14005f409
mov r8, qword [rbp + 0x30]
mov r9d, ecx
add r8, 0x10
cmp dword [r8], edx
lea eax, [rbx + 1]
lea r8, [r8 + 0x20]
cmovl eax, ebx
mov ebx, eax
lea eax, [rdx + 1]
cmovl eax, edx
mov edx, eax
sub r9, r12
jne 0x14005f3ed
mov edx, ebx
mov rcx, rsi
call fcn.140041668
mov rcx, rsi
mov dword [rsp + 0x5c], eax
mov r11d, eax
call fcn.14003f5ac
xor r9d, r9d
mov r8d, r11d
mov rdx, r13
call fcn.1400406cc
mov r8d, dword [rbp + 0x38]
xor eax, eax
mov dword [rsp + 0x58], eax
mov r9d, eax
test r8d, r8d
jle 0x14005f4d0
mov r14d, dword [rbp - 0x38]
mov ecx, dword [rsp + 0x5c]
add r14d, ecx
xor r13d, r13d
mov edi, r13d
mov rdx, qword [rbp + 0x30]
mov eax, r14d
sub eax, ecx
cmp dword [rdi + rdx + 0x10], eax
jl 0x14005f4b3
mov r9d, dword [rdi + rdx + 8]
mov rcx, rsi
mov r8d, dword [rdi + rdx + 0xc]
mov rdx, qword [rdi + rdx]
mov byte [rsp + 0x28], r13b
mov dword [rsp + 0x20], r14d
call fcn.14003f4c4
cmp r14d, eax
je 0x14005f4a3
mov r9d, r14d
mov dword [rsp + 0x20], r13d
mov r8d, eax
mov edx, 0x22
mov rcx, r15
call fcn.14002cef0
mov r8d, dword [rbp + 0x38]
add r14d, r12d
mov ecx, dword [rsp + 0x5c]
mov r9d, dword [rsp + 0x58]
add r9d, r12d
add rdi, 0x20
mov dword [rsp + 0x58], r9d
cmp r9d, r8d
jl 0x14005f457
mov r14, qword [rbp - 0x28]
mov r13, qword [rbp - 0x20]
mov rdi, qword [rbp - 0x78]
mov al, byte [rsi + 0x1f]
test al, al
jne 0x14005f4e1
mov eax, dword [rsi + 0x54]
inc eax
mov dword [rsi + 0x54], eax
jmp 0x14005f4ee
sub al, r12b
movzx eax, al
mov byte [rsi + 0x1f], al
mov eax, dword [rsi + rax*4 + 0x24]
mov r8d, dword [rsp + 0x5c]
mov r9d, ebx
mov edx, 0x31
mov dword [rsp + 0x58], eax
mov rcx, r15
mov dword [rsp + 0x20], eax
call fcn.14002cef0
mov r9d, dword [rsp + 0x58]
xor eax, eax
mov r8d, dword [rbp + 0x14]
mov rcx, r15
mov dword [rsp + 0x20], eax
lea edx, [rax + 0x6d]
call fcn.14002cef0
mov edx, dword [rsp + 0x58]
mov rcx, rsi
call fcn.140041630
mov edx, dword [rsp + 0x5c]
mov r8d, ebx
call fcn.14003f34c
cmp ebx, dword [rsi + 0x44]
jle 0x14005f548
mov dword [rsi + 0x44], ebx
mov dword [rsi + 0x48], edx
mov rcx, qword [rbp - 0x50]
call fcn.14006be24
mov ecx, dword [rsi + 0x50]
mov dword [rsp + 0x5c], ecx
mov dword [rbp + 0x18], ecx
lea eax, [rcx + 1]
mov dword [rsi + 0x50], eax
mov al, byte [rsi + 0x1f]
test al, al
jne 0x14005f572
mov eax, dword [rsi + 0x54]
inc eax
mov dword [rsi + 0x54], eax
jmp 0x14005f57f
sub al, r12b
movzx eax, al
mov byte [rsi + 0x1f], al
mov eax, dword [rsi + rax*4 + 0x24]
mov r8d, ecx
mov dword [rsp + 0x58], eax
mov rcx, r15
mov dword [rsp + 0x20], ebx
mov r9d, eax
mov edx, 0x3c
call fcn.14002cef0
mov r9d, dword [rbp + 0x88]
xor eax, eax
mov r8d, dword [rbp + 0x14]
mov rcx, r15
mov dword [rsp + 0x20], eax
lea edx, [rax + 0x6a]
call fcn.14002cef0
mov rcx, rsi
mov byte [rbp + 0x11], r12b
call fcn.14003f5ac
mov rax, qword [rbp - 0x50]
xor r11d, r11d
mov ebx, r12d
cmp dword [rsp + 0x78], r11d
jne 0x14005f5fb
mov r9d, 4
test byte [rdi + 0x4c], r9b
jne 0x14005f5fb
test ebx, ebx
jne 0x14005f5e9
cmp byte [rax + 0x35], r11b
je 0x14005f5fb
mov edx, dword [rbp + 8]
mov rcx, r15
mov qword [rbp - 0x10], r11
call fcn.14002d430
xor r11d, r11d
mov edi, dword [r15 + 0x3c]
mov rcx, rsi
mov dword [rbp - 0x38], edi
call fcn.14003f5ac
test ebx, ebx
je 0x14005f62f
mov eax, dword [rsp + 0x5c]
mov edx, 0x64
mov r9d, dword [rsp + 0x58]
mov rcx, r15
mov r8d, dword [rbp + 0x14]
mov dword [rsp + 0x20], eax
call fcn.14002cef0
xor r11d, r11d
mov ebx, r11d
cmp dword [r13], r11d
jle 0x14005f696
mov r14d, dword [rsp + 0x5c]
mov rdi, r11
mov r8d, dword [rbp - 0x64]
add r8d, ebx
cmp dword [rsp + 0x60], r11d
je 0x14005f668
mov dword [rsp + 0x20], r8d
mov r9d, ebx
mov r8d, r14d
mov edx, 0x2f
mov rcx, r15
call fcn.14002cef0
jmp 0x14005f67c
mov byte [rbp + 0x10], r12b
mov rcx, rsi
mov rdx, qword [r13 + 8]
mov rdx, qword [rdx + rdi]
call fcn.140040670
add ebx, r12d
add rdi, 0x28
mov r11d, 0
cmp ebx, dword [r13]
jl 0x14005f640
mov r14, qword [rbp - 0x28]
mov edi, dword [rbp - 0x38]
mov rbx, qword [rbp - 0x80]
test rbx, rbx
je 0x14005f6a2
add dword [rbx], r12d
mov eax, dword [r13]
mov edx, 0x2a
mov r9d, dword [rbp - 0x64]
mov rcx, r15
mov r8d, dword [rbp - 0x68]
mov dword [rsp + 0x20], eax
call fcn.14002cef0
mov r9d, 0xfffffffa
mov r8, rbx
mov edx, eax
mov rcx, r15
call fcn.14002d4a4
mov ebx, dword [r15 + 0x3c]
xor r9d, r9d
mov rcx, r15
lea r8d, [rbx + 1]
lea edx, [r9 + 0x2b]
mov dword [rsp + 0x20], r8d
call fcn.14002cef0
mov r9d, dword [r13]
mov rcx, rsi
mov r8d, dword [rbp - 0x68]
mov edx, dword [rbp - 0x64]
call fcn.14003f5f0
mov r8d, dword [rsp + 0x50]
xor r13d, r13d
mov r9d, dword [rsp + 0x54]
inc r8d
mov rcx, r15
mov dword [rsp + 0x20], r13d
lea edx, [r13 + 0x11]
call fcn.14002cef0
mov r8d, dword [rsp + 0x50]
mov edx, 0x89
mov dword [rsp + 0x20], r13d
mov rcx, r15
mov r13d, dword [rbp + 0x88]
mov r9d, r13d
call fcn.14002cef0
mov r9d, dword [rbp - 0x5c]
xor eax, eax
mov r8d, dword [rbp - 0x48]
mov rcx, r15
mov dword [rsp + 0x20], eax
lea edx, [rax + 0x11]
call fcn.14002cef0
mov edx, dword [r15 + 0x3c]
cmp edx, ebx
jbe 0x14005f770
mov rax, qword [r15 + 8]
lea rcx, [rbx + rbx*2]
mov dword [rax + rcx*8 + 8], edx
mov ecx, dword [r15 + 0x3c]
lea rdx, [rbp + 0x10]
mov rax, qword [r15 + 0x30]
sub ecx, r12d
mov dword [rax + 0x64], ecx
mov rcx, rsi
call fcn.14005e598
mov r9d, dword [rbp - 0x60]
xor ebx, ebx
mov r8d, r12d
mov dword [rsp + 0x20], ebx
mov rcx, r15
lea edx, [rbx + 0x19]
call fcn.14002cef0
cmp dword [rsp + 0x60], ebx
je 0x14005f7c0
mov r8d, dword [rbp + 0x14]
lea edx, [rbx + 5]
mov r9d, edi
mov dword [rsp + 0x20], ebx
mov rcx, r15
call fcn.14002cef0
jmp 0x14005f7d4
mov rcx, qword [rbp - 0x50]
call fcn.14006be24
mov edx, dword [rbp - 0x70]
mov rcx, r15
call fcn.14002d430
mov r8d, dword [rsp + 0x50]
mov edx, 0x11
mov r9d, dword [rsp + 0x54]
inc r8d
mov rcx, r15
mov dword [rsp + 0x20], ebx
call fcn.14002cef0
xor eax, eax
mov r9d, r13d
xor r8d, r8d
mov dword [rsp + 0x20], eax
mov rcx, r15
lea edx, [rax + 0x10]
call fcn.14002cef0
mov r9d, dword [rsp + 0x50]
xor eax, eax
mov edi, dword [r15 + 0x3c]
mov r8d, r12d
mov rcx, r15
mov dword [rsp + 0x20], eax
lea edx, [rax + 0x19]
call fcn.14002cef0
mov r12d, dword [rsp + 0x50]
xor eax, eax
inc r12d
mov dword [rsp + 0x20], eax
xor r9d, r9d
mov r8d, r12d
mov rcx, r15
lea edx, [rax + 0x12]
call fcn.14002cef0
mov edx, dword [rsp + 0x54]
mov rcx, r15
call fcn.14002d08c
mov ebx, dword [r15 + 0x3c]
xor eax, eax
mov r8d, dword [rbp - 0x60]
mov edx, 0x89
mov dword [rsp + 0x20], eax
lea r9d, [rbx + 2]
call fcn.14002cef0
xor eax, eax
xor r9d, r9d
mov r8d, r12d
mov dword [rsp + 0x20], eax
mov rcx, r15
lea edx, [rax + 0x12]
call fcn.14002cef0
lea rdx, [rbp + 0x10]
mov rcx, rsi
call fcn.14005e504
mov rdx, qword [rbp - 0x18]
inc ebx
mov r8d, ebx
mov r9d, 0x10
mov rcx, rsi
call fcn.140040c90
mov r8, qword [r14]
lea rax, [rbp + 0x90]
mov dword [rsp + 0x40], edi
or r9d, 0xffffffff
mov rdi, qword [rsp + 0x70]
mov rdx, r14
mov dword [rsp + 0x38], ebx
mov rcx, rsi
mov qword [rsp + 0x30], rdi
mov qword [rsp + 0x28], rax
lea rax, [rbp - 0x10]
mov qword [rsp + 0x20], rax
call fcn.140059638
xor ebx, ebx
mov r8d, r12d
xor r9d, r9d
mov dword [rsp + 0x20], ebx
mov rcx, r15
lea r12d, [rbx + 0x12]
mov edx, r12d
call fcn.14002cef0
mov edx, dword [rbp - 0x5c]
mov rcx, r15
call fcn.14002d08c
lea rdx, [rbp + 0x10]
mov rcx, rsi
call fcn.14005e424
mov r8d, dword [rbp - 0x48]
xor r9d, r9d
mov edx, r12d
mov dword [rsp + 0x20], ebx
mov rcx, r15
call fcn.14002cef0
jmp 0x14005fdcb
mov rdi, r11
mov r8, qword [rbp + 0x40]
cmp qword [r14 + 0x30], r11
jne 0x14005fb0a
mov rax, qword [r14]
cmp dword [rax], r12d
jne 0x14005fb0a
mov r13, qword [r14 + 0x28]
cmp dword [r13], r12d
jne 0x14005fb0a
cmp qword [r13 + 0x30], r11
jne 0x14005fb0a
mov r13, qword [r13 + 0x28]
mov rax, qword [rax + 8]
test byte [r13 + 0x48], 0x10
mov rdx, qword [rax]
jne 0x14005fb0a
cmp byte [rdx], 0x9b
jne 0x14005fb0a
test ecx, ecx
je 0x14005fb0a
mov rax, qword [r8 + 8]
mov r9d, 0x100
test word [rax + 2], r9w
je 0x14005fb0a
test byte [rdx + 4], 0x10
jne 0x14005fb0a
test r13, r13
je 0x14005fb0a
mov rdx, qword [r13 + 0x70]
mov rcx, qword [rsi]
call fcn.140058020
mov edx, eax
mov dword [rsp + 0x54], eax
mov eax, dword [rsi + 0x50]
mov rbx, r11
mov dword [rbp - 0x70], eax
mov qword [rbp - 0x80], r11
lea ecx, [rax + 1]
mov dword [rsi + 0x50], ecx
mov rcx, rsi
mov eax, dword [r13 + 0x3c]
mov dword [rsp + 0x78], eax
call fcn.140049b88
mov rcx, qword [r13]
xor r9d, r9d
mov r8d, dword [r13 + 0x3c]
mov edx, dword [rsp + 0x54]
mov qword [rsp + 0x20], rcx
mov rcx, rsi
call fcn.140044904
xor r8d, r8d
mov rcx, r13
test byte [r13 + 0x48], 0x20
je 0x14005fa27
mov rbx, qword [r13 + 0x10]
jmp 0x14005fa22
mov eax, dword [rbx + 0x64]
and al, 3
cmp al, 2
je 0x14005fa27
mov rbx, qword [rbx + 0x28]
test rbx, rbx
jne 0x14005fa15
mov rax, qword [rcx + 0x10]
test rax, rax
je 0x14005fa63
mov r9d, 4
test byte [rax + 0x64], r9b
jne 0x14005fa5a
movzx edx, word [rax + 0x5c]
cmp dx, word [rcx + 0x46]
jge 0x14005fa5a
cmp qword [rax + 0x48], r8
jne 0x14005fa5a
test rbx, rbx
je 0x14005fa57
cmp dx, word [rbx + 0x5c]
jge 0x14005fa5a
mov rbx, rax
mov rax, qword [rax + 0x28]
test rax, rax
jne 0x14005fa36
test rbx, rbx
je 0x14005fa7e
mov eax, dword [rbx + 0x58]
mov rdx, rbx
mov rcx, rsi
mov dword [rsp + 0x78], eax
call fcn.14004a264
mov qword [rbp - 0x80], rax
mov eax, dword [rsp + 0x54]
mov edx, 0x36
mov r9d, dword [rsp + 0x78]
mov rcx, r15
mov dword [rsp + 0x28], r12d
mov r12d, dword [rbp - 0x70]
mov r8d, r12d
mov dword [rsp + 0x20], eax
call fcn.14002cfec
mov rax, qword [rbp - 0x80]
test rax, rax
je 0x14005fac1
mov r9d, 0xfffffffa
mov r8, rax
or edx, 0xffffffff
mov rcx, r15
call fcn.14002d4a4
mov r9, qword [rbp + 0x40]
xor eax, eax
mov r8d, r12d
mov dword [rsp + 0x20], eax
mov rcx, r15
mov r9d, dword [r9 + 0x10]
lea edx, [rax + 0x32]
call fcn.14002cef0
xor eax, eax
xor r9d, r9d
mov r8d, r12d
mov dword [rsp + 0x20], eax
mov rcx, r15
lea edx, [rax + 0x3d]
call fcn.14002cef0
mov r8, rbx
mov rdx, r13
mov rcx, rsi
call fcn.14005e828
xor r12d, r12d
jmp 0x14005fd6a
mov rbx, r11
mov byte [rsp + 0x50], r11b
cmp qword [r14 + 0x40], r11
jne 0x14005fb9f
mov edx, r11d
mov dword [rsp + 0x50], edx
cmp ecx, r12d
jne 0x14005fb90
mov r8, qword [r8]
mov r13, qword [r8 + 0x20]
test r13, r13
je 0x14005fb90
cmp dword [r13], r12d
jne 0x14005fb90
mov rax, qword [r13 + 8]
mov rcx, qword [rax]
cmp byte [rcx], 0x9c
jne 0x14005fb90
mov rax, qword [r8 + 8]
lea rdx, [0x1400bc1f4]
mov rcx, rax
mov qword [rbp - 0x80], rax
call fcn.140014b7c
xor r11d, r11d
test eax, eax
jne 0x14005fb70
mov edx, r12d
mov dword [rsp + 0x50], edx
mov rbx, r13
jmp 0x14005fb90
mov rcx, qword [rbp - 0x80]
lea rdx, [0x1400bc1f8]
call fcn.140014b7c
xor r11d, r11d
test eax, eax
jne 0x14005fb8c
lea edx, [rax + 2]
jmp 0x14005fb67
mov edx, dword [rsp + 0x50]
test dl, dl
je 0x14005fb9f
test rbx, rbx
jne 0x14005fbfa
mov rbx, r11
mov rdi, r11
mov r13d, dword [rsp + 0x50]
lea rdx, [rbp + 0x10]
mov rcx, rsi
call fcn.14005e424
mov r8, qword [rbp - 0x50]
xor ecx, ecx
mov dword [rsp + 0x30], ecx
mov r9, rbx
movzx eax, r13b
mov r13, qword [rbp - 0x58]
mov word [rsp + 0x28], ax
mov rdx, r13
mov qword [rsp + 0x20], rcx
mov rcx, rsi
call fcn.14006b4cc
mov rbx, rax
test rax, rax
jne 0x14005fd28
mov rbx, qword [rbp - 0x78]
mov rdx, rdi
mov rcx, rbx
call fcn.14003df3c
jmp 0x14005fe53
mov r13, qword [rbp - 0x78]
mov edx, 0x10
mov rcx, r13
call fcn.1400129d8
mov rdi, rax
mov qword [rbp - 0x20], rax
xor eax, eax
test rdi, rdi
jne 0x14005fc24
mov rbx, rax
mov rdi, rax
jmp 0x14005fb9f
mov eax, dword [rbx]
mov dword [rdi], eax
mov eax, r12d
cmp dword [rbx], r12d
jle 0x14005fc36
add eax, eax
cmp eax, dword [rbx]
jl 0x14005fc30
cdqe
mov rcx, r13
lea rdx, [rax + rax*4]
shl rdx, 3
call fcn.1400129d8
xor edx, edx
mov qword [rdi + 8], rax
mov rcx, rax
test rax, rax
jne 0x14005fc65
mov rdx, rdi
mov rcx, r13
call fcn.14001273c
xor eax, eax
jmp 0x14005fc19
mov rax, qword [rbx + 8]
cmp dword [rbx], edx
jle 0x14005fcfa
lea r14, [rcx + 0x1c]
mov r15, rax
sub rcx, rax
mov edi, edx
mov rsi, rcx
mov rdx, qword [r15]
xor r8d, r8d
mov rcx, r13
call fcn.14003d894
mov qword [r15 + rsi], rax
mov rcx, r13
mov rdx, qword [r15 + 8]
call fcn.140012b5c
mov qword [r14 - 0x14], rax
mov rcx, r13
mov rdx, qword [r15 + 0x10]
call fcn.140012b5c
mov ecx, dword [r14]
lea r15, [r15 + 0x28]
mov qword [r14 - 0xc], rax
and ecx, 0xfffffffe
mov al, byte [r15 - 0x10]
add edi, r12d
mov byte [r14 - 4], al
mov eax, ecx
mov dword [r14], ecx
xor eax, dword [r15 - 0xc]
and eax, 2
xor eax, ecx
mov dword [r14], eax
lea r14, [r14 + 0x28]
mov eax, dword [r15 - 8]
mov dword [r14 - 0x24], eax
cmp edi, dword [rbx]
jl 0x14005fc80
mov rsi, qword [rbp - 0x38]
xor edx, edx
mov r14, qword [rbp - 0x28]
mov r15, qword [rbp - 0x48]
mov rdi, qword [rbp - 0x20]
mov rbx, rdi
cmp byte [r13 + 0x50], dl
jne 0x14005fb9f
mov rax, qword [rdi + 8]
mov r13d, dword [rsp + 0x50]
cmp r13b, r12b
setne cl
mov byte [rax + 0x18], cl
mov rax, qword [rdi + 8]
mov rcx, qword [rax]
mov byte [rcx], 0x9a
jmp 0x14005fba4
lea rdx, [rbp + 0x10]
mov rcx, rsi
call fcn.14005e598
xor r12d, r12d
cmp byte [rbx + 0x34], r12b
jle 0x14005fd56
mov r9d, dword [rbx + 0x44]
lea edx, [r12 + 0x10]
xor r8d, r8d
mov dword [rsp + 0x20], r12d
mov rcx, r15
call fcn.14002cef0
mov rcx, rbx
call fcn.14006be24
lea rdx, [rbp + 0x10]
mov rcx, rsi
call fcn.14005e504
mov r13d, dword [rbp + 0x88]
mov r9d, 0x10
mov rdx, qword [rbp - 0x18]
mov r8d, r13d
mov rcx, rsi
mov qword [rbp - 0x10], r12
call fcn.140040c90
mov rax, qword [rsp + 0x70]
or r9d, 0xffffffff
mov r8, qword [r14]
mov rdx, r14
mov dword [rsp + 0x40], r13d
mov rcx, rsi
mov dword [rsp + 0x38], r13d
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x28], r12
mov qword [rsp + 0x20], r12
call fcn.140059638
mov rcx, qword [rbp - 0x78]
mov rdx, rdi
call fcn.14003df3c
mov rdi, qword [rsp + 0x70]
mov edx, r13d
mov rcx, r15
call fcn.14002d08c
mov r13, qword [rbp - 0x58]
mov r12, qword [rsp + 0x68]
cmp byte [rbp + 0x91], 3
jne 0x14005fdf7
lea rdx, str.DISTINCT
mov rcx, rsi
call fcn.14005a03c
xor r11d, r11d
cmp qword [rbp - 0x10], r11
je 0x14005fe39
cmp dword [rbp - 8], r11d
lea rax, str.RIGHT_PART_OF_ORDER_BY
lea rdx, str.ORDER_BY
mov rcx, rsi
cmovg rdx, rax
call fcn.14005a03c
mov r9d, dword [r12]
lea r8, [rbp - 0x10]
mov rdx, r14
mov qword [rsp + 0x20], rdi
mov rcx, rsi
call fcn.14005a148
xor r11d, r11d
mov edx, dword [rbp - 0x30]
mov rcx, r15
call fcn.14002d08c
mov r12d, r11d
mov rbx, qword [rbp - 0x78]
jmp 0x14005fe58
mov r13, rbx
mov rbx, rdi
mov rdi, qword [rsp + 0x70]
mov rax, qword [rsp + 0x68]
mov ecx, dword [rbp - 0x40]
mov dword [rsi + 0x200], ecx
test r12d, r12d
jne 0x14005fe7e
cmp byte [rdi], 9
jne 0x14005fe7e
mov r8, rax
mov rdx, r13
mov rcx, rsi
call fcn.14005a6fc
mov rdx, qword [rbp + 0x30]
mov rcx, rbx
call fcn.14001273c
mov rdx, qword [rbp + 0x40]
mov rcx, rbx
call fcn.14001273c
mov eax, r12d
mov rcx, qword [rbp + 0xb8]
xor rcx, rsp
call fcn.1400796f0
mov rbx, qword [rsp + 0x218]
add rsp, 0x1c0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret