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

Disassembly:
mov qword [rsp + 0x20], r9
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x10], rdx
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0xe8
mov r13, qword [rcx]
xor r12d, r12d
test r9, r9
mov eax, r12d
setne al
mov rdi, r8
movsxd r10, eax
mov rsi, rdx
mov r15, rcx
movzx r14d, byte [r10 + r8 + 0x2d]
mov dword [rsp + 0x120], r14d
cmp r14d, 6
jne 0x1800236dd
test dword [r13 + 0x2c], 0x2000000
je 0x1800236dd
xor eax, eax
add rsp, 0xe8
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
ret
lea rax, [r8 + 0x30]
mov qword [rsp + 0xe0], rbx
mov rbx, qword [rax + r10*8]
lea rax, [rax + r10*8]
mov qword [rsp + 0xc0], rax
test r14d, r14d
je 0x180024547
test rbx, rbx
jne 0x180024547
lea rax, [rsp + 0x78]
lea r9, [rsp + 0x98]
mov qword [rsp + 0x98], r12
mov qword [rsp + 0x78], r12
mov qword [rsp + 0xb0], r12
mov qword [rsp + 0x50], r12
mov qword [rsp + 0x20], rax
mov qword [rsp + 0x60], r12
mov qword [rsp + 0x88], r12
mov qword [rsp + 0x70], r12
call fcn.18004f7e0
test eax, eax
jne 0x1800244da
or rbx, 0xffffffffffffffff
mov qword [rsp + 0xd8], rbp
mov dword [rsp + 0x68], r12d
cmp dword [rdi + 0x28], r12d
jle 0x180024111
mov rcx, r12
mov qword [rsp + 0x90], rcx
nop dword [rax]
mov rax, qword [rsp + 0x78]
test rax, rax
je 0x18002378f
mov edx, dword [rax + rcx*4]
jmp 0x180023792
mov edx, dword [rdi + 0x40]
mov rax, qword [rsp + 0x98]
test rax, rax
je 0x1800237a9
mov rax, qword [rax + 8]
movsx ecx, word [rax + rcx*2]
jmp 0x1800237ad
movsx ecx, word [rsi + 0x3c]
mov rax, qword [rsi + 8]
movsxd rcx, ecx
shl rcx, 5
mov r14, qword [rcx + rax]
mov qword [rsp + 0x80], r14
test r14, r14
jne 0x1800237ce
mov ebp, r12d
jmp 0x1800237e1
mov rbp, rbx
inc rbp
cmp byte [r14 + rbp], 0
jne 0x1800237d1
and ebp, 0x3fffffff
mov rax, qword [rdi]
movsxd rdx, edx
mov rcx, qword [rax + 8]
shl rdx, 5
mov rsi, qword [rdx + rcx]
mov qword [rsp + 0xb8], rdx
mov qword [rsp + 0xa0], rsi
test rsi, rsi
je 0x180023821
mov r12, rbx
nop dword [rax + rax]
inc r12
cmp byte [rsi + r12], 0
jne 0x180023810
and r12d, 0x3fffffff
lea ebx, [r12 + 1]
mov rcx, r13
movsxd rdx, ebx
add rdx, 0x48
call fcn.180046280
mov rdi, rax
test rax, rax
je 0x1800238a7
xor eax, eax
mov qword [rdi], rax
mov qword [rdi + 8], rax
mov qword [rdi + 0x10], rax
mov qword [rdi + 0x18], rax
mov qword [rdi + 0x20], rax
mov qword [rdi + 0x28], rax
mov qword [rdi + 0x30], rax
mov qword [rdi + 0x38], rax
mov qword [rdi + 0x40], rax
or rax, 0xffffffffffffffff
mov byte [rdi], 0x37
mov word [rdi + 0x32], ax
test ebx, ebx
jne 0x18002387d
or dword [rdi + 4], 0x400
mov dword [rdi + 8], ebx
jmp 0x1800238a0
lea rcx, [rdi + 0x48]
mov qword [rdi + 8], rcx
test r12d, r12d
je 0x180023895
mov r8d, r12d
mov rdx, rsi
call fcn.180091e20
mov rax, qword [rdi + 8]
mov ecx, r12d
mov byte [rcx + rax], 0
mov dword [rdi + 0x28], 1
lea esi, [rbp + 1]
mov rcx, r13
movsxd rdx, esi
mov dword [rsp + 0x58], esi
add rdx, 0x48
call fcn.180046280
mov rbx, rax
test rax, rax
je 0x18002392d
xor eax, eax
mov qword [rbx], rax
mov qword [rbx + 8], rax
mov qword [rbx + 0x10], rax
mov qword [rbx + 0x18], rax
mov qword [rbx + 0x20], rax
mov qword [rbx + 0x28], rax
mov qword [rbx + 0x30], rax
mov qword [rbx + 0x38], rax
mov qword [rbx + 0x40], rax
or rax, 0xffffffffffffffff
mov byte [rbx], 0x37
mov word [rbx + 0x32], ax
test esi, esi
jne 0x180023905
or dword [rbx + 4], 0x400
mov dword [rbx + 8], esi
jmp 0x180023926
lea rcx, [rbx + 0x48]
mov qword [rbx + 8], rcx
test ebp, ebp
je 0x18002391c
mov r8d, ebp
mov rdx, r14
call fcn.180091e20
mov rax, qword [rbx + 8]
mov ecx, ebp
mov byte [rcx + rax], 0
mov dword [rbx + 0x28], 1
mov edx, 0x4c
mov rcx, r13
call fcn.180046280
mov r14, rax
test rax, rax
je 0x18002399c
xor eax, eax
lea rcx, [r14 + 0x48]
mov qword [r14], rax
mov qword [r14 + 0x10], rax
mov qword [r14 + 0x18], rax
mov qword [r14 + 0x20], rax
mov qword [r14 + 0x28], rax
mov qword [r14 + 0x30], rax
mov qword [r14 + 0x38], rax
mov qword [r14 + 0x40], rax
mov qword [r14 + 8], rcx
mov byte [r14], 0x37
or rax, 0xffffffffffffffff
mov word [r14 + 0x32], ax
movzx eax, word [0x1800a6f58]
mov word [rcx], ax
movzx eax, byte [0x1800a6f5a]
mov byte [rcx + 2], al
mov rax, qword [r14 + 8]
mov byte [rax + 3], 0
mov dword [r14 + 0x28], 1
mov rcx, qword [r15]
mov edx, 0x48
call fcn.180046280
mov rsi, rax
test rax, rax
je 0x1800239e8
xor eax, eax
mov qword [rsi], rax
mov qword [rsi + 8], rax
mov qword [rsi + 0x10], rax
mov qword [rsi + 0x18], rax
mov qword [rsi + 0x20], rax
mov qword [rsi + 0x28], rax
mov qword [rsi + 0x30], rax
mov qword [rsi + 0x38], rax
mov qword [rsi + 0x40], rax
or rax, 0xffffffffffffffff
mov byte [rsi], 0x7a
mov dword [rsi + 0x28], 1
mov word [rsi + 0x32], ax
mov rcx, qword [r15]
mov r9, rbx
mov r8, r14
mov rdx, rsi
call fcn.180049420
test rsi, rsi
je 0x180023a1a
mov rax, qword [r15]
mov r8d, dword [rax + 0x7c]
cmp dword [rsi + 0x28], r8d
jle 0x180023a1a
lea rdx, str.Expression_tree_is_too_large__maximum_depth__d_
mov rcx, r15
call fcn.180048910
mov rcx, qword [r15]
mov edx, 0x48
call fcn.180046280
mov rbx, rax
test rax, rax
je 0x180023a66
xor eax, eax
mov qword [rbx], rax
mov qword [rbx + 8], rax
mov qword [rbx + 0x10], rax
mov qword [rbx + 0x18], rax
mov qword [rbx + 0x20], rax
mov qword [rbx + 0x28], rax
mov qword [rbx + 0x30], rax
mov qword [rbx + 0x38], rax
mov qword [rbx + 0x40], rax
or rax, 0xffffffffffffffff
mov byte [rbx], 0x25
mov dword [rbx + 0x28], 1
mov word [rbx + 0x32], ax
mov rcx, qword [r15]
mov r9, rdi
mov r8, rsi
mov rdx, rbx
call fcn.180049420
test rbx, rbx
je 0x180023a98
mov rax, qword [r15]
mov r8d, dword [rax + 0x7c]
cmp dword [rbx + 0x28], r8d
jle 0x180023a98
lea rdx, str.Expression_tree_is_too_large__maximum_depth__d_
mov rcx, r15
call fcn.180048910
mov rdx, qword [rsp + 0x50]
mov r8, rbx
mov rcx, r13
call fcn.180049010
mov r14, qword [rsp + 0x138]
mov qword [rsp + 0x50], rax
test r14, r14
je 0x180023e31
movsxd r14, dword [rsp + 0x58]
mov rcx, r13
lea rdx, [r14 + 0x48]
call fcn.180046280
or rsi, 0xffffffffffffffff
mov rbx, rax
test rax, rax
je 0x180023b45
xor eax, eax
mov qword [rbx], rax
mov qword [rbx + 8], rax
mov qword [rbx + 0x10], rax
mov qword [rbx + 0x18], rax
mov qword [rbx + 0x20], rax
mov qword [rbx + 0x28], rax
mov qword [rbx + 0x30], rax
mov qword [rbx + 0x38], rax
mov qword [rbx + 0x40], rax
mov byte [rbx], 0x37
mov word [rbx + 0x32], si
test r14d, r14d
jne 0x180023b18
or dword [rbx + 4], 0x400
mov dword [rbx + 8], eax
jmp 0x180023b3e
lea rcx, [rbx + 0x48]
mov qword [rbx + 8], rcx
test ebp, ebp
je 0x180023b34
mov rdx, qword [rsp + 0x80]
mov r8d, ebp
call fcn.180091e20
mov rax, qword [rbx + 8]
mov ecx, ebp
mov byte [rcx + rax], 0
mov dword [rbx + 0x28], 1
mov edx, 0x4c
mov rcx, r13
call fcn.180046280
mov rdi, rax
test rax, rax
je 0x180023bad
xor eax, eax
lea rcx, [rdi + 0x48]
mov qword [rdi], rax
mov qword [rdi + 0x10], rax
mov qword [rdi + 0x18], rax
mov qword [rdi + 0x20], rax
mov qword [rdi + 0x28], rax
mov qword [rdi + 0x30], rax
mov qword [rdi + 0x38], rax
mov qword [rdi + 0x40], rax
mov qword [rdi + 8], rcx
mov byte [rdi], 0x37
mov word [rdi + 0x32], si
movzx eax, word [0x1800a6f54]
mov word [rcx], ax
movzx eax, byte [0x1800a6f56]
mov byte [rcx + 2], al
mov rax, qword [rdi + 8]
mov byte [rax + 3], 0
mov dword [rdi + 0x28], 1
mov rcx, qword [r15]
mov edx, 0x48
call fcn.180046280
mov rsi, rax
test rax, rax
je 0x180023bf9
xor eax, eax
mov qword [rsi], rax
mov qword [rsi + 8], rax
mov qword [rsi + 0x10], rax
mov qword [rsi + 0x18], rax
mov qword [rsi + 0x20], rax
mov qword [rsi + 0x28], rax
mov qword [rsi + 0x30], rax
mov qword [rsi + 0x38], rax
mov qword [rsi + 0x40], rax
or rax, 0xffffffffffffffff
mov byte [rsi], 0x7a
mov dword [rsi + 0x28], 1
mov word [rsi + 0x32], ax
mov rcx, qword [r15]
mov r9, rbx
mov r8, rdi
mov rdx, rsi
call fcn.180049420
test rsi, rsi
je 0x180023c2b
mov rax, qword [r15]
mov r8d, dword [rax + 0x7c]
cmp dword [rsi + 0x28], r8d
jle 0x180023c2b
lea rdx, str.Expression_tree_is_too_large__maximum_depth__d_
mov rcx, r15
call fcn.180048910
lea rdx, [r14 + 0x48]
mov rcx, r13
call fcn.180046280
or rdi, 0xffffffffffffffff
mov rbx, rax
test rax, rax
je 0x180023cad
xor eax, eax
mov qword [rbx], rax
mov qword [rbx + 8], rax
mov qword [rbx + 0x10], rax
mov qword [rbx + 0x18], rax
mov qword [rbx + 0x20], rax
mov qword [rbx + 0x28], rax
mov qword [rbx + 0x30], rax
mov qword [rbx + 0x38], rax
mov qword [rbx + 0x40], rax
mov byte [rbx], 0x37
mov word [rbx + 0x32], di
test r14d, r14d
jne 0x180023c80
or dword [rbx + 4], 0x400
mov dword [rbx + 8], eax
jmp 0x180023ca6
lea rcx, [rbx + 0x48]
mov qword [rbx + 8], rcx
test ebp, ebp
je 0x180023c9c
mov rdx, qword [rsp + 0x80]
mov r8d, ebp
call fcn.180091e20
mov rax, qword [rbx + 8]
mov ecx, ebp
mov byte [rcx + rax], 0
mov dword [rbx + 0x28], 1
mov edx, 0x4c
mov rcx, r13
call fcn.180046280
mov r14, rax
test rax, rax
je 0x180023d18
xor eax, eax
lea rcx, [r14 + 0x48]
mov qword [r14], rax
mov qword [r14 + 0x10], rax
mov qword [r14 + 0x18], rax
mov qword [r14 + 0x20], rax
mov qword [r14 + 0x28], rax
mov qword [r14 + 0x30], rax
mov qword [r14 + 0x38], rax
mov qword [r14 + 0x40], rax
mov qword [r14 + 8], rcx
mov byte [r14], 0x37
mov word [r14 + 0x32], di
movzx eax, word [0x1800a6f58]
mov word [rcx], ax
movzx eax, byte [0x1800a6f5a]
mov byte [rcx + 2], al
mov rax, qword [r14 + 8]
mov byte [rax + 3], 0
mov dword [r14 + 0x28], 1
mov rcx, qword [r15]
mov edx, 0x48
call fcn.180046280
mov rdi, rax
test rax, rax
je 0x180023d64
xor eax, eax
mov qword [rdi], rax
mov qword [rdi + 8], rax
mov qword [rdi + 0x10], rax
mov qword [rdi + 0x18], rax
mov qword [rdi + 0x20], rax
mov qword [rdi + 0x28], rax
mov qword [rdi + 0x30], rax
mov qword [rdi + 0x38], rax
mov qword [rdi + 0x40], rax
or rax, 0xffffffffffffffff
mov byte [rdi], 0x7a
mov dword [rdi + 0x28], 1
mov word [rdi + 0x32], ax
mov rcx, qword [r15]
mov r9, rbx
mov r8, r14
mov rdx, rdi
call fcn.180049420
test rdi, rdi
je 0x180023d96
mov rax, qword [r15]
mov r8d, dword [rax + 0x7c]
cmp dword [rdi + 0x28], r8d
jle 0x180023d96
lea rdx, str.Expression_tree_is_too_large__maximum_depth__d_
mov rcx, r15
call fcn.180048910
mov rcx, qword [r15]
mov edx, 0x48
call fcn.180046280
mov rbx, rax
test rax, rax
je 0x180023de2
xor eax, eax
mov qword [rbx], rax
mov qword [rbx + 8], rax
mov qword [rbx + 0x10], rax
mov qword [rbx + 0x18], rax
mov qword [rbx + 0x20], rax
mov qword [rbx + 0x28], rax
mov qword [rbx + 0x30], rax
mov qword [rbx + 0x38], rax
mov qword [rbx + 0x40], rax
or rax, 0xffffffffffffffff
mov byte [rbx], 0x1d
mov dword [rbx + 0x28], 1
mov word [rbx + 0x32], ax
mov rcx, qword [r15]
mov r9, rsi
mov r8, rdi
mov rdx, rbx
call fcn.180049420
test rbx, rbx
je 0x180023e14
mov rax, qword [r15]
mov r8d, dword [rax + 0x7c]
cmp dword [rbx + 0x28], r8d
jle 0x180023e14
lea rdx, str.Expression_tree_is_too_large__maximum_depth__d_
mov rcx, r15
call fcn.180048910
mov rdx, qword [rsp + 0x70]
mov r8, rbx
mov rcx, r13
call fcn.180049010
mov r14, qword [rsp + 0x138]
mov qword [rsp + 0x70], rax
movsxd rax, dword [rsp + 0x120]
cmp rax, 6
je 0x1800240c5
cmp rax, 9
jne 0x180023fae
test r14, r14
je 0x1800240c5
movsxd rbx, dword [rsp + 0x58]
mov rcx, r13
lea rdx, [rbx + 0x48]
call fcn.180046280
or r14, 0xffffffffffffffff
mov rdi, rax
test rax, rax
je 0x180023edd
xor eax, eax
mov qword [rdi], rax
mov qword [rdi + 8], rax
mov qword [rdi + 0x10], rax
mov qword [rdi + 0x18], rax
mov qword [rdi + 0x20], rax
mov qword [rdi + 0x28], rax
mov qword [rdi + 0x30], rax
mov qword [rdi + 0x38], rax
mov qword [rdi + 0x40], rax
mov byte [rdi], 0x37
mov word [rdi + 0x32], r14w
test ebx, ebx
jne 0x180023eb0
or dword [rdi + 4], 0x400
mov dword [rdi + 8], eax
jmp 0x180023ed6
lea rcx, [rdi + 0x48]
mov qword [rdi + 8], rcx
test ebp, ebp
je 0x180023ecc
mov rdx, qword [rsp + 0x80]
mov r8d, ebp
call fcn.180091e20
mov rax, qword [rdi + 8]
mov ecx, ebp
mov byte [rcx + rax], 0
mov dword [rdi + 0x28], 1
mov edx, 0x4c
mov rcx, r13
call fcn.180046280
mov rsi, rax
test rax, rax
je 0x180023f46
xor eax, eax
lea rcx, [rsi + 0x48]
mov qword [rsi], rax
mov qword [rsi + 0x10], rax
mov qword [rsi + 0x18], rax
mov qword [rsi + 0x20], rax
mov qword [rsi + 0x28], rax
mov qword [rsi + 0x30], rax
mov qword [rsi + 0x38], rax
mov qword [rsi + 0x40], rax
mov qword [rsi + 8], rcx
mov byte [rsi], 0x37
mov word [rsi + 0x32], r14w
movzx eax, word [0x1800a6f54]
mov word [rcx], ax
movzx eax, byte [0x1800a6f56]
mov byte [rcx + 2], al
mov rax, qword [rsi + 8]
mov byte [rax + 3], 0
mov dword [rsi + 0x28], 1
mov rcx, qword [r15]
mov edx, 0x48
call fcn.180046280
mov rbx, rax
test rax, rax
je 0x180023f8f
xor eax, eax
mov qword [rbx], rax
mov qword [rbx + 8], rax
mov qword [rbx + 0x10], rax
mov qword [rbx + 0x18], rax
mov qword [rbx + 0x20], rax
mov qword [rbx + 0x28], rax
mov qword [rbx + 0x30], rax
mov qword [rbx + 0x38], rax
mov qword [rbx + 0x40], rax
mov byte [rbx], 0x7a
mov word [rbx + 0x32], r14w
mov dword [rbx + 0x28], 1
mov rcx, qword [r15]
mov r9, rdi
mov r8, rsi
mov rdx, rbx
call fcn.180049420
test rbx, rbx
je 0x180024058
jmp 0x18002403c
cmp rax, 8
jne 0x180023fe8
mov rax, qword [rsp + 0x130]
mov rdx, qword [rsp + 0xb8]
mov rax, qword [rax]
mov rcx, qword [rax + 8]
mov rdx, qword [rcx + rdx + 8]
test rdx, rdx
je 0x180023fe8
xor r9d, r9d
xor r8d, r8d
mov rcx, r13
call fcn.180021de0
mov rbx, rax
jmp 0x180024058
mov rcx, qword [r15]
mov edx, 0x48
call fcn.180046280
mov rbx, rax
test rax, rax
je 0x180024058
xor eax, eax
mov rcx, rbx
mov qword [rbx], rax
mov qword [rbx + 8], rax
mov qword [rbx + 0x10], rax
mov qword [rbx + 0x18], rax
mov qword [rbx + 0x20], rax
mov qword [rbx + 0x28], rax
mov qword [rbx + 0x30], rax
mov qword [rbx + 0x38], rax
mov qword [rbx + 0x40], rax
mov byte [rbx], 0x65
or rax, 0xffffffffffffffff
mov word [rbx + 0x32], ax
mov dword [rbx + 0x28], 1
call fcn.180022890
mov rax, qword [r15]
mov r8d, dword [rax + 0x7c]
cmp dword [rbx + 0x28], r8d
jle 0x180024058
lea rdx, str.Expression_tree_is_too_large__maximum_depth__d_
mov rcx, r15
call fcn.180048910
mov rdx, qword [rsp + 0x60]
mov r8, rbx
mov rcx, r15
call fcn.18004cd50
mov rbx, rax
mov qword [rsp + 0x60], rax
test rax, rax
je 0x1800240c5
mov eax, dword [rax]
mov rbp, qword [rsp + 0xa0]
mov edi, r12d
dec eax
cdqe
lea rcx, [rax + rax*4]
mov rax, qword [rbx + 8]
lea rsi, [rax + rcx*8]
test rbp, rbp
jne 0x18002409b
xor ebx, ebx
jmp 0x1800240c1
mov rcx, qword [r15]
lea rdx, [rdi + 1]
call fcn.180046280
mov rbx, rax
test rax, rax
je 0x1800240c1
mov r8, rdi
mov rdx, rbp
mov rcx, rax
call fcn.180091e20
mov byte [rbx + rdi], 0
mov qword [rsi + 8], rbx
mov edx, dword [rsp + 0x68]
mov rcx, qword [rsp + 0x90]
mov rdi, qword [rsp + 0x130]
mov rsi, qword [rsp + 0x128]
inc edx
inc rcx
mov r12d, 0
mov dword [rsp + 0x68], edx
mov qword [rsp + 0x90], rcx
lea rbx, [r12 - 1]
cmp edx, dword [rdi + 0x28]
jl 0x180023780
mov r14d, dword [rsp + 0x120]
or rbx, rbx
mov rcx, qword [rsp + 0x78]
test rcx, rcx
je 0x180024168
test r13, r13
je 0x180024163
cmp qword [r13 + 0x298], 0
je 0x180024137
mov rdx, rcx
mov rcx, r13
call fcn.18002c290
jmp 0x180024168
cmp rcx, qword [r13 + 0x180]
jb 0x180024163
cmp rcx, qword [r13 + 0x188]
jae 0x180024163
mov rax, qword [r13 + 0x178]
mov qword [rcx], rax
dec dword [r13 + 0x160]
mov qword [r13 + 0x178], rcx
jmp 0x180024168
call sym.sqlite3.dll_sqlite3_free
mov rax, qword [rdi]
mov rbp, qword [rax]
test rbp, rbp
jne 0x180024178
mov edi, r12d
jmp 0x18002418f
mov rdi, rbx
nop dword [rax + rax]
inc rdi
cmp byte [rdi + rbp], 0
jne 0x180024180
and edi, 0x3fffffff
cmp r14d, 6
jne 0x1800242ec
lea edx, [r14 + 0x60]
mov rcx, r13
mov qword [rsp + 0xa0], rbp
mov dword [rsp + 0xa8], edi
call fcn.180046280
mov rsi, rax
test rax, rax
je 0x180024229
xor eax, eax
lea rcx, [rsi + 0x48]
mov qword [rsi], rax
mov qword [rsi + 0x10], rax
mov qword [rsi + 0x18], rax
mov qword [rsi + 0x20], rax
mov qword [rsi + 0x28], rax
mov qword [rsi + 0x30], rax
mov qword [rsi + 0x38], rax
mov qword [rsi + 0x40], rax
mov qword [rsi + 8], rcx
mov byte [rsi], 0x53
mov word [rsi + 0x32], bx
movups xmm0, xmmword [str.FOREIGN_KEY_constraint_failed]
movups xmmword [rcx], xmm0
movsd xmm1, qword [0x1800a6ab8]
movsd qword [rcx + 0x10], xmm1
mov eax, dword [0x1800a6ac0]
mov dword [rcx + 0x18], eax
movzx eax, byte [0x1800a6ac4]
mov byte [rcx + 0x1c], al
mov rax, qword [rsi + 8]
mov byte [rax + 0x1d], 0
mov dword [rsi + 0x28], 1
mov byte [rsi + 1], 2
mov edx, 0x80
mov rcx, r13
call fcn.180046280
test rax, rax
jne 0x180024240
mov r14, r12
jmp 0x1800242a1
xor r9d, r9d
mov rdx, rax
mov rcx, r13
lea r8d, [r9 + 1]
mov dword [rax + 4], 1
mov dword [rax], r12d
call fcn.180065cb0
cmp byte [r13 + 0x55], 0
mov rcx, r13
mov r14, rax
je 0x180024276
mov rdx, rax
call fcn.180065850
mov r14, r12
jmp 0x1800242a1
mov eax, dword [rax]
lea rdx, [rsp + 0xa0]
dec eax
cdqe
imul rbx, rax, 0x78
call fcn.180057b70
xor edx, edx
mov rcx, r13
mov qword [rbx + r14 + 0x18], rax
call fcn.180057b70
mov qword [rbx + r14 + 0x10], rax
mov r8, rsi
xor edx, edx
mov rcx, r15
call fcn.18004cd50
mov r9, qword [rsp + 0x50]
mov qword [rsp + 0x48], r12
mov qword [rsp + 0x40], r12
mov dword [rsp + 0x38], r12d
mov qword [rsp + 0x30], r12
mov rdx, rax
mov r8, r14
mov rcx, r15
mov qword [rsp + 0x28], r12
mov qword [rsp + 0x20], r12
call fcn.180065060
mov qword [rsp + 0x88], rax
mov qword [rsp + 0x50], r12
inc dword [r13 + 0x158]
movsxd rsi, edi
mov rcx, r13
lea rdx, [rsi + 0x91]
call fcn.180046280
mov rbx, rax
test rax, rax
je 0x18002431e
lea r8, [rsi + 0x91]
xor edx, edx
mov rcx, rax
call fcn.180092be0
test rbx, rbx
je 0x180024454
lea r14, [rbx + 0x48]
mov r8, rsi
mov rdx, rbp
lea rcx, [r14 + 0x48]
mov qword [rbx + 0x38], r14
mov qword [r14 + 0x18], rcx
call fcn.180091e20
mov rbp, qword [rsp + 0x50]
test rbp, rbp
je 0x180024360
xor r9d, r9d
mov rdx, rbp
mov rcx, r13
lea r8d, [r9 + 1]
call fcn.180021de0
jmp 0x180024363
mov rax, r12
mov rdi, qword [rsp + 0x60]
mov r8d, 1
mov rcx, r13
mov rdx, rdi
mov qword [r14 + 0x20], rax
call fcn.18004cf50
mov rdx, qword [rsp + 0x88]
mov r8d, 1
mov rcx, r13
mov qword [r14 + 0x28], rax
call fcn.180064e40
mov rsi, qword [rsp + 0x70]
mov qword [r14 + 0x10], rax
test rsi, rsi
je 0x18002446b
mov rcx, qword [r15]
mov edx, 0x48
call fcn.180046280
mov rdi, rax
test rax, rax
je 0x180024426
xor eax, eax
mov rcx, rdi
mov qword [rdi], rax
mov qword [rdi + 8], rax
mov qword [rdi + 0x18], rax
mov qword [rdi + 0x20], rax
mov qword [rdi + 0x28], rax
mov qword [rdi + 0x30], rax
mov qword [rdi + 0x38], rax
mov qword [rdi + 0x40], rax
or rax, 0xffffffffffffffff
mov word [rdi + 0x32], ax
mov byte [rdi], 0x13
mov dword [rdi + 0x28], 1
mov qword [rdi + 0x10], rsi
mov eax, dword [rsi + 4]
and eax, 0x200100
or dword [rdi + 4], eax
call fcn.180022890
mov rax, qword [r15]
mov r8d, dword [rax + 0x7c]
cmp dword [rdi + 0x28], r8d
jle 0x180024431
lea rdx, str.Expression_tree_is_too_large__maximum_depth__d_
mov rcx, r15
call fcn.180048910
jmp 0x180024431
mov rcx, qword [r15]
mov rdx, rsi
call fcn.18004c0f0
mov rsi, rdi
test rdi, rdi
je 0x18002444e
xor r9d, r9d
mov rdx, rdi
mov rcx, r13
lea r8d, [r9 + 1]
call fcn.180021de0
mov r12, rax
mov qword [rbx + 0x18], r12
jmp 0x180024466
mov r14, qword [rsp + 0xb0]
mov rsi, qword [rsp + 0x70]
mov rbp, qword [rsp + 0x50]
mov rdi, qword [rsp + 0x60]
dec dword [r13 + 0x158]
test rbp, rbp
je 0x180024482
mov rdx, rbp
mov rcx, r13
call fcn.18004c0f0
mov rbp, qword [rsp + 0xd8]
test rsi, rsi
je 0x18002449a
mov rdx, rsi
mov rcx, r13
call fcn.18004c0f0
test rdi, rdi
je 0x1800244aa
mov rdx, rdi
mov rcx, r13
call fcn.1800220e0
mov rax, qword [rsp + 0x88]
test rax, rax
je 0x1800244c8
mov r8d, 1
mov rdx, rax
mov rcx, r13
call fcn.180019720
cmp byte [r13 + 0x55], 1
jne 0x1800244de
mov rdx, rbx
mov rcx, r13
call fcn.180025bd0
xor eax, eax
jmp 0x18002454a
mov eax, dword [rsp + 0x120]
cmp eax, 6
je 0x180024508
cmp eax, 9
mov rax, qword [rsp + 0x138]
jne 0x180024502
test rax, rax
jne 0x180024502
mov byte [r14], 0x6d
jmp 0x180024514
mov byte [r14], 0x6e
jmp 0x180024514
mov rax, qword [rsp + 0x138]
mov byte [r14], 0x77
mov rdx, qword [rsp + 0x128]
mov qword [r14 + 8], rbx
test rax, rax
mov rcx, qword [rdx + 0x68]
mov qword [rbx + 0x28], rcx
mov rcx, qword [rdx + 0x68]
mov qword [rbx + 0x30], rcx
mov rcx, qword [rsp + 0xc0]
mov qword [rcx], rbx
setne cl
add cl, 0x6d
mov byte [rbx + 0x10], cl
mov rax, rbx
mov rbx, qword [rsp + 0xe0]
add rsp, 0xe8
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
ret