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

Disassembly:
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x10], rdx
push rbx
push rbp
push rsi
push rdi
sub rsp, 0x1c8
mov eax, dword [rcx + 0x200]
mov rbp, qword [rcx]
mov rdi, rdx
mov dword [rsp + 0x110], eax
mov eax, dword [rcx + 0x204]
mov rsi, rcx
mov dword [rcx + 0x200], eax
inc eax
mov ebx, 1
mov dword [rcx + 0x204], eax
xor eax, eax
mov qword [rsp + 0x70], rbp
cmp rdx, rax
je 0x18004f5be
cmp byte [rbp + 0x50], al
jne 0x18004f5be
cmp dword [rcx + 0x4c], eax
jne 0x18004f5be
lea edx, [rbx + 0x14]
xor r9d, r9d
xor r8d, r8d
mov qword [rsp + 0x20], rax
call fcn.180034634
xor r8d, r8d
cmp eax, r8d
jne 0x18004f5be
lea r8d, [rbx + 0x3f]
lea rcx, [rsp + 0x120]
xor edx, edx
call fcn.180062a94
mov rax, qword [rsp + 0x200]
cmp byte [rax], 8
ja 0x18004ddbc
mov rdx, qword [rdi + 0x48]
mov rcx, rbp
call fcn.18002e340
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.18004d728
xor edx, edx
lea rcx, [rsp + 0xf0]
lea r8d, [rdx + 0x20]
call fcn.180062a94
mov rax, qword [rdi + 0x48]
mov rdx, qword [rdi]
mov qword [rsp + 0xf0], rax
mov rax, qword [rdi + 0x28]
xor r10d, r10d
mov qword [rsp + 0x80], rdx
mov qword [rsp + 0x60], rax
cmp dword [rsi + 0x4c], r10d
jne 0x18004f56f
cmp byte [rbp + 0x50], r10b
jne 0x18004f56f
movzx eax, word [rdi + 0xa]
mov rcx, rsi
shr eax, 2
and eax, ebx
mov dword [rsp + 0x208], eax
call fcn.18004a4ec
mov rcx, qword [rsp + 0x200]
mov rdx, qword [rsp + 0x80]
xor r10d, r10d
mov rbp, rax
cmp rax, r10
je 0x18004f72c
cmp dword [rdx], ebx
movzx eax, byte [rcx]
jle 0x18004de64
cmp eax, 0xa
je 0x18004f72c
cmp eax, 0xb
je 0x18004f72c
mov eax, r10d
mov rdx, r10
mov r11d, 4
mov dword [rsp + 0x1f0], eax
mov qword [rsp + 0x98], rdx
cmp qword [rdi + 0x50], r10
jne 0x18004e25c
mov rcx, qword [rsp + 0x60]
cmp eax, dword [rcx]
jge 0x18004e254
mov rax, rdx
imul rax, rax, 0x78
mov qword [rsp + 0x50], rax
mov rdx, qword [rax + rcx + 0x30]
mov qword [rsp + 0xb8], rdx
cmp rdx, r10
je 0x18004e227
mov r9d, dword [rax + rcx + 0x38]
cmp r9d, r10d
je 0x18004deee
test byte [rax + rcx + 0x48], r11b
jne 0x18004e227
mov r8d, dword [rax + rcx + 0x3c]
mov edx, 0x11
mov rcx, rbp
mov dword [rsp + 0x20], r10d
call fcn.18001eb5c
mov rcx, qword [rsp + 0x60]
jmp 0x18004e220
lea rdx, [rsp + 0x58]
mov rcx, rdi
mov dword [rsp + 0x58], r10d
call fcn.18002d18c
mov eax, dword [rsp + 0x58]
mov r9d, dword [rsp + 0x208]
add dword [rsi + 0x1fc], eax
mov rax, qword [rsp + 0xb8]
mov r8d, dword [rsp + 0x1f0]
movzx eax, word [rax + 0xa]
mov rdx, rdi
mov rcx, rsi
shr eax, 2
and eax, ebx
mov dword [rsp + 0x68], eax
mov dword [rsp + 0x20], eax
call fcn.18004c370
xor r10d, r10d
cmp eax, r10d
je 0x18004df75
cmp dword [rsp + 0x68], r10d
je 0x18004df5d
lea r11d, [r10 + 4]
mov dword [rsp + 0x208], ebx
or word [rdi + 0xa], r11w
or rax, 0xffffffffffffffff
mov dword [rsp + 0x1f0], eax
mov qword [rsp + 0x98], rax
jmp 0x18004e1d3
mov rcx, qword [rsp + 0x60]
cmp dword [rcx], ebx
jne 0x18004e09c
mov rax, qword [rsp + 0x70]
mov edx, 0x100
test word [rax + 0x4c], dx
jne 0x18004e09c
mov ebx, dword [rbp + 0x3c]
mov rdx, qword [rsp + 0x50]
mov eax, 1
add dword [rsi + 0x54], eax
mov r8d, dword [rsi + 0x54]
add ebx, eax
mov dword [rdx + rcx + 0x3c], r8d
lea edx, [rax + 0x13]
xor r9d, r9d
mov rcx, rbp
mov dword [rsp + 0x20], ebx
call fcn.18001eb5c
mov rcx, qword [rsp + 0x50]
mov rdx, qword [rsp + 0x60]
mov eax, dword [rcx + rdx + 0x3c]
mov dword [rcx + rdx + 0x38], ebx
mov byte [rsp + 0x160], 0xd
mov dword [rsp + 0x164], eax
xor eax, eax
lea r8, [rsp + 0x160]
mov byte [rsp + 0x161], al
mov dword [rsp + 0x168], eax
mov dword [rsp + 0x16c], eax
mov al, byte [rsi + 0x204]
mov byte [rcx + rdx + 0x4c], al
mov rdx, qword [rsp + 0xb8]
mov rcx, rsi
call fcn.18004dcfc
mov rax, qword [rsp + 0xb8]
mov rcx, qword [rax + 0x20]
call fcn.180008a18
mov rdx, qword [rsp + 0x50]
mov r8, qword [rsp + 0x60]
mov rcx, qword [rdx + r8 + 0x28]
mov r11d, 4
xor r9d, r9d
mov word [rcx + 0x38], ax
or dword [rdx + r8 + 0x48], r11d
mov eax, dword [rsp + 0x168]
mov dword [rdx + r8 + 0x40], eax
mov r8d, dword [rdx + r8 + 0x3c]
xor eax, eax
lea edx, [rax + 0x15]
mov rcx, rbp
mov dword [rsp + 0x20], eax
call fcn.18001eb5c
mov edx, dword [rbp + 0x3c]
dec ebx
cmp edx, ebx
jbe 0x18004e086
mov rax, qword [rbp + 8]
lea rcx, [rbx + rbx*2]
mov dword [rax + rcx*8 + 8], edx
mov ecx, dword [rbp + 0x3c]
mov rax, qword [rbp + 0x30]
mov ebx, 1
sub ecx, ebx
mov dword [rax + 0x64], ecx
jmp 0x18004e1c8
add dword [rsi + 0x54], ebx
mov rdx, qword [rsp + 0x50]
mov r9d, dword [rsi + 0x54]
mov dword [rdx + rcx + 0x3c], r9d
xor r8d, r8d
mov rcx, rbp
lea edx, [r8 + 0x19]
mov dword [rsp + 0x58], r10d
mov dword [rsp + 0x20], r10d
call fcn.18001eb5c
mov rdx, qword [rsp + 0x60]
lea ecx, [rax + 1]
mov dword [rsp + 0x68], eax
mov rax, qword [rsp + 0x50]
test byte [rax + rdx + 0x48], 2
mov dword [rax + rdx + 0x38], ecx
jne 0x18004e0f8
mov rcx, rsi
call fcn.18002e628
mov rdx, qword [rsp + 0x60]
mov dword [rsp + 0x58], eax
mov rax, qword [rsp + 0x50]
mov ecx, dword [rax + rdx + 0x50]
mov byte [rsp + 0x160], 0xc
lea r8, [rsp + 0x160]
mov dword [rsp + 0x164], ecx
xor ecx, ecx
mov byte [rsp + 0x161], cl
mov dword [rsp + 0x168], ecx
mov dword [rsp + 0x16c], ecx
mov cl, byte [rsi + 0x204]
mov byte [rax + rdx + 0x4c], cl
mov rdx, qword [rsp + 0xb8]
mov rcx, rsi
call fcn.18004dcfc
mov rax, qword [rsp + 0xb8]
mov rcx, qword [rax + 0x20]
call fcn.180008a18
mov rdx, qword [rsp + 0x50]
mov r8, qword [rsp + 0x60]
mov rcx, qword [rdx + r8 + 0x28]
xor r10d, r10d
mov word [rcx + 0x38], ax
mov eax, dword [rsp + 0x58]
cmp eax, r10d
je 0x18004e196
mov r9d, dword [rbp + 0x3c]
cmp r9d, eax
jbe 0x18004e18a
lea rcx, [rax + rax*2]
mov rax, qword [rbp + 8]
mov dword [rax + rcx*8 + 8], r9d
mov ecx, dword [rbp + 0x3c]
mov rax, qword [rbp + 0x30]
sub ecx, ebx
mov dword [rax + 0x64], ecx
mov r8d, dword [rdx + r8 + 0x3c]
xor r9d, r9d
mov rcx, rbp
lea edx, [r9 + 0x12]
mov dword [rsp + 0x20], r10d
call fcn.18001eb5c
mov r11d, eax
mov eax, dword [rsp + 0x68]
cmp dword [rbp + 0x3c], eax
jbe 0x18004e1c8
mov rcx, qword [rbp + 8]
lea rdx, [rax + rax*2]
mov dword [rcx + rdx*8 + 4], r11d
xor r10d, r10d
mov dword [rsi + 0x44], r10d
mov byte [rsi + 0x1f], r10b
mov rax, qword [rsp + 0x70]
cmp byte [rax + 0x50], r10b
jne 0x18004f715
lea rdx, [rsp + 0x58]
mov rcx, rdi
mov dword [rsp + 0x58], r10d
call fcn.18002d18c
mov edx, dword [rsp + 0x58]
mov rax, qword [rsp + 0x200]
sub dword [rsi + 0x1fc], edx
cmp byte [rax], 8
mov rcx, qword [rdi + 0x28]
mov qword [rsp + 0x60], rcx
jbe 0x18004e220
mov rax, qword [rdi + 0x48]
mov qword [rsp + 0xf0], rax
xor r10d, r10d
lea r11d, [r10 + 4]
mov eax, dword [rsp + 0x1f0]
mov rdx, qword [rsp + 0x98]
add eax, ebx
add rdx, rbx
mov dword [rsp + 0x1f0], eax
mov qword [rsp + 0x98], rdx
cmp qword [rdi + 0x50], r10
je 0x18004de8e
mov rcx, qword [rsp + 0x200]
mov rax, qword [rdi + 0x30]
mov rdx, qword [rdi]
mov qword [rsp + 0xa0], rax
mov rax, qword [rdi + 0x38]
mov qword [rsp + 0x80], rdx
mov qword [rsp + 0x50], rax
mov rax, qword [rdi + 0x40]
mov qword [rsp + 0x178], rax
mov al, byte [rdi + 0xa]
and al, bl
mov byte [rsp + 0xe0], al
cmp qword [rdi + 0x50], r10
je 0x18004e2bc
mov r8, rcx
mov rdx, rdi
mov rcx, rsi
call fcn.18004ac48
mov r8d, dword [rsp + 0x110]
mov dword [rsi + 0x200], r8d
jmp 0x18004f5c0
mov al, byte [rdi + 0xa]
and al, 5
cmp al, bl
jne 0x18004e30b
mov rcx, qword [rsp + 0xf0]
or r8d, 0xffffffff
call fcn.18003145c
xor r10d, r10d
cmp eax, r10d
jne 0x18004e30b
mov rdx, qword [rdi]
mov rcx, qword [rsp + 0x70]
mov eax, 0xfffe
and word [rdi + 0xa], ax
xor r8d, r8d
call fcn.18002dd34
xor r10d, r10d
mov qword [rsp + 0x50], rax
mov qword [rdi + 0x38], rax
mov qword [rsp + 0xf0], r10
mov rdx, qword [rsp + 0xf0]
cmp rdx, r10
je 0x18004e38a
xor r9d, r9d
xor r8d, r8d
mov rcx, rsi
call fcn.180049594
mov r8d, dword [rsi + 0x50]
lea ecx, [r8 + 1]
mov rdi, rax
xor eax, eax
mov dword [rsi + 0x50], ecx
mov rcx, qword [rsp + 0xf0]
mov dword [rsp + 0xfc], r8d
mov r9d, dword [rcx]
lea edx, [rax + 0x38]
mov rcx, rbp
add r9d, 2
mov dword [rsp + 0x20], eax
call fcn.18001eb5c
mov r9d, 0xfffffffa
mov r8, rdi
mov edx, eax
mov rcx, rbp
mov ebx, eax
call fcn.18001f128
mov rdi, qword [rsp + 0x1f8]
mov dword [rsp + 0x108], ebx
mov ebx, 1
xor r10d, r10d
jmp 0x18004e392
or dword [rsp + 0x108], 0xffffffff
mov rax, qword [rsp + 0x200]
cmp byte [rax], 0xc
jne 0x18004e3c0
mov rcx, qword [rsp + 0x80]
mov r8d, dword [rax + 4]
mov edx, 0x38
mov r9d, dword [rcx]
mov rcx, rbp
mov dword [rsp + 0x20], r10d
call fcn.18001eb5c
mov rcx, rbp
call fcn.18001ec9c
movabs rcx, 0x7fffffffffffffff
mov rdx, rdi
mov qword [rdi + 0x20], rcx
mov r8d, eax
mov rcx, rsi
mov dword [rsp + 0xb8], eax
call fcn.18004a550
xor r8d, r8d
cmp dword [rdi + 0xc], r8d
jne 0x18004e415
mov edx, dword [rsp + 0x108]
cmp edx, r8d
jl 0x18004e415
mov rcx, rbp
call fcn.18001f240
mov byte [rax], 0x39
or byte [rsp + 0x10c], bl
xor r8d, r8d
test byte [rdi + 0xa], bl
je 0x18004e49f
mov ebx, dword [rsi + 0x50]
xor r9d, r9d
xor r8d, r8d
lea eax, [rbx + 1]
mov rcx, rsi
mov dword [rsp + 0xe4], ebx
mov dword [rsi + 0x50], eax
mov rdx, qword [rdi]
call fcn.180049594
xor r9d, r9d
mov r8d, ebx
mov rdi, rax
xor eax, eax
mov rcx, rbp
lea edx, [rax + 0x38]
mov dword [rsp + 0x20], eax
call fcn.18001eb5c
mov r9d, 0xfffffffa
mov r8, rdi
mov edx, eax
mov rcx, rbp
mov ebx, eax
call fcn.18001f128
mov rdx, qword [rbp + 8]
xor r8d, r8d
mov dword [rsp + 0xe8], ebx
cmp rdx, r8
je 0x18004e48e
movsxd rax, dword [rbp + 0x3c]
lea rcx, [rax + rax*2]
mov byte [rdx + rcx*8 - 0x15], 8
mov rdi, qword [rsp + 0x1f8]
mov al, 3
mov ebx, 1
jmp 0x18004e4a2
mov al, r8b
mov rcx, qword [rsp + 0x50]
mov byte [rsp + 0xe1], al
mov dword [rsp + 0xac], eax
cmp dword [rsp + 0x208], r8d
jne 0x18004e60b
cmp rcx, r8
jne 0x18004e60b
mov al, byte [rsp + 0xe0]
mov r9, qword [rsp + 0xf0]
mov rdx, qword [rsp + 0x60]
mov dword [rsp + 0x30], r8d
mov r8, qword [rsp + 0xa0]
neg al
mov rax, qword [rdi]
sbb cx, cx
and cx, 0x400
mov word [rsp + 0x28], cx
mov rcx, rsi
mov qword [rsp + 0x20], rax
call fcn.18005aaa0
xor r11d, r11d
mov r10, rax
mov qword [rsp + 0x1f8], rax
cmp rax, r11
je 0x18004f73b
movzx ecx, word [rax + 0x30]
call fcn.180008a78
cmp rax, qword [rdi + 0x20]
jae 0x18004e536
mov qword [rdi + 0x20], rax
cmp byte [rsp + 0xe0], r11b
je 0x18004e563
movzx eax, byte [r10 + 0x38]
mov ecx, dword [rsp + 0xac]
movzx ecx, cl
cmp al, r11b
cmovne ecx, eax
mov dword [rsp + 0xac], ecx
mov byte [rsp + 0xe1], cl
mov rcx, qword [rsp + 0xf0]
cmp rcx, r11
je 0x18004e58a
movsx eax, byte [r10 + 0x34]
mov dword [rsp + 0xf8], eax
cmp eax, dword [rcx]
cmove rcx, r11
mov qword [rsp + 0xf0], rcx
mov edx, dword [rsp + 0x108]
cmp edx, r11d
jl 0x18004e5ab
cmp rcx, r11
jne 0x18004e5ab
mov rcx, rbp
call fcn.18001f0c4
mov r10, qword [rsp + 0x1f8]
mov eax, dword [r10 + 0x44]
mov rbx, qword [rsp + 0x200]
mov r8, qword [rsp + 0x80]
mov dword [rsp + 0x40], eax
mov eax, dword [r10 + 0x40]
or r9d, 0xffffffff
mov dword [rsp + 0x38], eax
lea rax, [rsp + 0xe0]
mov qword [rsp + 0x30], rbx
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0xf0]
mov rdx, rdi
mov rcx, rsi
mov qword [rsp + 0x20], rax
call fcn.180048c58
mov rcx, qword [rsp + 0x1f8]
call fcn.18005b458
jmp 0x18004f695
mov dword [rsp + 0x78], r8d
mov dword [rsp + 0x88], r8d
cmp rcx, r8
je 0x18004e66d
mov rax, qword [rdi]
mov edx, dword [rax]
mov rax, qword [rax + 8]
cmp edx, r8d
jle 0x18004e63e
add rax, 0x22
sub edx, ebx
mov word [rax], r8w
add rax, 0x28
cmp edx, r8d
jg 0x18004e62f
mov eax, dword [rcx]
mov rdx, qword [rcx + 8]
cmp eax, r8d
jle 0x18004e65c
add rdx, 0x22
sub eax, ebx
mov word [rdx], r8w
add rdx, 0x28
cmp eax, r8d
jg 0x18004e64d
cmp qword [rdi + 0x20], 0x64
jbe 0x18004e671
mov qword [rdi + 0x20], 0x64
jmp 0x18004e671
mov qword [rdi + 0x20], rbx
mov rdx, qword [rsp + 0xf0]
or r8d, 0xffffffff
call fcn.18003145c
xor edx, edx
mov ecx, edx
cmp eax, edx
cmove ecx, ebx
mov dword [rsp + 0x68], ecx
mov rcx, rbp
call fcn.18001ec9c
xor edx, edx
lea rcx, [rsp + 0x180]
lea r8d, [rdx + 0x38]
mov dword [rsp + 0xa8], eax
call fcn.180062a94
mov ecx, dword [rsi + 0x54]
mov rax, qword [rsp + 0x60]
add ecx, ebx
mov qword [rsp + 0x188], rax
lea rax, [rsp + 0x120]
mov dword [rsp + 0x130], ecx
mov rcx, qword [rsp + 0x50]
xor r10d, r10d
mov qword [rsp + 0x180], rsi
mov qword [rsp + 0x198], rax
cmp rcx, r10
je 0x18004e6fc
mov eax, dword [rcx]
add eax, ebx
mov dword [rsp + 0x12c], eax
jmp 0x18004e704
mov dword [rsp + 0x12c], r10d
mov rax, qword [rsp + 0x80]
mov qword [rsp + 0x138], rcx
cmp rax, r10
je 0x18004e72c
lea rcx, [rsp + 0x180]
mov rdx, rax
call fcn.1800318c0
xor r10d, r10d
mov rdx, qword [rsp + 0xf0]
cmp rdx, r10
je 0x18004e749
lea rcx, [rsp + 0x180]
call fcn.1800318c0
xor r10d, r10d
mov rax, qword [rsp + 0x178]
cmp rax, r10
je 0x18004e769
lea rcx, [rsp + 0x180]
mov rdx, rax
call fcn.180031864
xor r10d, r10d
mov r11d, dword [rsp + 0x158]
mov eax, dword [rsp + 0x148]
mov r8, qword [rsp + 0x150]
cmp r11d, r10d
mov edx, r10d
mov dword [rsp + 0x14c], eax
mov dword [rsp + 0x1f0], edx
jle 0x18004e80a
mov cl, byte [rsp + 0x1b0]
mov rdi, r10
or cl, 8
mov byte [rsp + 0x1b0], cl
mov rax, qword [rdi + r8]
cmp qword [rax + 0x20], r10
je 0x18004e7e6
mov rdx, qword [rax + 0x20]
lea rcx, [rsp + 0x180]
call fcn.1800318c0
mov r11d, dword [rsp + 0x158]
mov r8, qword [rsp + 0x150]
mov cl, byte [rsp + 0x1b0]
mov edx, dword [rsp + 0x1f0]
xor r10d, r10d
add edx, ebx
and cl, 0xf7
add rdi, 0x18
cmp edx, r11d
mov byte [rsp + 0x1b0], cl
mov dword [rsp + 0x1f0], edx
jl 0x18004e7a0
mov rdi, qword [rsp + 0x1f8]
mov eax, dword [rsi + 0x54]
mov dword [rsp + 0x134], eax
mov rax, qword [rsp + 0x70]
cmp byte [rax + 0x50], r10b
jne 0x18004f715
mov rcx, qword [rsp + 0x50]
cmp rcx, r10
je 0x18004f163
mov eax, dword [rsi + 0x50]
mov rdx, rcx
xor r9d, r9d
mov dword [rsp + 0x124], eax
inc eax
xor r8d, r8d
mov rcx, rsi
mov dword [rsi + 0x50], eax
call fcn.180049594
mov r9d, dword [rsp + 0x12c]
mov r8d, dword [rsp + 0x124]
mov qword [rsp + 0xd8], rax
xor eax, eax
mov rcx, rbp
lea edx, [rax + 0x39]
mov dword [rsp + 0x20], eax
call fcn.18001eb5c
mov r8, qword [rsp + 0xd8]
mov r9d, 0xfffffffa
mov edx, eax
mov rcx, rbp
mov dword [rsp + 0x98], eax
call fcn.18001f128
mov eax, dword [rsi + 0x54]
mov rcx, rbp
inc eax
mov dword [rsp + 0xcc], eax
inc eax
mov dword [rsp + 0x1f0], eax
inc eax
mov dword [rsi + 0x54], eax
call fcn.18001ec9c
add dword [rsi + 0x54], ebx
mov dword [rsp + 0xc0], eax
mov eax, dword [rsi + 0x54]
mov rcx, rbp
mov dword [rsp + 0x58], eax
call fcn.18001ec9c
mov edx, dword [rsi + 0x54]
mov r9d, dword [rsp + 0x1f0]
mov dword [rsp + 0xd0], eax
lea eax, [rdx + 1]
mov dword [rsp + 0xc4], eax
mov rax, qword [rsp + 0x50]
mov ecx, dword [rax]
lea r8d, [rdx + rcx]
mov dword [rsi + 0x54], r8d
lea ecx, [r8 + 1]
mov dword [rsp + 0xb0], ecx
mov ecx, dword [rax]
xor eax, eax
lea edx, [r8 + rcx]
xor r8d, r8d
mov rcx, rbp
mov dword [rsi + 0x54], edx
lea edx, [rax + 0x19]
mov dword [rsp + 0x20], eax
call fcn.18001eb5c
mov r9d, dword [rsp + 0xcc]
xor eax, eax
lea edx, [rax + 0x19]
xor r8d, r8d
mov rcx, rbp
mov dword [rsp + 0x20], eax
call fcn.18001eb5c
mov ecx, dword [rsp + 0xc4]
mov r10, qword [rsp + 0x50]
xor r8d, r8d
mov r9d, ecx
mov r11d, dword [r10]
lea edx, [r8 + 0x1c]
lea eax, [rcx + r11 - 1]
mov rcx, rbp
mov dword [rsp + 0x20], eax
call fcn.18001eb5c
mov r9d, dword [rsp + 0xd0]
mov r8d, dword [rsp + 0x58]
xor eax, eax
mov rcx, rbp
lea edx, [rax + 0x11]
mov dword [rsp + 0x20], eax
call fcn.18001eb5c
mov r11d, dword [rsp + 0x68]
mov r9, qword [rsp + 0x50]
mov r8, qword [rsp + 0xa0]
mov rdx, qword [rsp + 0x60]
neg r11d
sbb ax, ax
mov ecx, 0x100
and ax, 0x800
or ax, cx
xor ecx, ecx
mov dword [rsp + 0x30], ecx
mov word [rsp + 0x28], ax
mov qword [rsp + 0x20], rcx
mov rcx, rsi
call fcn.18005aaa0
xor r10d, r10d
mov rdx, rax
mov qword [rsp + 0xa0], rax
cmp rax, r10
je 0x18004f715
movsx ecx, byte [rax + 0x34]
mov rax, qword [rsp + 0x50]
cmp ecx, dword [rax]
jne 0x18004ea02
mov ecx, r10d
mov rdi, rax
mov dword [rsp + 0x90], ecx
jmp 0x18004ece5
cmp byte [rsp + 0xe0], r10b
je 0x18004ea18
lea rdx, str.DISTINCT
test byte [rdi + 0xa], bl
je 0x18004ea1f
lea rdx, str.GROUP_BY
mov rcx, rsi
call fcn.180049658
mov rdi, qword [rsp + 0x50]
mov r8d, dword [rsp + 0x148]
mov eax, dword [rdi]
mov dword [rsp + 0x90], ebx
mov dword [rsp + 0x78], eax
inc eax
mov dword [rsp + 0xc8], eax
mov ecx, eax
mov dword [rsp + 0x208], eax
mov edx, eax
xor eax, eax
cmp r8d, eax
jle 0x18004ea83
mov rax, qword [rsp + 0x140]
mov r9, r8
add rax, 0x10
cmp dword [rax], edx
jl 0x18004ea73
add ecx, ebx
add edx, ebx
add rax, 0x20
sub r9, rbx
jne 0x18004ea6b
mov dword [rsp + 0x208], ecx
mov edx, ecx
mov rcx, rsi
call fcn.180031948
mov rcx, rsi
mov r11d, eax
mov dword [rsp + 0xb4], eax
call fcn.18002f960
xor r9d, r9d
mov r8d, r11d
mov rdx, rdi
call fcn.180030a64
mov r9d, dword [rsp + 0xb4]
mov r11d, dword [rsp + 0x78]
mov r8d, dword [rsp + 0x124]
xor eax, eax
add r9d, r11d
lea edx, [rax + 0x45]
mov rcx, rbp
mov dword [rsp + 0x20], eax
call fcn.18001eb5c
mov r8d, dword [rsp + 0x148]
xor r10d, r10d
cmp r8d, r10d
mov r9d, r10d
mov dword [rsp + 0x78], r10d
jle 0x18004eba9
mov eax, dword [rsp + 0xc8]
mov ecx, dword [rsp + 0xb4]
mov rdi, r10
add ecx, eax
mov dword [rsp + 0x88], ecx
mov rdx, qword [rsp + 0x140]
cmp dword [rdi + rdx + 0x10], eax
jl 0x18004eb8f
mov r9d, dword [rdi + rdx + 8]
mov r8d, dword [rdi + rdx + 0xc]
mov rdx, qword [rdi + rdx]
mov byte [rsp + 0x28], r10b
mov dword [rsp + 0x20], ecx
mov rcx, rsi
call fcn.18002f874
mov ecx, dword [rsp + 0x88]
cmp ecx, eax
je 0x18004eb66
xor r8d, r8d
mov r9d, ecx
mov edx, 0x22
mov dword [rsp + 0x20], r8d
mov r8d, eax
mov rcx, rbp
call fcn.18001eb5c
mov ecx, dword [rsp + 0x88]
mov eax, dword [rsp + 0xc8]
mov r8d, dword [rsp + 0x148]
mov r9d, dword [rsp + 0x78]
add eax, ebx
add ecx, ebx
xor r10d, r10d
mov dword [rsp + 0xc8], eax
mov dword [rsp + 0x88], ecx
add r9d, ebx
add rdi, 0x20
cmp r9d, r8d
mov dword [rsp + 0x78], r9d
jl 0x18004eb0c
mov rdi, qword [rsp + 0x50]
mov al, byte [rsi + 0x1f]
cmp al, r10b
jne 0x18004ebb9
add dword [rsi + 0x54], ebx
mov eax, dword [rsi + 0x54]
jmp 0x18004ebc5
sub al, bl
movzx eax, al
mov byte [rsi + 0x1f], al
mov eax, dword [rsi + rax*4 + 0x24]
mov r9d, dword [rsp + 0x208]
mov r8d, dword [rsp + 0xb4]
mov edx, 0x30
mov rcx, rbp
mov dword [rsp + 0x88], eax
mov dword [rsp + 0x20], eax
call fcn.18001eb5c
mov r9d, dword [rsp + 0x88]
mov r8d, dword [rsp + 0x124]
xor eax, eax
mov rcx, rbp
lea edx, [rax + 0x6b]
mov dword [rsp + 0x20], eax
call fcn.18001eb5c
mov edx, dword [rsp + 0x88]
mov rcx, rsi
call fcn.180031910
mov r8d, dword [rsp + 0x208]
mov edx, dword [rsp + 0xb4]
call fcn.18002f6fc
mov eax, dword [rsp + 0x208]
cmp eax, dword [rsi + 0x44]
jle 0x18004ec43
mov dword [rsi + 0x44], eax
mov dword [rsi + 0x48], edx
mov rcx, qword [rsp + 0xa0]
call fcn.18005b458
mov edx, dword [rsi + 0x50]
xor r8d, r8d
lea eax, [rdx + 1]
mov dword [rsp + 0x78], edx
mov dword [rsp + 0x128], edx
mov dword [rsi + 0x50], eax
mov al, byte [rsi + 0x1f]
cmp al, r8b
jne 0x18004ec77
add dword [rsi + 0x54], ebx
mov ecx, dword [rsi + 0x54]
jmp 0x18004ec83
sub al, bl
movzx eax, al
mov byte [rsi + 0x1f], al
mov ecx, dword [rsi + rax*4 + 0x24]
mov eax, dword [rsp + 0x208]
mov dword [rsp + 0x88], ecx
mov r9d, ecx
mov r8d, edx
mov rcx, rbp
mov edx, 0x3a
mov dword [rsp + 0x20], eax
call fcn.18001eb5c
mov r9d, dword [rsp + 0xa8]
mov r8d, dword [rsp + 0x124]
xor eax, eax
mov rcx, rbp
lea edx, [rax + 0x68]
mov dword [rsp + 0x20], eax
call fcn.18001eb5c
mov rcx, rsi
mov byte [rsp + 0x121], bl
call fcn.18002f960
mov rdx, qword [rsp + 0xa0]
mov ecx, ebx
xor r10d, r10d
cmp dword [rsp + 0x68], r10d
je 0x18004ed1f
mov rax, qword [rsp + 0x70]
mov r11d, 4
test byte [rax + 0x4c], r11b
jne 0x18004ed1f
cmp ecx, r10d
jne 0x18004ed08
cmp byte [rdx + 0x35], r10b
je 0x18004ed1f
mov edx, dword [rsp + 0x108]
mov rcx, rbp
mov qword [rsp + 0xf0], r10
call fcn.18001f0c4
mov eax, dword [rbp + 0x3c]
mov rcx, rsi
mov dword [rsp + 0x68], eax
call fcn.18002f960
mov eax, dword [rsp + 0x90]
xor r9d, r9d
cmp eax, r9d
je 0x18004ed69
mov r8d, dword [rsp + 0x124]
mov dword [rsp + 0x20], r9d
mov r9d, dword [rsp + 0x88]
mov edx, 0x62
mov rcx, rbp
call fcn.18001eb5c
mov eax, dword [rsp + 0x90]
xor r9d, r9d
cmp dword [rdi], r9d
mov edx, r9d
movsxd rcx, eax
mov dword [rsp + 0x208], edx
mov qword [rsp + 0x88], rcx
jle 0x18004ee31
mov rax, r9
mov qword [rsp + 0x50], rax
cmp rcx, r9
je 0x18004edde
mov eax, dword [rsp + 0xb0]
mov r8d, dword [rsp + 0x78]
mov r9d, edx
add eax, edx
mov edx, 0x2e
mov rcx, rbp
mov dword [rsp + 0x20], eax
call fcn.18001eb5c
mov edx, dword [rsp + 0x208]
xor r9d, r9d
cmp edx, r9d
jne 0x18004ee0a
mov r8, qword [rbp + 8]
cmp r8, r9
je 0x18004ee0a
movsxd rax, dword [rbp + 0x3c]
lea rcx, [rax + rax*2]
mov byte [r8 + rcx*8 - 0x15], 0x20
jmp 0x18004ee0a
mov ecx, dword [rsp + 0xb0]
mov byte [rsp + 0x120], bl
lea r8d, [rdx + rcx]
mov rdx, qword [rdi + 8]
mov rcx, rsi
mov rdx, qword [rdx + rax]
call fcn.180030a04
mov edx, dword [rsp + 0x208]
xor r9d, r9d
mov rax, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x88]
add edx, ebx
add rax, 0x28
cmp edx, dword [rdi]
mov dword [rsp + 0x208], edx
mov qword [rsp + 0x50], rax
jl 0x18004ed8f
mov rax, qword [rsp + 0xd8]
cmp rax, r9
je 0x18004ee40
add dword [rax], ebx
mov eax, dword [rdi]
mov r9d, dword [rsp + 0xb0]
mov r8d, dword [rsp + 0xc4]
mov edx, 0x29
mov rcx, rbp
mov dword [rsp + 0x20], eax
call fcn.18001eb5c
mov r8, qword [rsp + 0xd8]
mov r9d, 0xfffffffa
mov edx, eax
mov rcx, rbp
call fcn.18001f128
mov eax, dword [rbp + 0x3c]
xor r9d, r9d
lea r8d, [rax + 1]
lea edx, [r9 + 0x2a]
mov rcx, rbp
mov dword [rsp + 0x20], r8d
mov dword [rsp + 0x208], eax
call fcn.18001eb5c
mov r9d, dword [rdi]
mov r8d, dword [rsp + 0xc4]
mov edx, dword [rsp + 0xb0]
mov rcx, rsi
call fcn.18002f9a4
mov r8d, dword [rsp + 0x1f0]
mov r9d, dword [rsp + 0xc0]
xor edi, edi
inc r8d
mov rcx, rbp
lea edx, [rdi + 0x11]
mov dword [rsp + 0x20], edi
call fcn.18001eb5c
mov r8d, dword [rsp + 0x1f0]
mov dword [rsp + 0x20], edi
mov edi, dword [rsp + 0xa8]
mov edx, 0x87
mov rcx, rbp
mov r9d, edi
call fcn.18001eb5c
mov r9d, dword [rsp + 0xd0]
mov r8d, dword [rsp + 0x58]
xor eax, eax
mov rcx, rbp
lea edx, [rax + 0x11]
mov dword [rsp + 0x20], eax
call fcn.18001eb5c
mov r11d, dword [rbp + 0x3c]
mov eax, dword [rsp + 0x208]
cmp r11d, eax
jbe 0x18004ef39
lea rcx, [rax + rax*2]
mov rax, qword [rbp + 8]
mov dword [rax + rcx*8 + 8], r11d
mov ecx, dword [rbp + 0x3c]
mov rax, qword [rbp + 0x30]
lea rdx, [rsp + 0x120]
sub ecx, ebx
mov dword [rax + 0x64], ecx
mov rcx, rsi
call fcn.18004d99c
mov r9d, dword [rsp + 0xcc]
xor eax, eax
lea edx, [rax + 0x19]
mov r8d, ebx
mov rcx, rbp
mov dword [rsp + 0x20], eax
call fcn.18001eb5c
xor eax, eax
cmp dword [rsp + 0x90], eax
je 0x18004ef9a
mov r9d, dword [rsp + 0x68]
mov r8d, dword [rsp + 0x124]
lea edx, [rax + 5]
mov rcx, rbp
mov dword [rsp + 0x20], eax
call fcn.18001eb5c
jmp 0x18004efb6
mov rcx, qword [rsp + 0xa0]
call fcn.18005b458
mov edx, dword [rsp + 0x98]
mov rcx, rbp
call fcn.18001f0c4
mov r8d, dword [rsp + 0x1f0]
mov r9d, dword [rsp + 0xc0]
xor eax, eax
lea edx, [rax + 0x11]
mov rcx, rbp
inc r8d
mov dword [rsp + 0x20], eax
call fcn.18001eb5c
xor eax, eax
lea edx, [rax + 0x10]
mov r9d, edi
xor r8d, r8d
mov rcx, rbp
mov dword [rsp + 0x20], eax
call fcn.18001eb5c
mov r9d, dword [rsp + 0x1f0]
mov edi, dword [rbp + 0x3c]
xor eax, eax
mov r8d, ebx
mov rcx, rbp
lea edx, [rax + 0x19]
mov dword [rsp + 0x20], eax
call fcn.18001eb5c
mov r8d, dword [rsp + 0x1f0]
xor eax, eax
lea edx, [rax + 0x12]
xor r9d, r9d
mov rcx, rbp
inc r8d
mov dword [rsp + 0x20], eax
call fcn.18001eb5c
mov edx, dword [rsp + 0xc0]
mov rcx, rbp
call fcn.18001ecf8
mov ebx, dword [rbp + 0x3c]
mov r8d, dword [rsp + 0xcc]
xor eax, eax
lea r9d, [rbx + 2]
mov edx, 0x87
mov dword [rsp + 0x20], eax
call fcn.18001eb5c
mov r8d, dword [rsp + 0x1f0]
xor eax, eax
inc r8d
xor r9d, r9d
lea edx, [rax + 0x12]
mov rcx, rbp
mov dword [rsp + 0x20], eax
call fcn.18001eb5c
lea rdx, [rsp + 0x120]
mov rcx, rsi
call fcn.18004d908
mov rdx, qword [rsp + 0x178]
inc ebx
mov r8d, ebx
mov r9d, 8
mov rcx, rsi
call fcn.180030fec
mov dword [rsp + 0x40], edi
mov rdi, qword [rsp + 0x1f8]
mov r8, qword [rdi]
mov dword [rsp + 0x38], ebx
mov rbx, qword [rsp + 0x200]
lea rax, [rsp + 0xe0]
mov qword [rsp + 0x30], rbx
or r9d, 0xffffffff
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0xf0]
mov rdx, rdi
mov rcx, rsi
mov qword [rsp + 0x20], rax
call fcn.180048c58
mov r8d, dword [rsp + 0x1f0]
xor eax, eax
lea edx, [rax + 0x12]
xor r9d, r9d
mov rcx, rbp
inc r8d
mov dword [rsp + 0x20], eax
call fcn.18001eb5c
mov edx, dword [rsp + 0xd0]
mov rcx, rbp
call fcn.18001ecf8
mov eax, dword [rsp + 0x158]
mov ecx, dword [rsp + 0x148]
add ecx, eax
xor eax, eax
cmp ecx, eax
je 0x18004f146
lea rdx, [rsp + 0x120]
mov rcx, rsi
call fcn.18004d844
xor eax, eax
mov r8d, dword [rsp + 0x58]
xor r9d, r9d
mov rcx, rbp
lea edx, [r9 + 0x12]
mov dword [rsp + 0x20], eax
call fcn.18001eb5c
jmp 0x18004f686
mov qword [rsp + 0xd8], r10
cmp qword [rdi + 0x30], r10
jne 0x18004f27f
mov rax, qword [rdi]
cmp dword [rax], ebx
jne 0x18004f27f
mov r9, qword [rdi + 0x28]
cmp dword [r9], ebx
jne 0x18004f27f
cmp qword [r9 + 0x30], r10
jne 0x18004f27f
mov r9, qword [r9 + 0x28]
mov rax, qword [rax + 8]
test byte [r9 + 0x48], 0x10
mov rcx, qword [rax]
mov qword [rsp + 0x98], r9
jne 0x18004f1d4
cmp byte [rcx], 0x9b
jne 0x18004f1d4
cmp r11d, r10d
je 0x18004f1d4
mov rax, qword [r8 + 8]
mov edx, 0x100
test word [rax + 2], dx
je 0x18004f1d4
test byte [rcx + 4], 0x10
je 0x18004f28a
xor r9d, r9d
mov qword [rsp + 0x1f0], r10
mov dword [rsp + 0x1f8], r10d
cmp qword [rdi + 0x40], r9
jne 0x18004f4df
mov rdx, r9
mov r10d, r9d
mov dword [rsp + 0x1f8], r9d
mov qword [rsp + 0x1f0], rdx
cmp r11d, ebx
jne 0x18004f484
mov r8, qword [r8]
mov qword [rsp + 0x208], r8
mov rax, qword [r8 + 0x20]
cmp rax, r9
je 0x18004f484
cmp dword [rax], ebx
jne 0x18004f484
mov rax, qword [rax + 8]
mov rcx, qword [rax]
cmp byte [rcx], 0x9c
jne 0x18004f484
mov rcx, qword [r8 + 8]
lea rdx, [0x180063a3c]
call fcn.180007bec
mov rcx, qword [rsp + 0x208]
xor r9d, r9d
cmp eax, r9d
jne 0x18004f44c
mov rdx, qword [rcx + 0x20]
mov r10d, ebx
mov dword [rsp + 0x1f8], ebx
mov qword [rsp + 0x1f0], rdx
jmp 0x18004f484
mov r9, r10
mov qword [rsp + 0x98], r10
cmp r9, r10
je 0x18004f1d4
mov rdx, qword [r9 + 0x70]
mov rcx, qword [rsi]
call fcn.180047984
mov qword [rsp + 0xa0], r10
mov qword [rsp + 0x50], r10
mov edx, eax
mov dword [rsp + 0x1f8], eax
mov eax, dword [rsi + 0x50]
lea ecx, [rax + 1]
mov dword [rsp + 0x208], eax
mov dword [rsi + 0x50], ecx
mov eax, dword [r9 + 0x3c]
mov rcx, rsi
mov dword [rsp + 0x1f0], eax
call fcn.1800396a8
mov rdx, qword [rsp + 0x98]
mov r11, qword [rdx]
mov r8d, dword [rdx + 0x3c]
mov edx, dword [rsp + 0x1f8]
xor r9d, r9d
mov rcx, rsi
mov qword [rsp + 0x20], r11
call fcn.1800346a8
mov rax, qword [rsp + 0x98]
xor r9d, r9d
test byte [rax + 0x48], 0x20
je 0x18004f33e
mov rcx, qword [rax + 0x10]
mov qword [rsp + 0x50], rcx
cmp rcx, r9
je 0x18004f343
mov eax, dword [rcx + 0x64]
and al, 3
cmp al, 2
je 0x18004f32f
mov rcx, qword [rcx + 0x28]
cmp rcx, r9
jne 0x18004f31d
mov rax, qword [rsp + 0x98]
mov qword [rsp + 0x50], rcx
jmp 0x18004f343
mov rcx, qword [rsp + 0x50]
mov rdx, qword [rax + 0x10]
cmp rdx, r9
je 0x18004f387
mov r11d, 4
test byte [rdx + 0x64], r11b
jne 0x18004f379
movzx r8d, word [rdx + 0x5c]
cmp r8w, word [rax + 0x46]
jge 0x18004f379
cmp qword [rdx + 0x48], r9
jne 0x18004f379
cmp rcx, r9
je 0x18004f376
cmp r8w, word [rcx + 0x5c]
jge 0x18004f379
mov rcx, rdx
mov rdx, qword [rdx + 0x28]
cmp rdx, r9
jne 0x18004f352
mov qword [rsp + 0x50], rcx
cmp rcx, r9
je 0x18004f3a9
mov eax, dword [rcx + 0x58]
mov rdx, rcx
mov rcx, rsi
mov dword [rsp + 0x1f0], eax
call fcn.180039d38
mov qword [rsp + 0xa0], rax
mov eax, dword [rsp + 0x1f8]
mov r9d, dword [rsp + 0x1f0]
mov dword [rsp + 0x28], ebx
mov ebx, dword [rsp + 0x208]
mov edx, 0x35
mov rcx, rbp
mov r8d, ebx
mov dword [rsp + 0x20], eax
call fcn.18001ec5c
mov rax, qword [rsp + 0xa0]
xor r8d, r8d
cmp rax, r8
je 0x18004f3f9
lea r9d, [r8 - 6]
or edx, 0xffffffff
mov rcx, rbp
mov r8, rax
call fcn.18001f128
xor eax, eax
mov r8d, ebx
mov edx, 0x31
mov dword [rsp + 0x20], eax
mov rax, qword [rsp + 0x150]
mov rcx, rbp
mov r9d, dword [rax + 0x10]
call fcn.18001eb5c
xor eax, eax
xor r9d, r9d
lea edx, [rax + 0x3b]
mov r8d, ebx
mov rcx, rbp
mov dword [rsp + 0x20], eax
call fcn.18001eb5c
mov r8, qword [rsp + 0x50]
mov rdx, qword [rsp + 0x98]
mov rcx, rsi
call fcn.18004dc48
jmp 0x18004f619
mov rcx, qword [rcx + 8]
lea rdx, [0x180063a38]
call fcn.180007bec
xor r9d, r9d
cmp eax, r9d
jne 0x18004f481
mov rax, qword [rsp + 0x208]
lea r10d, [r9 + 2]
mov rdx, qword [rax + 0x20]
mov dword [rsp + 0x1f8], r10d
jmp 0x18004f272
mov rdx, r9
cmp r10b, r9b
je 0x18004f4df
mov rcx, qword [rsp + 0x70]
xor r8d, r8d
call fcn.18002dd34
xor r9d, r9d
mov rdx, rax
mov qword [rsp + 0x1f0], rax
mov qword [rsp + 0xd8], rax
cmp rax, r9
je 0x18004f4d7
mov rax, qword [rsp + 0x70]
cmp byte [rax + 0x50], r9b
jne 0x18004f4d7
mov rax, qword [rdx + 8]
cmp byte [rsp + 0x1f8], bl
setne cl
mov byte [rax + 0x18], cl
mov rax, qword [rdx + 8]
mov rcx, qword [rax]
mov byte [rcx], 0x9a
mov r11d, dword [rsp + 0x158]
mov eax, dword [rsp + 0x148]
lea ecx, [r11 + rax]
cmp ecx, r9d
je 0x18004f502
lea rdx, [rsp + 0x120]
mov rcx, rsi
call fcn.18004d844
xor r9d, r9d
movzx eax, byte [rsp + 0x1f8]
mov r8, qword [rsp + 0xa0]
mov rdx, qword [rsp + 0x60]
mov dword [rsp + 0x30], r9d
mov word [rsp + 0x28], ax
mov qword [rsp + 0x20], r9
mov r9, qword [rsp + 0x1f0]
mov rcx, rsi
call fcn.18005aaa0
xor r8d, r8d
mov qword [rsp + 0x1f8], rax
cmp rax, r8
jne 0x18004f5cc
mov rbp, qword [rsp + 0x70]
mov rdx, qword [rsp + 0xd8]
mov rcx, rbp
call fcn.18002e340
mov rax, qword [rsp + 0x60]
mov rdx, qword [rsp + 0x80]
xor r10d, r10d
mov rcx, qword [rsp + 0x200]
mov r8d, dword [rsp + 0x110]
mov dword [rsi + 0x200], r8d
cmp ebx, r10d
jne 0x18004f59e
cmp byte [rcx], 9
jne 0x18004f59e
mov r8, rdx
mov rcx, rsi
mov rdx, rax
call fcn.180049e0c
mov rdx, qword [rsp + 0x140]
mov rcx, rbp
call fcn.180005a84
mov rdx, qword [rsp + 0x150]
mov rcx, rbp
call fcn.180005a84
mov eax, ebx
add rsp, 0x1c8
pop rdi
pop rsi
pop rbp
pop rbx
ret
lea rdx, [rsp + 0x120]
mov rcx, rsi
call fcn.18004d99c
mov rbx, qword [rsp + 0x1f8]
xor eax, eax
cmp byte [rbx + 0x34], al
jle 0x18004f601
mov r9d, dword [rbx + 0x44]
lea edx, [rax + 0x10]
xor r8d, r8d
mov rcx, rbp
mov dword [rsp + 0x20], eax
call fcn.18001eb5c
mov rcx, rbx
call fcn.18005b458
lea rdx, [rsp + 0x120]
mov rcx, rsi
call fcn.18004d908
mov ebx, dword [rsp + 0xa8]
mov rdx, qword [rsp + 0x178]
xor eax, eax
lea r9d, [rax + 8]
mov rcx, rsi
mov r8d, ebx
mov qword [rsp + 0xf0], rax
call fcn.180030fec
mov r8, qword [rdi]
mov dword [rsp + 0x40], ebx
mov dword [rsp + 0x38], ebx
mov rbx, qword [rsp + 0x200]
xor eax, eax
mov qword [rsp + 0x30], rbx
or r9d, 0xffffffff
mov qword [rsp + 0x28], rax
mov rdx, rdi
mov rcx, rsi
mov qword [rsp + 0x20], rax
call fcn.180048c58
mov rdx, qword [rsp + 0xd8]
mov rcx, qword [rsp + 0x70]
call fcn.18002e340
mov edx, dword [rsp + 0xa8]
mov rcx, rbp
call fcn.18001ecf8
cmp byte [rsp + 0xac], 3
jne 0x18004f6ae
lea rdx, str.DISTINCT
mov rcx, rsi
call fcn.180049658
xor r10d, r10d
cmp qword [rsp + 0xf0], r10
je 0x18004f703
cmp dword [rsp + 0xf8], r10d
lea rax, str.RIGHT_PART_OF_ORDER_BY
lea rdx, str.ORDER_BY
cmovg rdx, rax
mov rcx, rsi
call fcn.180049658
mov rax, qword [rsp + 0x80]
lea r8, [rsp + 0xf0]
mov r9d, dword [rax]
mov rdx, rdi
mov rcx, rsi
mov qword [rsp + 0x20], rbx
call fcn.180049790
xor r10d, r10d
mov edx, dword [rsp + 0xb8]
mov rcx, rbp
call fcn.18001ecf8
mov ebx, r10d
mov rax, qword [rsp + 0x60]
mov rbp, qword [rsp + 0x70]
mov rdx, qword [rsp + 0x80]
jmp 0x18004f56f
mov rax, qword [rsp + 0x60]
mov rbp, qword [rsp + 0x70]
jmp 0x18004f577
mov rbp, qword [rsp + 0x70]
jmp 0x18004f55f