Function at 0x180096280
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, 0x1f8
mov eax, dword [rcx + 0x200]
mov rsi, qword [rcx]
mov edi, 1
mov dword [rsp + 0x120], eax
mov eax, dword [rcx + 0x204]
mov rbx, rdx
mov dword [rcx + 0x200], eax
inc eax
mov rbp, rcx
mov qword [rsp + 0x170], rdi
mov qword [rsp + 0x70], rsi
mov dword [rcx + 0x204], eax
test rdx, rdx
je 0x1800984e3
cmp byte [rsi + 0x51], 0
jne 0x1800984e3
cmp dword [rcx + 0x4c], 0
jne 0x1800984e3
xor eax, eax
lea edx, [rdi + 0x14]
xor r9d, r9d
xor r8d, r8d
mov qword [rsp + 0x20], rax
call fcn.180045cc0
test eax, eax
jne 0x1800984e3
xor eax, eax
mov edi, 0xfffe
mov qword [rsp + 0xe0], rax
mov qword [rsp + 0xe8], rax
mov qword [rsp + 0xf0], rax
mov qword [rsp + 0xf8], rax
mov qword [rsp + 0x100], rax
mov qword [rsp + 0x108], rax
mov qword [rsp + 0x110], rax
mov qword [rsp + 0x118], rax
mov rax, qword [rsp + 0x230]
cmp byte [rax], 8
ja 0x180096375
mov rdx, qword [rbx + 0x48]
mov rcx, rsi
call fcn.1800415b0
xor eax, eax
and word [rbx + 0xa], di
mov qword [rbx + 0x48], rax
xor r8d, r8d
mov rdx, rbx
mov rcx, rbp
call fcn.180079180
mov rax, qword [rbx + 0x48]
mov rdi, qword [rbx + 0x28]
mov rcx, qword [rbx]
xor r11d, r11d
mov qword [rsp + 0x78], rax
mov qword [rsp + 0x128], r11
mov qword [rsp + 0x90], rdi
mov qword [rsp + 0x130], r11
mov qword [rsp + 0x128], rax
mov qword [rsp + 0x68], rcx
mov qword [rsp + 0x138], r11
mov qword [rsp + 0x140], r11
cmp dword [rbp + 0x4c], r11d
jne 0x1800983cf
cmp byte [rsi + 0x51], r11b
jne 0x1800983cf
movzx eax, word [rbx + 0xa]
mov rcx, rbp
shr eax, 2
and eax, 1
mov dword [rsp + 0x238], eax
call fcn.180049910
mov rcx, qword [rsp + 0x68]
mov rsi, rax
mov qword [rsp + 0x178], rax
test rax, rax
je 0x1800983c0
mov r8d, dword [rcx]
mov rdx, qword [rsp + 0x230]
mov rcx, rbp
call fcn.18003f120
test eax, eax
jne 0x1800983b9
xor edx, edx
or rcx, 0xffffffffffffffff
mov eax, edx
mov dword [rsp + 0x220], edx
mov qword [rsp + 0x60], rdx
cmp qword [rbx + 0x50], rax
jne 0x1800967e0
mov rcx, rdi
mov rdi, rax
cmp eax, dword [rcx]
jge 0x1800967d4
imul rdi, rdi, 0x78
mov rax, qword [rdi + rcx + 0x30]
mov qword [rsp + 0x50], rax
test rax, rax
je 0x1800967ac
mov r9d, dword [rdi + rcx + 0x38]
test r9d, r9d
je 0x1800964a7
test byte [rdi + rcx + 0x48], 4
jne 0x1800967ac
mov r8d, dword [rdi + rcx + 0x3c]
mov dword [rsp + 0x20], edx
mov edx, 0x11
mov rcx, rsi
call fcn.180042780
mov rcx, qword [rsp + 0x90]
jmp 0x1800967aa
mov rcx, rbx
call fcn.1800291c0
mov r9d, dword [rsp + 0x238]
mov r8d, dword [rsp + 0x220]
add dword [rbp + 0x1fc], eax
mov rax, qword [rsp + 0x50]
mov rdx, rbx
movzx eax, word [rax + 0xa]
mov rcx, rbp
shr eax, 2
and eax, 1
mov dword [rsp + 0xa0], eax
mov dword [rsp + 0x20], eax
call fcn.1800502c0
test eax, eax
je 0x18009651d
cmp dword [rsp + 0xa0], 0
je 0x180096508
or word [rbx + 0xa], 4
mov dword [rsp + 0x238], 1
or rax, 0xffffffffffffffff
mov dword [rsp + 0x220], eax
mov qword [rsp + 0x60], rax
jmp 0x180096763
mov rax, qword [rsp + 0x90]
cmp dword [rax], 1
jne 0x180096633
mov rcx, qword [rsp + 0x70]
mov edx, 0x100
test word [rcx + 0x4c], dx
jne 0x180096633
mov ebx, dword [rsi + 0x3c]
inc dword [rbp + 0x54]
mov r8d, dword [rbp + 0x54]
xor r9d, r9d
inc ebx
mov rcx, rsi
lea edx, [r9 + 0x14]
mov dword [rsp + 0x20], ebx
mov dword [rdi + rax + 0x3c], r8d
call fcn.180042780
mov rcx, qword [rsp + 0x90]
mov rdx, qword [rsp + 0x50]
mov eax, dword [rdi + rcx + 0x3c]
mov dword [rdi + rcx + 0x38], ebx
mov byte [rsp + 0x148], 0xd
mov dword [rsp + 0x14c], eax
xor eax, eax
mov byte [rsp + 0x149], 0
mov dword [rsp + 0x150], eax
mov dword [rsp + 0x154], eax
movzx eax, byte [rbp + 0x204]
mov byte [rdi + rcx + 0x4c], al
lea r8, [rsp + 0x148]
mov rcx, rbp
call fcn.180096280
mov rax, qword [rsp + 0x50]
mov rcx, qword [rax + 0x20]
call fcn.180013460
mov rdx, qword [rsp + 0x90]
xor r9d, r9d
mov rcx, qword [rdi + rdx + 0x28]
mov word [rcx + 0x38], ax
or dword [rdi + rdx + 0x48], 4
mov eax, dword [rsp + 0x150]
mov r8d, dword [rdi + rdx + 0x3c]
mov dword [rdi + rdx + 0x40], eax
xor eax, eax
lea edx, [rax + 0x15]
mov rcx, rsi
mov dword [rsp + 0x20], eax
call fcn.180042780
mov edx, dword [rsi + 0x3c]
dec ebx
cmp edx, ebx
jbe 0x18009661a
mov rax, qword [rsi + 8]
lea rcx, [rbx + rbx*2]
mov dword [rax + rcx*8 + 8], edx
mov ecx, dword [rsi + 0x3c]
mov rax, qword [rsi + 0x30]
mov rbx, qword [rsp + 0x228]
dec ecx
mov dword [rax + 0x64], ecx
jmp 0x18009675b
inc dword [rbp + 0x54]
mov r9d, dword [rbp + 0x54]
xor edx, edx
xor r8d, r8d
mov dword [rsp + 0x88], edx
mov dword [rsp + 0x20], edx
lea edx, [r8 + 0x19]
mov rcx, rsi
mov dword [rdi + rax + 0x3c], r9d
call fcn.180042780
mov dword [rsp + 0xa0], eax
lea ecx, [rax + 1]
mov rax, qword [rsp + 0x90]
test byte [rdi + rax + 0x48], 2
mov dword [rdi + rax + 0x38], ecx
jne 0x18009668f
mov rcx, rbp
call fcn.18004c1d0
mov dword [rsp + 0x88], eax
mov rax, qword [rsp + 0x90]
mov ecx, dword [rdi + rax + 0x50]
mov rdx, qword [rsp + 0x50]
mov byte [rsp + 0x148], 0xc
mov dword [rsp + 0x14c], ecx
xor ecx, ecx
mov byte [rsp + 0x149], 0
mov dword [rsp + 0x150], ecx
mov dword [rsp + 0x154], ecx
movzx ecx, byte [rbp + 0x204]
mov byte [rdi + rax + 0x4c], cl
lea r8, [rsp + 0x148]
mov rcx, rbp
call fcn.180096280
mov rax, qword [rsp + 0x50]
mov rcx, qword [rax + 0x20]
call fcn.180013460
mov rdx, qword [rsp + 0x90]
mov rcx, qword [rdi + rdx + 0x28]
mov word [rcx + 0x38], ax
mov eax, dword [rsp + 0x88]
test eax, eax
je 0x180096726
mov r8d, dword [rsi + 0x3c]
cmp r8d, eax
jbe 0x18009671a
lea rcx, [rax + rax*2]
mov rax, qword [rsi + 8]
mov dword [rax + rcx*8 + 8], r8d
mov ecx, dword [rsi + 0x3c]
mov rax, qword [rsi + 0x30]
dec ecx
mov dword [rax + 0x64], ecx
mov r8d, dword [rdi + rdx + 0x3c]
xor eax, eax
xor r9d, r9d
lea edx, [rax + 0x12]
mov rcx, rsi
mov dword [rsp + 0x20], eax
call fcn.180042780
mov r11d, eax
mov eax, dword [rsp + 0xa0]
cmp dword [rsi + 0x3c], eax
jbe 0x18009675b
mov rcx, qword [rsi + 8]
lea rdx, [rax + rax*2]
mov dword [rcx + rdx*8 + 4], r11d
xor eax, eax
mov dword [rbp + 0x44], eax
mov byte [rbp + 0x1f], al
mov rax, qword [rsp + 0x70]
cmp byte [rax + 0x51], 0
jne 0x1800983c7
mov rcx, rbx
call fcn.1800291c0
sub dword [rbp + 0x1fc], eax
mov rax, qword [rsp + 0x230]
mov rcx, qword [rbx + 0x28]
cmp byte [rax], 8
mov qword [rsp + 0x90], rcx
jbe 0x1800967aa
mov rax, qword [rbx + 0x48]
mov qword [rsp + 0x78], rax
mov qword [rsp + 0x128], rax
xor edx, edx
mov eax, dword [rsp + 0x220]
mov rdi, qword [rsp + 0x60]
inc eax
inc rdi
cmp qword [rbx + 0x50], 0
mov dword [rsp + 0x220], eax
mov qword [rsp + 0x60], rdi
je 0x180096450
mov rdi, qword [rsp + 0x90]
or rcx, 0xffffffffffffffff
mov rax, qword [rbx + 0x30]
mov r9, qword [rbx]
mov rdx, qword [rbx + 0x40]
mov qword [rsp + 0xa8], rax
mov rax, qword [rbx + 0x38]
mov qword [rsp + 0x68], r9
mov qword [rsp + 0x50], rax
movzx eax, byte [rbx + 0xa]
mov qword [rsp + 0x168], rdx
and al, 1
cmp qword [rbx + 0x50], 0
mov byte [rsp + 0xc8], al
je 0x180096849
mov r8, qword [rsp + 0x230]
mov rdx, rbx
mov rcx, rbp
call fcn.180074a20
mov edx, dword [rsp + 0x120]
mov dword [rbp + 0x200], edx
add rsp, 0x1f8
pop rdi
pop rsi
pop rbp
pop rbx
ret
movzx eax, byte [rbx + 0xa]
and al, 5
cmp al, 1
jne 0x18009688e
mov r8d, ecx
mov rcx, qword [rsp + 0x78]
mov rdx, r9
call fcn.18000fbb0
test eax, eax
jne 0x180096889
mov rdx, qword [rbx]
mov rcx, qword [rsp + 0x70]
mov eax, 0xfffe
and word [rbx + 0xa], ax
xor r8d, r8d
call fcn.180036ec0
mov qword [rsp + 0x50], rax
mov qword [rbx + 0x38], rax
mov r9, qword [rsp + 0x68]
mov rax, qword [rsp + 0x78]
test rax, rax
je 0x18009699b
mov r9d, dword [r9]
xor r8d, r8d
mov rdx, rax
mov rcx, rbp
call fcn.18006a140
mov r8d, dword [rbp + 0x50]
mov qword [rsp + 0x220], rax
mov rax, qword [rsp + 0x68]
lea ecx, [r8 + 1]
mov dword [rbp + 0x50], ecx
mov edx, dword [rax]
mov rax, qword [rsp + 0x78]
mov ecx, dword [rax]
xor eax, eax
mov dword [rsp + 0x134], r8d
lea r9d, [rdx + rcx + 1]
lea edx, [rax + 0x39]
mov rcx, rsi
mov dword [rsp + 0x20], eax
call fcn.180042780
mov r8, qword [rsi + 8]
mov rcx, qword [rsi]
mov edx, eax
mov dword [rsp + 0x9c], eax
mov qword [rsp + 0x60], r8
test r8, r8
je 0x180096980
cmp byte [rcx + 0x51], 0
jne 0x180096980
test eax, eax
jns 0x180096915
mov eax, dword [rsi + 0x3c]
dec eax
cdqe
lea r9, [rax + rax*2]
mov qword [rsp + 0x160], r9
movsx edx, byte [r8 + r9*8 + 1]
mov r8, qword [r8 + r9*8 + 0x10]
call fcn.180046990
mov rax, qword [rsp + 0x60]
mov rcx, qword [rsp + 0x160]
mov r8, qword [rsp + 0x220]
xor edx, edx
mov qword [rax + rcx*8 + 0x10], rdx
test r8, r8
jne 0x180096966
mov qword [rax + rcx*8 + 0x10], rdx
mov byte [rax + rcx*8 + 1], dl
mov eax, dword [rsp + 0x9c]
jmp 0x1800969a5
mov qword [rax + rcx*8 + 0x10], r8
mov byte [rax + rcx*8 + 1], 0xfa
mov eax, dword [rsp + 0x9c]
jmp 0x1800969a5
mov r8, qword [rsp + 0x220]
mov edx, 0xfffffffa
call fcn.180046990
mov eax, dword [rsp + 0x9c]
jmp 0x1800969a5
or eax, 0xffffffff
mov dword [rsp + 0x9c], eax
mov dword [rsp + 0x140], eax
mov rax, qword [rsp + 0x230]
cmp byte [rax], 0xc
jne 0x1800969d8
mov rcx, qword [rsp + 0x68]
mov r8d, dword [rax + 4]
xor edx, edx
mov r9d, dword [rcx]
mov dword [rsp + 0x20], edx
mov edx, 0x39
mov rcx, rsi
call fcn.180042780
mov rcx, rsi
call fcn.180042710
movabs rcx, 0x7fffffffffffffff
mov rdx, rbx
mov qword [rbx + 0x20], rcx
mov r8d, eax
mov rcx, rbp
mov dword [rsp + 0x160], eax
call fcn.180050f30
cmp dword [rbx + 0xc], 0
jne 0x180096a3e
movsxd rax, dword [rsp + 0x9c]
test eax, eax
js 0x180096a3e
mov rcx, qword [rsi]
cmp byte [rcx + 0x51], 0
je 0x180096a27
lea rax, [0x18010ed60]
jmp 0x180096a33
lea rcx, [rax + rax*2]
mov rax, qword [rsi + 8]
lea rax, [rax + rcx*8]
or byte [rsp + 0x144], 1
mov byte [rax], 0x3a
test byte [rbx + 0xa], 1
je 0x180096b3f
mov ebx, dword [rbp + 0x50]
mov rdx, qword [rsp + 0x228]
xor r9d, r9d
lea eax, [rbx + 1]
xor r8d, r8d
mov rcx, rbp
mov dword [rbp + 0x50], eax
mov rdx, qword [rdx]
mov dword [rsp + 0xcc], ebx
call fcn.18006a140
xor r9d, r9d
mov r8d, ebx
mov qword [rsp + 0x60], rax
xor eax, eax
mov rcx, rsi
lea edx, [rax + 0x39]
mov dword [rsp + 0x20], eax
call fcn.180042780
mov rbx, qword [rsi + 8]
mov rcx, qword [rsi]
mov dword [rsp + 0x220], eax
mov edx, eax
test rbx, rbx
je 0x180096b00
cmp byte [rcx + 0x51], 0
jne 0x180096b00
test eax, eax
jns 0x180096ab1
mov edx, dword [rsi + 0x3c]
dec edx
movsxd rax, edx
lea r8, [rax + rax*2]
mov qword [rsp + 0xa0], r8
movsx edx, byte [rbx + r8*8 + 1]
mov r8, qword [rbx + r8*8 + 0x10]
call fcn.180046990
mov rax, qword [rsp + 0xa0]
mov r8, qword [rsp + 0x60]
xor ecx, ecx
mov qword [rbx + rax*8 + 0x10], rcx
test r8, r8
jne 0x180096af4
mov qword [rbx + rax*8 + 0x10], rcx
mov byte [rbx + rax*8 + 1], cl
jmp 0x180096b0f
mov qword [rbx + rax*8 + 0x10], r8
mov byte [rbx + rax*8 + 1], 0xfa
jmp 0x180096b0f
mov r8, qword [rsp + 0x60]
mov edx, 0xfffffffa
call fcn.180046990
mov rdx, qword [rsi + 8]
mov eax, dword [rsp + 0x220]
mov dword [rsp + 0xd0], eax
test rdx, rdx
je 0x180096b33
movsxd rax, dword [rsi + 0x3c]
lea rcx, [rax + rax*2]
mov byte [rdx + rcx*8 - 0x15], 8
mov rbx, qword [rsp + 0x228]
mov al, 3
jmp 0x180096b41
xor al, al
cmp dword [rsp + 0x238], 0
mov r9, qword [rsp + 0x50]
mov byte [rsp + 0xc9], al
mov dword [rsp + 0xb4], eax
jne 0x180096c8a
test r9, r9
jne 0x180096c8a
movzx eax, byte [rsp + 0xc8]
mov r9, qword [rsp + 0x78]
mov r8, qword [rsp + 0xa8]
neg al
mov rdx, rdi
sbb cx, cx
xor eax, eax
mov dword [rsp + 0x30], eax
mov rax, qword [rbx]
and cx, 0x400
mov word [rsp + 0x28], cx
mov rcx, rbp
mov qword [rsp + 0x20], rax
call fcn.180095090
mov rdi, rax
test rax, rax
je 0x1800983b9
movzx ecx, word [rax + 0x30]
call fcn.1800133d0
cmp rax, qword [rbx + 0x20]
jae 0x180096bc7
mov qword [rbx + 0x20], rax
cmp byte [rsp + 0xc8], 0
je 0x180096bf2
movzx eax, byte [rdi + 0x38]
mov ecx, dword [rsp + 0xb4]
movzx ecx, cl
test al, al
cmovne ecx, eax
mov dword [rsp + 0xb4], ecx
mov byte [rsp + 0xc9], cl
mov rcx, qword [rsp + 0x78]
test rcx, rcx
je 0x180096c1a
movsx eax, byte [rdi + 0x34]
cmp eax, dword [rcx]
mov dword [rsp + 0x130], eax
mov eax, 0
cmove rcx, rax
mov qword [rsp + 0x128], rcx
mov eax, dword [rsp + 0x9c]
test eax, eax
js 0x180096c34
test rcx, rcx
jne 0x180096c34
mov edx, eax
mov rcx, rsi
call fcn.18004d630
mov eax, dword [rdi + 0x44]
mov r8, qword [rsp + 0x68]
or r9d, 0xffffffff
mov dword [rsp + 0x40], eax
mov eax, dword [rdi + 0x40]
mov rdx, rbx
mov dword [rsp + 0x38], eax
mov rax, qword [rsp + 0x230]
mov rcx, rbp
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0xc8]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x128]
mov qword [rsp + 0x20], rax
call fcn.18006ce80
mov rcx, rdi
call fcn.180047fe0
jmp 0x180098313
xor edx, edx
mov dword [rsp + 0x58], edx
mov dword [rsp + 0x80], edx
test r9, r9
je 0x180096cee
mov rax, qword [rbx]
mov ecx, dword [rax]
mov rax, qword [rax + 8]
test ecx, ecx
jle 0x180096cbd
add rax, 0x22
nop dword [rax]
dec ecx
mov word [rax], dx
add rax, 0x28
test ecx, ecx
jg 0x180096cb0
mov eax, dword [r9]
mov rcx, qword [r9 + 8]
test eax, eax
jle 0x180096cdd
add rcx, 0x22
nop dword [rax]
dec eax
mov word [rcx], dx
add rcx, 0x28
test eax, eax
jg 0x180096cd0
cmp qword [rbx + 0x20], 0x64
jbe 0x180096cf6
mov qword [rbx + 0x20], 0x64
jmp 0x180096cf6
mov qword [rbx + 0x20], 1
mov rdx, qword [rsp + 0x78]
or r8d, 0xffffffff
mov rcx, r9
call fcn.18000fbb0
xor edx, edx
test eax, eax
mov ecx, edx
mov eax, 1
cmove ecx, eax
mov dword [rsp + 0x84], ecx
mov rcx, rsi
call fcn.180042710
mov ecx, dword [rbp + 0x54]
inc ecx
mov dword [rsp + 0x98], eax
xor eax, eax
mov qword [rsp + 0x180], rax
mov qword [rsp + 0x188], rax
mov qword [rsp + 0x198], rax
mov dword [rsp + 0xf0], ecx
mov rcx, qword [rsp + 0x50]
mov qword [rsp + 0x190], rax
mov qword [rsp + 0x1a0], rax
mov qword [rsp + 0x1a8], rax
mov qword [rsp + 0x1b0], rax
lea rax, [rsp + 0xe0]
mov qword [rsp + 0x180], rbp
mov qword [rsp + 0x188], rdi
mov qword [rsp + 0x198], rax
test rcx, rcx
je 0x180096d9f
mov eax, dword [rcx]
jmp 0x180096da1
xor eax, eax
mov dword [rsp + 0xec], eax
mov rax, qword [rsp + 0x68]
mov qword [rsp + 0xf8], rcx
test rax, rax
je 0x180096dca
lea rcx, [rsp + 0x180]
mov rdx, rax
call fcn.18004bc70
mov rax, qword [rsp + 0x78]
test rax, rax
je 0x180096de4
lea rcx, [rsp + 0x180]
mov rdx, rax
call fcn.18004bc70
mov rax, qword [rsp + 0x168]
test rax, rax
je 0x180096e61
xor ecx, ecx
mov rdx, rax
mov qword [rsp + 0x1b8], rcx
mov qword [rsp + 0x1c0], rcx
mov qword [rsp + 0x1e0], rcx
mov qword [rsp + 0x1c8], rcx
mov qword [rsp + 0x1d0], rcx
mov qword [rsp + 0x1d8], rcx
lea rcx, [fcn.1800412c0]
mov qword [rsp + 0x1b8], rcx
lea rcx, [0x18000fb30]
mov qword [rsp + 0x1c0], rcx
lea rcx, [rsp + 0x180]
mov qword [rsp + 0x1e0], rcx
lea rcx, [rsp + 0x1b8]
call fcn.180022f60
mov r8d, dword [rsp + 0x118]
mov eax, dword [rsp + 0x108]
xor r10d, r10d
mov edx, r10d
mov dword [rsp + 0x10c], eax
mov dword [rsp + 0x220], edx
test r8d, r8d
jle 0x180096f35
movzx r8d, word [rsp + 0x1b0]
mov r9d, dword [rsp + 0x118]
mov rbx, r10
mov edi, 0xfff7
nop word [rax + rax]
mov rax, qword [rsp + 0x110]
or r8w, 8
mov word [rsp + 0x1b0], r8w
mov rcx, qword [rbx + rax]
mov rax, qword [rcx + 0x20]
test rax, rax
je 0x180096efb
lea rcx, [rsp + 0x180]
mov rdx, rax
call fcn.18004bc70
mov r8w, word [rsp + 0x1b0]
mov r9d, dword [rsp + 0x118]
mov edx, dword [rsp + 0x220]
inc edx
and r8w, di
add rbx, 0x18
cmp edx, r9d
mov word [rsp + 0x1b0], r8w
mov dword [rsp + 0x220], edx
jl 0x180096eb0
mov rbx, qword [rsp + 0x228]
mov rdi, qword [rsp + 0x90]
mov r8d, dword [rsp + 0x118]
xor r10d, r10d
mov eax, dword [rbp + 0x54]
mov dword [rsp + 0xf4], eax
mov rax, qword [rsp + 0x70]
cmp byte [rax + 0x51], 0
jne 0x1800983c7
mov rcx, qword [rsp + 0x50]
test rcx, rcx
je 0x180097e5b
mov eax, dword [rbp + 0x50]
mov r9d, dword [rsp + 0x108]
mov rdx, rcx
mov dword [rsp + 0xe4], eax
inc eax
xor r8d, r8d
mov rcx, rbp
mov dword [rbp + 0x50], eax
call fcn.18006a140
mov r9d, dword [rsp + 0xec]
mov r8d, dword [rsp + 0xe4]
mov qword [rsp + 0x60], rax
xor eax, eax
mov rcx, rsi
lea edx, [rax + 0x3a]
mov dword [rsp + 0x20], eax
call fcn.180042780
mov r8, qword [rsi + 8]
mov rcx, qword [rsi]
mov dword [rsp + 0xa0], eax
mov edx, eax
mov qword [rsp + 0x220], r8
test r8, r8
je 0x180097030
cmp byte [rcx + 0x51], 0
jne 0x180097030
test eax, eax
jns 0x180096fd3
mov edx, dword [rsi + 0x3c]
dec edx
movsxd rax, edx
lea r9, [rax + rax*2]
mov qword [rsp + 0x238], r9
movsx edx, byte [r8 + r9*8 + 1]
mov r8, qword [r8 + r9*8 + 0x10]
call fcn.180046990
mov rax, qword [rsp + 0x220]
mov rcx, qword [rsp + 0x238]
mov r8, qword [rsp + 0x60]
xor edx, edx
mov qword [rax + rcx*8 + 0x10], rdx
test r8, r8
jne 0x18009701e
mov qword [rax + rcx*8 + 0x10], rdx
mov byte [rax + rcx*8 + 1], dl
jmp 0x18009703f
mov qword [rax + rcx*8 + 0x10], r8
mov byte [rax + rcx*8 + 1], 0xfa
jmp 0x18009703f
mov r8, qword [rsp + 0x60]
mov edx, 0xfffffffa
call fcn.180046990
mov eax, dword [rbp + 0x54]
mov rcx, rsi
inc eax
mov dword [rsp + 0x220], eax
add eax, 2
mov dword [rbp + 0x54], eax
call fcn.180042710
inc dword [rbp + 0x54]
mov dword [rsp + 0xbc], eax
mov eax, dword [rbp + 0x54]
mov rcx, rsi
mov dword [rsp + 0x88], eax
call fcn.180042710
mov edx, dword [rbp + 0x54]
mov r9d, dword [rsp + 0x220]
mov dword [rsp + 0xc0], eax
lea eax, [rdx + 1]
mov dword [rsp + 0xc4], eax
mov rax, qword [rsp + 0x50]
inc r9d
mov ecx, dword [rax]
lea r8d, [rdx + rcx]
mov dword [rbp + 0x54], r8d
lea ecx, [r8 + 1]
add r8d, dword [rax]
xor eax, eax
mov dword [rbp + 0x54], r8d
mov dword [rsp + 0x238], ecx
lea edx, [rax + 0x19]
xor r8d, r8d
mov rcx, rsi
mov dword [rsp + 0x20], eax
call fcn.180042780
mov r9d, dword [rsp + 0x220]
xor eax, eax
lea edx, [rax + 0x19]
xor r8d, r8d
mov rcx, rsi
mov dword [rsp + 0x20], eax
call fcn.180042780
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, rsi
mov dword [rsp + 0x20], eax
call fcn.180042780
mov r9d, dword [rsp + 0xc0]
mov r8d, dword [rsp + 0x88]
xor eax, eax
mov rcx, rsi
lea edx, [rax + 0x11]
mov dword [rsp + 0x20], eax
call fcn.180042780
mov r11d, dword [rsp + 0x84]
mov r9, qword [rsp + 0x50]
mov r8, qword [rsp + 0xa8]
neg r11d
mov ecx, 0x100
sbb ax, ax
mov rdx, rdi
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, rbp
call fcn.180095090
mov rdx, rax
mov qword [rsp + 0xa8], rax
test rax, rax
je 0x1800983b9
movsx ecx, byte [rax + 0x34]
mov rax, qword [rsp + 0x50]
mov edi, 0xa
cmp ecx, dword [rax]
jne 0x1800971aa
xor r8d, r8d
mov ecx, r8d
mov dword [rsp + 0xb8], ecx
jmp 0x180097508
cmp byte [rsp + 0xc8], 0
je 0x1800971c1
test byte [rbx + 0xa], 1
lea rdx, str.DISTINCT
je 0x1800971c8
lea rdx, str.GROUP_BY
mov rcx, rbp
call fcn.180051ad0
mov r10, qword [rsp + 0x50]
mov edx, dword [rsp + 0x108]
mov ecx, dword [r10]
mov dword [rsp + 0xb8], 1
mov dword [rsp + 0x80], ecx
mov edi, ecx
mov dword [rsp + 0x78], ecx
test edx, edx
jle 0x18009721d
mov rax, qword [rsp + 0x100]
add rax, 0x10
cmp dword [rax], ecx
jl 0x18009720f
inc edi
inc ecx
add rax, 0x20
sub rdx, 1
jne 0x180097207
mov dword [rsp + 0x78], edi
mov ecx, dword [rbp + 0x44]
mov ebx, dword [rbp + 0x48]
cmp edi, ecx
mov dword [rsp + 0x58], ebx
jg 0x180097238
lea eax, [rdi + rbx]
sub ecx, edi
mov dword [rbp + 0x48], eax
mov dword [rbp + 0x44], ecx
jmp 0x180097247
mov eax, dword [rbp + 0x54]
lea ebx, [rax + 1]
add eax, edi
mov dword [rsp + 0x58], ebx
mov dword [rbp + 0x54], eax
lea rax, [rbp + 0x88]
xor esi, esi
lea rcx, [rax + 0xc]
lea r8d, [rsi + 0xa]
mov edx, dword [rcx]
test edx, edx
je 0x18009727c
cmp byte [rcx - 6], sil
je 0x18009727a
movzx eax, byte [rbp + 0x1f]
cmp al, 8
jae 0x180097276
movzx eax, al
mov dword [rbp + rax*4 + 0x24], edx
inc byte [rbp + 0x1f]
mov byte [rcx - 6], sil
mov dword [rcx], esi
add rcx, 0x14
sub r8, 1
jne 0x180097258
xor r9d, r9d
mov r8d, ebx
mov rdx, r10
mov rcx, rbp
call fcn.18004bd90
mov ecx, dword [rsp + 0x108]
mov rsi, qword [rsp + 0x178]
xor edx, edx
mov eax, edx
mov dword [rsp + 0xb0], edx
test ecx, ecx
jle 0x180097351
mov r8d, dword [rsp + 0x80]
lea edi, [rbx + r8]
mov rbx, rdx
nop dword [rax + rax]
mov rdx, qword [rsp + 0x100]
cmp dword [rbx + rdx + 0x10], r8d
jl 0x18009733c
mov r9d, dword [rbx + rdx + 8]
mov r8d, dword [rbx + rdx + 0xc]
mov rdx, qword [rbx + rdx]
mov rcx, rbp
mov byte [rsp + 0x28], 0
mov dword [rsp + 0x20], edi
call fcn.180076bc0
cmp edi, eax
je 0x180097319
xor ecx, ecx
mov r9d, edi
mov r8d, eax
lea edx, [rcx + 0x22]
mov dword [rsp + 0x20], ecx
mov rcx, rsi
call fcn.180042780
mov r8d, dword [rsp + 0x80]
mov ecx, dword [rsp + 0x108]
mov eax, dword [rsp + 0xb0]
inc r8d
inc edi
mov dword [rsp + 0x80], r8d
inc eax
add rbx, 0x20
cmp eax, ecx
mov dword [rsp + 0xb0], eax
jl 0x1800972d0
mov edi, dword [rsp + 0x78]
movzx eax, byte [rbp + 0x1f]
test al, al
jne 0x180097361
inc dword [rbp + 0x54]
mov ebx, dword [rbp + 0x54]
jmp 0x18009736d
dec al
movzx eax, al
mov byte [rbp + 0x1f], al
mov ebx, dword [rbp + rax*4 + 0x24]
mov r8d, dword [rsp + 0x58]
mov r9d, edi
mov edx, 0x31
mov rcx, rsi
mov dword [rsp + 0x20], ebx
call fcn.180042780
mov r8d, dword [rsp + 0xe4]
xor eax, eax
lea edx, [rax + 0x6d]
mov r9d, ebx
mov rcx, rsi
mov dword [rsp + 0x20], eax
call fcn.180042780
xor r10d, r10d
lea r8, [rbp + 0x88]
test ebx, ebx
je 0x1800973e0
movzx edx, byte [rbp + 0x1f]
cmp dl, 8
jae 0x1800973e0
mov ecx, r10d
mov rax, r8
nop
cmp dword [rax + 0xc], ebx
je 0x1800973dc
inc ecx
add rax, 0x14
cmp ecx, 0xa
jl 0x1800973c0
movzx eax, dl
mov dword [rbp + rax*4 + 0x24], ebx
inc byte [rbp + 0x1f]
jmp 0x1800973e0
mov byte [rax + 6], 1
mov eax, dword [rsp + 0x58]
lea rcx, [r8 + 0xc]
mov r8d, 0xa
lea r9d, [rax + rdi - 1]
mov edx, dword [rcx]
cmp edx, eax
jl 0x180097421
cmp edx, r9d
jg 0x180097421
cmp byte [rcx - 6], 0
je 0x18009741e
movzx eax, byte [rbp + 0x1f]
cmp al, 8
jae 0x180097416
movzx eax, al
mov dword [rbp + rax*4 + 0x24], edx
inc byte [rbp + 0x1f]
mov eax, dword [rsp + 0x58]
mov byte [rcx - 6], 0
mov dword [rcx], r10d
add rcx, 0x14
sub r8, 1
jne 0x1800973f3
cmp edi, dword [rbp + 0x44]
jle 0x180097436
mov dword [rbp + 0x44], edi
mov dword [rbp + 0x48], eax
mov rcx, qword [rsp + 0xa8]
call fcn.180047fe0
mov ebx, dword [rbp + 0x50]
lea eax, [rbx + 1]
mov dword [rsp + 0x58], ebx
mov dword [rsp + 0xe8], ebx
mov dword [rbp + 0x50], eax
movzx eax, byte [rbp + 0x1f]
test al, al
jne 0x180097467
inc dword [rbp + 0x54]
mov eax, dword [rbp + 0x54]
jmp 0x180097473
dec al
movzx eax, al
mov byte [rbp + 0x1f], al
mov eax, dword [rbp + rax*4 + 0x24]
mov r9d, eax
mov r8d, ebx
mov edx, 0x3c
mov rcx, rsi
mov dword [rsp + 0x80], eax
mov dword [rsp + 0x20], edi
call fcn.180042780
mov r9d, dword [rsp + 0x98]
mov r8d, dword [rsp + 0xe4]
xor ebx, ebx
mov rcx, rsi
lea edx, [rbx + 0x6a]
mov dword [rsp + 0x20], ebx
call fcn.180042780
lea rax, [rbp + 0x88]
mov edi, 0xa
mov byte [rsp + 0xe1], 1
mov r8, rdi
lea rcx, [rax + 0xc]
nop dword [rax]
mov edx, dword [rcx]
test edx, edx
je 0x1800974f2
cmp byte [rcx - 6], bl
je 0x1800974f0
movzx eax, byte [rbp + 0x1f]
cmp al, 8
jae 0x1800974ed
movzx eax, al
mov dword [rbp + rax*4 + 0x24], edx
inc byte [rbp + 0x1f]
mov byte [rcx - 6], bl
mov dword [rcx], ebx
add rcx, 0x14
sub r8, 1
jne 0x1800974d0
mov rdx, qword [rsp + 0xa8]
lea ecx, [r8 + 1]
cmp dword [rsp + 0x84], 0
je 0x18009753d
mov rax, qword [rsp + 0x70]
test byte [rax + 0x4c], 4
jne 0x18009753d
test ecx, ecx
jne 0x180097526
cmp byte [rdx + 0x35], cl
je 0x18009753d
mov edx, dword [rsp + 0x9c]
mov rcx, rsi
mov qword [rsp + 0x128], r8
call fcn.18004d630
mov eax, dword [rsi + 0x3c]
lea rcx, [rbp + 0x94]
mov r8, rdi
mov dword [rsp + 0xb0], eax
xor ebx, ebx
mov edx, dword [rcx]
test edx, edx
je 0x180097575
cmp byte [rcx - 6], bl
je 0x180097573
movzx eax, byte [rbp + 0x1f]
cmp al, 8
jae 0x180097570
movzx eax, al
mov dword [rbp + rax*4 + 0x24], edx
inc byte [rbp + 0x1f]
mov byte [rcx - 6], bl
mov dword [rcx], ebx
add rcx, 0x14
sub r8, 1
jne 0x180097553
movsxd rdi, dword [rsp + 0xb8]
mov ebx, dword [rsp + 0x58]
test edi, edi
je 0x1800975b0
mov r9d, dword [rsp + 0x80]
mov r8d, dword [rsp + 0xe4]
mov edx, 0x64
mov rcx, rsi
mov dword [rsp + 0x20], ebx
call fcn.180042780
mov rcx, qword [rsp + 0x50]
xor edx, edx
mov rax, rdi
cmp dword [rcx], edx
mov ebx, edx
mov qword [rsp + 0x78], rax
jle 0x180097678
mov rdi, rdx
nop dword [rax]
test rax, rax
je 0x18009763d
mov ecx, dword [rsi + 0x3c]
mov rax, qword [rsi + 0x30]
cmp dword [rax + 0x60], ecx
mov dword [rsp + 0x84], ecx
jg 0x180097600
mov edx, 1
mov rcx, rsi
call fcn.18003af10
test eax, eax
jne 0x180097660
mov ecx, dword [rsp + 0x84]
inc dword [rsi + 0x3c]
movsxd rax, ecx
mov rcx, qword [rsi + 8]
lea rdx, [rax + rax*2]
mov eax, dword [rsp + 0x58]
mov dword [rcx + rdx*8 + 4], eax
mov eax, dword [rsp + 0x238]
mov byte [rcx + rdx*8], 0x2f
add eax, ebx
mov byte [rcx + rdx*8 + 3], 0
mov dword [rcx + rdx*8 + 8], ebx
mov dword [rcx + rdx*8 + 0xc], eax
xor eax, eax
mov qword [rcx + rdx*8 + 0x10], rax
mov byte [rcx + rdx*8 + 1], al
jmp 0x180097660
mov eax, dword [rsp + 0x238]
mov byte [rsp + 0xe0], 1
mov rdx, qword [rcx + 8]
mov rdx, qword [rdx + rdi]
lea r8d, [rbx + rax]
mov rcx, rbp
call fcn.1800acf90
mov rcx, qword [rsp + 0x50]
mov rax, qword [rsp + 0x78]
inc ebx
add rdi, 0x28
cmp ebx, dword [rcx]
jl 0x1800975d0
mov rax, qword [rsp + 0x60]
test rax, rax
je 0x180097684
inc dword [rax]
mov rax, qword [rsi + 0x30]
movsxd rbx, dword [rsi + 0x3c]
mov edi, dword [rcx]
cmp dword [rax + 0x60], ebx
jg 0x1800976ab
mov edx, 1
mov rcx, rsi
call fcn.18003af10
test eax, eax
je 0x1800976ab
mov ebx, 1
jmp 0x1800976e4
inc dword [rsi + 0x3c]
mov rax, qword [rsi + 8]
mov edx, dword [rsp + 0xc4]
lea rcx, [rbx + rbx*2]
mov dword [rax + rcx*8 + 4], edx
mov edx, dword [rsp + 0x238]
mov byte [rax + rcx*8], 0x2a
mov dword [rax + rcx*8 + 8], edx
xor edx, edx
mov byte [rax + rcx*8 + 3], 0
mov qword [rax + rcx*8 + 0x10], rdx
mov byte [rax + rcx*8 + 1], dl
mov dword [rax + rcx*8 + 0xc], edi
mov rdi, qword [rsi + 8]
mov rcx, qword [rsi]
test rdi, rdi
je 0x180097740
cmp byte [rcx + 0x51], 0
jne 0x180097740
test ebx, ebx
jns 0x1800976ff
mov ebx, dword [rsi + 0x3c]
dec ebx
movsxd rax, ebx
lea rbx, [rax + rax*2]
movsx edx, byte [rdi + rbx*8 + 1]
mov r8, qword [rdi + rbx*8 + 0x10]
call fcn.180046990
mov rax, qword [rsp + 0x60]
xor ecx, ecx
mov qword [rdi + rbx*8 + 0x10], rcx
test rax, rax
jne 0x180097731
mov qword [rdi + rbx*8 + 0x10], rcx
mov byte [rdi + rbx*8 + 1], cl
jmp 0x18009774f
mov qword [rdi + rbx*8 + 0x10], rax
mov byte [rdi + rbx*8 + 1], 0xfa
jmp 0x18009774f
mov r8, qword [rsp + 0x60]
mov edx, 0xfffffffa
call fcn.180046990
movsxd rbx, dword [rsi + 0x3c]
mov rax, qword [rsi + 0x30]
cmp dword [rax + 0x60], ebx
mov dword [rsp + 0x78], ebx
jg 0x180097771
mov edx, 1
mov rcx, rsi
call fcn.18003af10
test eax, eax
jne 0x1800977a2
inc dword [rsi + 0x3c]
mov rcx, qword [rsi + 8]
lea rdx, [rbx + rbx*2]
xor r8d, r8d
lea eax, [rbx + 1]
mov byte [rcx + rdx*8], 0x2b
mov byte [rcx + rdx*8 + 3], 0
mov dword [rcx + rdx*8 + 4], eax
mov dword [rcx + rdx*8 + 8], r8d
mov dword [rcx + rdx*8 + 0xc], eax
mov qword [rcx + rdx*8 + 0x10], r8
mov byte [rcx + rdx*8 + 1], r8b
mov rax, qword [rsp + 0x50]
mov rbx, qword [rbp + 0x10]
mov ecx, dword [rbx + 0x3c]
mov edi, dword [rax]
mov rax, qword [rbx + 0x30]
cmp dword [rax + 0x60], ecx
mov dword [rsp + 0x84], ecx
jg 0x1800977d8
mov edx, 1
mov rcx, rbx
call fcn.18003af10
test eax, eax
jne 0x180097818
mov ecx, dword [rsp + 0x84]
inc dword [rbx + 0x3c]
mov edx, dword [rsp + 0x238]
movsxd rax, ecx
lea rcx, [rax + rax*2]
mov rax, qword [rbx + 8]
xor r9d, r9d
mov dword [rax + rcx*8 + 4], edx
mov edx, dword [rsp + 0xc4]
mov byte [rax + rcx*8], 0x20
mov byte [rax + rcx*8 + 3], 0
mov dword [rax + rcx*8 + 0xc], edi
mov qword [rax + rcx*8 + 0x10], r9
mov dword [rax + rcx*8 + 8], edx
mov byte [rax + rcx*8 + 1], r9b
jmp 0x18009781b
xor r9d, r9d
mov eax, dword [rsp + 0x238]
lea rcx, [rbp + 0x94]
mov esi, 0xa
lea r8d, [rdi + rax - 1]
mov edx, dword [rcx]
cmp edx, eax
jl 0x180097864
cmp edx, r8d
jg 0x180097864
cmp byte [rcx - 6], 0
je 0x180097861
movzx eax, byte [rbp + 0x1f]
cmp al, 8
jae 0x180097856
movzx eax, al
mov dword [rbp + rax*4 + 0x24], edx
inc byte [rbp + 0x1f]
mov eax, dword [rsp + 0x238]
mov byte [rcx - 6], 0
mov dword [rcx], r9d
add rcx, 0x14
sub rsi, 1
jne 0x180097833
mov rsi, qword [rsp + 0x178]
mov edi, 1
mov rax, qword [rsi + 0x30]
movsxd rbx, dword [rsi + 0x3c]
cmp dword [rax + 0x60], ebx
jg 0x180097896
mov edx, edi
mov rcx, rsi
call fcn.18003af10
test eax, eax
jne 0x1800978d2
inc dword [rsi + 0x3c]
mov rax, qword [rsi + 8]
mov edx, dword [rsp + 0x220]
lea rcx, [rbx + rbx*2]
add edx, 2
mov dword [rax + rcx*8 + 4], edx
mov edx, dword [rsp + 0xbc]
mov byte [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 byte [rax + rcx*8 + 1], dl
mov rax, qword [rsi + 0x30]
movsxd rbx, dword [rsi + 0x3c]
cmp dword [rax + 0x60], ebx
jg 0x1800978ed
mov edx, edi
mov rcx, rsi
call fcn.18003af10
test eax, eax
jne 0x180097928
inc dword [rsi + 0x3c]
mov rax, qword [rsi + 8]
mov edx, dword [rsp + 0x220]
lea rcx, [rbx + rbx*2]
inc edx
mov dword [rax + rcx*8 + 4], edx
mov edx, dword [rsp + 0x98]
mov byte [rax + rcx*8], 0x89
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 byte [rax + rcx*8 + 1], dl
mov rax, qword [rsi + 0x30]
movsxd rbx, dword [rsi + 0x3c]
cmp dword [rax + 0x60], ebx
jg 0x180097943
mov edx, edi
mov rcx, rsi
call fcn.18003af10
test eax, eax
jne 0x18009797c
inc dword [rsi + 0x3c]
mov rax, qword [rsi + 8]
mov edx, dword [rsp + 0x88]
lea rcx, [rbx + rbx*2]
mov dword [rax + rcx*8 + 4], edx
mov edx, dword [rsp + 0xc0]
mov byte [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 byte [rax + rcx*8 + 1], dl
mov edx, dword [rsi + 0x3c]
mov eax, dword [rsp + 0x78]
cmp edx, eax
jbe 0x180097993
lea rcx, [rax + rax*2]
mov rax, qword [rsi + 8]
mov dword [rax + rcx*8 + 8], edx
mov ecx, dword [rsi + 0x3c]
mov rax, qword [rsi + 0x30]
lea rdx, [rsp + 0xe0]
dec ecx
mov dword [rax + 0x64], ecx
mov rcx, rbp
call fcn.180069820
mov rax, qword [rsi + 0x30]
movsxd rbx, dword [rsi + 0x3c]
cmp dword [rax + 0x60], ebx
jg 0x1800979ca
mov edx, edi
mov rcx, rsi
call fcn.18003af10
test eax, eax
jne 0x1800979fc
inc dword [rsi + 0x3c]
mov rax, qword [rsi + 8]
mov edx, dword [rsp + 0x220]
lea rcx, [rbx + rbx*2]
mov dword [rax + rcx*8 + 8], edx
xor edx, edx
mov byte [rax + rcx*8], 0x19
mov byte [rax + rcx*8 + 3], 0
mov dword [rax + rcx*8 + 4], edi
mov dword [rax + rcx*8 + 0xc], edx
mov qword [rax + rcx*8 + 0x10], rdx
mov byte [rax + rcx*8 + 1], dl
cmp dword [rsp + 0xb8], 0
je 0x180097a63
mov rax, qword [rsi + 0x30]
movsxd rbx, dword [rsi + 0x3c]
mov edi, dword [rsp + 0xe4]
cmp dword [rax + 0x60], ebx
jg 0x180097a2f
mov edx, 1
mov rcx, rsi
call fcn.18003af10
test eax, eax
jne 0x180097abd
inc dword [rsi + 0x3c]
mov rax, qword [rsi + 8]
mov edx, dword [rsp + 0xb0]
lea rcx, [rbx + rbx*2]
mov dword [rax + rcx*8 + 8], edx
xor edx, edx
mov byte [rax + rcx*8], 5
mov byte [rax + rcx*8 + 3], 0
mov dword [rax + rcx*8 + 4], edi
mov dword [rax + rcx*8 + 0xc], edx
mov qword [rax + rcx*8 + 0x10], rdx
mov byte [rax + rcx*8 + 1], dl
jmp 0x180097abd
mov rcx, qword [rsp + 0xa8]
call fcn.180047fe0
movsxd rax, dword [rsp + 0xa0]
cmp eax, dword [rsi + 0x3c]
jge 0x180097ac2
mov rbx, qword [rsi + 8]
mov rcx, qword [rsi]
lea rdi, [rax + rax*2]
movsx edx, byte [rbx + rdi*8 + 1]
mov r8, qword [rbx + rdi*8 + 0x10]
call fcn.180046990
xor r11d, r11d
mov qword [rbx + rdi*8], r11
mov qword [rbx + rdi*8 + 8], r11
mov qword [rbx + rdi*8 + 0x10], r11
mov byte [rbx + rdi*8], 0x9a
mov eax, dword [rsi + 0x3c]
dec eax
cmp dword [rsp + 0xa0], eax
jne 0x180097abd
mov dword [rsi + 0x3c], eax
mov edi, 1
mov rax, qword [rsi + 0x30]
movsxd rbx, dword [rsi + 0x3c]
cmp dword [rax + 0x60], ebx
jg 0x180097add
mov edx, edi
mov rcx, rsi
call fcn.18003af10
test eax, eax
jne 0x180097b19
inc dword [rsi + 0x3c]
mov rax, qword [rsi + 8]
mov edx, dword [rsp + 0x220]
lea rcx, [rbx + rbx*2]
add edx, 2
mov dword [rax + rcx*8 + 4], edx
mov edx, dword [rsp + 0xbc]
mov byte [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 byte [rax + rcx*8 + 1], dl
mov rax, qword [rsi + 0x30]
movsxd rbx, dword [rsi + 0x3c]
cmp dword [rax + 0x60], ebx
jg 0x180097b34
mov edx, edi
mov rcx, rsi
call fcn.18003af10
test eax, eax
jne 0x180097b6a
inc dword [rsi + 0x3c]
mov rax, qword [rsi + 8]
mov edx, dword [rsp + 0x98]
lea rcx, [rbx + rbx*2]
xor r8d, r8d
mov byte [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
mov byte [rax + rcx*8 + 1], r8b
movsxd rbx, dword [rsi + 0x3c]
mov rax, qword [rsi + 0x30]
cmp dword [rax + 0x60], ebx
mov dword [rsp + 0x238], ebx
jg 0x180097b8c
mov edx, edi
mov rcx, rsi
call fcn.18003af10
test eax, eax
jne 0x180097bc0
inc dword [rsi + 0x3c]
mov rax, qword [rsi + 8]
mov edx, dword [rsp + 0x220]
lea rcx, [rbx + rbx*2]
inc edx
mov dword [rax + rcx*8 + 8], edx
xor edx, edx
mov byte [rax + rcx*8], 0x19
mov byte [rax + rcx*8 + 3], 0
mov dword [rax + rcx*8 + 4], edi
mov dword [rax + rcx*8 + 0xc], edx
mov qword [rax + rcx*8 + 0x10], rdx
mov byte [rax + rcx*8 + 1], dl
mov rax, qword [rsi + 0x30]
movsxd rbx, dword [rsi + 0x3c]
cmp dword [rax + 0x60], ebx
jg 0x180097bdb
mov edx, edi
mov rcx, rsi
call fcn.18003af10
test eax, eax
jne 0x180097c10
inc dword [rsi + 0x3c]
mov rax, qword [rsi + 8]
mov edx, dword [rsp + 0x220]
lea rcx, [rbx + rbx*2]
add edx, 2
mov dword [rax + rcx*8 + 4], edx
xor edx, edx
mov byte [rax + rcx*8], 0x12
mov dword [rax + rcx*8 + 8], edx
mov dword [rax + rcx*8 + 0xc], edx
mov qword [rax + rcx*8 + 0x10], rdx
mov byte [rax + rcx*8 + 1], dl
mov byte [rax + rcx*8 + 3], 0
mov r8, qword [rsi + 0x30]
or eax, 0xffffffff
sub eax, dword [rsp + 0xbc]
js 0x180097c35
mov rdx, qword [r8 + 0x80]
test rdx, rdx
je 0x180097c35
movsxd rcx, eax
mov eax, dword [rsi + 0x3c]
mov dword [rdx + rcx*4], eax
mov eax, dword [rsi + 0x3c]
dec eax
mov dword [r8 + 0x64], eax
mov rax, qword [rsi + 0x30]
movsxd rbx, dword [rsi + 0x3c]
cmp dword [rax + 0x60], ebx
jg 0x180097c59
mov edx, edi
mov rcx, rsi
call fcn.18003af10
test eax, eax
jne 0x180097c8e
inc dword [rsi + 0x3c]
mov rcx, qword [rsi + 8]
mov eax, dword [rsp + 0x220]
lea rdx, [rbx + rbx*2]
mov dword [rcx + rdx*8 + 4], eax
lea eax, [rbx + 2]
mov byte [rcx + rdx*8], 0x89
mov dword [rcx + rdx*8 + 8], eax
xor eax, eax
mov byte [rcx + rdx*8 + 3], 0
mov dword [rcx + rdx*8 + 0xc], eax
mov qword [rcx + rdx*8 + 0x10], rax
mov byte [rcx + rdx*8 + 1], al
mov rax, qword [rsi + 0x30]
movsxd rdi, dword [rsi + 0x3c]
cmp dword [rax + 0x60], edi
jg 0x180097cac
mov edx, 1
mov rcx, rsi
call fcn.18003af10
test eax, eax
jne 0x180097ce1
inc dword [rsi + 0x3c]
mov rax, qword [rsi + 8]
mov edx, dword [rsp + 0x220]
lea rcx, [rdi + rdi*2]
add edx, 2
mov dword [rax + rcx*8 + 4], edx
xor edx, edx
mov byte [rax + rcx*8], 0x12
mov dword [rax + rcx*8 + 8], edx
mov dword [rax + rcx*8 + 0xc], edx
mov qword [rax + rcx*8 + 0x10], rdx
mov byte [rax + rcx*8 + 1], dl
mov byte [rax + rcx*8 + 3], 0
lea rdx, [rsp + 0xe0]
mov rcx, rbp
call fcn.180050170
mov rdx, qword [rsp + 0x168]
inc ebx
mov r8d, ebx
mov r9d, 0x10
mov rcx, rbp
call fcn.1800aa5e0
mov r11d, dword [rsp + 0x238]
mov rax, qword [rsp + 0x230]
mov dword [rsp + 0x40], r11d
mov dword [rsp + 0x38], ebx
mov rbx, qword [rsp + 0x228]
mov r8, qword [rbx]
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0xc8]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x128]
or r9d, 0xffffffff
mov rdx, rbx
mov rcx, rbp
mov qword [rsp + 0x20], rax
call fcn.18006ce80
mov rax, qword [rsi + 0x30]
movsxd rdi, dword [rsi + 0x3c]
cmp dword [rax + 0x60], edi
jg 0x180097d7c
mov edx, 1
mov rcx, rsi
call fcn.18003af10
test eax, eax
jne 0x180097db1
inc dword [rsi + 0x3c]
mov rax, qword [rsi + 8]
mov edx, dword [rsp + 0x220]
lea rcx, [rdi + rdi*2]
add edx, 2
mov dword [rax + rcx*8 + 4], edx
xor edx, edx
mov byte [rax + rcx*8], 0x12
mov dword [rax + rcx*8 + 8], edx
mov dword [rax + rcx*8 + 0xc], edx
mov qword [rax + rcx*8 + 0x10], rdx
mov byte [rax + rcx*8 + 1], dl
mov byte [rax + rcx*8 + 3], 0
mov r8, qword [rsi + 0x30]
or eax, 0xffffffff
sub eax, dword [rsp + 0xc0]
js 0x180097dd6
mov rdx, qword [r8 + 0x80]
test rdx, rdx
je 0x180097dd6
movsxd rcx, eax
mov eax, dword [rsi + 0x3c]
mov dword [rdx + rcx*4], eax
mov eax, dword [rsi + 0x3c]
dec eax
mov dword [r8 + 0x64], eax
mov ecx, dword [rsp + 0x108]
mov eax, dword [rsp + 0x118]
add ecx, eax
je 0x180097e01
lea rdx, [rsp + 0xe0]
mov rcx, rbp
call fcn.18006ca00
mov rax, qword [rsi + 0x30]
movsxd rdi, dword [rsi + 0x3c]
cmp dword [rax + 0x60], edi
jg 0x180097e23
mov edx, 1
mov rcx, rsi
call fcn.18003af10
test eax, eax
jne 0x1800982e4
inc dword [rsi + 0x3c]
mov rax, qword [rsi + 8]
mov edx, dword [rsp + 0x88]
lea rcx, [rdi + rdi*2]
xor edi, edi
mov byte [rax + rcx*8], 0x12
mov byte [rax + rcx*8 + 3], 0
mov dword [rax + rcx*8 + 4], edx
mov dword [rax + rcx*8 + 8], edi
mov dword [rax + rcx*8 + 0xc], edi
mov qword [rax + rcx*8 + 0x10], rdi
mov byte [rax + rcx*8 + 1], dil
jmp 0x1800982e4
cmp qword [rbx + 0x30], 0
mov qword [rsp + 0x50], r10
jne 0x1800980f8
mov rax, qword [rbx]
cmp dword [rax], 1
jne 0x1800980f8
mov rdx, qword [rbx + 0x28]
cmp dword [rdx], 1
jne 0x1800980f8
cmp qword [rdx + 0x30], 0
jne 0x1800980f8
mov rdx, qword [rdx + 0x28]
mov rax, qword [rax + 8]
test byte [rdx + 0x48], 0x10
mov r9, qword [rax]
mov qword [rsp + 0x60], rdx
jne 0x1800980f8
cmp byte [r9], 0x9b
jne 0x1800980f8
test r8d, r8d
je 0x1800980f8
mov rax, qword [rsp + 0x110]
mov rcx, qword [rax + 8]
mov eax, 0x100
test word [rcx + 2], ax
je 0x1800980f8
test byte [r9 + 4], 0x10
jne 0x1800980f8
mov r9, qword [rdx + 0x70]
mov rax, qword [rbp]
mov ecx, 0xfff0bdc0
mov dword [rsp + 0x220], ecx
test r9, r9
je 0x180097f2d
mov r8d, dword [rax + 0x28]
mov ecx, r10d
mov dword [rsp + 0x220], ecx
test r8d, r8d
jle 0x180097f2d
mov rax, qword [rax + 0x20]
add rax, 0x18
cmp qword [rax], r9
je 0x180097f26
inc ecx
add rax, 0x20
cmp ecx, r8d
jl 0x180097f16
mov dword [rsp + 0x220], ecx
mov eax, dword [rbp + 0x50]
mov qword [rsp + 0xa8], r10
mov rdi, r10
mov dword [rsp + 0x238], eax
inc eax
mov dword [rbp + 0x50], eax
mov eax, dword [rdx + 0x3c]
mov edx, ecx
mov rcx, rbp
mov dword [rsp + 0xa0], eax
call fcn.180091ec0
mov rdx, qword [rsp + 0x60]
xor r9d, r9d
mov r11, qword [rdx]
mov r8d, dword [rdx + 0x3c]
mov edx, dword [rsp + 0x220]
mov rcx, rbp
mov qword [rsp + 0x20], r11
call fcn.180040aa0
mov rdx, qword [rsp + 0x60]
test byte [rdx + 0x48], 0x20
je 0x180097f94
mov rcx, rdx
call fcn.18000f6d0
mov rdi, rax
mov rcx, qword [rdx + 0x10]
test rcx, rcx
je 0x180097fce
nop dword [rax]
test byte [rcx + 0x5c], 4
jne 0x180097fc5
movzx eax, word [rcx + 0x54]
cmp ax, word [rdx + 0x46]
jge 0x180097fc5
cmp qword [rcx + 0x48], 0
jne 0x180097fc5
test rdi, rdi
je 0x180097fc2
cmp ax, word [rdi + 0x54]
jge 0x180097fc5
mov rdi, rcx
mov rcx, qword [rcx + 0x28]
test rcx, rcx
jne 0x180097fa0
test rdi, rdi
je 0x180097ff0
mov eax, dword [rdi + 0x50]
mov rdx, rdi
mov rcx, rbp
mov dword [rsp + 0xa0], eax
call fcn.180068580
mov qword [rsp + 0xa8], rax
mov eax, dword [rsp + 0x220]
mov r9d, dword [rsp + 0xa0]
mov r8d, dword [rsp + 0x238]
mov edx, 0x36
mov rcx, rsi
mov dword [rsp + 0x28], 1
mov dword [rsp + 0x20], eax
call fcn.18004d7b0
mov rax, qword [rsp + 0xa8]
test rax, rax
je 0x1800980a0
mov rcx, qword [rsi + 8]
mov r9, qword [rsi]
mov qword [rsp + 0x220], rcx
test rcx, rcx
je 0x180098090
cmp byte [r9 + 0x51], 0
jne 0x180098090
mov eax, dword [rsi + 0x3c]
dec eax
cdqe
lea rbx, [rax + rax*2]
movsx edx, byte [rcx + rbx*8 + 1]
mov r8, qword [rcx + rbx*8 + 0x10]
mov rcx, r9
call fcn.180046990
mov r11, qword [rsp + 0x220]
mov rax, qword [rsp + 0xa8]
mov qword [r11 + rbx*8 + 0x10], rax
mov byte [r11 + rbx*8 + 1], 0xfa
mov rbx, qword [rsp + 0x228]
jmp 0x1800980a0
mov r8, rax
mov edx, 0xfffffffa
mov rcx, r9
call fcn.180046990
mov r8d, dword [rsp + 0x238]
xor eax, eax
mov edx, 0x32
mov dword [rsp + 0x20], eax
mov rax, qword [rsp + 0x110]
mov rcx, rsi
mov r9d, dword [rax + 0x10]
call fcn.180042780
mov r8d, dword [rsp + 0x238]
xor eax, eax
lea edx, [rax + 0x3d]
xor r9d, r9d
mov rcx, rsi
mov dword [rsp + 0x20], eax
call fcn.180042780
mov rdx, qword [rsp + 0x60]
mov r8, rdi
mov rcx, rbp
call fcn.180050050
jmp 0x180098277
cmp qword [rbx + 0x40], 0
mov qword [rsp + 0x220], r10
mov byte [rsp + 0x228], 0
jne 0x1800981bd
mov rdx, r10
mov qword [rsp + 0x220], rdx
mov qword [rsp + 0x238], rdx
cmp r8d, 1
jne 0x1800981b5
lea rdx, [rsp + 0x238]
lea rcx, [rsp + 0xe0]
call fcn.180019a20
mov byte [rsp + 0x228], al
test al, al
je 0x1800981a3
mov rdx, qword [rsp + 0x238]
mov rcx, qword [rsp + 0x70]
xor r8d, r8d
call fcn.180036ec0
mov r10, rax
mov qword [rsp + 0x220], rax
mov qword [rsp + 0x50], rax
test rax, rax
je 0x1800981bd
mov rax, qword [rsp + 0x70]
cmp byte [rax + 0x51], 0
jne 0x1800981bd
mov rcx, qword [r10 + 8]
cmp byte [rsp + 0x228], 1
setne dl
mov byte [rcx + 0x18], dl
mov rcx, qword [r10 + 8]
mov rdx, qword [rcx]
mov byte [rdx], 0x9a
jmp 0x1800981bd
mov rax, qword [rsp + 0x238]
mov qword [rsp + 0x220], rax
jmp 0x1800981bd
mov byte [rsp + 0x228], 0
mov eax, dword [rsp + 0x108]
mov ecx, dword [rsp + 0x118]
add ecx, eax
je 0x1800981df
lea rdx, [rsp + 0xe0]
mov rcx, rbp
call fcn.18006ca00
movzx eax, byte [rsp + 0x228]
mov r9, qword [rsp + 0x220]
mov r8, qword [rsp + 0xa8]
xor ecx, ecx
mov rdx, rdi
mov dword [rsp + 0x30], ecx
mov word [rsp + 0x28], ax
mov qword [rsp + 0x20], rcx
mov rcx, rbp
call fcn.180095090
mov rdi, rax
test rax, rax
jne 0x180098231
mov rsi, qword [rsp + 0x70]
mov rdx, qword [rsp + 0x50]
mov rcx, rsi
call fcn.1800415b0
jmp 0x1800983ca
lea rdx, [rsp + 0xe0]
mov rcx, rbp
call fcn.180069820
cmp byte [rdi + 0x34], 0
jle 0x18009825f
mov r9d, dword [rdi + 0x44]
xor eax, eax
xor r8d, r8d
lea edx, [rax + 0x10]
mov rcx, rsi
mov dword [rsp + 0x20], eax
call fcn.180042780
mov rcx, rdi
call fcn.180047fe0
lea rdx, [rsp + 0xe0]
mov rcx, rbp
call fcn.180050170
mov r8d, dword [rsp + 0x98]
mov rdx, qword [rsp + 0x168]
xor edi, edi
lea r9d, [rdi + 0x10]
mov rcx, rbp
mov qword [rsp + 0x128], rdi
call fcn.1800aa5e0
mov eax, dword [rsp + 0x98]
mov r8, qword [rbx]
mov dword [rsp + 0x40], eax
mov dword [rsp + 0x38], eax
mov rax, qword [rsp + 0x230]
mov qword [rsp + 0x30], rax
or r9d, 0xffffffff
mov rdx, rbx
mov rcx, rbp
mov qword [rsp + 0x28], rdi
mov qword [rsp + 0x20], rdi
call fcn.18006ce80
mov rdx, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x70]
call fcn.1800415b0
mov r9, qword [rsi + 0x30]
or eax, 0xffffffff
sub eax, dword [rsp + 0x98]
js 0x18009830a
mov r8, qword [r9 + 0x80]
test r8, r8
je 0x18009830a
movsxd rcx, eax
mov eax, dword [rsi + 0x3c]
mov dword [r8 + rcx*4], eax
mov eax, dword [rsi + 0x3c]
dec eax
mov dword [r9 + 0x64], eax
cmp byte [rsp + 0xb4], 3
jne 0x18009832c
lea rdx, str.DISTINCT
mov rcx, rbp
call fcn.180051ad0
cmp qword [rsp + 0x128], 0
je 0x180098381
cmp dword [rsp + 0x130], 0
lea rax, str.RIGHT_PART_OF_ORDER_BY
lea rdx, str.ORDER_BY
cmovg rdx, rax
mov rcx, rbp
call fcn.180051ad0
mov rax, qword [rsp + 0x230]
lea r8, [rsp + 0x128]
mov qword [rsp + 0x20], rax
mov rax, qword [rsp + 0x68]
mov rdx, rbx
mov r9d, dword [rax]
mov rcx, rbp
call fcn.1800511f0
mov r9, qword [rsi + 0x30]
or rax, 0xffffffffffffffff
sub eax, dword [rsp + 0x160]
js 0x1800983a7
mov rdx, qword [r9 + 0x80]
test rdx, rdx
je 0x1800983a7
movsxd rcx, eax
mov eax, dword [rsi + 0x3c]
mov dword [rdx + rcx*4], eax
mov eax, dword [rsi + 0x3c]
dec eax
mov dword [r9 + 0x64], eax
xor eax, eax
mov dword [rsp + 0x170], eax
mov rsi, qword [rsp + 0x70]
jmp 0x1800983ca
mov rsi, qword [rsp + 0x70]
jmp 0x1800983cf
mov rsi, rax
mov rcx, qword [rsp + 0x68]
mov rbx, qword [rsp + 0x170]
mov edx, dword [rsp + 0x120]
mov dword [rbp + 0x200], edx
test ebx, ebx
jne 0x180098408
mov rax, qword [rsp + 0x230]
cmp byte [rax], 9
jne 0x180098408
mov rdx, qword [rsp + 0x90]
mov r8, rcx
mov rcx, rbp
call fcn.18005d5b0
mov rcx, qword [rsp + 0x100]
test rcx, rcx
je 0x18009845c
cmp qword [rsi + 0x320], 0
je 0x18009842c
mov rdx, rcx
mov rcx, rsi
call fcn.1800255d0
jmp 0x18009845c
cmp rcx, qword [rsi + 0x168]
jb 0x180098457
cmp rcx, qword [rsi + 0x170]
jae 0x180098457
mov rax, qword [rsi + 0x160]
mov qword [rcx], rax
dec dword [rsi + 0x14c]
mov qword [rsi + 0x160], rcx
jmp 0x18009845c
call sym.SQLite.Interop.dll_sqlite3_free
mov rdx, qword [rsp + 0x110]
test rdx, rdx
je 0x1800984d5
cmp qword [rsi + 0x320], 0
je 0x180098489
mov rcx, rsi
call fcn.1800255d0
mov eax, ebx
add rsp, 0x1f8
pop rdi
pop rsi
pop rbp
pop rbx
ret
mov rdx, qword [rsp + 0x110]
cmp rdx, qword [rsi + 0x168]
jb 0x1800984c8
cmp rdx, qword [rsi + 0x170]
jae 0x1800984c8
mov rax, qword [rsi + 0x160]
mov qword [rdx], rax
dec dword [rsi + 0x14c]
mov qword [rsi + 0x160], rdx
mov eax, ebx
add rsp, 0x1f8
pop rdi
pop rsi
pop rbp
pop rbx
ret
mov rcx, qword [rsp + 0x110]
call sym.SQLite.Interop.dll_sqlite3_free
mov eax, ebx
add rsp, 0x1f8
pop rdi
pop rsi
pop rbp
pop rbx
ret
mov eax, edi
add rsp, 0x1f8
pop rdi
pop rsi
pop rbp
pop rbx
ret