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

Disassembly:
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x10], rdx
push rbp
push rbx
push rsi
push rdi
lea rbp, [rsp - 0xc8]
sub rsp, 0x1c8
mov rsi, rcx
mov ecx, 1
mov rdi, rdx
mov eax, dword [rsi + 0x200]
mov rbx, qword [rsi]
mov qword [rbp + 0x50], rcx
mov dword [rbp + 8], eax
mov eax, dword [rsi + 0x204]
mov qword [rbp - 0x80], rbx
mov dword [rsi + 0x200], eax
inc eax
mov dword [rsi + 0x204], eax
test rdx, rdx
je 0x14027c963
cmp byte [rbx + 0x50], 0
jne 0x14027c963
cmp dword [rsi + 0x50], 0
jne 0x14027c963
lea edx, [rcx + 0x14]
xor eax, eax
xor r9d, r9d
xor r8d, r8d
mov rcx, rsi
mov qword [rsp + 0x20], rax
call fcn.140257470
test eax, eax
je 0x14027ad4a
mov eax, 1
add rsp, 0x1c8
pop rdi
pop rsi
pop rbx
pop rbp
ret
xor eax, eax
mov qword [rbp - 0x40], rax
mov qword [rbp - 0x38], rax
mov qword [rbp - 0x30], rax
mov qword [rbp - 0x28], rax
mov qword [rbp - 0x20], rax
mov qword [rbp - 0x18], rax
mov qword [rbp - 0x10], rax
mov qword [rbp - 8], rax
mov rax, qword [rbp + 0x100]
cmp byte [rax], 4
ja 0x14027ad93
mov rdx, qword [rdi + 0x48]
mov rcx, rbx
call fcn.14024ef70
xor eax, eax
mov qword [rdi + 0x48], rax
mov eax, 0xfffe
and word [rdi + 0xa], ax
xor r8d, r8d
mov rdx, rdi
mov rcx, rsi
call fcn.14027a2e0
cmp dword [rsi + 0x50], 0
mov rax, qword [rdi + 0x48]
mov rdx, qword [rdi]
mov qword [rsp + 0x68], rax
mov rax, qword [rdi + 0x28]
mov qword [rsp + 0x78], rax
mov qword [rbp - 0x78], rdx
jne 0x14027ae1c
cmp byte [rbx + 0x50], 0
jne 0x14027ae1c
movzx eax, word [rdi + 0xa]
mov rcx, rsi
shr eax, 2
and eax, 1
mov dword [rsp + 0x70], eax
call fcn.140275bc0
mov rbx, rax
test rax, rax
je 0x14027ae0f
mov rcx, qword [rbp - 0x78]
mov r8, qword [rbp + 0x100]
cmp dword [rcx], 1
movzx eax, byte [r8]
jle 0x14027ae6d
add eax, 0xfffffffa
cmp eax, 1
ja 0x14027ae6d
lea rdx, str.only_a_single_result_allowed_for_a_SELECT_that_is_part_of_an_expression
mov rcx, rsi
call fcn.14021e490
mov rbx, qword [rbp - 0x80]
mov rdx, qword [rbp - 0x78]
mov rax, qword [rsp + 0x78]
mov rdi, qword [rbp + 0x50]
mov ecx, dword [rbp + 8]
mov dword [rsi + 0x200], ecx
test edi, edi
jne 0x14027ae47
mov rcx, qword [rbp + 0x100]
cmp byte [rcx], 5
jne 0x14027ae47
mov r8, rdx
mov rcx, rsi
mov rdx, rax
call fcn.140275160
mov rdx, qword [rbp - 0x20]
mov rcx, rbx
call fcn.14021b8a0
mov rdx, qword [rbp - 0x10]
mov rcx, rbx
call fcn.14021b8a0
mov eax, edi
add rsp, 0x1c8
pop rdi
pop rsi
pop rbx
pop rbp
ret
xor r10d, r10d
or rdx, 0xffffffffffffffff
mov eax, r10d
mov dword [rbp + 0xf0], eax
cmp qword [rdi + 0x50], rax
jne 0x14027af2a
mov rcx, qword [rsp + 0x78]
mov r11d, r10d
mov qword [rsp + 0x60], r10
cmp eax, dword [rcx]
jge 0x14027af26
imul rdi, r11, 0x78
add rdi, 8
add rdi, rcx
mov qword [rbp], rdi
mov rax, qword [rdi + 0x28]
mov qword [rsp + 0x58], rax
test rax, rax
je 0x14027b20e
mov r9d, dword [rdi + 0x30]
test r9d, r9d
je 0x14027af85
test byte [rdi + 0x40], 4
jne 0x14027b20e
mov r8d, dword [rdi + 0x34]
mov edx, 0x11
mov rcx, rbx
mov dword [rsp + 0x20], r10d
call fcn.14023b2f0
mov rdi, qword [rbp + 0xf8]
mov r11, qword [rsp + 0x60]
mov rcx, qword [rsp + 0x78]
mov r8, qword [rbp + 0x100]
xor r10d, r10d
mov eax, dword [rbp + 0xf0]
inc r11
inc eax
cmp qword [rdi + 0x50], 0
mov qword [rsp + 0x60], r11
mov dword [rbp + 0xf0], eax
je 0x14027ae94
or rdx, 0xffffffffffffffff
mov rax, qword [rdi]
mov rcx, qword [rdi + 0x40]
mov qword [rbp - 0x78], rax
mov rax, qword [rdi + 0x30]
mov qword [rbp + 0x48], rcx
movzx ecx, byte [rdi + 0xa]
mov qword [rbp - 0x68], rax
mov rax, qword [rdi + 0x38]
and cl, 1
cmp qword [rdi + 0x50], 0
mov qword [rsp + 0x58], rax
mov byte [rbp + 0xf0], cl
mov byte [rbp + 0x10], cl
je 0x14027b21a
mov rdx, rdi
mov rcx, rsi
call fcn.1402764d0
mov ecx, dword [rbp + 8]
mov dword [rsi + 0x200], ecx
add rsp, 0x1c8
pop rdi
pop rsi
pop rbx
pop rbp
ret
mov rcx, qword [rbp + 0xf8]
call fcn.14024db20
mov r9d, dword [rsp + 0x70]
mov r8d, dword [rbp + 0xf0]
add dword [rsi + 0x1fc], eax
mov rax, qword [rsp + 0x58]
mov rdx, qword [rbp + 0xf8]
movzx eax, word [rax + 0xa]
mov rcx, rsi
shr eax, 2
and eax, 1
mov dword [rbp + 0x108], eax
mov dword [rsp + 0x20], eax
call fcn.1402785c0
test eax, eax
je 0x14027affe
cmp dword [rbp + 0x108], 0
je 0x14027afec
mov rax, qword [rbp + 0xf8]
mov dword [rsp + 0x70], 1
or word [rax + 0xa], 4
or rax, 0xffffffffffffffff
mov dword [rbp + 0xf0], eax
mov r11, rax
jmp 0x14027b1c3
mov rax, qword [rsp + 0x78]
cmp dword [rax], 1
jne 0x14027b0d9
mov rax, qword [rbp - 0x80]
mov ecx, 0x100
test word [rax + 0x4c], cx
jne 0x14027b0d9
mov r8d, dword [rsi + 0x58]
mov edi, dword [rbx + 0x3c]
mov rax, qword [rbp]
inc r8d
xor r9d, r9d
inc edi
mov dword [rsi + 0x58], r8d
lea edx, [r9 + 0x14]
mov rcx, rbx
mov dword [rax + 0x34], r8d
mov dword [rsp + 0x20], edi
call fcn.14023b2f0
mov rcx, qword [rbp]
mov rdx, qword [rsp + 0x58]
lea r8, [rbp + 0x30]
mov eax, dword [rcx + 0x34]
mov dword [rcx + 0x30], edi
mov word [rbp + 0x30], 9
mov dword [rbp + 0x34], eax
xor eax, eax
mov qword [rbp + 0x38], rax
movzx eax, byte [rsi + 0x204]
mov byte [rcx + 0x44], al
mov rcx, rsi
call fcn.14027acb0
mov rdx, qword [rbp]
mov rax, qword [rsp + 0x58]
mov eax, dword [rax + 0x20]
mov rcx, qword [rdx + 0x20]
xor r9d, r9d
mov dword [rcx + 0x38], eax
or dword [rdx + 0x40], 4
mov eax, dword [rbp + 0x38]
mov r8d, dword [rdx + 0x34]
mov dword [rdx + 0x38], eax
xor eax, eax
lea edx, [rax + 0x15]
mov rcx, rbx
mov dword [rsp + 0x20], eax
call fcn.14023b2f0
mov edx, dword [rbx + 0x3c]
dec edi
cmp edx, edi
jbe 0x14027b0c8
mov rax, qword [rbx + 8]
lea rcx, [rdi + rdi*2]
mov dword [rax + rcx*8 + 8], edx
mov ecx, dword [rbx + 0x3c]
mov rax, qword [rbx + 0x30]
dec ecx
mov dword [rax + 0x68], ecx
jmp 0x14027b1b6
mov r9d, dword [rsi + 0x58]
xor ecx, ecx
xor r8d, r8d
inc r9d
lea edx, [rcx + 0x19]
mov dword [rbp + 0x108], ecx
mov dword [rsp + 0x20], ecx
mov dword [rsi + 0x58], r9d
mov rcx, rbx
mov dword [rdi + 0x34], r9d
call fcn.14023b2f0
test byte [rdi + 0x40], 2
lea ecx, [rax + 1]
mov dword [rsp + 0x54], eax
mov dword [rdi + 0x30], ecx
jne 0x14027b120
mov rcx, rsi
call fcn.14024f380
mov dword [rbp + 0x108], eax
mov ecx, dword [rdi + 0x48]
mov rdx, qword [rsp + 0x58]
xor eax, eax
mov dword [rbp + 0x34], ecx
movzx ecx, byte [rsi + 0x204]
mov word [rbp + 0x30], 8
mov qword [rbp + 0x38], rax
mov byte [rdi + 0x44], cl
lea r8, [rbp + 0x30]
mov rcx, rsi
call fcn.14027acb0
mov rax, qword [rsp + 0x58]
mov rcx, qword [rdi + 0x20]
mov eax, dword [rax + 0x20]
mov dword [rcx + 0x38], eax
mov eax, dword [rbp + 0x108]
test eax, eax
je 0x14027b185
mov edx, dword [rbx + 0x3c]
cmp edx, eax
jbe 0x14027b179
lea rcx, [rax + rax*2]
mov rax, qword [rbx + 8]
mov dword [rax + rcx*8 + 8], edx
mov ecx, dword [rbx + 0x3c]
mov rax, qword [rbx + 0x30]
dec ecx
mov dword [rax + 0x68], ecx
mov r8d, dword [rdi + 0x34]
xor eax, eax
xor r9d, r9d
lea edx, [rax + 0x12]
mov rcx, rbx
mov dword [rsp + 0x20], eax
call fcn.14023b2f0
mov r8d, eax
mov eax, dword [rsp + 0x54]
cmp dword [rbx + 0x3c], eax
jbe 0x14027b1b6
mov rcx, qword [rbx + 8]
lea rdx, [rax + rax*2]
mov dword [rcx + rdx*8 + 4], r8d
mov r11, qword [rsp + 0x60]
xor eax, eax
mov dword [rsi + 0x48], eax
mov byte [rsi + 0x1f], al
mov rax, qword [rbp - 0x80]
cmp byte [rax + 0x50], 0
jne 0x14027c95b
mov rdi, qword [rbp + 0xf8]
mov rcx, rdi
call fcn.14024db20
mov r8, qword [rbp + 0x100]
sub dword [rsi + 0x1fc], eax
cmp byte [r8], 4
mov rcx, qword [rdi + 0x28]
mov qword [rsp + 0x78], rcx
jbe 0x14027af02
mov rax, qword [rdi + 0x48]
mov qword [rsp + 0x68], rax
jmp 0x14027af02
mov rdi, qword [rbp + 0xf8]
jmp 0x14027af05
mov r8d, edx
mov rdx, qword [rsp + 0x68]
mov rcx, rax
call fcn.140252ef0
mov rcx, qword [rsp + 0x68]
test eax, eax
jne 0x14027b249
mov rax, qword [rbp - 0x80]
test byte [rax + 0x4c], 4
mov eax, 0
cmove rcx, rax
mov qword [rsp + 0x68], rcx
movzx eax, byte [rdi + 0xa]
and al, 5
cmp al, 1
jne 0x14027b320
mov rdx, qword [rdi]
or r8d, 0xffffffff
call fcn.140252ef0
test eax, eax
jne 0x14027b320
mov rdx, qword [rdi]
mov rcx, qword [rbp - 0x80]
mov eax, 0xfffe
and word [rdi + 0xa], ax
xor r8d, r8d
call fcn.14024e880
mov qword [rsp + 0x58], rax
mov qword [rdi + 0x38], rax
xor eax, eax
mov qword [rsp + 0x68], rax
mov dword [rbp + 0x108], 0xffffffff
mov rax, qword [rbp + 0x100]
cmp byte [rax], 8
jne 0x14027b2c7
mov r8d, dword [rax + 4]
xor ecx, ecx
mov edx, 0x37
mov dword [rsp + 0x20], ecx
mov rcx, qword [rbp - 0x78]
mov r9d, dword [rcx]
mov rcx, rbx
call fcn.14023b2f0
mov rcx, rbx
call fcn.14023b570
movabs rcx, 0x7fffffffffffffff
mov rdx, rdi
mov qword [rdi + 0x20], rcx
mov r8d, eax
mov rcx, rsi
mov dword [rbp], eax
call fcn.140275c40
cmp dword [rdi + 0xc], 0
jne 0x14027b421
movsxd rax, dword [rbp + 0x108]
test eax, eax
js 0x14027b421
mov rcx, qword [rbx]
cmp byte [rcx + 0x50], 0
je 0x14027b40d
lea rax, [0x1404315c8]
jmp 0x14027b419
mov rcx, qword [rsp + 0x68]
test rcx, rcx
je 0x14027b293
mov rdx, rcx
mov rcx, rsi
call fcn.140274540
mov ecx, dword [rsi + 0x54]
xor edx, edx
mov qword [rsp + 0x60], rax
mov rax, qword [rsp + 0x68]
mov dword [rsp + 0x20], edx
mov dword [rax + 4], ecx
inc dword [rsi + 0x54]
mov r9d, dword [rax]
mov r8d, dword [rax + 4]
add r9d, 2
mov edx, 0x37
mov rcx, rbx
call fcn.14023b2f0
mov r8, qword [rbx + 8]
mov rcx, qword [rbx]
mov dword [rbp + 0x108], eax
mov edx, eax
test r8, r8
je 0x14027b3f0
cmp byte [rcx + 0x50], 0
jne 0x14027b3f0
test eax, eax
jns 0x14027b38d
mov edx, dword [rbx + 0x3c]
dec edx
movsxd rax, edx
lea rdx, [rax + rax*2]
lea r8, [r8 + rdx*8]
mov qword [rbp + 0x20], r8
movsx edx, byte [r8 + 1]
mov r8, qword [r8 + 0x10]
call fcn.14023b8c0
mov rax, qword [rbp + 0x20]
mov r8, qword [rsp + 0x60]
xor ecx, ecx
mov qword [rax + 0x10], rcx
test r8, r8
jne 0x14027b3d3
mov qword [rax + 0x10], rcx
mov byte [rax + 1], cl
mov eax, dword [rbp + 0x108]
mov dword [rdi + 0x1c], eax
jmp 0x14027b29d
mov qword [rax + 0x10], r8
mov byte [rax + 1], 0xfa
mov eax, dword [rbp + 0x108]
mov dword [rdi + 0x1c], eax
jmp 0x14027b29d
mov r8, qword [rsp + 0x60]
mov edx, 0xfffffffa
call fcn.14023b8c0
mov eax, dword [rbp + 0x108]
mov dword [rdi + 0x1c], eax
jmp 0x14027b29d
lea rcx, [rax + rax*2]
mov rax, qword [rbx + 8]
lea rax, [rax + rcx*8]
mov byte [rax], 0x38
or word [rdi + 0xa], 0x40
test byte [rdi + 0xa], 1
je 0x14027b507
mov edi, dword [rsi + 0x54]
mov r11, qword [rbp + 0xf8]
mov rcx, rsi
lea eax, [rdi + 1]
mov dword [rbp + 0x14], edi
mov dword [rsi + 0x54], eax
mov rdx, qword [r11]
call fcn.140274540
xor r9d, r9d
mov r8d, edi
mov qword [rsp + 0x60], rax
xor eax, eax
mov rcx, rbx
lea edx, [rax + 0x37]
mov dword [rsp + 0x20], eax
call fcn.14023b2f0
mov r8, qword [rbx + 8]
mov rcx, qword [rbx]
mov dword [rsp + 0x54], eax
mov edx, eax
test r8, r8
je 0x14027b4d0
cmp byte [rcx + 0x50], 0
jne 0x14027b4d0
test eax, eax
jns 0x14027b486
mov edx, dword [rbx + 0x3c]
dec edx
movsxd rax, edx
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 rax, qword [rsp + 0x60]
xor ecx, ecx
mov qword [rdi + 0x10], rcx
test rax, rax
jne 0x14027b4b9
mov qword [rdi + 0x10], rcx
mov byte [rdi + 1], cl
jmp 0x14027b4df
mov qword [rdi + 0x10], rax
mov byte [rdi + 1], 0xfa
jmp 0x14027b4df
mov r8, qword [rsp + 0x60]
mov edx, 0xfffffffa
call fcn.14023b8c0
mov rdx, qword [rbx + 8]
mov eax, dword [rsp + 0x54]
mov dword [rbp + 0x18], eax
test rdx, rdx
je 0x14027b4fc
movsxd rax, dword [rbx + 0x3c]
lea rcx, [rax + rax*2]
mov byte [rdx + rcx*8 - 0x15], 8
mov rdi, qword [rbp + 0xf8]
mov al, 3
jmp 0x14027b509
xor al, al
cmp dword [rsp + 0x70], 0
mov r8, qword [rsp + 0x58]
mov byte [rbp + 0x11], al
mov dword [rbp - 0x60], eax
jne 0x14027b63e
test r8, r8
jne 0x14027b63e
movzx eax, byte [rbp + 0xf0]
mov r9, qword [rsp + 0x68]
mov r8, qword [rbp - 0x68]
mov rdx, qword [rsp + 0x78]
neg al
sbb cx, cx
xor eax, eax
mov dword [rsp + 0x30], eax
mov rax, qword [rdi]
and cx, 0x400
mov word [rsp + 0x28], cx
mov rcx, rsi
mov qword [rsp + 0x20], rax
call fcn.14028b600
mov r9, rax
mov qword [rbp + 0xf8], rax
test rax, rax
je 0x14027ae0f
movzx ecx, word [rax + 0x30]
call fcn.14021f480
cmp rax, qword [rdi + 0x20]
jae 0x14027b588
mov qword [rdi + 0x20], rax
cmp byte [rbp + 0xf0], 0
je 0x14027b5a7
movzx eax, byte [r9 + 0x37]
mov ecx, dword [rbp - 0x60]
movzx ecx, cl
test al, al
cmovne ecx, eax
mov dword [rbp - 0x60], ecx
mov byte [rbp + 0x11], cl
mov rcx, qword [rsp + 0x68]
test rcx, rcx
je 0x14027b5c4
cmp byte [r9 + 0x34], 0
mov eax, 0
cmovne rcx, rax
mov qword [rsp + 0x68], rcx
mov eax, dword [rbp + 0x108]
test eax, eax
js 0x14027b5f0
test rcx, rcx
jne 0x14027b5f0
mov edx, eax
mov rcx, rbx
call fcn.14023baa0
mov r9, qword [rbp + 0xf8]
mov rcx, qword [rsp + 0x68]
mov dword [rdi + 0x1c], 0xffffffff
mov eax, dword [r9 + 0x44]
mov r8, qword [rbp - 0x78]
mov rdx, rdi
mov dword [rsp + 0x40], eax
mov eax, dword [r9 + 0x40]
or r9d, 0xffffffff
mov dword [rsp + 0x38], eax
mov rax, qword [rbp + 0x100]
mov qword [rsp + 0x30], rax
lea rax, [rbp + 0x10]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rcx
mov rcx, rsi
call fcn.140273960
mov rcx, qword [rbp + 0xf8]
call fcn.14028bf90
jmp 0x14027c8d9
xor r9d, r9d
mov dword [rbp - 0x58], r9d
mov dword [rsp + 0x50], r9d
test r8, r8
je 0x14027b69f
mov rax, qword [rdi]
mov ecx, dword [rax]
mov rdx, qword [rax + 8]
test ecx, ecx
jle 0x14027b66e
lea rax, [rdx + 0x22]
dec ecx
mov word [rax], r9w
lea rax, [rax + 0x28]
test ecx, ecx
jg 0x14027b660
mov eax, dword [r8]
mov rcx, qword [r8 + 8]
test eax, eax
jle 0x14027b68e
add rcx, 0x22
nop dword [rax]
dec eax
mov word [rcx], r9w
lea rcx, [rcx + 0x28]
test eax, eax
jg 0x14027b680
cmp qword [rdi + 0x20], 0x64
jbe 0x14027b6a7
mov qword [rdi + 0x20], 0x64
jmp 0x14027b6a7
mov qword [rdi + 0x20], 1
mov rcx, rbx
call fcn.14023b570
mov ecx, dword [rsi + 0x58]
mov dword [rbp - 0x70], eax
xor eax, eax
inc ecx
mov qword [rbp + 0x58], rax
mov qword [rbp + 0x60], rax
mov qword [rbp + 0x70], rax
mov qword [rbp + 0x68], rax
mov qword [rbp + 0x78], rax
mov qword [rbp + 0x80], rax
mov qword [rbp + 0x88], rax
mov rax, qword [rsp + 0x78]
mov dword [rbp - 0x30], ecx
mov rcx, qword [rsp + 0x58]
mov qword [rbp + 0x60], rax
lea rax, [rbp - 0x40]
mov qword [rbp + 0x70], rax
mov qword [rbp + 0x58], rsi
test rcx, rcx
je 0x14027b703
mov eax, dword [rcx]
inc eax
jmp 0x14027b705
xor eax, eax
mov dword [rbp - 0x34], eax
mov rax, qword [rbp - 0x78]
mov qword [rbp - 0x28], rcx
test rax, rax
je 0x14027b721
lea rcx, [rbp + 0x58]
mov rdx, rax
call fcn.140253440
mov rax, qword [rsp + 0x68]
test rax, rax
je 0x14027b737
lea rcx, [rbp + 0x58]
mov rdx, rax
call fcn.140253440
mov rax, qword [rbp + 0x48]
test rax, rax
je 0x14027b7a2
xor ecx, ecx
mov rdx, rax
mov qword [rbp + 0x90], rcx
mov qword [rbp + 0x98], rcx
mov qword [rbp + 0xb8], rcx
mov qword [rbp + 0xa0], rcx
mov qword [rbp + 0xa8], rcx
mov qword [rbp + 0xb0], rcx
lea rcx, [0x1402531b0]
mov qword [rbp + 0x90], rcx
lea rcx, [fcn.14000f1d0]
mov qword [rbp + 0x98], rcx
lea rcx, [rbp + 0x58]
mov qword [rbp + 0xb8], rcx
lea rcx, [rbp + 0x90]
call fcn.14024a760
mov r8d, dword [rbp - 8]
mov eax, dword [rbp - 0x18]
xor r11d, r11d
mov edx, r11d
mov dword [rbp - 0x14], eax
mov dword [rbp + 0x108], edx
test r8d, r8d
jle 0x14027b834
movzx r8d, byte [rbp + 0x88]
mov r9d, dword [rbp - 8]
mov edi, r11d
nop dword [rax]
mov rax, qword [rbp - 0x10]
or r8b, 8
mov byte [rbp + 0x88], r8b
mov rcx, qword [rdi + rax]
mov rax, qword [rcx + 0x20]
test rax, rax
je 0x14027b80a
lea rcx, [rbp + 0x58]
mov rdx, rax
call fcn.140253440
movzx r8d, byte [rbp + 0x88]
mov r9d, dword [rbp - 8]
mov edx, dword [rbp + 0x108]
inc edx
and r8b, 0xf7
add rdi, 0x18
mov byte [rbp + 0x88], r8b
mov dword [rbp + 0x108], edx
cmp edx, r9d
jl 0x14027b7d0
mov rdi, qword [rbp + 0xf8]
mov r8d, dword [rbp - 8]
xor r11d, r11d
mov eax, dword [rsi + 0x58]
mov dword [rbp - 0x2c], eax
mov rax, qword [rbp - 0x80]
cmp byte [rax + 0x50], 0
jne 0x14027c95b
mov rcx, qword [rsp + 0x58]
test rcx, rcx
je 0x14027c4a1
mov eax, dword [rsi + 0x54]
mov rdx, rcx
mov rcx, rsi
mov dword [rbp - 0x3c], eax
inc eax
mov dword [rsi + 0x54], eax
call fcn.140274540
mov r9d, dword [rbp - 0x34]
mov r8d, dword [rbp - 0x3c]
mov qword [rsp + 0x60], rax
xor eax, eax
lea edx, [rax + 0x38]
mov rcx, rbx
mov dword [rsp + 0x20], eax
call fcn.14023b2f0
mov r8, qword [rbx + 8]
mov rcx, qword [rbx]
mov dword [rsp + 0x54], eax
mov edx, eax
test r8, r8
je 0x14027b900
cmp byte [rcx + 0x50], 0
jne 0x14027b900
test eax, eax
jns 0x14027b8ab
mov edx, dword [rbx + 0x3c]
dec edx
movsxd rax, edx
lea rdx, [rax + rax*2]
lea r8, [r8 + rdx*8]
mov qword [rbp + 0x108], r8
movsx edx, byte [r8 + 1]
mov r8, qword [r8 + 0x10]
call fcn.14023b8c0
mov rax, qword [rbp + 0x108]
mov r8, qword [rsp + 0x60]
xor ecx, ecx
mov qword [rax + 0x10], rcx
test r8, r8
jne 0x14027b8eb
mov qword [rax + 0x10], rcx
mov byte [rax + 1], cl
jmp 0x14027b90f
mov qword [rax + 0x10], r8
mov byte [rax + 1], 0xfa
jmp 0x14027b90f
mov r8, qword [rsp + 0x60]
mov edx, 0xfffffffa
call fcn.14023b8c0
mov eax, dword [rsi + 0x58]
mov rcx, rbx
inc eax
mov dword [rbp + 0x108], eax
add eax, 2
mov dword [rsi + 0x58], eax
call fcn.14023b570
inc dword [rsi + 0x58]
mov dword [rbp - 0x50], eax
mov eax, dword [rsi + 0x58]
mov rcx, rbx
mov dword [rbp - 0x44], eax
call fcn.14023b570
mov edx, dword [rsi + 0x58]
mov r9d, dword [rbp + 0x108]
mov dword [rbp - 0x48], eax
lea eax, [rdx + 1]
mov dword [rbp - 0x4c], eax
mov rax, qword [rsp + 0x58]
inc r9d
mov r8d, dword [rax]
add r8d, edx
mov dword [rsi + 0x58], r8d
lea ecx, [r8 + 1]
add r8d, dword [rax]
xor eax, eax
mov dword [rsi + 0x58], r8d
mov dword [rbp - 0x5c], ecx
lea edx, [rax + 0x19]
xor r8d, r8d
mov rcx, rbx
mov dword [rsp + 0x20], eax
call fcn.14023b2f0
mov r9d, dword [rbp + 0x108]
xor eax, eax
lea edx, [rax + 0x19]
xor r8d, r8d
mov rcx, rbx
mov dword [rsp + 0x20], eax
call fcn.14023b2f0
mov rcx, qword [rsp + 0x58]
mov ecx, dword [rcx]
mov r9d, dword [rbp - 0x4c]
xor r8d, r8d
dec ecx
lea edx, [r8 + 0x1c]
add ecx, dword [rbp - 0x4c]
mov dword [rsp + 0x20], ecx
mov rcx, rbx
call fcn.14023b2f0
mov r9d, dword [rbp - 0x48]
mov r8d, dword [rbp - 0x44]
xor eax, eax
mov rcx, rbx
lea edx, [rax + 0x11]
mov dword [rsp + 0x20], eax
call fcn.14023b2f0
mov r9, qword [rsp + 0x58]
mov r8, qword [rbp - 0x68]
mov rdx, qword [rsp + 0x78]
xor eax, eax
mov ecx, 0x100
mov dword [rsp + 0x30], eax
mov word [rsp + 0x28], cx
mov rcx, rsi
mov qword [rsp + 0x20], rax
call fcn.14028b600
mov qword [rbp + 0x20], rax
test rax, rax
je 0x14027ae0f
cmp byte [rax + 0x34], 0
mov r8d, 0xa
je 0x14027ba2c
xor edi, edi
mov r9d, edi
mov dword [rsp + 0x70], edi
jmp 0x14027bcf8
cmp byte [rbp + 0xf0], 0
je 0x14027ba42
test byte [rdi + 0xa], 1
lea rdx, str.DISTINCT
je 0x14027ba49
lea rdx, str.GROUP_BY
mov rcx, rsi
call fcn.140274620
mov rax, qword [rsp + 0x58]
mov edx, dword [rbp - 0x18]
mov eax, dword [rax]
mov dword [rsp + 0x70], 1
lea ecx, [rax + 1]
mov dword [rbp - 0x68], eax
mov dword [rsp + 0x50], ecx
mov edi, ecx
mov dword [rbp - 0x58], ecx
test edx, edx
jle 0x14027ba94
mov rax, qword [rbp - 0x20]
add rax, 0x10
nop
cmp dword [rax], ecx
jl 0x14027ba88
inc edi
inc ecx
add rax, 0x20
dec rdx
jne 0x14027ba80
mov dword [rbp - 0x58], edi
mov ecx, dword [rsi + 0x48]
mov r11d, dword [rsi + 0x4c]
mov dword [rbp + 0xf0], r11d
cmp edi, ecx
jg 0x14027bab4
lea eax, [rdi + r11]
sub ecx, edi
mov dword [rsi + 0x4c], eax
mov dword [rsi + 0x48], ecx
jmp 0x14027bac7
mov eax, dword [rsi + 0x58]
lea r11d, [rax + 1]
add eax, edi
mov dword [rbp + 0xf0], r11d
mov dword [rsi + 0x58], eax
mov rcx, rsi
call fcn.140250990
mov rdx, qword [rsp + 0x58]
xor r9d, r9d
mov r8d, r11d
mov rcx, rsi
call fcn.140252170
mov r9d, dword [rbp + 0xf0]
mov r8d, dword [rbp - 0x3c]
add r9d, dword [rbp - 0x68]
xor eax, eax
mov rcx, rbx
lea edx, [rax + 0x44]
mov dword [rsp + 0x20], eax
call fcn.14023b2f0
mov r9d, dword [rbp - 0x18]
xor edx, edx
mov r8d, edx
mov dword [rbp - 0x68], edx
test r9d, r9d
jle 0x14027bba3
mov ecx, dword [rsp + 0x50]
mov edi, dword [rbp + 0xf0]
mov qword [rbp + 0x28], rdx
add edi, ecx
nop word [rax + rax]
mov rax, qword [rbp - 0x20]
cmp dword [rdx + rax + 0x10], ecx
jl 0x14027bb8c
mov r9d, dword [rdx + rax + 8]
mov r8d, dword [rdx + rax + 0xc]
mov rdx, qword [rdx + rax]
mov rcx, rsi
mov byte [rsp + 0x28], 0
mov dword [rsp + 0x20], edi
call fcn.1402508b0
cmp edi, eax
je 0x14027bb74
xor ecx, ecx
mov r9d, edi
mov r8d, eax
lea edx, [rcx + 0x22]
mov dword [rsp + 0x20], ecx
mov rcx, rbx
call fcn.14023b2f0
mov ecx, dword [rsp + 0x50]
mov r9d, dword [rbp - 0x18]
mov rdx, qword [rbp + 0x28]
mov r8d, dword [rbp - 0x68]
inc ecx
inc edi
mov dword [rsp + 0x50], ecx
inc r8d
add rdx, 0x20
mov dword [rbp - 0x68], r8d
mov qword [rbp + 0x28], rdx
cmp r8d, r9d
jl 0x14027bb30
mov edi, dword [rbp - 0x58]
movzx eax, byte [rsi + 0x1f]
test al, al
jne 0x14027bbb3
inc dword [rsi + 0x58]
mov eax, dword [rsi + 0x58]
jmp 0x14027bbbf
dec al
movzx eax, al
mov byte [rsi + 0x1f], al
mov eax, dword [rsi + rax*4 + 0x28]
mov r8d, dword [rbp + 0xf0]
mov r9d, edi
mov edx, 0x30
mov rcx, rbx
mov dword [rsp + 0x50], eax
mov dword [rsp + 0x20], eax
call fcn.14023b2f0
mov r9d, dword [rsp + 0x50]
mov r8d, dword [rbp - 0x3c]
xor eax, eax
mov rcx, rbx
lea edx, [rax + 0x6a]
mov dword [rsp + 0x20], eax
call fcn.14023b2f0
mov edx, dword [rsp + 0x50]
test edx, edx
je 0x14027bc37
movzx r8d, byte [rsi + 0x1f]
cmp r8b, 8
jae 0x14027bc37
xor eax, eax
mov ecx, eax
lea rax, [rsi + 0x88]
cmp dword [rax + 0xc], edx
je 0x14027bc33
inc ecx
add rax, 0x14
cmp ecx, 0xa
jl 0x14027bc16
movzx eax, r8b
mov dword [rsi + rax*4 + 0x28], edx
inc byte [rsi + 0x1f]
jmp 0x14027bc37
mov byte [rax + 6], 1
mov edx, dword [rbp + 0xf0]
mov r8d, edi
mov rcx, rsi
call fcn.140253540
mov rcx, qword [rbp + 0x20]
call fcn.14028bf90
mov ecx, dword [rsi + 0x54]
lea eax, [rcx + 1]
mov dword [rbp - 0x58], ecx
mov dword [rbp - 0x38], ecx
mov dword [rsi + 0x54], eax
movzx eax, byte [rsi + 0x1f]
test al, al
jne 0x14027bc70
inc dword [rsi + 0x58]
mov eax, dword [rsi + 0x58]
jmp 0x14027bc7c
dec al
movzx eax, al
mov byte [rsi + 0x1f], al
mov eax, dword [rsi + rax*4 + 0x28]
mov r8d, ecx
mov r9d, eax
mov edx, 0x39
mov rcx, rbx
mov dword [rsp + 0x50], eax
mov dword [rsp + 0x20], edi
call fcn.14023b2f0
mov r9d, dword [rbp - 0x70]
mov r8d, dword [rbp - 0x3c]
xor edi, edi
mov rcx, rbx
lea edx, [rdi + 0x67]
mov dword [rsp + 0x20], edi
call fcn.14023b2f0
mov byte [rbp - 0x3f], 1
lea rcx, [rsi + 0x94]
lea r8d, [rdi + 0xa]
nop
mov edx, dword [rcx]
test edx, edx
je 0x14027bce4
cmp byte [rcx - 6], dil
je 0x14027bce2
movzx eax, byte [rsi + 0x1f]
cmp al, 8
jae 0x14027bcde
movzx eax, al
mov dword [rsi + rax*4 + 0x28], edx
inc byte [rsi + 0x1f]
mov byte [rcx - 6], dil
mov dword [rcx], edi
add rcx, 0x14
dec r8
jne 0x14027bcc0
mov r9d, dword [rsp + 0x70]
mov r8d, 0xa
mov eax, dword [rbx + 0x3c]
lea rcx, [rsi + 0x94]
mov dword [rbp - 0x68], eax
mov edx, dword [rcx]
test edx, edx
je 0x14027bd29
cmp byte [rcx - 6], 0
je 0x14027bd27
movzx eax, byte [rsi + 0x1f]
cmp al, 8
jae 0x14027bd23
movzx eax, al
mov dword [rsi + rax*4 + 0x28], edx
inc byte [rsi + 0x1f]
mov byte [rcx - 6], 0
mov dword [rcx], edi
add rcx, 0x14
dec r8
jne 0x14027bd05
test r9d, r9d
je 0x14027bd56
mov r9d, dword [rsp + 0x50]
mov r8d, dword [rbp - 0x3c]
mov edx, 0x5f
mov rcx, rbx
mov dword [rsp + 0x20], edi
call fcn.14023b2f0
mov r9d, dword [rsp + 0x70]
mov rdx, qword [rsp + 0x58]
cmp dword [rdx], 0
jle 0x14027bdee
movsxd rcx, r9d
xor eax, eax
mov qword [rbp + 0x28], rcx
mov qword [rbp + 0xf0], rax
test rcx, rcx
je 0x14027bdb2
mov eax, dword [rbp - 0x5c]
mov r8d, dword [rbp - 0x58]
mov r9d, edi
add eax, edi
mov edx, 0x2e
mov rcx, rbx
mov dword [rsp + 0x20], eax
call fcn.14023b2f0
test edi, edi
jne 0x14027bdcd
mov rdx, qword [rbx + 8]
test rdx, rdx
je 0x14027bdcd
movsxd rax, dword [rbx + 0x3c]
lea rcx, [rax + rax*2]
mov byte [rdx + rcx*8 - 0x15], 0x20
jmp 0x14027bdcd
mov r8d, dword [rbp - 0x5c]
mov byte [rbp - 0x40], 1
mov rdx, qword [rdx + 8]
mov rdx, qword [rdx + rax]
add r8d, edi
mov rcx, rsi
call fcn.140252050
mov rax, qword [rbp + 0xf0]
mov rdx, qword [rsp + 0x58]
mov rcx, qword [rbp + 0x28]
add rax, 0x28
inc edi
mov qword [rbp + 0xf0], rax
cmp edi, dword [rdx]
jl 0x14027bd74
mov rax, qword [rsp + 0x60]
test rax, rax
je 0x14027bdfa
inc dword [rax]
mov eax, dword [rdx]
movsxd rdi, dword [rbx + 0x3c]
mov dword [rbp + 0xf0], eax
mov rax, qword [rbx + 0x30]
cmp dword [rax + 0x64], edi
jg 0x14027be22
mov rcx, rbx
call fcn.14023b240
test eax, eax
je 0x14027be22
mov edi, 1
jmp 0x14027be57
inc dword [rbx + 0x3c]
mov rax, qword [rbx + 8]
mov edx, dword [rbp - 0x4c]
lea rcx, [rdi + rdi*2]
mov dword [rax + rcx*8 + 4], edx
mov edx, dword [rbp - 0x5c]
mov word [rax + rcx*8], 0x29
mov dword [rax + rcx*8 + 8], edx
mov edx, dword [rbp + 0xf0]
mov byte [rax + rcx*8 + 3], 0
mov dword [rax + rcx*8 + 0xc], edx
xor edx, edx
mov qword [rax + rcx*8 + 0x10], rdx
mov r8, qword [rbx + 8]
mov rcx, qword [rbx]
test r8, r8
je 0x14027beb0
cmp byte [rcx + 0x50], 0
jne 0x14027beb0
test edi, edi
jns 0x14027be72
mov edi, dword [rbx + 0x3c]
dec edi
movsxd rax, edi
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 rax, qword [rsp + 0x60]
xor ecx, ecx
mov qword [rdi + 0x10], rcx
test rax, rax
jne 0x14027bea5
mov qword [rdi + 0x10], rcx
mov byte [rdi + 1], cl
jmp 0x14027bebf
mov qword [rdi + 0x10], rax
mov byte [rdi + 1], 0xfa
jmp 0x14027bebf
mov r8, qword [rsp + 0x60]
mov edx, 0xfffffffa
call fcn.14023b8c0
mov rax, qword [rbx + 0x30]
mov edi, dword [rbx + 0x3c]
cmp dword [rax + 0x64], edi
jg 0x14027bed7
mov rcx, rbx
call fcn.14023b240
test eax, eax
jne 0x14027bf09
inc dword [rbx + 0x3c]
movsxd rax, edi
lea rcx, [rax + rax*2]
mov rax, qword [rbx + 8]
lea r10, [rax + rcx*8]
lea eax, [rdi + 1]
xor ecx, ecx
mov word [r10], 0x2a
mov byte [r10 + 3], 0
mov dword [r10 + 4], eax
mov dword [r10 + 8], ecx
mov dword [r10 + 0xc], eax
mov qword [r10 + 0x10], rcx
mov rax, qword [rsp + 0x58]
mov r8d, dword [rbp - 0x4c]
mov edx, dword [rbp - 0x5c]
mov r9d, dword [rax]
mov rcx, rsi
call fcn.1402509e0
mov ecx, dword [rbx + 0x3c]
mov rax, qword [rbx + 0x30]
mov dword [rbp + 0xf0], ecx
cmp dword [rax + 0x64], ecx
jg 0x14027bf44
mov rcx, rbx
call fcn.14023b240
test eax, eax
jne 0x14027bf7c
mov ecx, dword [rbp + 0xf0]
inc dword [rbx + 0x3c]
mov edx, dword [rbp + 0x108]
movsxd rax, ecx
lea rcx, [rax + rax*2]
mov rax, qword [rbx + 8]
add edx, 2
mov dword [rax + rcx*8 + 4], edx
mov edx, dword [rbp - 0x50]
mov word [rax + rcx*8], 0x11
mov dword [rax + rcx*8 + 8], edx
xor edx, edx
mov byte [rax + rcx*8 + 3], 0
mov dword [rax + rcx*8 + 0xc], edx
mov qword [rax + rcx*8 + 0x10], rdx
mov ecx, dword [rbx + 0x3c]
mov rax, qword [rbx + 0x30]
mov dword [rbp + 0xf0], ecx
cmp dword [rax + 0x64], ecx
jg 0x14027bfa0
mov rcx, rbx
call fcn.14023b240
test eax, eax
jne 0x14027bfd7
mov ecx, dword [rbp + 0xf0]
inc dword [rbx + 0x3c]
mov edx, dword [rbp + 0x108]
movsxd rax, ecx
lea rcx, [rax + rax*2]
mov rax, qword [rbx + 8]
inc edx
mov dword [rax + rcx*8 + 4], edx
mov edx, dword [rbp - 0x70]
mov word [rax + rcx*8], 0x84
mov dword [rax + rcx*8 + 8], edx
xor edx, edx
mov byte [rax + rcx*8 + 3], 0
mov dword [rax + rcx*8 + 0xc], edx
mov qword [rax + rcx*8 + 0x10], rdx
mov ecx, dword [rbx + 0x3c]
mov rax, qword [rbx + 0x30]
mov dword [rbp + 0xf0], ecx
cmp dword [rax + 0x64], ecx
jg 0x14027bffb
mov rcx, rbx
call fcn.14023b240
test eax, eax
jne 0x14027c02d
mov ecx, dword [rbp + 0xf0]
inc dword [rbx + 0x3c]
mov edx, dword [rbp - 0x44]
movsxd rax, ecx
lea rcx, [rax + rax*2]
mov rax, qword [rbx + 8]
mov dword [rax + rcx*8 + 4], edx
mov edx, dword [rbp - 0x48]
mov word [rax + rcx*8], 0x11
mov dword [rax + rcx*8 + 8], edx
xor edx, edx
mov byte [rax + rcx*8 + 3], 0
mov dword [rax + rcx*8 + 0xc], edx
mov qword [rax + rcx*8 + 0x10], rdx
mov edx, dword [rbx + 0x3c]
cmp edx, edi
jbe 0x14027c040
mov rax, qword [rbx + 8]
lea rcx, [rdi + rdi*2]
mov dword [rax + rcx*8 + 8], edx
mov ecx, dword [rbx + 0x3c]
mov rax, qword [rbx + 0x30]
lea rdx, [rbp - 0x40]
dec ecx
mov dword [rax + 0x68], ecx
mov rcx, rsi
call fcn.14027a620
mov rax, qword [rbx + 0x30]
movsxd rdi, dword [rbx + 0x3c]
cmp dword [rax + 0x64], edi
jg 0x14027c071
mov rcx, rbx
call fcn.14023b240
test eax, eax
jne 0x14027c0a4
inc dword [rbx + 0x3c]
mov rax, qword [rbx + 8]
mov edx, dword [rbp + 0x108]
lea rcx, [rdi + rdi*2]
mov dword [rax + rcx*8 + 8], edx
xor edx, edx
mov word [rax + rcx*8], 0x19
mov byte [rax + rcx*8 + 3], 0
mov dword [rax + rcx*8 + 4], 1
mov dword [rax + rcx*8 + 0xc], edx
mov qword [rax + rcx*8 + 0x10], rdx
mov eax, dword [rsp + 0x70]
test eax, eax
je 0x14027c106
mov eax, dword [rbp - 0x3c]
movsxd rdi, dword [rbx + 0x3c]
mov dword [rbp + 0xf0], eax
mov rax, qword [rbx + 0x30]
cmp dword [rax + 0x64], edi
jg 0x14027c0d2
mov rcx, rbx
call fcn.14023b240
test eax, eax
jne 0x14027c154
inc dword [rbx + 0x3c]
mov rax, qword [rbx + 8]
mov edx, dword [rbp + 0xf0]
lea rcx, [rdi + rdi*2]
mov dword [rax + rcx*8 + 4], edx
mov edx, dword [rbp - 0x68]
mov word [rax + rcx*8], 5
mov dword [rax + rcx*8 + 8], edx
xor edx, edx
mov byte [rax + rcx*8 + 3], 0
mov dword [rax + rcx*8 + 0xc], edx
mov qword [rax + rcx*8 + 0x10], rdx
jmp 0x14027c154
mov rcx, qword [rbp + 0x20]
call fcn.14028bf90
mov rdx, qword [rbx + 8]
test rdx, rdx
je 0x14027c154
movsxd rax, dword [rsp + 0x54]
lea rcx, [rax + rax*2]
mov r8, qword [rdx + rcx*8 + 0x10]
lea rdi, [rdx + rcx*8]
mov rcx, qword [rbx]
movsx edx, byte [rdi + 1]
call fcn.14023b8c0
xor eax, eax
mov qword [rdi], rax
mov qword [rdi + 8], rax
mov qword [rdi + 0x10], rax
mov byte [rdi], 0x9b
mov eax, dword [rbx + 0x3c]
dec eax
cmp dword [rsp + 0x54], eax
jne 0x14027c154
mov dword [rbx + 0x3c], eax
mov rax, qword [rbx + 0x30]
movsxd rdi, dword [rbx + 0x3c]
cmp dword [rax + 0x64], edi
jg 0x14027c16d
mov rcx, rbx
call fcn.14023b240
test eax, eax
jne 0x14027c1a2
inc dword [rbx + 0x3c]
mov rax, qword [rbx + 8]
mov edx, dword [rbp + 0x108]
lea rcx, [rdi + rdi*2]
add edx, 2
mov dword [rax + rcx*8 + 4], edx
mov edx, dword [rbp - 0x50]
mov word [rax + rcx*8], 0x11
mov dword [rax + rcx*8 + 8], edx
xor edx, edx
mov byte [rax + rcx*8 + 3], 0
mov dword [rax + rcx*8 + 0xc], edx
mov qword [rax + rcx*8 + 0x10], rdx
mov rax, qword [rbx + 0x30]
movsxd rdi, dword [rbx + 0x3c]
cmp dword [rax + 0x64], edi
jg 0x14027c1bb
mov rcx, rbx
call fcn.14023b240
test eax, eax
jne 0x14027c1ea
inc dword [rbx + 0x3c]
mov rax, qword [rbx + 8]
mov edx, dword [rbp - 0x70]
lea rcx, [rdi + rdi*2]
xor r8d, r8d
mov word [rax + rcx*8], 0x10
mov byte [rax + rcx*8 + 3], 0
mov dword [rax + rcx*8 + 4], r8d
mov dword [rax + rcx*8 + 8], edx
mov dword [rax + rcx*8 + 0xc], r8d
mov qword [rax + rcx*8 + 0x10], r8
movsxd rdi, dword [rbx + 0x3c]
mov rax, qword [rbx + 0x30]
mov dword [rsp + 0x54], edi
cmp dword [rax + 0x64], edi
jg 0x14027c207
mov rcx, rbx
call fcn.14023b240
test eax, eax
jne 0x14027c23c
inc dword [rbx + 0x3c]
mov rax, qword [rbx + 8]
mov edx, dword [rbp + 0x108]
lea rcx, [rdi + rdi*2]
inc edx
mov dword [rax + rcx*8 + 8], edx
xor edx, edx
mov word [rax + rcx*8], 0x19
mov byte [rax + rcx*8 + 3], 0
mov dword [rax + rcx*8 + 4], 1
mov dword [rax + rcx*8 + 0xc], edx
mov qword [rax + rcx*8 + 0x10], rdx
mov rax, qword [rbx + 0x30]
movsxd rdi, dword [rbx + 0x3c]
cmp dword [rax + 0x64], edi
jg 0x14027c255
mov rcx, rbx
call fcn.14023b240
test eax, eax
jne 0x14027c284
inc dword [rbx + 0x3c]
mov rax, qword [rbx + 8]
mov edx, dword [rbp + 0x108]
lea rcx, [rdi + rdi*2]
add edx, 2
mov dword [rax + rcx*8 + 4], edx
xor edx, edx
mov word [rax + rcx*8], 0x12
mov qword [rax + rcx*8 + 8], rdx
mov qword [rax + rcx*8 + 0x10], rdx
mov byte [rax + rcx*8 + 3], 0
mov r8, qword [rbx + 0x30]
or eax, 0xffffffff
sub eax, dword [rbp - 0x50]
js 0x14027c2a5
mov rdx, qword [r8 + 0x80]
test rdx, rdx
je 0x14027c2a5
movsxd rcx, eax
mov eax, dword [rbx + 0x3c]
mov dword [rdx + rcx*4], eax
mov eax, dword [rbx + 0x3c]
dec eax
mov dword [r8 + 0x68], eax
mov rax, qword [rbx + 0x30]
movsxd rdi, dword [rbx + 0x3c]
cmp dword [rax + 0x64], edi
jg 0x14027c2c7
mov rcx, rbx
call fcn.14023b240
test eax, eax
jne 0x14027c2f7
mov rax, qword [rbx + 8]
inc dword [rbx + 0x3c]
lea rcx, [rdi + rdi*2]
lea rdx, [rax + rcx*8]
mov eax, dword [rbp + 0x108]
mov dword [rdx + 4], eax
lea eax, [rdi + 2]
mov word [rdx], 0x84
mov dword [rdx + 8], eax
xor eax, eax
mov byte [rdx + 3], 0
mov dword [rdx + 0xc], eax
mov qword [rdx + 0x10], rax
mov ecx, dword [rbx + 0x3c]
mov rax, qword [rbx + 0x30]
mov dword [rbp + 0xf0], ecx
cmp dword [rax + 0x64], ecx
jg 0x14027c31b
mov rcx, rbx
call fcn.14023b240
test eax, eax
jne 0x14027c34d
mov ecx, dword [rbp + 0xf0]
inc dword [rbx + 0x3c]
mov edx, dword [rbp + 0x108]
movsxd rax, ecx
lea rcx, [rax + rax*2]
mov rax, qword [rbx + 8]
add edx, 2
mov dword [rax + rcx*8 + 4], edx
xor edx, edx
mov word [rax + rcx*8], 0x12
mov qword [rax + rcx*8 + 8], rdx
mov qword [rax + rcx*8 + 0x10], rdx
mov byte [rax + rcx*8 + 3], 0
lea rdx, [rbp - 0x40]
mov rcx, rsi
call fcn.14027a4f0
mov rdx, qword [rbp + 0x48]
inc edi
mov r8d, edi
mov r9d, 8
mov rcx, rsi
call fcn.1402528e0
mov eax, dword [rsp + 0x54]
mov rcx, qword [rsp + 0x68]
mov dword [rsp + 0x40], eax
mov rax, qword [rbp + 0x100]
mov dword [rsp + 0x38], edi
mov rdi, qword [rbp + 0xf8]
mov qword [rsp + 0x30], rax
lea rax, [rbp + 0x10]
mov r8, qword [rdi]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rcx
mov rcx, rsi
or r9d, 0xffffffff
mov rdx, rdi
call fcn.140273960
mov ecx, dword [rbx + 0x3c]
mov rax, qword [rbx + 0x30]
mov dword [rbp + 0xf8], ecx
cmp dword [rax + 0x64], ecx
jg 0x14027c3d8
mov rcx, rbx
call fcn.14023b240
test eax, eax
jne 0x14027c40a
mov ecx, dword [rbp + 0xf8]
inc dword [rbx + 0x3c]
mov edx, dword [rbp + 0x108]
movsxd rax, ecx
lea rcx, [rax + rax*2]
mov rax, qword [rbx + 8]
add edx, 2
mov dword [rax + rcx*8 + 4], edx
xor edx, edx
mov word [rax + rcx*8], 0x12
mov qword [rax + rcx*8 + 8], rdx
mov qword [rax + rcx*8 + 0x10], rdx
mov byte [rax + rcx*8 + 3], 0
mov r8, qword [rbx + 0x30]
or eax, 0xffffffff
sub eax, dword [rbp - 0x48]
js 0x14027c42b
mov rdx, qword [r8 + 0x80]
test rdx, rdx
je 0x14027c42b
movsxd rcx, eax
mov eax, dword [rbx + 0x3c]
mov dword [rdx + rcx*4], eax
mov eax, dword [rbx + 0x3c]
dec eax
mov dword [r8 + 0x68], eax
mov ecx, dword [rbp - 0x18]
add ecx, dword [rbp - 8]
je 0x14027c448
lea rdx, [rbp - 0x40]
mov rcx, rsi
call fcn.14027a3a0
mov ecx, dword [rbx + 0x3c]
mov rax, qword [rbx + 0x30]
mov dword [rbp + 0xf8], ecx
cmp dword [rax + 0x64], ecx
jg 0x14027c470
mov rcx, rbx
call fcn.14023b240
test eax, eax
jne 0x14027c8ae
mov ecx, dword [rbp + 0xf8]
inc dword [rbx + 0x3c]
mov edx, dword [rbp - 0x44]
movsxd rax, ecx
lea rcx, [rax + rax*2]
mov rax, qword [rbx + 8]
mov dword [rax + rcx*8 + 4], edx
xor edx, edx
mov word [rax + rcx*8], 0x12
mov qword [rax + rcx*8 + 8], rdx
mov qword [rax + rcx*8 + 0x10], rdx
mov byte [rax + rcx*8 + 3], 0
jmp 0x14027c8ae
cmp qword [rdi + 0x30], 0
mov qword [rbp - 0x58], r11
jne 0x14027c6f3
mov rax, qword [rdi]
cmp dword [rax], 1
jne 0x14027c6f3
mov r10, qword [rdi + 0x28]
cmp dword [r10], 1
jne 0x14027c6f3
cmp qword [r10 + 0x30], 0
jne 0x14027c6f3
mov r10, qword [r10 + 0x28]
mov rax, qword [rax + 8]
test byte [r10 + 0x48], 0x10
mov rdx, qword [rax]
mov qword [rsp + 0x68], r10
jne 0x14027c6f3
cmp byte [rdx], 0x9b
jne 0x14027c6f3
test r8d, r8d
je 0x14027c6f3
mov rax, qword [rbp - 0x10]
mov rcx, qword [rax + 8]
mov eax, 0x100
test word [rcx + 2], ax
je 0x14027c6f3
test byte [rdx + 4], 0x10
jne 0x14027c6f3
mov rdx, qword [r10 + 0x70]
mov rcx, qword [rsi]
call fcn.140271f90
mov qword [rsp + 0x58], r11
mov qword [rsp + 0x60], r11
mov edx, eax
mov dword [rbp + 0x108], eax
mov eax, dword [rsi + 0x54]
lea ecx, [rax + 1]
mov dword [rbp + 0xf0], eax
mov dword [rsi + 0x54], ecx
mov eax, dword [r10 + 0x3c]
mov rcx, rsi
mov dword [rsp + 0x54], eax
call fcn.14025dd40
mov rdx, qword [rsp + 0x68]
mov rcx, qword [rdx]
mov r8d, dword [rdx + 0x3c]
mov edx, dword [rbp + 0x108]
mov qword [rsp + 0x20], rcx
xor r9d, r9d
mov rcx, rsi
call fcn.140257530
mov r8, qword [rsp + 0x68]
test byte [r8 + 0x48], 0x20
je 0x14027c5b9
mov rcx, qword [r8 + 0x10]
mov qword [rsp + 0x60], rcx
test rcx, rcx
je 0x14027c5be
nop dword [rax]
mov eax, dword [rcx + 0x64]
and al, 3
cmp al, 2
je 0x14027c5b2
mov rcx, qword [rcx + 0x28]
test rcx, rcx
jne 0x14027c5a0
mov qword [rsp + 0x60], rcx
jmp 0x14027c5be
mov rcx, qword [rsp + 0x60]
mov rax, qword [r8 + 0x10]
test rax, rax
je 0x14027c5fb
test byte [rax + 0x64], 4
jne 0x14027c5ed
movzx edx, word [rax + 0x5c]
cmp dx, word [r8 + 0x46]
jge 0x14027c5ed
cmp qword [rax + 0x48], 0
jne 0x14027c5ed
test rcx, rcx
je 0x14027c5ea
cmp dx, word [rcx + 0x5c]
jge 0x14027c5ed
mov rcx, rax
mov rax, qword [rax + 0x28]
test rax, rax
jne 0x14027c5c7
mov qword [rsp + 0x60], rcx
test rcx, rcx
je 0x14027c617
mov eax, dword [rcx + 0x58]
mov rdx, rcx
mov rcx, rsi
mov dword [rsp + 0x54], eax
call fcn.14025e7b0
mov qword [rsp + 0x58], rax
mov eax, dword [rbp + 0x108]
mov r9d, dword [rsp + 0x54]
mov r8d, dword [rbp + 0xf0]
mov edx, 0x34
mov rcx, rbx
mov dword [rsp + 0x28], 1
mov dword [rsp + 0x20], eax
call fcn.14023b4d0
mov rax, qword [rsp + 0x58]
test rax, rax
je 0x14027c69f
mov r8, qword [rbx + 8]
mov rcx, qword [rbx]
test r8, r8
je 0x14027c692
cmp byte [rcx + 0x50], 0
jne 0x14027c692
mov eax, dword [rbx + 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 rax, qword [rsp + 0x58]
mov byte [rdi + 1], 0xfa
mov qword [rdi + 0x10], rax
mov rdi, qword [rbp + 0xf8]
jmp 0x14027c69f
mov r8, rax
mov edx, 0xfffffffa
call fcn.14023b8c0
mov r8d, dword [rbp + 0xf0]
xor eax, eax
mov edx, 0x31
mov dword [rsp + 0x20], eax
mov rax, qword [rbp - 0x10]
mov rcx, rbx
mov r9d, dword [rax + 0x10]
call fcn.14023b2f0
mov r8d, dword [rbp + 0xf0]
xor eax, eax
lea edx, [rax + 0x3a]
xor r9d, r9d
mov rcx, rbx
mov dword [rsp + 0x20], eax
call fcn.14023b2f0
mov r8, qword [rsp + 0x60]
mov rdx, qword [rsp + 0x68]
mov rcx, rsi
call fcn.14027aba0
jmp 0x14027c851
cmp qword [rdi + 0x40], 0
mov qword [rbp + 0xf0], r11
mov byte [rbp + 0xf8], 0
jne 0x14027c7a1
mov rdx, r11
mov qword [rbp + 0xf0], rdx
mov qword [rbp + 0x108], rdx
cmp r8d, 1
jne 0x14027c79a
lea rdx, [rbp + 0x108]
lea rcx, [rbp - 0x40]
call fcn.140278c50
mov byte [rbp + 0xf8], al
test al, al
je 0x14027c78a
mov rdx, qword [rbp + 0x108]
mov rcx, qword [rbp - 0x80]
xor r8d, r8d
call fcn.14024e880
mov r10, rax
mov qword [rbp + 0xf0], rax
mov qword [rbp - 0x58], rax
test rax, rax
je 0x14027c7a1
mov rax, qword [rbp - 0x80]
cmp byte [rax + 0x50], 0
jne 0x14027c7a1
mov rcx, qword [r10 + 8]
cmp byte [rbp + 0xf8], 1
setne dl
mov byte [rcx + 0x18], dl
mov rcx, qword [r10 + 8]
mov rdx, qword [rcx]
mov byte [rdx], 0x9a
jmp 0x14027c7a1
mov rax, qword [rbp + 0x108]
mov qword [rbp + 0xf0], rax
jmp 0x14027c7a1
mov byte [rbp + 0xf8], 0
mov ecx, dword [rbp - 8]
add ecx, dword [rbp - 0x18]
je 0x14027c7b5
lea rdx, [rbp - 0x40]
mov rcx, rsi
call fcn.14027a3a0
movzx eax, byte [rbp + 0xf8]
mov r9, qword [rbp + 0xf0]
mov r8, qword [rbp - 0x68]
mov rdx, qword [rsp + 0x78]
xor ecx, ecx
mov dword [rsp + 0x30], ecx
mov word [rsp + 0x28], ax
mov qword [rsp + 0x20], rcx
mov rcx, rsi
call fcn.14028b600
mov qword [rbp + 0xf8], rax
test rax, rax
jne 0x14027c805
mov rbx, qword [rbp - 0x80]
mov rdx, qword [rbp - 0x58]
mov rcx, rbx
call fcn.14024ef70
jmp 0x14027ae13
lea rdx, [rbp - 0x40]
mov rcx, rsi
call fcn.14027a620
mov rax, qword [rbp + 0xf8]
cmp byte [rax + 0x34], 0
je 0x14027c83d
mov r9d, dword [rax + 0x44]
xor ecx, ecx
xor r8d, r8d
lea edx, [rcx + 0x10]
mov dword [rsp + 0x20], ecx
mov rcx, rbx
call fcn.14023b2f0
mov rax, qword [rbp + 0xf8]
mov rcx, rax
call fcn.14028bf90
lea rdx, [rbp - 0x40]
mov rcx, rsi
call fcn.14027a4f0
mov r8d, dword [rbp - 0x70]
mov rdx, qword [rbp + 0x48]
xor eax, eax
lea r9d, [rax + 8]
mov rcx, rsi
mov qword [rsp + 0x68], rax
call fcn.1402528e0
mov eax, dword [rbp - 0x70]
mov r8, qword [rdi]
mov dword [rsp + 0x40], eax
mov dword [rsp + 0x38], eax
mov rax, qword [rbp + 0x100]
mov qword [rsp + 0x30], rax
xor eax, eax
or r9d, 0xffffffff
mov qword [rsp + 0x28], rax
mov rdx, rdi
mov rcx, rsi
mov qword [rsp + 0x20], rax
call fcn.140273960
mov rdx, qword [rbp - 0x58]
mov rcx, qword [rbp - 0x80]
call fcn.14024ef70
mov r9, qword [rbx + 0x30]
or eax, 0xffffffff
sub eax, dword [rbp - 0x70]
js 0x14027c8d0
mov r8, qword [r9 + 0x80]
test r8, r8
je 0x14027c8d0
movsxd rcx, eax
mov eax, dword [rbx + 0x3c]
mov dword [r8 + rcx*4], eax
mov eax, dword [rbx + 0x3c]
dec eax
mov dword [r9 + 0x68], eax
cmp byte [rbp - 0x60], 3
jne 0x14027c8ee
lea rdx, str.DISTINCT
mov rcx, rsi
call fcn.140274620
cmp qword [rsp + 0x68], 0
je 0x14027c926
lea rdx, str.ORDER_BY
mov rcx, rsi
call fcn.140274620
mov rax, qword [rbp + 0x100]
mov r8, rbx
mov qword [rsp + 0x20], rax
mov rax, qword [rbp - 0x78]
mov rdx, rdi
mov r9d, dword [rax]
mov rcx, rsi
call fcn.140274850
mov r9, qword [rbx + 0x30]
or rax, 0xffffffffffffffff
sub eax, dword [rbp]
js 0x14027c948
mov rdx, qword [r9 + 0x80]
test rdx, rdx
je 0x14027c948
movsxd rcx, eax
mov eax, dword [rbx + 0x3c]
mov dword [rdx + rcx*4], eax
mov eax, dword [rbx + 0x3c]
dec eax
mov dword [r9 + 0x68], eax
xor eax, eax
mov dword [rbp + 0x50], eax
jmp 0x14027ae0f
mov rbx, rax
jmp 0x14027ae13
mov eax, ecx
add rsp, 0x1c8
pop rdi
pop rsi
pop rbx
pop rbp
ret