Function at 0x18008aa20
Capabilities:
Reference sql statements
Resolve function by parsing pe exports

Disassembly:
mov rax, rsp
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rbp
mov qword [rax + 0x20], rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x1e0
movaps xmmword [rax - 0x38], xmm6
mov rax, qword [0x180176020]
xor rax, rsp
mov qword [rsp + 0x1c0], rax
mov rsi, qword [rcx]
mov rbp, qword [rcx + 0x20]
mov rbx, qword [rcx + 0x80]
mov rax, qword [rsi + 0x10]
xor r15d, r15d
mov rdi, rcx
mov rdx, qword [rax + 0x18]
mov r13d, r15d
mov qword [rsp + 0x58], rcx
movzx eax, byte [rdx + 0x71]
mov dword [rsp + 0x40], r15d
mov qword [rsp + 0x78], rbp
mov dword [rsp + 0x44], r15d
mov qword [rsp + 0x68], rsi
mov byte [rsp + 0x60], r13b
mov byte [rsp + 0x48], al
mov dword [rsp + 0x80], r15d
mov qword [rsp + 0x50], rbx
mov r14, r15
mov dword [rsp + 0x70], r15d
mov qword [rsp + 0x88], r15
call fcn.1800866f0
cmp dword [rdi + 0x90], 7
je 0x18008b2dd
mov dword [rdi + 0x90], r15d
mov qword [rdi + 0x48], r15
mov eax, dword [rsi + 0x148]
mov dword [rsi + 0x2b8], r15d
test eax, eax
jne 0x180091260
mov ecx, dword [rdi + 0x8c]
xorpd xmm6, xmm6
mov eax, r15d
cmp qword [rsi + 0x188], rax
mov dword [rsp + 0x40], ecx
lea r8d, [r15 + 4]
setne al
cdqe
mov qword [rsp + 0xa0], rax
cmp byte [rsi + 0x2a], 0
jne 0x18008b2dd
movsxd rbx, ecx
lea r12, [rbx + rbx*2]
mov qword [rsp + 0x98], r12
test rax, rax
je 0x18008ab66
mov eax, dword [rsp + 0x80]
cmp dword [rsi + 0x198], eax
jne 0x18008ab5d
mov rcx, qword [rsi + 0x190]
call qword [rsi + 0x188]
test eax, eax
jne 0x180090e66
mov eax, r15d
mov r8d, 4
inc eax
mov dword [rsp + 0x80], eax
test byte [rbp + r12*8 + 2], 2
je 0x18008ab8f
movsxd r14, dword [rbp + r12*8 + 8]
imul r14, r14, 0x38
add r14, qword [rsp + 0x50]
mov rcx, r14
call fcn.180083060
mov r8d, 4
mov word [r14 + 0x24], r8w
movzx eax, byte [rbp + r12*8]
dec eax
cmp eax, 0x90
ja case.0x18008abb5.17
lea rdx, [0x180000000]
cdqe
mov ecx, dword [rdx + rax*4 + 0x91290]
add rcx, rdx
jmp rcx
mov eax, dword [rsi + 0x148]
test eax, eax
jne 0x180091260
mov ecx, dword [rbp + r12*8 + 8]
dec ecx
jmp 0x180090e4a
movsxd rax, dword [rbp + r12*8 + 4]
imul rax, rax, 0x38
add rax, qword [rsp + 0x50]
mov word [rax + 0x24], r8w
mov qword [rax], rbx
mov ecx, dword [rbp + r12*8 + 8]
dec ecx
jmp 0x180090e4a
movsxd rax, dword [rbp + r12*8 + 4]
mov rcx, qword [rsp + 0x50]
imul rax, rax, 0x38
mov ecx, dword [rax + rcx]
jmp 0x180090e4a
movsxd rcx, dword [rbp + r12*8 + 4]
imul rcx, rcx, 0x38
add rcx, qword [rsp + 0x50]
mov eax, dword [rcx]
mov word [rcx + 0x24], r8w
mov dword [rsp + 0xb0], eax
mov qword [rcx], rbx
mov ecx, dword [rsp + 0xb0]
jmp 0x180090e4a
movsxd rax, dword [rbp + r12*8 + 0xc]
mov rcx, qword [rsp + 0x50]
imul rax, rax, 0x38
test byte [rax + rcx + 0x24], 1
je case.0x18008abb5.17
cmp dword [rbp + r12*8 + 4], 0
jne 0x180090e71
mov r8, qword [rdi + 0x158]
test r8, r8
je 0x180090e71
mov rax, qword [r8 + 0x60]
dec dword [rdi + 0x160]
mov qword [rdi + 0x158], rax
mov eax, dword [rdi + 0xac]
add dword [rsi + 0x50], eax
mov dword [rsi + 0x4c], eax
mov rax, qword [r8 + 0x10]
mov rdx, qword [r8]
mov rcx, qword [rdx]
mov qword [rdx + 0x20], rax
mov eax, dword [r8 + 0x18]
mov dword [rdx + 0x18], eax
mov rax, qword [r8 + 0x20]
mov qword [rdx + 0x80], rax
mov eax, dword [r8 + 0x28]
mov dword [rdx + 0x7c], eax
mov rax, qword [r8 + 0x30]
mov qword [rdx + 0x58], rax
movzx eax, word [r8 + 0x38]
mov word [rdx + 0x52], ax
mov rax, qword [r8 + 0x50]
mov qword [rcx + 0x40], rax
mov eax, dword [r8 + 0x58]
mov dword [rdx + 0xac], eax
cmp dword [rbp + r12*8 + 8], 4
mov ecx, dword [r8 + 8]
jne 0x18008acef
movsxd rax, ecx
lea rcx, [rax + rax*2]
mov rax, qword [rdi + 0x20]
mov ebp, dword [rax + rcx*8 + 8]
dec ebp
mov ecx, ebp
mov rbp, qword [rdi + 0x20]
mov rax, qword [rdi + 0x80]
mov r8d, 4
mov qword [rsp + 0x78], rbp
mov qword [rsp + 0x50], rax
jmp 0x180090e4a
movsxd rax, dword [rbp + r12*8 + 4]
mov qword [r14], rax
jmp case.0x18008abb5.17
mov rax, qword [rbp + r12*8 + 0x10]
mov rcx, qword [rax]
mov qword [r14], rcx
jmp case.0x18008abb5.17
mov eax, 8
mov word [r14 + 0x24], ax
mov rax, qword [rbp + r12*8 + 0x10]
mov rcx, qword [rax]
mov qword [r14 + 8], rcx
jmp case.0x18008abb5.17
mov rsi, qword [rbp + r12*8 + 0x10]
mov byte [rbp + r12*8], 9
mov rax, rsi
test rsi, rsi
jne 0x18008ad5f
mov eax, r15d
jmp 0x18008ad73
cmp byte [rsi], 0
je 0x18008ad6c
inc rax
cmp byte [rax], 0
jne 0x18008ad64
sub eax, esi
and eax, 0x3fffffff
cmp byte [rsp + 0x48], 1
mov dword [rbp + r12*8 + 4], eax
je 0x18008aebc
test rsi, rsi
jne 0x18008ad95
mov rcx, r14
call fcn.180083370
jmp 0x18008ae39
mov rax, qword [r14 + 0x10]
test rax, rax
je 0x18008ada3
mov ebp, dword [rax + 0x60]
jmp 0x18008ada8
mov ebp, 0x3b9aca00
mov ebx, r15d
mov rax, r15
test ebp, ebp
js 0x18008adc5
movsxd rcx, ebp
cmp byte [rsi + rax], 0
je 0x18008adc5
inc rax
inc ebx
cmp rax, rcx
jle 0x18008adb5
lea rax, [fcn.1800645a0]
mov edi, 0x202
mov rcx, r14
test rax, rax
jne 0x18008adf1
call fcn.180083060
mov rdx, qword [r14 + 0x30]
mov rcx, qword [r14 + 0x10]
call fcn.1800645a0
mov qword [r14 + 0x30], rsi
jmp 0x18008ae0c
call fcn.180083060
mov rdx, qword [r14 + 0x30]
mov rcx, qword [r14 + 0x10]
call fcn.1800645a0
mov qword [r14 + 0x30], r15
mov edi, 0xa02
cmp ebx, ebp
mov word [r14 + 0x24], di
mov rdi, qword [rsp + 0x58]
mov qword [r14 + 0x28], r15
mov qword [r14 + 0x18], rsi
mov dword [r14 + 0x20], ebx
mov byte [r14 + 0x27], 1
mov byte [r14 + 0x26], 3
jg 0x180091233
mov rbp, qword [rsp + 0x78]
test byte [r14 + 0x24], 2
movzx ecx, byte [rsp + 0x48]
mov dword [rsp + 0x44], r15d
mov r13d, r15d
je 0x18008ae69
movzx eax, byte [r14 + 0x27]
cmp eax, ecx
je 0x18008ae69
movzx edx, cl
mov rcx, r14
call fcn.180066690
test eax, eax
jne 0x180091284
movzx eax, word [r14 + 0x24]
mov ecx, 0xfbff
mov qword [r14 + 0x30], r15
and ax, cx
mov ecx, 0x800
or ax, cx
mov word [r14 + 0x24], ax
cmp byte [rbp + r12*8 + 1], 0xff
jne 0x18008ae9e
mov rdx, qword [rbp + r12*8 + 0x10]
mov rcx, qword [rsp + 0x68]
call fcn.1800645a0
mov byte [rbp + r12*8 + 1], 0xff
mov rax, qword [r14 + 0x18]
mov r8d, 4
mov qword [rbp + r12*8 + 0x10], rax
mov eax, dword [r14 + 0x20]
mov dword [rbp + r12*8 + 4], eax
mov rsi, qword [rsp + 0x68]
mov eax, dword [rsi + 0x60]
cmp dword [rbp + r12*8 + 4], eax
jg 0x18009123f
mov eax, 0xa02
mov word [r14 + 0x24], ax
mov rax, qword [rbp + r12*8 + 0x10]
mov qword [r14 + 0x18], rax
mov eax, dword [rbp + r12*8 + 4]
mov dword [r14 + 0x20], eax
mov al, byte [rsp + 0x48]
mov byte [r14 + 0x27], al
jmp case.0x18008abb5.17
mov eax, 1
mov word [r14 + 0x24], ax
jmp case.0x18008abb5.17
mov rdi, qword [rbp + r12*8 + 0x10]
mov ebx, dword [rbp + r12*8 + 4]
test rdi, rdi
jne 0x18008af30
mov rcx, r14
call fcn.180083370
mov al, byte [rsp + 0x48]
mov rdi, qword [rsp + 0x58]
mov byte [r14 + 0x27], al
jmp 0x180090e40
mov rax, qword [r14 + 0x10]
test rax, rax
je 0x18008af3e
mov eax, dword [rax + 0x60]
jmp 0x18008af43
mov eax, 0x3b9aca00
mov esi, 0x10
test ebx, ebx
jns 0x18008af7b
mov ebx, r15d
mov rcx, r15
test eax, eax
js 0x18008af76
movsxd rdx, eax
nop dword [rax]
movzx eax, byte [rcx + rdi + 1]
or al, byte [rcx + rdi]
je 0x18008af76
add rcx, 2
add ebx, 2
cmp rcx, rdx
jle 0x18008af60
mov esi, 0x210
lea rax, [fcn.1800645a0]
mov rcx, r14
test rax, rax
jne 0x18008afa2
call fcn.180083060
mov rdx, qword [r14 + 0x30]
mov rcx, qword [r14 + 0x10]
call fcn.1800645a0
mov qword [r14 + 0x30], rdi
jmp 0x18008afc0
call fcn.180083060
mov rdx, qword [r14 + 0x30]
mov rcx, qword [r14 + 0x10]
call fcn.1800645a0
mov eax, 0x800
mov qword [r14 + 0x30], r15
or si, ax
mov al, byte [rsp + 0x48]
mov word [r14 + 0x24], si
mov rsi, qword [rsp + 0x68]
mov byte [r14 + 0x27], 1
mov qword [r14 + 0x28], r15
mov qword [r14 + 0x18], rdi
mov byte [r14 + 0x27], al
mov dword [r14 + 0x20], ebx
mov byte [r14 + 0x26], 4
mov rdi, qword [rsp + 0x58]
jmp 0x180090e40
mov eax, dword [rbp + r12*8 + 4]
dec eax
movsxd rdx, eax
imul rdx, rdx, 0x38
add rdx, qword [rdi + 0x68]
mov qword [rsp + 0xb0], rdx
movzx eax, word [rdx + 0x24]
test al, 0x12
je 0x18008b03b
mov r8d, dword [rdx + 0x20]
mov ecx, 0x4000
test cx, ax
je 0x18008b025
add r8d, dword [rdx]
mov rax, qword [rdx + 0x10]
mov ecx, r15d
cmp r8d, dword [rax + 0x60]
setg cl
test ecx, ecx
jne 0x18009123f
mov r8d, 0x800
mov rcx, r14
call fcn.1800835f0
jmp 0x180090e40
mov edx, dword [rbp + r12*8 + 0xc]
mov r11, qword [rsp + 0x50]
mov dword [rsp + 0xb8], edx
movsxd rax, dword [rbp + r12*8 + 4]
mov dword [rsp + 0xbc], eax
movsxd rcx, dword [rbp + r12*8 + 8]
mov rbx, rax
imul rbx, rbx, 0x38
mov r14, rcx
add rbx, r11
mov dword [rsp + 0xc0], ecx
imul r14, r14, 0x38
add r14, r11
test edx, edx
je 0x18008b0d7
nop
dec edx
mov rcx, r14
mov dword [rsp + 0xb8], edx
mov rax, qword [r14 + 0x30]
mov rdx, rbx
mov qword [rsp + 0xb0], rax
mov qword [r14 + 0x30], r15
call fcn.180083720
mov r11, qword [rsp + 0xb0]
add rbx, 0x38
add r14, 0x38
mov qword [rbx - 8], r11
mov edx, dword [rsp + 0xb8]
test edx, edx
jne 0x18008b090
lea r8d, [rdx + 4]
dec edx
mov dword [rsp + 0xb8], edx
jmp case.0x18008abb5.17
mov rbx, qword [rsp + 0x50]
movsxd r14, dword [rbp + r12*8 + 8]
movsxd rdx, dword [rbp + r12*8 + 4]
imul rdx, rdx, 0x38
imul r14, r14, 0x38
add r14, rbx
add rdx, rbx
mov ebx, 0x1000
mov r8d, ebx
mov rcx, r14
call fcn.1800835f0
test word [r14 + 0x24], bx
je 0x180090e40
mov rcx, r14
call fcn.180082d40
test eax, eax
jne 0x18008b2dd
jmp 0x180090e40
movsxd r14, dword [rbp + r12*8 + 8]
movsxd rdx, dword [rbp + r12*8 + 4]
mov rbx, qword [rsp + 0x50]
imul r14, r14, 0x38
imul rdx, rdx, 0x38
add r14, rbx
add rdx, rbx
mov r8d, 0x1000
mov rcx, r14
call fcn.1800835f0
jmp 0x180090e40
cmp qword [rdi + 0x140], 0
jle 0x18008b1a0
mov rdx, qword [rdi]
lea rcx, [rdi + 0x98]
lea r8, str.foreign_key_constraint_failed
mov dword [rdi + 0x90], 0x13
mov byte [rdi + 0x60], 2
call fcn.180064ab0
mov r13d, 1
mov dword [rsp + 0x44], r13d
jmp 0x180090e40
mov rsi, qword [rdi]
mov r13d, r15d
mov dword [rsp + 0x44], r15d
cmp dword [rsi + 0x314], 0
je 0x18008b22e
mov eax, dword [rdi + 0x150]
test eax, eax
je 0x18008b22e
cmp dword [rsi + 8], 0
lea ebp, [rax - 1]
mov edi, r15d
jle 0x18008b217
mov rbx, r15
mov r15d, 1
nop word [rax + rax]
mov rax, qword [rsi + 0x10]
mov rcx, qword [rbx + rax + 8]
test rcx, rcx
je 0x18008b200
mov r8d, ebp
mov edx, r15d
call fcn.180079220
test r13d, r13d
cmove r13d, eax
inc edi
add rbx, 0x20
cmp edi, dword [rsi + 8]
jl 0x18008b1e0
xor r15d, r15d
mov dword [rsp + 0x44], r13d
lea r8d, [r15 + 4]
mov rdi, qword [rsp + 0x58]
dec dword [rsi + 0x314]
mov rbp, qword [rsp + 0x78]
mov dword [rdi + 0x150], r15d
test r13d, r13d
je 0x180090f24
mov rsi, qword [rsp + 0x68]
jmp case.0x18008abb5.17
mov rax, qword [rsp + 0x50]
movsxd rdi, dword [rbp + r12*8 + 4]
movsxd rbx, dword [rbp + r12*8 + 8]
imul rdi, rdi, 0x38
imul rbx, rbx, 0x38
movsxd r14, dword [rbp + r12*8 + 0xc]
add rdi, rax
add rbx, rax
movzx ecx, word [rdi + 0x24]
imul r14, r14, 0x38
add r14, rax
movzx eax, cl
or al, byte [rbx + 0x24]
test al, 1
je 0x18008b28a
mov rcx, r14
call fcn.180083370
mov rdi, qword [rsp + 0x58]
jmp 0x180090e40
mov r12d, 0x4000
test r12w, cx
je 0x18008b2a2
mov rcx, rdi
call fcn.180082dc0
test eax, eax
jne 0x18008b2d8
test word [rbx + 0x24], r12w
je 0x18008b2b5
mov rcx, rbx
call fcn.180082dc0
test eax, eax
jne 0x18008b2d8
test byte [rdi + 0x24], 0x12
jne 0x18008b39a
movzx r12d, byte [rsp + 0x48]
mov rcx, rdi
mov edx, r12d
call fcn.180082ea0
test eax, eax
je 0x18008b39f
mov rdi, qword [rsp + 0x58]
lea rcx, [rdi + 0x98]
lea r8, str.out_of_memory
mov rdx, rsi
mov byte [rsi + 0x2a], 1
call fcn.180064ab0
mov r13d, 7
mov rax, qword [rdi + 0x98]
mov r9, qword [rdi + 0x130]
mov r8d, dword [rsp + 0x40]
lea rdx, str.statement_aborts_at__d:___s___s
mov ecx, r13d
mov qword [rsp + 0x20], rax
mov dword [rdi + 0x90], r13d
call fcn.1800663b0
mov rcx, rdi
call fcn.180086780
cmp r13d, 0xc0a
jne 0x18008b340
mov byte [rsi + 0x2a], 1
cmp byte [rsp + 0x60], 0
mov ebx, 1
je 0x18008b356
xor edx, edx
mov rcx, rsi
call fcn.18009f540
lea rcx, [rdi + 0xc0]
call fcn.180074890
mov eax, ebx
mov rcx, qword [rsp + 0x1c0]
xor rcx, rsp
call fcn.1800e9d70
lea r11, [rsp + 0x1e0]
mov rbx, qword [r11 + 0x38]
mov rbp, qword [r11 + 0x40]
mov rsi, qword [r11 + 0x48]
movaps xmm6, xmmword [r11 - 0x10]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret
mov r12b, byte [rsp + 0x48]
test byte [rbx + 0x24], 0x12
jne 0x18008b3b9
movzx edx, r12b
mov rcx, rbx
call fcn.180082ea0
test eax, eax
jne 0x18008b2d8
mov eax, dword [rdi + 0x20]
add eax, dword [rbx + 0x20]
movsxd rcx, eax
mov qword [rsp + 0xb0], rcx
movsxd rax, dword [rsi + 0x60]
cmp rcx, rax
jg 0x18009123a
mov eax, 0xbf02
mov r8d, r15d
mov rcx, r14
and word [r14 + 0x24], ax
or word [r14 + 0x24], 2
mov edx, dword [rsp + 0xb0]
cmp r14, rbx
sete r8b
add edx, 2
call fcn.180082bf0
test eax, eax
jne 0x18008b2d8
cmp r14, rbx
je 0x18008b421
movsxd r8, dword [rbx + 0x20]
mov rdx, qword [rbx + 0x18]
mov rcx, qword [r14 + 0x18]
call sub.MSVCR90.dll_memcpy
movsxd rcx, dword [rbx + 0x20]
movsxd r8, dword [rdi + 0x20]
mov rdx, qword [rdi + 0x18]
add rcx, qword [r14 + 0x18]
call sub.MSVCR90.dll_memcpy
mov rax, qword [rsp + 0xb0]
mov r11, qword [r14 + 0x18]
mov rdi, qword [rsp + 0x58]
mov byte [rax + r11], 0
mov rax, qword [rsp + 0xb0]
mov rcx, qword [r14 + 0x18]
mov byte [rcx + rax + 1], 0
mov eax, 0x200
or word [r14 + 0x24], ax
mov eax, dword [rsp + 0xb0]
mov byte [r14 + 0x27], r12b
mov dword [r14 + 0x20], eax
jmp 0x180090e40
movsxd rbx, dword [rbp + r12*8 + 4]
mov r14, qword [rsp + 0x50]
imul rbx, rbx, 0x38
add rbx, r14
mov rcx, rbx
call fcn.18008a7a0
movsxd rdi, dword [rbp + r12*8 + 8]
imul rdi, rdi, 0x38
add rdi, r14
mov rcx, rdi
call fcn.18008a7a0
movsxd r14, dword [rbp + r12*8 + 0xc]
movzx ecx, word [rdi + 0x24]
imul r14, r14, 0x38
movzx eax, word [rbx + 0x24]
add r14, qword [rsp + 0x50]
or ecx, eax
mov dword [rsp + 0xb0], ecx
test cl, 1
jne 0x18008b278
movzx eax, byte [rdi + 0x24]
and al, byte [rbx + 0x24]
test al, 4
je 0x18008b5b4
mov rcx, qword [rbx]
mov qword [rsp + 0xb8], rcx
mov rdx, qword [rdi]
mov qword [rsp + 0xc0], rdx
movzx r8d, byte [rbp + r12*8]
sub r8d, 0x56
je 0x18008b58c
sub r8d, 1
je 0x18008b587
sub r8d, 1
je 0x18008b581
cmp r8d, 1
je 0x18008b53f
test rcx, rcx
je 0x18008b278
cmp rcx, 0xffffffffffffffff
mov eax, 1
cmove rcx, rax
mov rax, rdx
cqo
mov qword [rsp + 0xb8], rcx
idiv rcx
jmp 0x18008b58f
test rcx, rcx
je 0x18008b278
cmp rcx, 0xffffffffffffffff
jne 0x18008b56c
movabs rax, 0x8000000000000000
cmp rdx, rax
mov eax, 1
cmove rcx, rax
mov qword [rsp + 0xb8], rcx
mov rax, rdx
cqo
idiv rcx
mov rdx, rax
mov qword [rsp + 0xc0], rax
jmp 0x18008b597
imul rdx, rcx
jmp 0x18008b58f
sub rdx, rcx
jmp 0x18008b58f
add rdx, rcx
mov qword [rsp + 0xc0], rdx
mov rdi, qword [rsp + 0x58]
mov eax, 0xbf04
mov qword [r14], rdx
and word [r14 + 0x24], ax
or word [r14 + 0x24], 4
jmp 0x180090e40
mov rcx, rbx
call fcn.1800831d0
mov rcx, rdi
movsd qword [rsp + 0xc8], xmm0
call fcn.1800831d0
movsd qword [rsp + 0xd0], xmm0
movzx ecx, byte [rbp + r12*8]
movapd xmm5, xmm0
sub ecx, 0x56
je 0x18008b67e
sub ecx, 1
je 0x18008b66b
sub ecx, 1
je 0x18008b660
cmp ecx, 1
je 0x18008b645
cvttsd2si rcx, qword [rsp + 0xc8]
cvttsd2si rax, xmm0
mov qword [rsp + 0xc0], rax
mov qword [rsp + 0xb8], rcx
test rcx, rcx
je 0x18008b278
cmp rcx, 0xffffffffffffffff
mov edx, 1
pxor xmm5, xmm5
cmove rcx, rdx
cqo
mov qword [rsp + 0xb8], rcx
idiv rcx
cvtsi2sd xmm5, rdx
jmp 0x18008b687
movsd xmm0, qword [rsp + 0xc8]
ucomisd xmm0, xmm6
jp 0x18008b65a
je 0x18008b278
divsd xmm5, xmm0
jmp 0x18008b687
mulsd xmm5, qword [rsp + 0xc8]
jmp 0x18008b687
movapd xmm0, xmm6
subsd xmm0, qword [rsp + 0xc8]
addsd xmm5, xmm0
jmp 0x18008b687
addsd xmm5, qword [rsp + 0xc8]
movapd xmm0, xmm5
movsd qword [rsp + 0xd0], xmm5
call fcn.180066e00
test eax, eax
jne 0x18008b278
movsd xmm0, qword [rsp + 0xd0]
mov eax, 0xbf08
and word [r14 + 0x24], ax
or word [r14 + 0x24], 8
movsd qword [r14 + 8], xmm0
test byte [rsp + 0xb0], 8
jne 0x18008afe8
mov rcx, r14
call fcn.180083280
mov rdi, qword [rsp + 0x58]
jmp 0x180090e40
movzx eax, byte [rbp + r12*8 + 3]
mov r8, qword [rdi + 0x38]
mov r9, qword [rsp + 0x50]
mov dword [rsp + 0x128], eax
mov qword [rsp + 0x120], r8
movsxd rdx, dword [rbp + r12*8 + 8]
mov ecx, r15d
imul rdx, rdx, 0x38
add rdx, r9
mov dword [rsp + 0xb0], ecx
mov qword [rsp + 0xb8], rdx
test eax, eax
jle 0x18008b76b
movsxd rax, ecx
mov qword [r8 + rax*8], rdx
mov rcx, qword [rsp + 0xb8]
call fcn.18008a620
mov ecx, dword [rsp + 0xb0]
mov rdx, qword [rsp + 0xb8]
inc ecx
add rdx, 0x38
cmp ecx, dword [rsp + 0x128]
mov dword [rsp + 0xb0], ecx
mov qword [rsp + 0xb8], rdx
jge 0x18008b76b
mov r8, qword [rsp + 0x120]
jmp 0x18008b720
cmp byte [rbp + r12*8 + 1], 0xfb
mov rax, qword [rbp + r12*8 + 0x10]
jne 0x18008b782
mov qword [rsp + 0xc8], r15
jmp 0x18008b78d
mov qword [rsp + 0xc8], rax
mov rax, qword [rax]
mov qword [rsp + 0xc0], rax
movsxd r14, dword [rbp + r12*8 + 0xc]
lea rcx, [rsp + 0xd0]
mov ebx, 1
mov qword [rsp + 0xe0], rsi
mov qword [rsp + 0xf8], r15
imul r14, r14, 0x38
add r14, r9
mov qword [rsp + 0x100], r15
mov word [rsp + 0xf4], bx
mov rdx, r14
call fcn.180083720
movzx r11d, word [rsp + 0xf4]
mov r9, qword [rsp + 0xc0]
mov eax, 0xbf01
mov dword [rsp + 0x110], r15d
and r11w, ax
or r11w, bx
mov word [rsp + 0xf4], r11w
test byte [r9 + 3], 8
je 0x18008b819
mov rax, qword [rbp + r12*8 - 8]
mov qword [rsp + 0x118], rax
mov r8, qword [rsp + 0x120]
mov edx, dword [rsp + 0x128]
lea rcx, [rsp + 0xc0]
call qword [r9 + 0x18]
cmp byte [rsi + 0x2a], 0
jne 0x180090fe1
mov rcx, qword [rsp + 0xc8]
test rcx, rcx
je 0x18008b868
mov edx, dword [rbp + r12*8 + 4]
call fcn.180086db0
mov r11, qword [rsp + 0xc8]
mov byte [rbp + r12*8 + 1], 0xf9
mov qword [rbp + r12*8 + 0x10], r11
cmp dword [rsp + 0x110], 0
je 0x18008b933
test byte [rsp + 0xf4], bl
je 0x18008b887
mov r9, r15
jmp 0x18008b910
movzx ecx, word [rsp + 0xf4]
movzx eax, cx
shr ax, 3
and ax, 2
or cx, ax
mov eax, 0x4000
mov word [rsp + 0xf4], cx
test ax, cx
je 0x18008b8bc
lea rcx, [rsp + 0xd0]
call fcn.180082dc0
test byte [rsp + 0xf4], 2
je 0x18008b8ee
cmp byte [rsp + 0xf7], bl
je 0x18008b8df
lea rcx, [rsp + 0xd0]
movzx edx, bl
call fcn.180066690
lea rcx, [rsp + 0xd0]
call fcn.180082e30
jmp 0x18008b8fd
lea rcx, [rsp + 0xd0]
mov edx, ebx
call fcn.180082ea0
cmp byte [rsp + 0xf7], bl
mov r9, r15
cmove r9, qword [rsp + 0xe8]
lea rcx, [rdi + 0x98]
lea r8, [0x1801287c8]
mov rdx, rsi
call fcn.180064ab0
mov r13d, dword [rsp + 0x110]
mov dword [rsp + 0x44], r13d
test byte [rsp + 0xf4], 2
movzx ecx, byte [rsp + 0x48]
je 0x18008b95e
movzx eax, byte [rsp + 0xf7]
cmp eax, ecx
je 0x18008b95e
movzx edx, cl
lea rcx, [rsp + 0xd0]
call fcn.180066690
lea rdx, [rsp + 0xd0]
mov rcx, r14
call fcn.180083720
movzx r11d, word [r14 + 0x24]
test r11b, 0x12
je 0x180090e40
mov edx, dword [r14 + 0x20]
mov eax, 0x4000
test ax, r11w
je 0x18008b98f
add edx, dword [r14]
mov rax, qword [r14 + 0x10]
mov ecx, r15d
cmp edx, dword [rax + 0x60]
setg cl
test ecx, ecx
jne 0x18009123f
jmp 0x180090e40
mov rax, qword [rsp + 0x50]
movsxd rcx, dword [rbp + r12*8 + 8]
movsxd rbx, dword [rbp + r12*8 + 4]
imul rcx, rcx, 0x38
imul rbx, rbx, 0x38
movsxd r14, dword [rbp + r12*8 + 0xc]
add rcx, rax
add rbx, rax
imul r14, r14, 0x38
add r14, rax
movzx eax, byte [rcx + 0x24]
or al, byte [rbx + 0x24]
test al, 1
je 0x18008b9ea
mov rcx, r14
call fcn.180083370
jmp 0x180090e40
call fcn.180083120
mov rcx, rbx
mov qword [rsp + 0xb0], rax
call fcn.180083120
mov qword [rsp + 0xb8], rax
movzx ecx, byte [rbp + r12*8]
mov r11, rax
sub ecx, 0x52
je 0x18008ba41
sub ecx, 1
je 0x18008ba34
cmp ecx, 1
mov rcx, rax
mov rax, qword [rsp + 0xb0]
je 0x18008ba2f
sar rax, cl
jmp 0x18008ba4c
shl rax, cl
jmp 0x18008ba4c
mov rax, qword [rsp + 0xb0]
or rax, r11
jmp 0x18008ba4c
mov rax, qword [rsp + 0xb0]
and rax, r11
mov qword [rsp + 0xb0], rax
mov qword [r14], rax
mov eax, 0xbf04
and word [r14 + 0x24], ax
or word [r14 + 0x24], 4
jmp 0x180090e40
movsxd rbx, dword [rbp + r12*8 + 4]
imul rbx, rbx, 0x38
add rbx, qword [rsp + 0x50]
mov rcx, rbx
call fcn.180083120
mov ecx, 0xbf04
and word [rbx + 0x24], cx
or word [rbx + 0x24], 4
mov qword [rbx], rax
movsxd rcx, dword [rbp + r12*8 + 8]
add rcx, rax
mov qword [rbx], rcx
jmp 0x180090e40
movsxd rbx, dword [rbp + r12*8 + 4]
imul rbx, rbx, 0x38
add rbx, qword [rsp + 0x50]
mov rcx, rbx
call fcn.18008a7a0
test byte [rbx + 0x24], 8
je 0x18008bac7
mov rcx, rbx
call fcn.180083280
movzx eax, word [rbx + 0x24]
test al, 4
jne 0x18008baea
mov eax, dword [rbp + r12*8 + 8]
test eax, eax
je 0x1800910ae
lea ecx, [rax - 1]
mov r8d, 4
jmp 0x180090e4a
mov ecx, 0xbf04
and ax, cx
or ax, 4
mov word [rbx + 0x24], ax
jmp 0x180090e40
movsxd rbx, dword [rbp + r12*8 + 4]
imul rbx, rbx, 0x38
add rbx, qword [rsp + 0x50]
test byte [rbx + 0x24], 4
je case.0x18008abb5.17
mov rcx, rbx
call fcn.1800831d0
mov eax, 0xbf08
movsd qword [rbx + 8], xmm0
and word [rbx + 0x24], ax
or word [rbx + 0x24], 8
jmp 0x180090e40
movsxd rbx, dword [rbp + r12*8 + 4]
imul rbx, rbx, 0x38
add rbx, qword [rsp + 0x50]
movzx ecx, word [rbx + 0x24]
test cl, 1
jne case.0x18008abb5.17
movzx eax, cx
shr ax, 3
and ax, 2
or ax, cx
mov word [rbx + 0x24], ax
test al, 2
jne 0x18008bb79
test al, 0xc
je 0x18008bb79
movzx edx, byte [rsp + 0x48]
mov rcx, rbx
call fcn.180082ea0
mov eax, 0xfff3
and word [rbx + 0x24], ax
mov eax, 0x4000
test word [rbx + 0x24], ax
je 0x18008bbaa
mov rcx, rbx
call fcn.180082dc0
mov r13d, eax
mov dword [rsp + 0x44], eax
mov eax, 0xbfe3
and word [rbx + 0x24], ax
jmp 0x180090e40
mov eax, 0xbfe3
mov r13d, r15d
mov dword [rsp + 0x44], r15d
and word [rbx + 0x24], ax
jmp 0x180090e40
movsxd rbx, dword [rbp + r12*8 + 4]
imul rbx, rbx, 0x38
add rbx, qword [rsp + 0x50]
movzx eax, word [rbx + 0x24]
test al, 1
jne case.0x18008abb5.17
test al, 0x10
jne 0x18008bc0c
test al, 2
jne 0x18008bbf9
test al, 0xc
je 0x18008bbf9
movzx edx, byte [rsp + 0x48]
mov rcx, rbx
call fcn.180082ea0
mov r8d, 4
mov eax, 0xbf10
and word [rbx + 0x24], ax
or word [rbx + 0x24], 0x10
jmp case.0x18008abb5.17
mov ecx, 0xff10
and ax, cx
mov word [rbx + 0x24], ax
jmp case.0x18008abb5.17
movsxd rcx, dword [rbp + r12*8 + 4]
imul rcx, rcx, 0x38
add rcx, qword [rsp + 0x50]
test byte [rcx + 0x24], 0xd
jne case.0x18008abb5.17
call fcn.1800832f0
jmp 0x180090e40
movsxd rbx, dword [rbp + r12*8 + 4]
imul rbx, rbx, 0x38
add rbx, qword [rsp + 0x50]
test byte [rbx + 0x24], 1
jne case.0x18008abb5.17
mov rcx, rbx
call fcn.180083120
mov qword [rbx], rax
mov eax, 0xbf04
and word [rbx + 0x24], ax
or word [rbx + 0x24], 4
jmp 0x180090e40
movsxd rbx, dword [rbp + r12*8 + 4]
imul rbx, rbx, 0x38
add rbx, qword [rsp + 0x50]
test byte [rbx + 0x24], 1
jne case.0x18008abb5.17
jmp 0x18008bb17
movsxd rbx, dword [rbp + r12*8 + 4]
movsxd rdi, dword [rbp + r12*8 + 0xc]
mov r11, qword [rsp + 0x50]
imul rbx, rbx, 0x38
imul rdi, rdi, 0x38
add rbx, r11
add rdi, r11
movzx eax, word [rbx + 0x24]
mov word [rsp + 0xb6], ax
movzx eax, word [rdi + 0x24]
mov word [rsp + 0xb8], ax
movzx ecx, word [rdi + 0x24]
movzx edx, word [rbx + 0x24]
movzx eax, cl
or al, dl
test al, 1
je 0x18008bd3e
movzx eax, byte [rbp + r12*8 + 3]
test al, al
jns 0x18008bcfb
mov r8d, r15d
and cl, dl
test cl, 1
sete r8b
mov dword [rsp + 0xb0], r8d
jmp 0x18008bdc3
test al, 0x10
je 0x18008bd25
movsxd r14, dword [rbp + r12*8 + 8]
mov eax, 0xbf01
imul r14, r14, 0x38
add r14, r11
and word [r14 + 0x24], ax
or word [r14 + 0x24], 1
mov rdi, qword [rsp + 0x58]
jmp case.0x18008abb5.17
test al, 8
je 0x18008bd1b
mov edi, dword [rbp + r12*8 + 8]
dec edi
mov dword [rsp + 0x40], edi
mov rdi, qword [rsp + 0x58]
jmp case.0x18008abb5.17
movzx edx, byte [rbp + r12*8 + 3]
and dl, 0x67
mov byte [rsp + 0xb4], dl
je 0x18008bd7e
movzx r8d, byte [rsp + 0x48]
mov rcx, rbx
call fcn.18008a890
movzx r8d, byte [rsp + 0x48]
movzx edx, byte [rsp + 0xb4]
mov rcx, rdi
call fcn.18008a890
cmp byte [rsi + 0x2a], 0
jne 0x18008b2d8
mov eax, 0x4000
test word [rbx + 0x24], ax
je 0x18008bd96
mov rcx, rbx
call fcn.180082dc0
mov eax, 0x4000
test word [rdi + 0x24], ax
je 0x18008bda4
mov rcx, rdi
call fcn.180082dc0
mov r8, qword [rbp + r12*8 + 0x10]
mov rdx, rbx
mov rcx, rdi
call fcn.1800839b0
mov r11, qword [rsp + 0x50]
mov r8d, eax
mov dword [rsp + 0xb0], eax
movzx edx, byte [rbp + r12*8]
mov eax, r15d
sub edx, 0x4b
je 0x18008be0d
sub edx, 1
je 0x18008be05
sub edx, 1
je 0x18008bdfd
sub edx, 1
je 0x18008bdf5
cmp edx, 1
je 0x18008bded
test r8d, r8d
setns al
jmp 0x18008be13
test r8d, r8d
sets al
jmp 0x18008be13
test r8d, r8d
setle al
jmp 0x18008be13
test r8d, r8d
setg al
jmp 0x18008be13
test r8d, r8d
sete al
jmp 0x18008be13
test r8d, r8d
setne al
mov dword [rsp + 0xb0], eax
test byte [rbp + r12*8 + 3], 0x10
je 0x18008be4b
movsxd r14, dword [rbp + r12*8 + 8]
mov eax, 0xbf04
imul r14, r14, 0x38
add r14, r11
and word [r14 + 0x24], ax
or word [r14 + 0x24], 4
movsxd rax, dword [rsp + 0xb0]
mov qword [r14], rax
jmp 0x18008be5a
test eax, eax
je 0x18008be5a
mov eax, dword [rbp + r12*8 + 8]
dec eax
mov dword [rsp + 0x40], eax
movzx eax, byte [rsp + 0xb6]
mov byte [rbx + 0x24], al
movzx eax, byte [rsp + 0xb8]
mov byte [rdi + 0x24], al
mov rdi, qword [rsp + 0x58]
jmp 0x180090e40
mov rax, qword [rbp + r12*8 + 0x10]
mov qword [rsp + 0x88], rax
jmp case.0x18008abb5.17
mov eax, dword [rbp + r12*8 + 0xc]
mov ecx, r15d
mov dword [rsp + 0xb0], eax
mov rdx, qword [rbp + r12*8 + 0x10]
mov qword [rsp + 0xc0], rdx
mov r10d, dword [rbp + r12*8 + 4]
mov dword [rsp + 0xb8], r10d
mov r11d, dword [rbp + r12*8 + 8]
mov dword [rsp + 0xb4], ecx
mov dword [rsp + 0xbc], r11d
test eax, eax
jle 0x18008bf9c
mov rbx, qword [rsp + 0x50]
nop word [rax + rax]
mov r8, qword [rsp + 0x88]
test r8, r8
je 0x18008befe
movsxd rax, ecx
mov r9d, dword [r8 + rax*4]
mov dword [rsp + 0xc8], r9d
jmp 0x18008bf08
mov r9d, ecx
mov dword [rsp + 0xc8], ecx
movsxd rcx, ecx
mov r8, qword [rdx + rcx*8 + 0x18]
mov qword [rsp + 0xd0], r8
mov rax, qword [rdx + 0x10]
movzx ecx, byte [rax + rcx]
lea eax, [r9 + r11]
mov dword [rsp + 0xd8], ecx
movsxd rdx, eax
lea eax, [r9 + r10]
movsxd rcx, eax
imul rdx, rdx, 0x38
add rdx, rbx
imul rcx, rcx, 0x38
add rcx, rbx
call fcn.1800839b0
mov dword [rsp + 0x70], eax
test eax, eax
jne 0x18008bf86
mov ecx, dword [rsp + 0xb4]
inc ecx
cmp ecx, dword [rsp + 0xb0]
mov dword [rsp + 0xb4], ecx
jge 0x18008bf96
mov rdx, qword [rsp + 0xc0]
mov r11d, dword [rsp + 0xbc]
mov r10d, dword [rsp + 0xb8]
jmp 0x18008bee0
cmp dword [rsp + 0xd8], 0
je 0x18008bf96
neg eax
mov dword [rsp + 0x70], eax
mov r8d, 4
mov qword [rsp + 0x88], r15
jmp case.0x18008abb5.17
mov ebx, dword [rsp + 0x70]
test ebx, ebx
jns 0x18008bfbd
mov ecx, dword [rbp + r12*8 + 4]
dec ecx
jmp 0x180090e4a
jne 0x18008bfcb
mov ecx, dword [rbp + r12*8 + 8]
dec ecx
jmp 0x180090e4a
mov ecx, dword [rbp + r12*8 + 0xc]
dec ecx
jmp 0x180090e4a
movsxd rcx, dword [rbp + r12*8 + 4]
mov rbx, qword [rsp + 0x50]
imul rcx, rcx, 0x38
add rcx, rbx
test byte [rcx + 0x24], 1
je 0x18008bff6
mov r8d, 2
jmp 0x18008c005
call fcn.180083120
mov r8d, r15d
test rax, rax
setne r8b
mov dword [rsp + 0xb0], r8d
movsxd rcx, dword [rbp + r12*8 + 8]
imul rcx, rcx, 0x38
add rcx, rbx
test byte [rcx + 0x24], 1
je 0x18008c026
mov edx, 2
jmp 0x18008c03c
call fcn.180083120
mov r8d, dword [rsp + 0xb0]
mov edx, r15d
test rax, rax
setne dl
movsxd rax, r8d
mov dword [rsp + 0xb4], edx
lea rcx, [rax + rax*2]
movsxd rax, edx
add rcx, rax
cmp byte [rbp + r12*8], 0x45
lea rax, [0x180000000]
jne 0x18008c069
movzx eax, byte [rcx + rax + 0x12b838]
jmp 0x18008c071
movzx eax, byte [rcx + rax + 0x12b848]
mov ecx, dword [rsp + 0x40]
mov dword [rsp + 0xb0], eax
movsxd r14, dword [rbp + r12*8 + 0xc]
imul r14, r14, 0x38
add r14, rbx
mov r8d, 4
cmp eax, 2
jne 0x18008c0a8
mov eax, 0xbf01
and word [r14 + 0x24], ax
or word [r14 + 0x24], 1
jmp 0x180090e4a
cdqe
mov qword [r14], rax
mov eax, 0xbf04
and word [r14 + 0x24], ax
or word [r14 + 0x24], 4
jmp 0x180090e4a
mov rbx, qword [rsp + 0x50]
movsxd rcx, dword [rbp + r12*8 + 4]
movsxd r14, dword [rbp + r12*8 + 8]
imul rcx, rcx, 0x38
imul r14, r14, 0x38
add rcx, rbx
add r14, rbx
test byte [rcx + 0x24], 1
je 0x18008c0f2
mov rcx, r14
call fcn.180083370
jmp 0x180090e40
call fcn.180083120
mov rdx, r15
mov rcx, r14
test rax, rax
sete dl
call fcn.180083400
jmp 0x180090e40
mov rbx, qword [rsp + 0x50]
movsxd rcx, dword [rbp + r12*8 + 4]
movsxd r14, dword [rbp + r12*8 + 8]
imul rcx, rcx, 0x38
imul r14, r14, 0x38
add rcx, rbx
add r14, rbx
test byte [rcx + 0x24], 1
je 0x18008c13d
mov rcx, r14
call fcn.180083370
jmp 0x180090e40
call fcn.180083120
mov rcx, r14
not rax
mov rdx, rax
call fcn.180083400
jmp 0x180090e40
movsxd rcx, dword [rbp + r12*8 + 4]
imul rcx, rcx, 0x38
add rcx, qword [rsp + 0x50]
test byte [rcx + 0x24], 1
je 0x18008c177
mov ecx, dword [rbp + r12*8 + 0xc]
mov dword [rsp + 0xb0], ecx
jmp 0x18008c1b2
call fcn.1800831d0
ucomisd xmm0, xmm6
jp 0x18008c187
mov ecx, r15d
je 0x18008c18c
mov ecx, 1
mov dword [rsp + 0xb0], ecx
cmp byte [rbp + r12*8], 0x1b
mov r8d, 4
jne 0x18008c1b2
mov eax, r15d
test ecx, ecx
sete al
mov ecx, eax
mov dword [rsp + 0xb0], eax
test ecx, ecx
je case.0x18008abb5.17
mov ecx, dword [rbp + r12*8 + 8]
dec ecx
jmp 0x180090e4a
movsxd rax, dword [rbp + r12*8 + 4]
mov rcx, qword [rsp + 0x50]
imul rax, rax, 0x38
test byte [rax + rcx + 0x24], 1
je case.0x18008abb5.17
mov ecx, dword [rbp + r12*8 + 8]
dec ecx
jmp 0x180090e4a
movsxd rax, dword [rbp + r12*8 + 4]
mov rcx, qword [rsp + 0x50]
imul rax, rax, 0x38
test byte [rax + rcx + 0x24], 1
jne case.0x18008abb5.17
mov ecx, dword [rbp + r12*8 + 8]
dec ecx
jmp 0x180090e4a
mov eax, dword [rbp + r12*8 + 4]
mov rbx, qword [rsp + 0x50]
mov edx, 0xbf01
mov dword [rsp + 0xc0], eax
mov eax, dword [rbp + r12*8 + 8]
mov qword [rsp + 0xc8], r15
mov dword [rsp + 0xc4], eax
xor eax, eax
mov qword [rsp + 0x110], rax
mov qword [rsp + 0x118], rax
mov qword [rsp + 0x120], rax
mov qword [rsp + 0x128], rax
mov qword [rsp + 0x130], rax
mov qword [rsp + 0x138], rax
mov qword [rsp + 0x140], rax
movsxd rcx, dword [rbp + r12*8 + 0xc]
imul rcx, rcx, 0x38
add rcx, rbx
mov qword [rsp + 0x108], rcx
movzx eax, word [rcx + 0x24]
and ax, dx
or ax, 1
mov word [rcx + 0x24], ax
mov rax, qword [rdi + 0x58]
movsxd rcx, dword [rsp + 0xc0]
mov qword [rsp + 0xd0], r15
mov rdx, qword [rax + rcx*8]
mov qword [rsp + 0xc8], rdx
mov rax, qword [rdx]
mov qword [rsp + 0xd8], rax
test rax, rax
je 0x18008c3a5
mov rcx, rdx
call fcn.180087030
mov r13d, eax
mov dword [rsp + 0x44], eax
test eax, eax
jne 0x1800911f2
mov rdx, qword [rsp + 0xc8]
cmp byte [rdx + 0x1c], al
je 0x18008c2fc
mov dword [rsp + 0xb0], r15d
jmp 0x180090e40
mov eax, dword [rdi + 0x88]
cmp dword [rdx + 0x64], eax
jne 0x18008c32b
mov ecx, dword [rdx + 0x68]
mov r8d, 4
mov dword [rsp + 0xb0], ecx
mov rax, qword [rdx + 0x80]
mov qword [rsp + 0xd0], rax
jmp 0x18008c3fc
cmp byte [rdx + 0x1f], 0
mov rbx, qword [rsp + 0xd8]
je 0x18008c383
cmp byte [rbx + 0x5b], 1
je 0x18008c349
mov qword [rsp + 0xb8], r15
jmp 0x18008c365
mov rcx, rbx
call fcn.180079530
mov r11, qword [rbx + 0x40]
mov rdx, qword [rsp + 0xc8]
mov qword [rsp + 0xb8], r11
mov ecx, dword [rsp + 0xb8]
mov r13d, r15d
mov dword [rsp + 0x44], r15d
mov dword [rsp + 0xb0], ecx
mov r8d, 4
jmp 0x18008c3fc
mov rcx, rbx
call fcn.180079530
mov ecx, dword [rbx + 0x48]
mov r13d, r15d
mov dword [rsp + 0x44], r15d
mov r8d, 4
mov dword [rsp + 0xb0], ecx
jmp 0x18008c3f4
movsxd rax, dword [rdx + 0x30]
test eax, eax
jle 0x18008cb4b
mov rcx, rax
imul rcx, rcx, 0x38
add rcx, rbx
mov qword [rsp + 0x168], rcx
mov eax, dword [rcx + 0x20]
mov dword [rsp + 0xb0], eax
mov rax, qword [rcx + 0x18]
mov qword [rsp + 0xd0], rax
test byte [rbp + r12*8 + 3], 0x20
mov eax, r15d
jne 0x18008c3ea
mov eax, dword [rdi + 0x88]
mov dword [rdx + 0x64], eax
mov ecx, dword [rsp + 0xb0]
mov rdx, qword [rsp + 0xc8]
test ecx, ecx
je case.0x18008abb5.17
cmp ecx, dword [rsi + 0x60]
ja 0x18009123f
movsxd r8, dword [rdx + 0x40]
mov eax, dword [rdi + 0x88]
mov dword [rsp + 0xf0], r8d
mov rcx, qword [rdx + 0x70]
mov qword [rsp + 0xe0], rcx
cmp dword [rdx + 0x64], eax
jne 0x18008c448
mov rax, qword [rdx + 0x78]
lea r13, [0x180000000]
mov qword [rsp + 0xe8], rax
jmp 0x18008c995
lea rcx, [rcx + r8*4]
mov dword [rsp + 0x164], r15d
mov qword [rsp + 0xe8], rcx
mov qword [rdx + 0x78], rcx
mov ecx, dword [rsp + 0xb0]
mov rax, qword [rsp + 0xc8]
mov dword [rax + 0x68], ecx
mov ecx, dword [rdi + 0x88]
mov rax, qword [rsp + 0xc8]
mov dword [rax + 0x64], ecx
mov rcx, qword [rsp + 0xd0]
test rcx, rcx
je 0x18008c49d
mov qword [rsp + 0x100], rcx
jmp 0x18008c608
mov r8, qword [rsp + 0xc8]
mov rdi, qword [rsp + 0xd8]
mov rcx, r15
cmp byte [r8 + 0x1f], 0
je 0x18008c52d
cmp byte [rdi + 0x5b], 1
jne 0x18008c5cb
cmp word [rdi + 0x56], 0
jne 0x18008c51c
movsx rax, word [rdi + 0x80]
lea r8, [rdi + 0x38]
mov rbx, qword [rdi + rax*8 + 0x88]
movzx ecx, word [rdi + rax*2 + 0x128]
movzx eax, word [rbx + 0xc]
mov r11, qword [rbx + 0x70]
lea rdx, [r11 + rax]
movzx eax, byte [rdx + rcx*2]
movzx edx, byte [rdx + rcx*2 + 1]
mov rcx, rbx
shl eax, 8
movsxd r10, eax
movzx eax, word [rbx + 0x12]
or rdx, r10
and rdx, rax
add rdx, r11
call fcn.180075430
mov r8, qword [rsp + 0xc8]
movzx ecx, word [rdi + 0x50]
movzx eax, word [rdi + 0x52]
add rcx, qword [rdi + 0x38]
jmp 0x18008c5c4
cmp byte [rdi + 0x5b], 1
jne 0x18008c5cb
cmp word [rdi + 0x56], 0
movsx rax, word [rdi + 0x80]
mov rsi, qword [rdi + rax*8 + 0x88]
jne 0x18008c5a2
movsx rax, word [rdi + 0x80]
lea r8, [rdi + 0x38]
mov rbx, qword [rdi + rax*8 + 0x88]
movzx ecx, word [rdi + rax*2 + 0x128]
movzx eax, word [rbx + 0xc]
mov r11, qword [rbx + 0x70]
lea rdx, [r11 + rax]
movzx eax, byte [rdx + rcx*2]
movzx edx, byte [rdx + rcx*2 + 1]
mov rcx, rbx
shl eax, 8
movsxd r10, eax
movzx eax, word [rbx + 0x12]
or rdx, r10
and rdx, rax
add rdx, r11
call fcn.180075430
mov r8, qword [rsp + 0xc8]
movzx edx, word [rdi + 0x50]
mov ecx, r15d
add rdx, qword [rdi + 0x38]
cmp byte [rsi + 2], 0
jne 0x18008c5b6
mov ecx, dword [rdi + 0x40]
movzx eax, word [rdi + 0x52]
mov rsi, qword [rsp + 0x68]
sub eax, ecx
add rcx, rdx
mov dword [rsp + 0x164], eax
mov eax, dword [rsp + 0x164]
mov rdi, qword [rsp + 0x58]
mov qword [rsp + 0x100], rcx
cmp dword [rsp + 0xb0], eax
ja 0x18008c5f9
mov qword [rsp + 0xd0], rcx
mov qword [r8 + 0x80], rcx
jmp 0x18008c600
mov qword [r8 + 0x80], r15
mov rcx, qword [rsp + 0x100]
movzx eax, byte [rcx]
cmp al, 0x80
jae 0x18008c622
movzx edx, al
mov ebx, 1
mov dword [rsp + 0x158], edx
mov eax, ebx
jmp 0x18008c646
lea rdx, [rsp + 0x158]
call fcn.180067b50
mov edx, dword [rsp + 0x158]
mov rcx, qword [rsp + 0x100]
movzx eax, al
mov ebx, 1
movzx r9d, al
mov dword [rsp + 0x160], r9d
cmp edx, 0x18003
jbe 0x18008c688
mov r8d, 0xf0f2
lea r9, [0x180138514]
lea rdx, str.database_corruption_at_line__d_of___.10s_
mov ecx, 0xb
call fcn.1800663b0
mov r13d, 0xb
mov dword [rsp + 0x44], r13d
jmp 0x180090e40
mov r10d, dword [rsp + 0xf0]
lea r8d, [r10 + r10*4 + 3]
cmp r8d, edx
cmovg r8d, edx
cmp qword [rsp + 0xd0], 0
mov dword [rsp + 0xf4], r8d
jne 0x18008c735
cmp dword [rsp + 0x164], r8d
jge 0x18008c735
mov rax, qword [rsp + 0xc8]
mov rcx, qword [rsp + 0xd8]
mov word [rsp + 0x134], r15w
mov qword [rsp + 0x120], r15
movzx r9d, byte [rax + 0x1f]
lea rax, [rsp + 0x110]
xor edx, edx
mov qword [rsp + 0x20], rax
call fcn.180083ef0
mov r13d, eax
mov dword [rsp + 0x44], eax
test eax, eax
jne 0x180090e40
mov rcx, qword [rsp + 0x128]
mov r9d, dword [rsp + 0x160]
mov edx, dword [rsp + 0x158]
mov r8d, dword [rsp + 0xf4]
mov r10d, dword [rsp + 0xf0]
mov qword [rsp + 0x100], rcx
movsxd rax, r8d
movsxd r9, r9d
mov dword [rsp + 0xf8], r15d
add rax, rcx
add r9, rcx
mov r8d, r15d
mov qword [rsp + 0x150], rax
mov qword [rsp + 0x148], r9
lea r13, [0x180000000]
test r10d, r10d
jle 0x18008c839
nop dword [rax]
cmp r9, rax
mov rax, qword [rsp + 0xe8]
movsxd rcx, r8d
jae 0x18008c880
mov dword [rax + rcx*4], edx
mov rcx, qword [rsp + 0x148]
movzx eax, byte [rcx]
cmp al, 0x80
jae 0x18008c7b0
movsxd rcx, dword [rsp + 0xf8]
movzx edx, al
mov rax, qword [rsp + 0xe0]
mov dword [rax + rcx*4], edx
mov eax, ebx
jmp 0x18008c7cc
movsxd rdx, dword [rsp + 0xf8]
mov rax, qword [rsp + 0xe0]
lea rdx, [rax + rdx*4]
call fcn.180067b50
movzx eax, al
mov r9, qword [rsp + 0x148]
movsxd r8, dword [rsp + 0xf8]
movzx eax, al
add r9, rax
mov rax, qword [rsp + 0xe0]
mov qword [rsp + 0x148], r9
mov edx, dword [rax + r8*4]
cmp edx, 0xc
jb 0x18008c802
lea eax, [rdx - 0xc]
shr eax, 1
jmp 0x18008c80b
movzx eax, byte [rdx + r13 + 0x12b7f0]
mov edx, dword [rsp + 0x158]
mov dword [rsp + 0x15c], eax
add edx, eax
mov dword [rsp + 0x158], edx
cmp edx, eax
jae 0x18008c89b
mov rax, qword [rsp + 0x150]
inc rax
mov qword [rsp + 0x148], rax
movzx eax, word [rsp + 0x134]
mov ecx, 0x2460
test cx, ax
je 0x18008c914
mov ecx, 0x2000
test cx, ax
je 0x18008c8bd
mov rdx, qword [rsp + 0x110]
lea rcx, [rsp + 0x110]
call fcn.180082f70
lea rcx, [rsp + 0x110]
call fcn.1800830f0
jmp 0x18008c914
mov dword [rax + rcx*4], r15d
mov edx, dword [rsp + 0x158]
mov r9, qword [rsp + 0x148]
mov r8d, dword [rsp + 0xf8]
inc r8d
cmp r8d, dword [rsp + 0xf0]
mov dword [rsp + 0xf8], r8d
jge 0x18008c839
mov rax, qword [rsp + 0x150]
jmp 0x18008c770
mov ecx, 0x400
test cx, ax
je 0x18008c8e8
mov rax, qword [rsp + 0x138]
test rax, rax
je 0x18008c8e8
mov rcx, qword [rsp + 0x128]
call rax
mov qword [rsp + 0x138], r15
jmp 0x18008c914
movzx eax, byte [rsp + 0x134]
test al, 0x20
je 0x18008c903
mov rcx, qword [rsp + 0x110]
call fcn.18006c6d0
jmp 0x18008c914
test al, 0x40
je 0x18008c914
lea rcx, [rsp + 0x110]
call fcn.180083370
mov rdx, qword [rsp + 0x140]
mov rcx, qword [rsp + 0x120]
call fcn.1800645a0
mov rdx, qword [rsp + 0x148]
mov r8, qword [rsp + 0x150]
mov qword [rsp + 0x128], r15
mov qword [rsp + 0x140], r15
mov qword [rsp + 0x138], r15
mov word [rsp + 0x134], bx
cmp rdx, r8
ja 0x18008cb40
mov eax, dword [rsp + 0x158]
mov ecx, dword [rsp + 0xb0]
cmp eax, ecx
ja 0x18008cb40
cmp rdx, r8
jne 0x18008c985
cmp eax, ecx
jne 0x18008cb40
mov rax, qword [rsp + 0xe8]
mov rcx, qword [rsp + 0xe0]
movsxd rdx, dword [rsp + 0xc4]
cmp dword [rax + rdx*4], 0
je 0x18008cab2
cmp qword [rsp + 0xd0], 0
je 0x18008c9ec
mov rcx, qword [rsp + 0x108]
call fcn.180083060
movsxd r11, dword [rsp + 0xc4]
mov rax, qword [rsp + 0xe8]
mov ecx, dword [rax + r11*4]
mov rax, qword [rsp + 0xe0]
mov edx, dword [rax + r11*4]
add rcx, qword [rsp + 0xd0]
jmp 0x18008ca94
mov eax, dword [rcx + rdx*4]
cmp eax, 0xc
jb 0x18008c9fb
add eax, 0xfffffff4
shr eax, 1
jmp 0x18008ca04
movzx eax, byte [rax + r13 + 0x12b7f0]
mov rdx, qword [rsp + 0x108]
lea rcx, [rsp + 0x110]
mov dword [rsp + 0xf4], eax
call fcn.180083720
movsxd rcx, dword [rsp + 0xc4]
mov r11, qword [rsp + 0xc8]
movzx r9d, byte [r11 + 0x1f]
mov r8d, dword [rsp + 0xf4]
lea rax, [rsp + 0x110]
mov qword [rsp + 0x20], rax
mov rax, qword [rsp + 0xe8]
mov edx, dword [rax + rcx*4]
mov rcx, qword [rsp + 0xd8]
call fcn.180083ef0
mov r13d, eax
mov dword [rsp + 0x44], eax
test eax, eax
jne 0x180090e40
mov rcx, qword [rsp + 0x128]
movsxd rdx, dword [rsp + 0xc4]
mov rax, qword [rsp + 0xe0]
mov qword [rsp + 0x100], rcx
mov edx, dword [rax + rdx*4]
mov r8, qword [rsp + 0x108]
call fcn.180087280
mov rax, qword [rsp + 0x108]
mov cl, byte [rsp + 0x48]
mov byte [rax + 0x27], cl
jmp 0x18008cad2
cmp byte [rbp + r12*8 + 1], 0xf8
jne 0x18008cad2
mov rdx, qword [rbp + r12*8 + 0x10]
mov rcx, qword [rsp + 0x108]
mov r8d, 0x800
call fcn.1800835f0
cmp qword [rsp + 0x140], 0
je 0x18008cb27
mov rax, qword [rsp + 0x108]
mov ecx, 0xe7ff
and word [rax + 0x24], cx
mov rax, qword [rsp + 0x108]
mov ecx, 0x200
or word [rax + 0x24], cx
mov rcx, qword [rsp + 0x108]
mov rax, qword [rsp + 0x128]
mov qword [rcx + 0x18], rax
mov rcx, qword [rsp + 0x108]
mov rax, qword [rsp + 0x140]
mov qword [rcx + 0x30], rax
mov rcx, qword [rsp + 0x108]
call fcn.180082d40
mov r13d, eax
mov dword [rsp + 0x44], eax
jmp 0x180090e40
mov r8d, 0xf13c
jmp 0x18008c660
mov dword [rsp + 0xb0], r15d
jmp case.0x18008abb5.17
mov rax, qword [rbp + r12*8 + 0x10]
mov qword [rsp + 0xb0], rax
movsxd rbx, dword [rbp + r12*8 + 4]
movzx ecx, byte [rax]
imul rbx, rbx, 0x38
add rbx, qword [rsp + 0x50]
mov byte [rsp + 0xb8], cl
test cl, cl
je 0x18008cbe3
mov r12b, byte [rsp + 0x48]
mov esi, 0x4000
nop dword [rax + rax]
inc rax
mov qword [rsp + 0xb0], rax
test word [rbx + 0x24], si
je 0x18008cbb0
mov rcx, rbx
call fcn.180082dc0
mov cl, byte [rsp + 0xb8]
movzx edx, cl
movzx r8d, r12b
mov rcx, rbx
call fcn.18008a890
mov rax, qword [rsp + 0xb0]
add rbx, 0x38
mov cl, byte [rax]
mov byte [rsp + 0xb8], cl
test cl, cl
jne 0x18008cb90
mov rsi, qword [rsp + 0x68]
mov r8d, 4
inc rax
mov qword [rsp + 0xb0], rax
jmp case.0x18008abb5.17
mov r8, qword [rsp + 0x50]
mov qword [rsp + 0xc0], r15
mov dword [rsp + 0xc8], r15d
mov qword [rsp + 0xd0], r15
mov dword [rsp + 0xd8], r15d
movsxd rax, dword [rbp + r12*8 + 4]
mov dword [rsp + 0xf8], eax
mov rbx, qword [rbp + r12*8 + 0x10]
mov rsi, rax
imul rsi, rsi, 0x38
add rsi, r8
mov qword [rsp + 0x100], rbx
mov qword [rsp + 0xe8], rsi
mov eax, dword [rbp + r12*8 + 8]
mov edi, r15d
mov dword [rsp + 0xf8], eax
dec eax
mov r11d, r15d
movsxd rcx, eax
mov rax, qword [rsp + 0x58]
mov r10, rsi
movzx eax, byte [rax + 0xa4]
mov qword [rsp + 0xb8], rsi
imul rcx, rcx, 0x38
add rcx, rsi
mov dword [rsp + 0x108], eax
mov qword [rsp + 0xf0], rcx
cmp rsi, rcx
ja 0x18008cdf4
mov bpl, byte [rsp + 0x48]
mov r14d, 0x4000
lea r12, [0x180000000]
movabs r13, 0x4924924924924925
nop dword [rax]
test rbx, rbx
je 0x18008cd06
mov rdx, r10
mov rax, r13
movzx r8d, bpl
sub rdx, rsi
mov rcx, r10
imul rdx
sar rdx, 4
mov rax, rdx
shr rax, 0x3f
add rdx, rax
movzx edx, byte [rdx + rbx]
call fcn.18008a890
mov rbx, qword [rsp + 0x100]
mov rsi, qword [rsp + 0xe8]
mov r11d, dword [rsp + 0xd8]
mov edi, dword [rsp + 0xc8]
mov r10, qword [rsp + 0xb8]
test word [r10 + 0x24], r14w
je 0x18008cd43
cmp dword [r10 + 0x20], 0
jle 0x18008cd43
mov rcx, r10
call fcn.180082dc0
mov rbx, qword [rsp + 0x100]
mov rsi, qword [rsp + 0xe8]
mov r11d, dword [rsp + 0xd8]
mov edi, dword [rsp + 0xc8]
mov r10, qword [rsp + 0xb8]
mov edx, dword [rsp + 0x108]
mov rcx, r10
call fcn.1800870f0
mov r9d, eax
mov dword [rsp + 0xe0], r9d
cmp eax, 0xc
jb 0x18008cd6a
lea edx, [r9 - 0xc]
shr edx, 1
jmp 0x18008cd73
movzx edx, byte [r9 + r12 + 0x12b7f0]
movsxd rax, edx
mov dword [rsp + 0x110], edx
mov rcx, r9
add qword [rsp + 0xc0], rax
mov eax, r15d
nop dword [rax + rax]
shr rcx, 7
inc eax
test rcx, rcx
je 0x18008cda0
cmp eax, 9
jl 0x18008cd90
add edi, eax
mov dword [rsp + 0xc8], edi
test word [r10 + 0x24], r14w
je 0x18008cdb5
add r11d, dword [r10]
jmp 0x18008cdbb
test edx, edx
cmovne r11d, r15d
add r10, 0x38
mov dword [rsp + 0xd8], r11d
mov qword [rsp + 0xb8], r10
cmp r10, qword [rsp + 0xf0]
jbe 0x18008ccb0
mov r12, qword [rsp + 0x98]
mov r13d, dword [rsp + 0x44]
mov rbp, qword [rsp + 0x78]
mov r8, qword [rsp + 0x50]
movsxd rax, edi
mov edx, r15d
nop word [rax + rax]
shr rax, 7
inc edx
test rax, rax
je 0x18008ce10
cmp edx, 9
jl 0x18008ce00
add edi, edx
mov dword [rsp + 0xdc], edx
mov eax, r15d
mov dword [rsp + 0xc8], edi
movsxd rcx, edi
nop word [rax + rax]
shr rcx, 7
inc eax
test rcx, rcx
je 0x18008ce40
cmp eax, 9
jl 0x18008ce30
cmp edx, eax
jge 0x18008ce4d
inc edi
mov dword [rsp + 0xc8], edi
mov rsi, qword [rsp + 0x68]
movsxd rax, r11d
movsxd rcx, edi
sub rcx, rax
add rcx, qword [rsp + 0xc0]
mov qword [rsp + 0xd0], rcx
movsxd rax, dword [rsi + 0x60]
cmp rcx, rax
jg 0x18009123a
movsxd r14, dword [rbp + r12*8 + 0xc]
mov edx, ecx
imul r14, r14, 0x38
add r14, r8
xor r8d, r8d
mov rcx, r14
call fcn.180082bf0
test eax, eax
jne 0x18008b2d8
mov ecx, dword [rsp + 0xc8]
mov r8, qword [r14 + 0x18]
mov qword [rsp + 0xb0], r8
cmp ecx, 0x80
jae 0x18008cec8
movzx eax, byte [rsp + 0xc8]
mov ebx, 1
mov byte [r8], al
mov eax, ebx
jmp 0x18008cef8
test ecx, 0xffffc000
jne 0x18008cee8
mov eax, ecx
shr eax, 7
or al, 0x80
and cl, 0x7f
mov byte [r8], al
mov byte [r8 + 1], cl
mov eax, 2
jmp 0x18008cef3
mov rdx, rcx
mov rcx, r8
call fcn.180067890
mov ebx, 1
mov rcx, qword [rsp + 0xf0]
movzx r9d, al
mov rax, qword [rsp + 0xe8]
mov dword [rsp + 0x10c], r9d
mov qword [rsp + 0xb8], rax
cmp rax, rcx
ja 0x18008cfdf
nop word [rax + rax]
mov edx, dword [rsp + 0x108]
mov rcx, rax
call fcn.1800870f0
mov r10d, eax
mov dword [rsp + 0xe0], r10d
cmp eax, 0x80
jae 0x18008cf67
mov rcx, qword [rsp + 0xb0]
movzx eax, r10b
movsxd rdx, r9d
mov byte [rdx + rcx], al
mov eax, ebx
jmp 0x18008cf9c
movsxd rcx, r9d
add rcx, qword [rsp + 0xb0]
test r10d, 0xffffc000
jne 0x18008cf94
mov eax, r10d
shr eax, 7
or al, 0x80
and r10b, 0x7f
mov byte [rcx], al
mov byte [rcx + 1], r10b
mov eax, 2
jmp 0x18008cf9c
mov rdx, r10
call fcn.180067890
mov r9d, dword [rsp + 0x10c]
mov rcx, qword [rsp + 0xf0]
movzx eax, al
add r9d, eax
mov rax, qword [rsp + 0xb8]
add rax, 0x38
mov dword [rsp + 0x10c], r9d
mov qword [rsp + 0xb8], rax
cmp rax, rcx
jbe 0x18008cf30
mov rax, qword [rsp + 0xe8]
mov qword [rsp + 0xb8], rax
cmp rax, rcx
ja 0x18008d046
nop dword [rax]
mov edx, dword [rsp + 0xd0]
movsxd rcx, r9d
mov r8, rax
add rcx, qword [rsp + 0xb0]
sub edx, r9d
mov r9d, dword [rsp + 0x108]
call fcn.180087190
mov r9d, dword [rsp + 0x10c]
add r9d, eax
mov rax, qword [rsp + 0xb8]
add rax, 0x38
mov dword [rsp + 0x10c], r9d
mov qword [rsp + 0xb8], rax
cmp rax, qword [rsp + 0xf0]
jbe 0x18008cff0
mov eax, dword [rsp + 0xd0]
mov qword [r14 + 0x28], r15
mov dword [r14 + 0x20], eax
mov eax, 0x410
mov word [r14 + 0x24], ax
mov eax, dword [rsp + 0xd8]
test eax, eax
je 0x18008d077
mov dword [r14], eax
mov eax, 0x4410
mov word [r14 + 0x24], ax
mov rdi, qword [rsp + 0x58]
mov byte [r14 + 0x27], 1
jmp 0x180090e40
movsxd rcx, dword [rbp + r12*8 + 4]
mov rax, qword [rdi + 0x58]
mov rcx, qword [rax + rcx*8]
mov rcx, qword [rcx]
mov qword [rsp + 0xb8], rcx
test rcx, rcx
je 0x18008d0cd
lea rdx, [rsp + 0xb0]
call fcn.18007fb50
mov r8d, 4
mov r13d, eax
mov dword [rsp + 0x44], eax
mov rax, qword [rsp + 0xb0]
mov qword [r14], rax
jmp case.0x18008abb5.17
mov rax, r15
mov qword [rsp + 0xb0], rax
mov qword [r14], rax
jmp case.0x18008abb5.17
mov edi, dword [rbp + r12*8 + 4]
mov dword [rsp + 0xb0], edi
mov r11, qword [rbp + r12*8 + 0x10]
mov qword [rsp + 0xb8], r11
test edi, edi
jne 0x18008d1e5
cmp dword [rsi + 0xb4], edi
jle 0x18008d11a
mov rdi, qword [rsp + 0x58]
lea r8, str.cannot_open_savepoint___SQL_statements_in_progress
jmp 0x18008d4f4
test r11, r11
jne 0x18008d124
mov r11d, r15d
jmp 0x18008d148
cmp byte [r11], 0
je 0x18008d139
nop word [rax + rax]
inc r11
cmp byte [r11], 0
jne 0x18008d130
sub r11d, dword [rsp + 0xb8]
and r11d, 0x3fffffff
lea edx, [r11 + 0x19]
mov rcx, rsi
mov dword [rsp + 0xc0], r11d
call fcn.180064880
mov qword [rsp + 0xc8], rax
test rax, rax
je 0x18008afe8
lea rcx, [rax + 0x18]
mov qword [rax], rcx
mov eax, dword [rsp + 0xc0]
mov rdx, qword [rsp + 0xb8]
inc eax
movsxd r8, eax
call sub.MSVCR90.dll_memcpy
cmp byte [rsi + 0x28], 0
je 0x18008d1a0
mov byte [rsi + 0x28], 0
mov byte [rsi + 0x318], 1
jmp 0x18008d1a6
inc dword [rsi + 0x310]
mov rax, qword [rsp + 0xc8]
mov rcx, qword [rsi + 0x308]
mov rdi, qword [rsp + 0x58]
mov qword [rax + 0x10], rcx
mov rax, qword [rsp + 0xc8]
mov rcx, qword [rsi + 0x320]
mov qword [rsi + 0x308], rax
mov rax, qword [rsp + 0xc8]
mov qword [rax + 8], rcx
jmp 0x180090e40
mov ebx, r15d
mov dword [rsp + 0xe0], ebx
mov r10, qword [rsi + 0x308]
mov qword [rsp + 0xd0], r10
test r10, r10
je 0x18008d22c
mov rcx, qword [r10]
mov rdx, r11
call fcn.1800670c0
test eax, eax
je 0x18008d25a
inc ebx
mov dword [rsp + 0xe0], ebx
mov r10, qword [r10 + 0x10]
mov qword [rsp + 0xd0], r10
test r10, r10
jne 0x18008d203
mov rdi, qword [rsp + 0x58]
lea r8, str.no_such_savepoint:__s
mov r9, r11
lea rcx, [rdi + 0x98]
mov rdx, rsi
call fcn.180064ab0
mov r13d, 1
mov dword [rsp + 0x44], r13d
jmp 0x180090e40
cmp dword [rsi + 0xb4], 0
jg 0x18008d472
cmp edi, 2
jne 0x18008d279
cmp dword [rsi + 0xb0], 1
jg 0x18008d472
cmp qword [r10 + 0x10], 0
jne 0x18008d2e2
cmp byte [rsi + 0x318], 0
je 0x18008d2e2
mov r12d, 1
mov esi, r12d
cmp edi, r12d
jne 0x18008d2e5
mov rdi, qword [rsp + 0x58]
mov rdx, qword [rdi]
cmp qword [rdx + 0x320], 0
jg 0x1800910db
mov r12, qword [rsp + 0x68]
mov rcx, rdi
mov byte [r12 + 0x28], sil
call fcn.180086780
cmp eax, 5
je 0x1800910b9
mov byte [r12 + 0x318], 0
mov r13d, dword [rdi + 0x90]
mov dword [rsp + 0x44], r13d
jmp 0x18008d3aa
mov esi, r15d
mov r12, qword [rsp + 0x68]
mov eax, r15d
mov r8d, dword [r12 + 0x310]
mov dword [rsp + 0xe4], eax
sub r8d, ebx
dec r8d
mov dword [rsp + 0xe0], r8d
cmp dword [r12 + 8], 0
jle 0x18008d368
mov rcx, qword [r12 + 0x10]
cdqe
mov edx, edi
shl rax, 5
mov rcx, qword [rax + rcx + 8]
call fcn.180079220
mov r13d, eax
mov dword [rsp + 0x44], eax
test eax, eax
jne 0x1800911ea
mov eax, dword [rsp + 0xe4]
mov edi, dword [rsp + 0xb0]
inc eax
mov dword [rsp + 0xe4], eax
cmp eax, dword [r12 + 8]
jge 0x18008d360
mov r8d, dword [rsp + 0xe0]
jmp 0x18008d312
mov r10, qword [rsp + 0xd0]
cmp edi, 2
jne 0x18008d3b9
bt dword [r12 + 0x18], 9
jae 0x18008d3b9
mov rax, qword [r12 + 0xa8]
test rax, rax
je 0x18008d3a0
nop word [rax + rax]
mov byte [rax + 0xa2], 1
mov rax, qword [rax + 0x10]
test rax, rax
jne 0x18008d390
xor edx, edx
mov rcx, r12
call fcn.18009f540
mov edi, dword [rsp + 0xb0]
mov r10, qword [rsp + 0xd0]
cmp qword [r12 + 0x308], r10
je 0x18008d410
mov rax, qword [r12 + 0x308]
mov rcx, r12
mov qword [rsp + 0xd8], rax
mov rax, qword [rax + 0x10]
mov qword [r12 + 0x308], rax
mov rdx, qword [rsp + 0xd8]
call fcn.1800645a0
dec dword [r12 + 0x310]
mov r10, qword [rsp + 0xd0]
cmp qword [r12 + 0x308], r10
jne 0x18008d3c3
mov edi, dword [rsp + 0xb0]
cmp edi, 1
jne 0x18008d458
mov rax, qword [r10 + 0x10]
mov rcx, r12
mov qword [r12 + 0x308], rax
mov rdx, qword [rsp + 0xd0]
call fcn.1800645a0
mov rdi, qword [rsp + 0x58]
mov ecx, dword [rsp + 0x40]
test esi, esi
mov rsi, qword [rsp + 0x68]
mov r8d, 4
jne 0x180090e4a
dec dword [rsi + 0x310]
jmp 0x180090e4a
mov rsi, qword [rsp + 0x68]
mov rax, qword [r10 + 8]
mov rdi, qword [rsp + 0x58]
mov qword [rsi + 0x320], rax
jmp 0x180090e40
cmp edi, 2
mov rdi, qword [rsp + 0x58]
lea rax, str.rollback
lea r9, str.release
lea r8, str.cannot__s_savepoint___SQL_statements_in_progress
lea rcx, [rdi + 0x98]
cmove r9, rax
mov rdx, rsi
call fcn.180064ab0
mov eax, 5
mov r13d, eax
mov dword [rsp + 0x44], eax
jmp 0x180090e40
mov edx, dword [rbp + r12*8 + 4]
mov dword [rsp + 0xb0], edx
mov ecx, dword [rbp + r12*8 + 8]
mov dword [rsp + 0xb4], ecx
test edx, edx
je 0x18008d526
cmp byte [rsi + 0x28], 0
jne 0x18008d526
mov ebx, 1
mov dword [rsp + 0xb8], ebx
test ecx, ecx
je 0x18008d514
cmp dword [rsi + 0xb0], ebx
jle 0x18008d533
lea r8, str.cannot_rollback_transaction___SQL_statements_in_progress
lea rcx, [rdi + 0x98]
mov rdx, rsi
call fcn.180064ab0
mov eax, 5
mov r13d, eax
mov dword [rsp + 0x44], eax
jmp 0x180090e40
cmp dword [rsi + 0xb4], 0
jle 0x18008d533
lea r8, str.cannot_commit_transaction___SQL_statements_in_progress
jmp 0x18008d4f4
mov dword [rsp + 0xb8], r15d
mov ebx, 1
movzx eax, byte [rsi + 0x28]
cmp edx, eax
jne 0x180091104
test edx, edx
jne 0x18008d54c
lea r8, str.cannot_start_a_transaction_within_a_transaction
jmp 0x18008d560
lea r8, str.cannot_commit___no_transaction_is_active
lea rax, str.cannot_rollback___no_transaction_is_active
test ecx, ecx
cmovne r8, rax
lea rcx, [rdi + 0x98]
mov rdx, rsi
call fcn.180064ab0
mov r13d, ebx
mov dword [rsp + 0x44], ebx
jmp 0x180090e40
movsxd rcx, dword [rbp + r12*8 + 4]
mov rax, qword [rsi + 0x10]
shl rcx, 5
mov rcx, qword [rcx + rax + 8]
mov qword [rsp + 0xb0], rcx
test rcx, rcx
je case.0x18008abb5.17
mov edx, dword [rbp + r12*8 + 8]
call fcn.180077720
mov r13d, eax
mov dword [rsp + 0x44], eax
cmp eax, 5
je 0x1800911a8
test eax, eax
jne 0x1800911f2
cmp dword [rbp + r12*8 + 8], eax
je 0x180090e40
cmp byte [rdi + 0xa6], al
je 0x180090e40
cmp byte [rsi + 0x28], al
je 0x18008d5e9
cmp dword [rsi + 0xb0], 1
jle 0x180090e40
cmp dword [rdi + 0x150], 0
jne 0x18008d60a
inc dword [rsi + 0x314]
mov ecx, dword [rsi + 0x314]
add ecx, dword [rsi + 0x310]
mov dword [rdi + 0x150], ecx
mov rsi, qword [rsp + 0xb0]
mov edi, dword [rdi + 0x150]
mov rbx, qword [rsi + 8]
mov rcx, rsi
call fcn.180074510
mov rcx, qword [rbx]
mov edx, edi
call fcn.180071300
cmp byte [rsi + 0x11], 0
mov r13d, eax
mov dword [rsp + 0x44], eax
je 0x18008d658
add dword [rsi + 0x14], 0xffffffff
jne 0x18008d658
mov rax, qword [rsi + 8]
mov rcx, qword [rax + 0x50]
test rcx, rcx
je 0x18008d654
call qword [0x1801766e8]
mov byte [rsi + 0x12], 0
mov rsi, qword [rsp + 0x68]
mov rdi, qword [rsp + 0x58]
mov rax, qword [rsi + 0x320]
mov qword [rdi + 0x148], rax
jmp 0x180090e40
movsxd rax, dword [rbp + r12*8 + 4]
lea r8, [rsp + 0xb0]
mov dword [rsp + 0xb4], eax
mov edx, dword [rbp + r12*8 + 0xc]
shl rax, 5
mov dword [rsp + 0xb8], edx
mov rcx, qword [rsi + 0x10]
mov rcx, qword [rax + rcx + 8]
call fcn.18007f9f0
movsxd r11, dword [rsp + 0xb0]
mov qword [r14], r11
jmp 0x180090e40
movsxd rax, dword [rbp + r12*8 + 4]
shl rax, 5
add rax, qword [rsi + 0x10]
mov qword [rsp + 0xb0], rax
movsxd rbx, dword [rbp + r12*8 + 0xc]
imul rbx, rbx, 0x38
add rbx, qword [rsp + 0x50]
mov rcx, rbx
call fcn.180083120
mov qword [rbx], rax
mov r8d, dword [rbx]
mov eax, 0xbf04
and word [rbx + 0x24], ax
or word [rbx + 0x24], 4
mov rcx, qword [rsp + 0xb0]
mov rcx, qword [rcx + 8]
mov edx, dword [rbp + r12*8 + 8]
call fcn.18007fa90
mov r13d, eax
mov dword [rsp + 0x44], eax
mov eax, dword [rbp + r12*8 + 8]
cmp eax, 1
jne 0x18008d737
mov rax, qword [rsp + 0xb0]
mov rcx, qword [rax + 0x18]
mov eax, dword [rbx]
mov dword [rcx], eax
mov eax, 0x200
or dword [rsi + 0x18], eax
jmp 0x18008d74e
cmp eax, 2
jne 0x18008d74e
mov rax, qword [rsp + 0xb0]
mov rcx, qword [rax + 0x18]
movzx eax, byte [rbx]
mov byte [rcx + 0x70], al
cmp dword [rbp + r12*8 + 4], 1
jne 0x180090e40
mov rax, qword [rsi + 0xa8]
test rax, rax
je 0x18008d780
nop word [rax + rax]
mov byte [rax + 0xa2], 1
mov rax, qword [rax + 0x10]
test rax, rax
jne 0x18008d770
mov byte [rdi + 0xa2], 0
jmp 0x180090e40
movsxd rcx, dword [rbp + r12*8 + 4]
mov rax, qword [rsi + 0x10]
shl rcx, 5
mov rcx, qword [rcx + rax + 8]
mov qword [rsp + 0xb8], rcx
test rcx, rcx
je 0x18008d7cd
lea r8, [rsp + 0xb0]
mov edx, 1
call fcn.18007f9f0
mov r11d, dword [rsp + 0xb0]
mov r8d, 4
jmp 0x18008d7d8
mov r11d, r15d
mov dword [rsp + 0xb0], r15d
cmp r11d, dword [rbp + r12*8 + 8]
je case.0x18008abb5.17
mov rdx, qword [rdi + 0x98]
mov rcx, rsi
call fcn.1800645a0
lea rdx, str.database_schema_has_changed
mov rcx, rsi
call fcn.1800649e0
mov qword [rdi + 0x98], rax
mov rax, qword [rsi + 0x10]
movsxd rdx, dword [rbp + r12*8 + 4]
mov rcx, rdx
shl rcx, 5
mov rcx, qword [rcx + rax + 0x18]
mov eax, dword [rsp + 0xb0]
cmp dword [rcx], eax
je 0x18008d830
mov rcx, rsi
call fcn.18009f540
mov rax, qword [rsi + 0xa8]
test rax, rax
je 0x18008d850
nop dword [rax]
mov byte [rax + 0xa2], 1
mov rax, qword [rax + 0x10]
test rax, rax
jne 0x18008d840
mov r13d, 0x11
mov dword [rsp + 0x44], r13d
jmp 0x180090e40
cmp byte [rdi + 0xa2], 0
je 0x18008d876
mov r13d, r8d
mov dword [rsp + 0x44], r8d
jmp case.0x18008abb5.17
mov dword [rsp + 0xb0], r15d
mov qword [rsp + 0xb8], r15
movsxd rdx, dword [rbp + r12*8 + 8]
mov dword [rsp + 0xc0], edx
movsxd r9, dword [rbp + r12*8 + 0xc]
mov r8d, r15d
mov dword [rsp + 0xc4], r9d
mov rcx, r9
shl rcx, 5
add rcx, qword [rsi + 0x10]
mov qword [rsp + 0xe0], rcx
mov rax, qword [rcx + 8]
mov qword [rsp + 0xd0], rax
cmp byte [rbp + r12*8], 0x27
jne 0x18008d8ec
mov dword [rsp + 0xc8], 1
mov rax, qword [rcx + 0x18]
movzx ecx, byte [rax + 0x70]
cmp cl, byte [rdi + 0xa4]
jae 0x18008d8f4
mov byte [rdi + 0xa4], cl
jmp 0x18008d8f4
mov dword [rsp + 0xc8], r15d
cmp byte [rbp + r12*8 + 3], 0
je 0x18008d943
mov rbx, rdx
imul rbx, rbx, 0x38
add rbx, qword [rsp + 0x50]
mov rcx, rbx
call fcn.180083120
mov qword [rbx], rax
mov eax, 0xbf04
and word [rbx + 0x24], ax
mov eax, dword [rbx]
or word [rbx + 0x24], 4
cmp eax, 2
mov dword [rsp + 0xc0], eax
jl 0x1800911c4
mov r9d, dword [rsp + 0xc4]
mov r8d, dword [rsp + 0xb0]
movzx eax, byte [rbp + r12*8 + 1]
cmp al, 0xfa
jne 0x18008d986
mov rax, qword [rdi]
mov rdx, qword [rbp + r12*8 + 0x10]
mov qword [rsp + 0xb8], rdx
mov rcx, qword [rax + 0x10]
mov rax, qword [rcx + 0x18]
movzx ecx, byte [rax + 0x71]
mov byte [rdx + 8], cl
mov rax, qword [rsp + 0xb8]
mov r9d, dword [rsp + 0xc4]
movzx r8d, word [rax + 0xa]
inc r8d
jmp 0x18008d98f
cmp al, 0xf2
jne 0x18008d997
mov r8d, dword [rbp + r12*8 + 0x10]
mov dword [rsp + 0xb0], r8d
mov edx, dword [rbp + r12*8 + 4]
mov rcx, rdi
mov dword [rsp + 0x20], 1
call fcn.18008a650
mov qword [rsp + 0xd8], rax
test rax, rax
je 0x18008b2dd
mov byte [rax + 0x1c], 1
mov rax, qword [rsp + 0xd8]
mov r9, qword [rsp + 0xb8]
mov rcx, qword [rax]
mov r8d, dword [rsp + 0xc8]
mov edx, dword [rsp + 0xc0]
mov qword [rsp + 0x20], rcx
mov rcx, qword [rsp + 0xd0]
call fcn.180079300
mov rcx, qword [rsp + 0xb8]
mov r13d, eax
mov dword [rsp + 0x44], eax
mov rax, qword [rsp + 0xd8]
mov qword [rax + 0x38], rcx
cmp r13d, 0x10
jne 0x18008da29
mov rax, qword [rsp + 0xd8]
mov r13d, r15d
mov dword [rsp + 0x44], r15d
mov qword [rax], r15
cmp byte [rbp + r12*8 + 1], 0xfa
mov rax, qword [rsp + 0xd8]
setne cl
mov byte [rax + 0x1e], cl
mov rax, qword [rsp + 0xd8]
test cl, cl
sete cl
mov byte [rax + 0x1f], cl
jmp 0x180090e40
mov r8d, dword [rbp + r12*8 + 8]
mov edx, dword [rbp + r12*8 + 4]
mov ebx, 1
or r9d, 0xffffffff
mov rcx, rdi
mov dword [rsp + 0x20], ebx
call fcn.18008a650
mov qword [rsp + 0xb0], rax
test rax, rax
je 0x18008b2dd
mov byte [rax + 0x1c], bl
bt dword [rsi + 0x18], 0x11
mov rdi, qword [rsp + 0xb0]
mov eax, 3
mov r9d, ebx
lea rcx, str.:memory:
cmovb r9d, eax
cmp byte [rsi + 0x29], 2
lea r8, [rdi + 0x28]
mov rdx, rsi
cmovne rcx, r15
mov dword [rsp + 0x20], 0x41e
call fcn.180076570
mov r13d, eax
mov dword [rsp + 0x44], eax
test eax, eax
jne 0x18008db19
mov rbx, qword [rdi + 0x28]
mov rcx, rbx
mov rsi, qword [rbx + 8]
call fcn.180074510
cmp byte [rbx + 0x11], r13b
je 0x18008daff
add dword [rbx + 0x14], 0xffffffff
jne 0x18008daff
mov rax, qword [rbx + 8]
mov rcx, qword [rax + 0x50]
test rcx, rcx
je 0x18008dafb
call qword [0x1801766e8]
mov byte [rbx + 0x12], 0
cmp qword [rsi + 0x40], 0
jne 0x18008db14
mov rcx, qword [rdi + 0x28]
mov edx, 0x1f4
call fcn.180076e10
mov ebx, 1
test r13d, r13d
jne 0x18008dd4b
mov rcx, qword [rsp + 0xb0]
mov edx, ebx
mov rcx, qword [rcx + 0x28]
call fcn.180077720
mov r13d, eax
mov dword [rsp + 0x44], eax
test eax, eax
jne 0x18008dd4b
cmp qword [rbp + r12*8 + 0x10], 0
mov rax, qword [rsp + 0xb0]
je 0x18008dc9c
mov rbx, qword [rax + 0x28]
mov rcx, rbx
call fcn.180074510
lea r8d, [r13 + 2]
lea rdx, [rsp + 0x90]
mov rcx, rbx
call fcn.18007eac0
cmp byte [rbx + 0x11], 0
mov r13d, eax
mov dword [rsp + 0x44], eax
je 0x18008dba2
add dword [rbx + 0x14], 0xffffffff
jne 0x18008dba2
mov rax, qword [rbx + 8]
mov rcx, qword [rax + 0x50]
test rcx, rcx
je 0x18008db9e
call qword [0x1801766e8]
mov byte [rbx + 0x12], 0
test r13d, r13d
jne 0x18008dc8b
mov rax, qword [rsp + 0xb0]
mov rsi, qword [rbp + r12*8 + 0x10]
mov rdi, qword [rax + 0x28]
mov rbx, qword [rax]
mov rcx, rdi
call fcn.180074510
mov rax, qword [rdi + 8]
cmp byte [rax + 0x20], r13b
je 0x18008dbdf
mov eax, 8
mov r13d, eax
mov dword [rsp + 0x44], eax
jmp 0x18008dc40
mov ecx, dword [rsp + 0x90]
cmp ecx, 1
jne 0x18008dbff
cmp dword [rax + 0x3c], 0
jne 0x18008dbff
mov eax, 0x10
mov r13d, eax
mov dword [rsp + 0x44], eax
jmp 0x18008dc40
mov dword [rbx + 0x28], ecx
or ecx, 0xffffffff
mov qword [rbx + 0x20], rsi
mov qword [rbx], rdi
mov qword [rbx + 8], rax
mov byte [rbx + 0x58], 1
mov word [rbx + 0x80], cx
mov rcx, qword [rax + 0x10]
mov qword [rbx + 0x10], rcx
test rcx, rcx
je 0x18008dc2c
mov qword [rcx + 0x18], rbx
mov qword [rax + 0x10], rbx
mov r13d, r15d
mov dword [rsp + 0x44], r15d
mov byte [rbx + 0x5b], 0
mov qword [rbx + 0x30], r15
cmp byte [rdi + 0x11], 0
je 0x18008dc63
add dword [rdi + 0x14], 0xffffffff
jne 0x18008dc63
mov rax, qword [rdi + 8]
mov rcx, qword [rax + 0x50]
test rcx, rcx
je 0x18008dc5f
call qword [0x1801766e8]
mov byte [rdi + 0x12], 0
mov rax, qword [rsp + 0xb0]
mov rdx, qword [rbp + r12*8 + 0x10]
mov qword [rax + 0x38], rdx
mov rax, qword [rsp + 0x58]
mov rax, qword [rax]
mov rcx, qword [rax + 0x10]
mov rax, qword [rcx + 0x18]
movzx eax, byte [rax + 0x71]
mov byte [rdx + 8], al
mov rax, qword [rsp + 0xb0]
mov byte [rax + 0x1e], 0
jmp 0x18008dd4b
mov rdi, qword [rax + 0x28]
mov rbx, qword [rax]
mov rcx, rdi
call fcn.180074510
mov rax, qword [rdi + 8]
cmp byte [rax + 0x20], 0
je 0x18008dcc3
mov eax, 8
mov r13d, eax
mov dword [rsp + 0x44], eax
jmp 0x18008dd1c
cmp dword [rax + 0x3c], 0
jne 0x18008dcd7
mov eax, 0x10
mov r13d, eax
mov dword [rsp + 0x44], eax
jmp 0x18008dd1c
or ecx, 0xffffffff
mov dword [rbx + 0x28], 1
mov qword [rbx + 0x20], r15
mov qword [rbx], rdi
mov qword [rbx + 8], rax
mov byte [rbx + 0x58], 1
mov word [rbx + 0x80], cx
mov rcx, qword [rax + 0x10]
mov qword [rbx + 0x10], rcx
test rcx, rcx
je 0x18008dd08
mov qword [rcx + 0x18], rbx
mov qword [rax + 0x10], rbx
mov r13d, r15d
mov dword [rsp + 0x44], r15d
mov byte [rbx + 0x5b], 0
mov qword [rbx + 0x30], r15
cmp byte [rdi + 0x11], 0
je 0x18008dd3f
add dword [rdi + 0x14], 0xffffffff
jne 0x18008dd3f
mov rax, qword [rdi + 8]
mov rcx, qword [rax + 0x50]
test rcx, rcx
je 0x18008dd3b
call qword [0x1801766e8]
mov byte [rdi + 0x12], 0
mov rax, qword [rsp + 0xb0]
mov byte [rax + 0x1e], 1
mov rcx, qword [rsp + 0xb0]
mov rsi, qword [rsp + 0x68]
mov rdi, qword [rsp + 0x58]
cmp byte [rcx + 0x1e], 0
sete al
mov byte [rcx + 0x1f], al
jmp 0x180090e40
mov r8d, dword [rbp + r12*8 + 0xc]
mov edx, dword [rbp + r12*8 + 4]
or r9d, 0xffffffff
mov rcx, rdi
mov dword [rsp + 0x20], r15d
call fcn.18008a650
mov qword [rsp + 0xb0], rax
test rax, rax
je 0x18008b2dd
mov byte [rax + 0x1c], 1
mov rax, qword [rsp + 0xb0]
mov ecx, dword [rbp + r12*8 + 8]
mov dword [rax + 0x30], ecx
mov rax, qword [rsp + 0xb0]
mov byte [rax + 0x1e], 1
mov rax, qword [rsp + 0xb0]
mov byte [rax + 0x1f], 0
jmp 0x180090e40
movsxd rax, dword [rbp + r12*8 + 4]
mov rdx, qword [rdi + 0x58]
mov rcx, rdi
mov rdx, qword [rdx + rax*8]
call fcn.180085db0
movsxd r11, dword [rbp + r12*8 + 4]
mov rax, qword [rdi + 0x58]
mov qword [rax + r11*8], r15
jmp 0x180090e40
movsxd rcx, dword [rbp + r12*8 + 4]
mov rax, qword [rdi + 0x58]
mov rdx, qword [rax + rcx*8]
mov qword [rsp + 0xb8], rdx
cmp qword [rdx], 0
je 0x18008abc5
movzx eax, byte [rbp + r12*8]
mov dword [rsp + 0xb4], eax
mov byte [rdx + 0x1c], 0
mov r10, qword [rsp + 0xb8]
cmp byte [r10 + 0x1e], 0
je 0x18008e099
movsxd rbx, dword [rbp + r12*8 + 0xc]
imul rbx, rbx, 0x38
add rbx, qword [rsp + 0x50]
mov rcx, rbx
call fcn.18008a7a0
mov rcx, rbx
call fcn.180083120
mov qword [rsp + 0xe8], rax
mov rax, qword [rsp + 0xb8]
mov byte [rax + 0x19], 0
movzx eax, word [rbx + 0x24]
test al, 4
jne 0x18008e02e
test al, 8
jne 0x18008de87
mov ecx, dword [rbp + r12*8 + 8]
mov r8d, 4
dec ecx
jmp 0x180090e4a
mov r8, qword [rsp + 0xe8]
movabs rax, 0x8000000000000000
cmp r8, rax
jne 0x18008dfdf
movsd xmm1, qword [rbx + 8]
pxor xmm0, xmm0
cvtsi2sd xmm0, rax
comisd xmm0, xmm1
ja 0x18008dec0
comisd xmm1, xmm6
jbe 0x18008dfdf
mov dword [rsp + 0xb0], 1
comisd xmm6, xmmword [rbx + 8]
jbe 0x18008df33
cmp dword [rsp + 0xb4], 0x2e
jl 0x18008dfcd
mov rax, qword [rsp + 0xb8]
mov rbx, qword [rax]
mov rcx, rbx
call fcn.180079f20
mov r13d, eax
mov dword [rsp + 0x44], eax
test eax, eax
jne 0x18008dfb6
cmp byte [rbx + 0x5b], al
jne 0x18008df17
mov dword [rsp + 0xb0], 1
jmp 0x18008dfb6
mov rcx, rbx
mov dword [rsp + 0xb0], r15d
call fcn.18007a100
mov r13d, eax
mov dword [rsp + 0x44], eax
jmp 0x18008dfb6
cmp dword [rsp + 0xb4], 0x2d
jg 0x18008dfcd
mov rax, qword [rsp + 0xb8]
mov rbx, qword [rax]
cmp byte [rbx + 0x5b], 1
jne 0x18008df72
cmp byte [rbx + 0x59], 0
je 0x18008df72
mov ecx, dword [rbp + r12*8 + 8]
mov r13d, r15d
mov dword [rsp + 0x44], r15d
dec ecx
mov r8d, 4
jmp 0x180090e4a
mov rcx, rbx
call fcn.180079f20
mov r13d, eax
mov dword [rsp + 0x44], eax
test eax, eax
jne 0x18008dfb6
cmp byte [rbx + 0x5b], al
jne 0x18008df97
mov dword [rsp + 0xb0], 1
jmp 0x18008dfb6
mov rcx, rbx
mov dword [rsp + 0xb0], r15d
call fcn.18007a1b0
test eax, eax
mov r13d, eax
mov dword [rsp + 0x44], eax
sete al
mov byte [rbx + 0x59], al
test r13d, r13d
jne 0x1800911f2
cmp dword [rsp + 0xb0], r13d
je 0x180090e40
mov ecx, dword [rbp + r12*8 + 8]
mov r8d, 4
dec ecx
jmp 0x180090e4a
mov eax, dword [rsp + 0xb4]
cmp eax, 0x2c
je 0x18008e00d
cmp eax, 0x2e
je 0x18008e00d
pxor xmm0, xmm0
cvtsi2sd xmm0, r8
comisd xmm0, xmmword [rbx + 8]
jbe 0x18008e036
dec r8
mov qword [rsp + 0xe8], r8
jmp 0x18008e036
movsd xmm0, qword [rbx + 8]
pxor xmm1, xmm1
cvtsi2sd xmm1, r8
comisd xmm0, xmm1
jbe 0x18008e036
inc r8
mov qword [rsp + 0xe8], r8
jmp 0x18008e036
mov r8, qword [rsp + 0xe8]
mov rcx, qword [rsp + 0xb8]
lea rax, [rsp + 0xb0]
xor r9d, r9d
mov rcx, qword [rcx]
xor edx, edx
mov qword [rsp + 0x20], rax
call fcn.18007a270
mov r13d, eax
mov dword [rsp + 0x44], eax
test eax, eax
jne 0x1800911f2
cmp dword [rsp + 0xb0], eax
jne 0x18008e145
mov rax, qword [rsp + 0xb8]
mov byte [rax + 0x19], 1
mov rcx, qword [rsp + 0xb8]
mov rax, qword [rsp + 0xe8]
mov qword [rcx + 0x10], rax
jmp 0x18008e145
mov eax, dword [rbp + r12*8 + 0x10]
mov dword [rsp + 0xe0], eax
mov rax, qword [r10 + 0x38]
mov qword [rsp + 0xc0], rax
movzx eax, word [rsp + 0xe0]
mov word [rsp + 0xc8], ax
movzx eax, word [rsp + 0xb4]
and ax, 1
shl ax, 3
mov word [rsp + 0xca], ax
movsxd rcx, dword [rbp + r12*8 + 0xc]
mov eax, 0x4000
imul rcx, rcx, 0x38
add rcx, qword [rsp + 0x50]
mov qword [rsp + 0xd8], rcx
test word [rcx + 0x24], ax
je 0x18008e107
call fcn.180082dc0
mov r10, qword [rsp + 0xb8]
mov rcx, qword [r10]
lea rax, [rsp + 0xb0]
lea rdx, [rsp + 0xc0]
xor r9d, r9d
xor r8d, r8d
mov qword [rsp + 0x20], rax
call fcn.18007a270
mov r13d, eax
mov dword [rsp + 0x44], eax
test eax, eax
jne 0x1800911f2
mov rax, qword [rsp + 0xb8]
mov byte [rax + 0x19], r13b
mov rax, qword [rsp + 0xb8]
mov byte [rax + 0x1d], 0
mov rax, qword [rsp + 0xb8]
mov dword [rax + 0x64], r15d
mov ecx, dword [rsp + 0xb4]
mov eax, dword [rsp + 0xb0]
cmp ecx, 0x2e
jl 0x18008e1a2
test eax, eax
js 0x18008e188
jne 0x18008e17b
cmp ecx, 0x2f
je 0x18008e188
mov dword [rsp + 0xb0], r15d
jmp 0x180090e40
mov rcx, qword [rsp + 0xb8]
lea rdx, [rsp + 0xb0]
mov rcx, qword [rcx]
call fcn.18007a710
jmp 0x18008e1e3
test eax, eax
jg 0x18008e1cb
jne 0x18008e1ad
cmp ecx, 0x2c
je 0x18008e1cb
mov rax, qword [rsp + 0xb8]
mov rcx, qword [rax]
mov eax, r15d
cmp byte [rcx + 0x5b], 1
setne al
mov dword [rsp + 0xb0], eax
jmp 0x18008e1fe
mov rcx, qword [rsp + 0xb8]
lea rdx, [rsp + 0xb0]
mov rcx, qword [rcx]
call fcn.18007a8a0
mov dword [rsp + 0x44], eax
mov r13d, eax
test eax, eax
jne 0x1800911f2
mov rax, qword [rsp + 0xb8]
mov byte [rax + 0x19], 0
cmp dword [rsp + 0xb0], 0
mov r8d, 4
je case.0x18008abb5.17
mov ecx, dword [rbp + r12*8 + 8]
dec ecx
jmp 0x180090e4a
movsxd rcx, dword [rbp + r12*8 + 4]
mov rax, qword [rdi + 0x58]
mov rdx, qword [rax + rcx*8]
mov qword [rsp + 0xb0], rdx
cmp qword [rdx], 0
je case.0x18008abb5.17
mov byte [rdx + 0x1c], 0
movsxd rcx, dword [rbp + r12*8 + 8]
imul rcx, rcx, 0x38
add rcx, qword [rsp + 0x50]
call fcn.180083120
mov rcx, qword [rsp + 0xb0]
mov qword [rcx + 0x20], rax
mov rax, qword [rsp + 0xb0]
mov byte [rax + 0x19], 0
mov rax, qword [rsp + 0xb0]
mov byte [rax + 0x1d], 1
jmp 0x180090e40
mov rax, qword [rdi + 0x58]
mov edx, r15d
mov dword [rsp + 0xb0], edx
movsxd rcx, dword [rbp + r12*8 + 4]
mov rcx, qword [rax + rcx*8]
mov qword [rsp + 0xb8], rcx
movsxd rbx, dword [rbp + r12*8 + 0xc]
imul rbx, rbx, 0x38
add rbx, qword [rsp + 0x50]
cmp qword [rcx], 0
je 0x18008e3d8
cmp dword [rbp + r12*8 + 0x10], 0
jle 0x18008e2fd
mov rax, qword [rcx + 0x38]
lea rdx, [rsp + 0xd0]
mov qword [rsp + 0xd0], rax
movzx eax, word [rbp + r12*8 + 0x10]
mov qword [rsp + 0xe8], rbx
mov word [rsp + 0xd8], ax
mov eax, 0x10
mov qword [rsp + 0xc8], rdx
mov word [rsp + 0xda], ax
jmp 0x18008e35e
mov eax, 0x4000
test word [rbx + 0x24], ax
je 0x18008e318
mov rcx, rbx
call fcn.180082dc0
mov rcx, qword [rsp + 0xb8]
mov r8, qword [rbx + 0x18]
mov edx, dword [rbx + 0x20]
mov rcx, qword [rcx + 0x38]
lea r9, [rsp + 0xf0]
mov dword [rsp + 0x20], 0xcf
call fcn.1800874d0
mov qword [rsp + 0xc8], rax
test rax, rax
je 0x18008b2dd
or word [rax + 0xa], 0x10
mov rdx, qword [rsp + 0xc8]
mov rcx, qword [rsp + 0xb8]
mov rcx, qword [rcx]
lea rax, [rsp + 0xc0]
xor r9d, r9d
xor r8d, r8d
mov qword [rsp + 0x20], rax
call fcn.18007a270
cmp dword [rbp + r12*8 + 0x10], 0
mov r13d, eax
mov dword [rsp + 0x44], eax
jne 0x18008e395
mov rcx, qword [rsp + 0xc8]
call fcn.180087720
mov r8d, 4
test r13d, r13d
jne case.0x18008abb5.17
cmp dword [rsp + 0xc0], r13d
mov eax, r15d
sete al
mov dword [rsp + 0xb0], eax
mov rax, qword [rsp + 0xb8]
mov byte [rax + 0x1d], r13b
mov rax, qword [rsp + 0xb8]
mov dword [rax + 0x64], r15d
mov edx, dword [rsp + 0xb0]
cmp byte [rbp + r12*8], 0x32
jne 0x18008e3f4
test edx, edx
je case.0x18008abb5.17
mov ecx, dword [rbp + r12*8 + 8]
dec ecx
jmp 0x180090e4a
test edx, edx
jne case.0x18008abb5.17
mov ecx, dword [rbp + r12*8 + 8]
dec ecx
jmp 0x180090e4a
movsxd rax, dword [rbp + r12*8 + 0x10]
movsxd rbx, dword [rbp + r12*8 + 0xc]
mov r11, qword [rsp + 0x50]
imul rax, rax, 0x38
imul rbx, rbx, 0x38
add rax, r11
add rbx, r11
mov qword [rsp + 0xd0], rax
movsxd rcx, dword [rbp + r12*8 + 4]
mov rax, qword [rdi + 0x58]
mov rdx, qword [rax + rcx*8]
movzx ecx, r15w
mov qword [rsp + 0xb8], rdx
mov dword [rdx + 0x60], r15d
mov rax, qword [rsp + 0xb8]
mov dword [rax + 0x64], r15d
mov r10, qword [rsp + 0xb8]
mov r8, qword [rsp + 0xd0]
mov r9, qword [r10]
mov qword [rsp + 0xc0], r9
mov rax, qword [r10 + 0x38]
movzx edx, word [rax + 0xa]
mov word [rsp + 0xb0], cx
mov word [rsp + 0xc8], dx
cmp r15w, dx
jae 0x18008e4b3
nop
movzx eax, cx
imul rax, rax, 0x38
test byte [rax + r8 + 0x24], 1
jne 0x18008e568
inc cx
mov word [rsp + 0xb0], cx
cmp cx, dx
jb 0x18008e490
test r9, r9
je 0x180090e40
mov rax, qword [r10 + 0x38]
inc dx
mov rcx, rbx
mov qword [rsp + 0xd8], rax
mov eax, 0x20
mov word [rsp + 0xe0], dx
mov word [rsp + 0xe2], ax
mov qword [rsp + 0xf0], r8
call fcn.180083120
mov qword [rbx], rax
mov ecx, 0xbf04
lea rdx, [rsp + 0xd8]
and word [rbx + 0x24], cx
or word [rbx + 0x24], 4
mov rcx, qword [rsp + 0xc0]
mov qword [rsp + 0xf8], rax
mov rax, qword [rsp + 0xb8]
xor r9d, r9d
add rax, 0x60
xor r8d, r8d
mov qword [rsp + 0x20], rax
call fcn.18007a270
test byte [rsp + 0xe2], 0x20
mov r13d, eax
mov dword [rsp + 0x44], eax
jne 0x18008de75
mov rax, qword [rsp + 0xe8]
cmp rax, qword [rsp + 0xf8]
je 0x18008de75
mov qword [rbx], rax
jmp 0x180090e40
mov ecx, dword [rbp + r12*8 + 8]
mov r8d, 4
mov qword [rsp + 0xc0], r15
dec ecx
jmp 0x180090e4a
movsxd rcx, dword [rbp + r12*8 + 4]
movsxd rbx, dword [rbp + r12*8 + 0xc]
mov rax, qword [rdi + 0x58]
imul rbx, rbx, 0x38
mov rdx, qword [rax + rcx*8]
add rbx, qword [rsp + 0x50]
mov qword [rsp + 0xb0], rdx
mov rcx, qword [rdx]
mov qword [rsp + 0xb8], rcx
test rcx, rcx
je 0x18008e659
mov dword [rsp + 0xc0], r15d
mov r8, qword [rbx]
lea rax, [rsp + 0xc0]
xor r9d, r9d
xor edx, edx
mov qword [rsp + 0x20], rax
mov qword [rsp + 0xc8], r8
call fcn.18007a270
mov rcx, qword [rbx]
mov r13d, eax
mov dword [rsp + 0x44], eax
mov rax, qword [rsp + 0xb0]
mov qword [rax + 0x10], rcx
cmp dword [rsp + 0xc0], 0
mov rax, qword [rsp + 0xb0]
sete cl
mov byte [rax + 0x19], cl
mov rax, qword [rsp + 0xb0]
mov byte [rax + 0x1c], 0
mov rax, qword [rsp + 0xb0]
mov dword [rax + 0x64], r15d
mov rax, qword [rsp + 0xb0]
mov byte [rax + 0x1d], 0
mov ecx, dword [rsp + 0xc0]
test ecx, ecx
je 0x18008e649
mov eax, dword [rbp + r12*8 + 8]
dec eax
mov dword [rsp + 0x40], eax
mov rax, qword [rsp + 0xb0]
mov dword [rax + 0x60], ecx
jmp 0x180090e40
mov ecx, dword [rbp + r12*8 + 8]
mov dword [rdx + 0x60], r15d
dec ecx
jmp 0x180090e4a
mov rax, qword [rdi + 0x58]
movsxd rcx, dword [rbp + r12*8 + 4]
mov rcx, qword [rax + rcx*8]
mov rax, qword [rcx + 0x48]
mov qword [r14], rax
movsxd rcx, dword [rbp + r12*8 + 4]
mov rax, qword [rdi + 0x58]
mov rdx, qword [rax + rcx*8]
inc qword [rdx + 0x48]
jmp case.0x18008abb5.17
mov rax, qword [rdi + 0x58]
mov dword [rsp + 0xc0], r15d
mov rdx, r15
mov qword [rsp + 0xb0], rdx
movsxd rcx, dword [rbp + r12*8 + 4]
mov rbx, qword [rax + rcx*8]
mov qword [rsp + 0xb8], rbx
cmp qword [rbx], 0
je 0x18008ea54
mov dword [rsp + 0xc4], r15d
cmp byte [rbx + 0x1b], 0
jne 0x18008e8ea
mov rax, qword [rbx]
mov rcx, qword [rax + 0x30]
mov qword [rsp + 0xb0], rcx
test rcx, rcx
jne 0x18008e761
mov rbx, qword [rbx]
cmp byte [rbx + 0x5b], 1
jne 0x18008e6fd
cmp byte [rbx + 0x59], cl
jne 0x18008e7c3
mov rcx, rbx
call fcn.180079f20
mov r13d, eax
mov dword [rsp + 0x44], eax
test eax, eax
jne 0x18008e741
cmp byte [rbx + 0x5b], al
jne 0x18008e722
mov dword [rsp + 0xc0], 1
jmp 0x18008e741
mov rcx, rbx
mov dword [rsp + 0xc0], r15d
call fcn.18007a1b0
test eax, eax
mov r13d, eax
mov dword [rsp + 0x44], eax
sete al
mov byte [rbx + 0x59], al
test r13d, r13d
jne 0x1800911f2
cmp dword [rsp + 0xc0], r13d
je 0x18008e7c3
mov ecx, 1
mov qword [rsp + 0xb0], rcx
movabs r8, 0x7fffffffffffffff
movsxd rdx, dword [rbp + r12*8 + 0xc]
test edx, edx
je 0x18008e8b0
mov rax, qword [rdi + 0x158]
test rax, rax
je 0x18008e82d
mov qword [rsp + 0xd0], rax
mov rcx, qword [rax + 0x60]
test rcx, rcx
je 0x18008e7b4
nop dword [rax]
mov rax, rcx
mov qword [rsp + 0xd0], rcx
mov rcx, qword [rcx + 0x60]
test rcx, rcx
jne 0x18008e7a0
movsxd rbx, dword [rbp + r12*8 + 0xc]
imul rbx, rbx, 0x38
add rbx, qword [rax + 0x20]
jmp 0x18008e839
mov rax, qword [rsp + 0xb8]
mov rbx, qword [rax]
cmp byte [rbx + 0x5b], 1
je 0x18008e7d9
mov rcx, r15
jmp 0x18008e7e5
mov rcx, rbx
call fcn.180079530
mov rcx, qword [rbx + 0x40]
movabs r8, 0x7fffffffffffffff
mov qword [rsp + 0xb0], rcx
mov r13d, r15d
mov dword [rsp + 0x44], r15d
cmp rcx, r8
jne 0x18008e81d
mov rax, qword [rsp + 0xb8]
mov byte [rax + 0x1b], 1
mov rcx, qword [rsp + 0xb0]
jmp 0x18008e76b
inc rcx
mov qword [rsp + 0xb0], rcx
jmp 0x18008e76b
mov rbx, rdx
imul rbx, rbx, 0x38
add rbx, qword [rsp + 0x50]
mov rcx, rbx
mov qword [rsp + 0xc8], rbx
call fcn.180083120
movabs r8, 0x7fffffffffffffff
mov qword [rbx], rax
mov eax, 0xbf04
and word [rbx + 0x24], ax
or word [rbx + 0x24], 4
mov rdx, qword [rsp + 0xc8]
mov rcx, qword [rdx]
cmp rcx, r8
je 0x18008ea0d
mov rax, qword [rsp + 0xb8]
cmp byte [rax + 0x1b], 0
jne 0x18008ea0d
lea rax, [rcx + 1]
mov rcx, qword [rsp + 0xb0]
cmp rcx, rax
cmovl rcx, rax
mov qword [rsp + 0xb0], rcx
mov qword [rdx], rcx
mov rcx, qword [rsp + 0xb0]
cmp rcx, r8
lea rdx, [rcx + 1]
jl 0x18008e8bc
mov rdx, r15
mov rax, qword [rsp + 0xb8]
mov r8, qword [rax]
mov rax, qword [r8 + 8]
mov rcx, qword [rax + 0x10]
test rcx, rcx
je 0x18008e8ea
mov eax, dword [r8 + 0x28]
cmp dword [rcx + 0x28], eax
jne 0x18008e8e1
mov qword [rcx + 0x30], rdx
mov rcx, qword [rcx + 0x10]
test rcx, rcx
jne 0x18008e8d4
mov rax, qword [rsp + 0xb8]
cmp byte [rax + 0x1b], 0
je 0x18008ea22
mov r8, qword [rsi + 0x40]
mov eax, r15d
mov qword [rsp + 0xb0], r8
mov dword [rsp + 0xc4], eax
test eax, eax
jne 0x18008e928
mov rax, r8
and eax, 0xffffff
cmp rax, r8
jne 0x18008e928
inc r8
jmp 0x18008e997
cmp dword [0x180176664], 0
mov ebx, 8
lea rdi, [rsp + 0xb0]
jne 0x18008e943
mov rsi, r15
jmp 0x18008e960
mov ecx, 5
call qword [0x1801766c8]
mov rsi, rax
test rax, rax
je 0x18008e960
mov rcx, rax
call qword [0x1801766d8]
nop
call fcn.180066410
inc rdi
sub ebx, 1
mov byte [rdi - 1], al
jne 0x18008e960
test rsi, rsi
je 0x18008e97e
mov rcx, rsi
call qword [0x1801766e8]
cmp dword [rsp + 0xc4], 5
mov r8, qword [rsp + 0xb0]
jge 0x18008e99f
and r8d, 0xffffff
mov qword [rsp + 0xb0], r8
mov rcx, qword [rsp + 0xb8]
lea rax, [rsp + 0xc0]
xor r9d, r9d
mov rcx, qword [rcx]
xor edx, edx
mov qword [rsp + 0x20], rax
call fcn.18007a270
mov ecx, dword [rsp + 0xc0]
mov r13d, eax
mov dword [rsp + 0x44], eax
mov eax, dword [rsp + 0xc4]
inc eax
cmp eax, 0x64
mov dword [rsp + 0xc4], eax
jge 0x18008e9fa
test r13d, r13d
jne 0x18008ea18
test ecx, ecx
jne 0x18008e9fa
mov r8, qword [rsp + 0xb0]
jmp 0x18008e912
mov rsi, qword [rsp + 0x68]
mov rdi, qword [rsp + 0x58]
test r13d, r13d
jne 0x18008ea22
test ecx, ecx
jne 0x18008ea22
mov r13d, 0xd
jmp 0x1800911f2
mov rsi, qword [rsp + 0x68]
mov rdi, qword [rsp + 0x58]
mov rax, qword [rsp + 0xb8]
mov r8d, 4
mov byte [rax + 0x19], 0
mov rax, qword [rsp + 0xb8]
mov byte [rax + 0x1d], 0
mov rax, qword [rsp + 0xb8]
mov dword [rax + 0x64], r15d
mov rdx, qword [rsp + 0xb0]
mov qword [r14], rdx
jmp case.0x18008abb5.17
movsxd r9, dword [rbp + r12*8 + 8]
mov rax, qword [rdi + 0x58]
mov rbx, qword [rsp + 0x50]
imul r9, r9, 0x38
add r9, rbx
mov qword [rsp + 0xb0], r9
movsxd rcx, dword [rbp + r12*8 + 4]
mov r10, qword [rax + rcx*8]
mov qword [rsp + 0xc8], r10
cmp byte [rbp + r12*8], 0x37
movsxd rax, dword [rbp + r12*8 + 0xc]
jne 0x18008eaa9
imul rax, rax, 0x38
add rax, rbx
mov qword [rsp + 0xb8], rax
mov rax, qword [rax]
mov qword [rsp + 0xc0], rax
test byte [rbp + r12*8 + 3], 1
je 0x18008eabf
inc dword [rdi + 0xac]
test byte [rbp + r12*8 + 3], 2
je 0x18008eae3
mov rax, qword [rsp + 0xc0]
mov qword [rsi + 0x40], rax
mov r10, qword [rsp + 0xc8]
mov r9, qword [rsp + 0xb0]
test byte [r9 + 0x24], 1
je 0x18008eb0a
mov qword [r9 + 0x18], r15
mov rax, qword [rsp + 0xb0]
mov dword [rax + 0x20], r15d
mov r10, qword [rsp + 0xc8]
mov r9, qword [rsp + 0xb0]
test byte [rbp + r12*8 + 3], 0x10
je 0x18008eb20
mov r8d, dword [r10 + 0x60]
mov dword [rsp + 0xd4], r8d
jmp 0x18008eb2b
mov r8d, r15d
mov dword [rsp + 0xd4], r15d
mov eax, 0x4000
test word [r9 + 0x24], ax
je 0x18008eb3c
mov edx, dword [r9]
jmp 0x18008eb3f
mov edx, r15d
mov dword [rsp + 0xd0], edx
mov r11, qword [r10]
mov rax, qword [r11 + 8]
mov rcx, qword [rax + 0x10]
test rcx, rcx
je 0x18008eb8b
mov eax, dword [r11 + 0x28]
cmp dword [rcx + 0x28], eax
jne 0x18008eb63
mov qword [rcx + 0x30], r15
mov rcx, qword [rcx + 0x10]
test rcx, rcx
jne 0x18008eb56
mov r8d, dword [rsp + 0xd4]
mov edx, dword [rsp + 0xd0]
mov r10, qword [rsp + 0xc8]
mov r9, qword [rsp + 0xb0]
movzx eax, byte [rbp + r12*8 + 3]
mov rcx, qword [r10]
mov dword [rsp + 0x38], r8d
mov r8, qword [rsp + 0xc0]
and eax, 8
mov dword [rsp + 0x30], eax
mov eax, dword [r9 + 0x20]
mov r9, qword [r9 + 0x18]
mov dword [rsp + 0x28], edx
xor edx, edx
mov dword [rsp + 0x20], eax
call fcn.18007e4e0
mov r13d, eax
mov dword [rsp + 0x44], eax
mov rax, qword [rsp + 0xc8]
mov byte [rax + 0x19], 0
mov rax, qword [rsp + 0xc8]
mov byte [rax + 0x1d], 0
mov rax, qword [rsp + 0xc8]
mov dword [rax + 0x64], r15d
test r13d, r13d
jne 0x180090e40
cmp qword [rsi + 0x100], 0
je 0x180090e40
cmp qword [rbp + r12*8 + 0x10], 0
je 0x180090e40
mov rax, qword [rsp + 0xc8]
mov edx, 0x12
movsxd rcx, dword [rax + 8]
mov rax, qword [rsi + 0x10]
shl rcx, 5
mov r8, qword [rcx + rax]
mov eax, 0x17
mov qword [rsp + 0xd8], r8
mov r9, qword [rbp + r12*8 + 0x10]
mov qword [rsp + 0xe0], r9
test byte [rbp + r12*8 + 3], 4
cmovne edx, eax
mov rax, qword [rsp + 0xc0]
mov dword [rsp + 0xe8], edx
mov rcx, qword [rsi + 0xf8]
mov qword [rsp + 0x20], rax
call qword [rsi + 0x100]
jmp 0x180090e40
mov rax, qword [rdi + 0x58]
mov qword [rsp + 0xb0], r15
movsxd rcx, dword [rbp + r12*8 + 4]
mov rcx, qword [rax + rcx*8]
mov qword [rsp + 0xb8], rcx
cmp qword [rsi + 0x100], 0
je 0x18008ecae
cmp qword [rbp + r12*8 + 0x10], 0
je 0x18008ecae
mov rax, qword [rcx + 0x10]
mov qword [rsp + 0xb0], rax
call fcn.180087030
mov r13d, eax
test eax, eax
jne 0x1800911f2
mov rdx, qword [rsp + 0xb8]
mov r8, qword [rdx]
mov rax, qword [r8 + 8]
mov rcx, qword [rax + 0x10]
test rcx, rcx
je 0x18008ecf4
mov eax, dword [r8 + 0x28]
cmp dword [rcx + 0x28], eax
jne 0x18008ece3
mov qword [rcx + 0x30], r15
mov rcx, qword [rcx + 0x10]
test rcx, rcx
jne 0x18008ecd6
mov rdx, qword [rsp + 0xb8]
mov rcx, qword [rdx]
call fcn.18007e7c0
mov r13d, eax
mov dword [rsp + 0x44], eax
mov rax, qword [rsp + 0xb8]
mov dword [rax + 0x64], r15d
test r13d, r13d
jne 0x18008ed5d
mov r10, qword [rsi + 0x100]
test r10, r10
je 0x18008ed5d
mov r9, qword [rbp + r12*8 + 0x10]
test r9, r9
je 0x18008ed5d
mov rax, qword [rsp + 0xb8]
mov r8, qword [rsi + 0x10]
lea edx, [r13 + 9]
movsxd rcx, dword [rax + 8]
mov rax, qword [rsp + 0xb0]
shl rcx, 5
mov qword [rsp + 0x20], rax
mov r8, qword [rcx + r8]
mov rcx, qword [rsi + 0xf8]
call r10
test byte [rbp + r12*8 + 8], 1
mov ecx, dword [rsp + 0x40]
mov r8d, 4
je 0x180090e4a
inc dword [rdi + 0xac]
jmp 0x180090e4a
mov eax, dword [rdi + 0xac]
add dword [rsi + 0x50], eax
mov dword [rsi + 0x4c], eax
mov dword [rdi + 0xac], r15d
jmp case.0x18008abb5.17
movsxd rcx, dword [rbp + r12*8 + 4]
movsxd r14, dword [rbp + r12*8 + 8]
mov rax, qword [rdi + 0x58]
imul r14, r14, 0x38
mov rcx, qword [rax + rcx*8]
add r14, qword [rsp + 0x50]
mov qword [rsp + 0xb0], rcx
mov rax, qword [rcx]
mov qword [rsp + 0xb8], rax
call fcn.180087030
mov r13d, eax
test eax, eax
jne 0x1800911f2
mov rax, qword [rsp + 0xb0]
mov rbx, qword [rsp + 0xb8]
cmp byte [rax + 0x1f], r13b
je 0x18008ee21
cmp byte [rbx + 0x5b], 1
je 0x18008edf5
mov rcx, r15
jmp 0x18008ee01
mov rcx, rbx
call fcn.180079530
mov rcx, qword [rbx + 0x40]
mov qword [rsp + 0xc8], rcx
movsxd rax, dword [rsi + 0x60]
cmp rcx, rax
jg 0x18009123f
mov edx, ecx
mov dword [rsp + 0xc0], ecx
jmp 0x18008ee3c
mov rcx, rbx
call fcn.180079530
mov edx, dword [rbx + 0x48]
mov dword [rsp + 0xc0], edx
cmp edx, dword [rsi + 0x60]
ja 0x18009123f
xor r8d, r8d
mov rcx, r14
call fcn.180082bf0
test eax, eax
jne 0x18008b2dd
mov eax, dword [rsp + 0xc0]
mov r9, qword [r14 + 0x18]
xor edx, edx
mov dword [r14 + 0x20], eax
mov eax, 0xbf10
and word [r14 + 0x24], ax
or word [r14 + 0x24], 0x10
mov rax, qword [rsp + 0xb0]
mov r8d, dword [rsp + 0xc0]
mov rcx, qword [rsp + 0xb8]
cmp byte [rax + 0x1f], dl
je 0x18008eea8
mov dword [rsp + 0x20], r15d
call fcn.180079900
mov byte [r14 + 0x27], 1
mov dword [rsp + 0x44], eax
mov r13d, eax
jmp 0x180090e40
call fcn.180079d90
mov byte [r14 + 0x27], 1
mov dword [rsp + 0x44], eax
mov r13d, eax
jmp 0x180090e40
movsxd rcx, dword [rbp + r12*8 + 4]
mov rax, qword [rdi + 0x58]
mov r8, qword [rax + rcx*8]
mov qword [rsp + 0xb0], r8
cmp byte [r8 + 0x1c], 0
je 0x18008eee9
mov eax, 1
mov word [r14 + 0x24], ax
jmp 0x180090e40
cmp byte [r8 + 0x1d], 0
je 0x18008ef04
mov rax, qword [r8 + 0x20]
mov qword [rsp + 0xb8], rax
mov qword [r14], rax
jmp 0x180090e40
cmp qword [r8 + 0x50], 0
je 0x18008ef5b
mov rax, qword [r8 + 0x50]
lea rdx, [rsp + 0xb8]
mov rcx, qword [rax]
mov qword [rsp + 0xc0], rcx
mov rax, qword [rcx]
mov qword [rsp + 0xc8], rax
mov rcx, qword [r8 + 0x50]
call qword [rax + 0x60]
mov rdx, qword [rsp + 0xc0]
mov rcx, rdi
mov r13d, eax
mov dword [rsp + 0x44], eax
call fcn.18008a9c0
mov rax, qword [rsp + 0xb8]
mov qword [r14], rax
jmp 0x180090e40
mov rcx, r8
call fcn.180087030
mov r13d, eax
mov dword [rsp + 0x44], eax
test eax, eax
jne 0x1800911f2
mov rax, qword [rsp + 0xb0]
cmp byte [rax + 0x19], r13b
je 0x18008ef94
mov rax, qword [rax + 0x10]
mov qword [rsp + 0xb8], rax
mov qword [r14], rax
jmp 0x180090e40
mov rbx, qword [rax]
cmp byte [rbx + 0x5b], 1
je 0x18008efb8
mov rax, r15
mov r13d, r15d
mov dword [rsp + 0x44], r15d
mov qword [rsp + 0xb8], rax
mov qword [r14], rax
jmp 0x180090e40
mov rcx, rbx
call fcn.180079530
mov rax, qword [rbx + 0x40]
mov r13d, r15d
mov qword [rsp + 0xb8], rax
mov qword [r14], rax
mov dword [rsp + 0x44], r15d
jmp 0x180090e40
movsxd rcx, dword [rbp + r12*8 + 4]
mov rax, qword [rdi + 0x58]
mov rdx, qword [rax + rcx*8]
mov qword [rsp + 0xb0], rdx
mov byte [rdx + 0x1c], 1
mov rax, qword [rsp + 0xb0]
mov byte [rax + 0x19], 0
mov rax, qword [rsp + 0xb0]
mov rbx, qword [rax]
test rbx, rbx
je case.0x18008abb5.17
mov rcx, qword [rbx + 0x60]
call fcn.1800644f0
mov qword [rbx + 0x60], r15
mov byte [rbx + 0x5b], 0
jmp 0x180090e40
movsxd rcx, dword [rbp + r12*8 + 4]
mov rax, qword [rdi + 0x58]
mov rdx, qword [rax + rcx*8]
mov qword [rsp + 0xb0], rdx
mov rbx, qword [rdx]
mov qword [rsp + 0xb8], rbx
test rbx, rbx
jne 0x18008f05d
mov dword [rsp + 0xc0], 1
jmp 0x18008f0c5
cmp byte [rbx + 0x5b], 1
jne 0x18008f073
cmp byte [rbx + 0x59], 0
je 0x18008f073
mov r13d, r15d
mov dword [rsp + 0x44], r15d
jmp 0x18008f0c5
mov rcx, rbx
call fcn.180079f20
mov r13d, eax
mov dword [rsp + 0x44], eax
test eax, eax
jne 0x18008f0b7
cmp byte [rbx + 0x5b], al
jne 0x18008f098
mov dword [rsp + 0xc0], 1
jmp 0x18008f0b7
mov rcx, rbx
mov dword [rsp + 0xc0], r15d
call fcn.18007a1b0
test eax, eax
mov r13d, eax
mov dword [rsp + 0x44], eax
sete al
mov byte [rbx + 0x59], al
mov rdx, qword [rsp + 0xb0]
mov r8d, 4
movzx eax, byte [rsp + 0xc0]
mov byte [rdx + 0x1c], al
mov rax, qword [rsp + 0xb0]
mov byte [rax + 0x1d], 0
mov rax, qword [rsp + 0xb0]
mov byte [rax + 0x19], 0
mov rax, qword [rsp + 0xb0]
mov dword [rax + 0x64], r15d
mov eax, dword [rbp + r12*8 + 8]
test eax, eax
jle case.0x18008abb5.17
cmp dword [rsp + 0xc0], 0
je case.0x18008abb5.17
lea ecx, [rax - 1]
jmp 0x180090e4a
inc dword [rdi + 0x124]
movsxd rcx, dword [rbp + r12*8 + 4]
mov rax, qword [rdi + 0x58]
mov rdx, qword [rax + rcx*8]
mov dword [rsp + 0xc0], 1
mov qword [rsp + 0xb0], rdx
mov rbx, qword [rdx]
mov qword [rsp + 0xb8], rbx
test rbx, rbx
je 0x18008f1d5
mov rcx, rbx
call fcn.180079f20
mov r13d, eax
mov dword [rsp + 0x44], eax
test eax, eax
jne 0x18008f18d
cmp byte [rbx + 0x5b], al
jne 0x18008f176
mov dword [rsp + 0xc0], 1
jmp 0x18008f18d
mov rcx, rbx
mov dword [rsp + 0xc0], r15d
call fcn.18007a100
mov r13d, eax
mov dword [rsp + 0x44], eax
cmp dword [rsp + 0xc0], 0
mov rax, qword [rsp + 0xb0]
mov r8d, 4
sete cl
mov byte [rax + 0x1a], cl
mov rax, qword [rsp + 0xb0]
mov byte [rax + 0x1d], 0
mov rax, qword [rsp + 0xb0]
mov dword [rax + 0x64], r15d
mov rax, qword [rsp + 0xb0]
mov byte [rax + 0x19], 0
mov rdx, qword [rsp + 0xb0]
movzx eax, byte [rsp + 0xc0]
mov byte [rdx + 0x1c], al
cmp dword [rsp + 0xc0], 0
je case.0x18008abb5.17
mov ecx, dword [rbp + r12*8 + 8]
dec ecx
jmp 0x180090e4a
mov eax, dword [rsi + 0x148]
test eax, eax
jne 0x180091260
movsxd rcx, dword [rbp + r12*8 + 4]
mov rax, qword [rdi + 0x58]
mov rdx, qword [rax + rcx*8]
mov qword [rsp + 0xb0], rdx
test rdx, rdx
je case.0x18008abb5.17
mov rcx, qword [rdx]
mov qword [rsp + 0xb8], rcx
test rcx, rcx
jne 0x18008f23f
mov byte [rdx + 0x1c], 1
jmp case.0x18008abb5.17
mov dword [rsp + 0xc0], 1
cmp byte [rbp + r12*8], 0x43
lea rdx, [rsp + 0xc0]
jne 0x18008f261
call fcn.18007a710
jmp 0x18008f266
call fcn.18007a8a0
mov rcx, qword [rsp + 0xb0]
mov dword [rsp + 0x44], eax
mov r13d, eax
movzx eax, byte [rsp + 0xc0]
mov byte [rcx + 0x1c], al
mov rax, qword [rsp + 0xb0]
mov dword [rax + 0x64], r15d
cmp dword [rsp + 0xc0], 0
jne 0x18008f2b5
mov eax, dword [rbp + r12*8 + 8]
dec eax
mov dword [rsp + 0x40], eax
movzx eax, byte [rbp + r12*8 + 3]
test al, al
je 0x18008f2b5
movzx eax, al
inc dword [rdi + rax*4 + 0x11c]
mov rax, qword [rsp + 0xb0]
mov byte [rax + 0x19], 0
jmp 0x180090e40
movsxd rcx, dword [rbp + r12*8 + 4]
mov rax, qword [rdi + 0x58]
mov rdx, qword [rax + rcx*8]
mov qword [rsp + 0xb0], rdx
movsxd rbx, dword [rbp + r12*8 + 8]
mov rcx, qword [rdx]
imul rbx, rbx, 0x38
add rbx, qword [rsp + 0x50]
mov qword [rsp + 0xb8], rcx
test rcx, rcx
je case.0x18008abb5.17
mov eax, 0x4000
test word [rbx + 0x24], ax
je 0x18008f32f
mov rcx, rbx
call fcn.180082dc0
mov r13d, eax
mov dword [rsp + 0x44], eax
test eax, eax
jne 0x180090e40
mov rcx, qword [rsp + 0xb8]
mov rdx, qword [rsp + 0xb0]
movsxd r8, dword [rbx + 0x20]
mov dword [rsp + 0xc0], r8d
mov r10, qword [rbx + 0x18]
mov qword [rsp + 0xc8], r10
test byte [rbp + r12*8 + 3], 0x10
je 0x18008f354
mov eax, dword [rdx + 0x60]
jmp 0x18008f357
mov eax, r15d
mov dword [rsp + 0x38], eax
mov eax, dword [rbp + r12*8 + 0xc]
lea r9, [0x18011904f]
mov dword [rsp + 0x30], eax
mov rdx, r10
mov dword [rsp + 0x28], r15d
mov dword [rsp + 0x20], r15d
call fcn.18007e4e0
mov r13d, eax
mov dword [rsp + 0x44], eax
mov rax, qword [rsp + 0xb0]
mov dword [rax + 0x64], r15d
jmp 0x180090e40
movsxd rcx, dword [rbp + r12*8 + 4]
mov rax, qword [rdi + 0x58]
mov rax, qword [rax + rcx*8]
mov qword [rsp + 0xb0], rax
mov rcx, qword [rax]
mov qword [rsp + 0xb8], rcx
test rcx, rcx
je case.0x18008abb5.17
mov rax, qword [rax + 0x38]
lea rdx, [rsp + 0xc8]
xor r9d, r9d
mov qword [rsp + 0xc8], rax
movzx eax, word [rbp + r12*8 + 0xc]
mov word [rsp + 0xd2], r15w
mov word [rsp + 0xd0], ax
movsxd rax, dword [rbp + r12*8 + 8]
xor r8d, r8d
imul rax, rax, 0x38
add rax, qword [rsp + 0x50]
mov qword [rsp + 0xe0], rax
lea rax, [rsp + 0xc0]
mov qword [rsp + 0x20], rax
call fcn.18007a270
mov r13d, eax
mov dword [rsp + 0x44], eax
test eax, eax
jne 0x18008f43f
cmp dword [rsp + 0xc0], eax
jne 0x18008f43f
mov rcx, qword [rsp + 0xb8]
call fcn.18007e7c0
mov r13d, eax
mov dword [rsp + 0x44], eax
mov rax, qword [rsp + 0xb0]
mov dword [rax + 0x64], r15d
jmp 0x180090e40
movsxd rcx, dword [rbp + r12*8 + 4]
mov rax, qword [rdi + 0x58]
mov rax, qword [rax + rcx*8]
mov qword [rsp + 0xb8], rax
mov rax, qword [rax]
mov qword [rsp + 0xb0], rax
mov eax, 1
mov word [r14 + 0x24], ax
cmp qword [rsp + 0xb0], 0
je case.0x18008abb5.17
mov rcx, qword [rsp + 0xb8]
call fcn.180087030
mov r13d, eax
mov dword [rsp + 0x44], eax
test eax, eax
jne 0x1800911f2
mov rax, qword [rsp + 0xb8]
cmp byte [rax + 0x1c], r13b
jne 0x180090e40
mov rdx, qword [rsp + 0xb0]
lea r8, [rsp + 0xc0]
mov rcx, rsi
call fcn.180087a80
mov r13d, eax
mov dword [rsp + 0x44], eax
test eax, eax
jne 0x1800911f2
mov rax, qword [rsp + 0xc0]
mov r8d, 4
mov qword [r14], rax
mov word [r14 + 0x24], r8w
jmp case.0x18008abb5.17
movsxd rcx, dword [rbp + r12*8 + 4]
mov rax, qword [rdi + 0x58]
mov rcx, qword [rax + rcx*8]
mov qword [rsp + 0xb0], rcx
cmp qword [rcx], 0
je case.0x18008abb5.17
mov rax, qword [rcx + 0x38]
mov qword [rsp + 0xc0], rax
movzx eax, word [rbp + r12*8 + 0x10]
mov word [rsp + 0xc8], ax
cmp byte [rbp + r12*8 + 3], 0
je 0x18008f549
mov eax, 0xc
mov word [rsp + 0xca], ax
jmp 0x18008f552
mov word [rsp + 0xca], r8w
movsxd rax, dword [rbp + r12*8 + 0xc]
lea r8, [rsp + 0xb8]
lea rdx, [rsp + 0xc0]
imul rax, rax, 0x38
add rax, qword [rsp + 0x50]
mov qword [rsp + 0xd8], rax
call fcn.180087d80
cmp byte [rbp + r12*8], 0x51
mov r13d, eax
mov dword [rsp + 0x44], eax
mov eax, dword [rsp + 0xb8]
jne 0x18008f597
neg eax
jmp 0x18008f599
inc eax
mov dword [rsp + 0xb8], eax
mov r8d, 4
test eax, eax
jle case.0x18008abb5.17
mov ecx, dword [rbp + r12*8 + 8]
dec ecx
jmp 0x180090e4a
mov ecx, r15d
mov dword [rsp + 0xb4], ecx
mov rax, qword [rsi + 0xa8]
mov qword [rsp + 0xb8], rax
test rax, rax
je 0x18008f615
nop dword [rax + rax]
cmp dword [rax + 0x78], 0xbdf20da3
jne 0x18008f604
cmp byte [rax + 0xa5], 2
jae 0x18008f604
cmp dword [rax + 0x8c], 0
jl 0x18008f604
inc ecx
mov dword [rsp + 0xb4], ecx
mov rax, qword [rax + 0x10]
mov qword [rsp + 0xb8], rax
test rax, rax
jne 0x18008f5e0
mov eax, 1
mov word [r14 + 0x24], ax
cmp dword [rsp + 0xb4], eax
jle 0x18008f63c
mov r13d, 6
mov byte [rdi + 0x60], 2
mov dword [rsp + 0x44], r13d
jmp case.0x18008abb5.17
movsxd rax, dword [rbp + r12*8 + 0xc]
mov dword [rsp + 0xc0], eax
mov ebx, dword [rbp + r12*8 + 4]
mov rcx, rax
mov rax, qword [rsi + 0x10]
shl rcx, 5
mov rdi, qword [rcx + rax + 8]
mov rcx, rdi
call fcn.180074510
lea r8, [rsp + 0xb0]
mov edx, ebx
mov rcx, rdi
call fcn.18007f3c0
cmp byte [rdi + 0x11], 0
mov r13d, eax
mov dword [rsp + 0x44], eax
je 0x18008f6a1
add dword [rdi + 0x14], 0xffffffff
jne 0x18008f6a1
mov rax, qword [rdi + 8]
mov rcx, qword [rax + 0x50]
test rcx, rcx
je 0x18008f69d
call qword [0x1801766e8]
mov byte [rdi + 0x12], 0
mov r8d, 4
mov word [r14 + 0x24], r8w
movsxd rax, dword [rsp + 0xb0]
mov qword [r14], rax
test r13d, r13d
jne 0x18008bd1b
mov r8d, dword [rsp + 0xb0]
test r8d, r8d
je 0x18008afe8
movsxd r9, dword [rsp + 0xc0]
mov edx, dword [rbp + r12*8 + 4]
shl r9, 5
add r9, qword [rsi + 0x10]
mov rax, qword [r9 + 0x18]
mov rcx, qword [rax + 0x10]
test rcx, rcx
je 0x18008f708
mov rax, qword [rcx + 0x10]
cmp dword [rax + 0x20], r8d
jne 0x18008f700
mov dword [rax + 0x20], edx
mov rcx, qword [rcx]
test rcx, rcx
jne 0x18008f6f3
mov rax, qword [r9 + 0x18]
mov rcx, qword [rax + 0x28]
test rcx, rcx
je 0x18008f72a
mov rax, qword [rcx + 0x10]
cmp dword [rax + 0x28], r8d
jne 0x18008f722
mov dword [rax + 0x28], edx
mov rcx, qword [rcx]
test rcx, rcx
jne 0x18008f715
mov rdi, qword [rsp + 0x58]
mov byte [rsp + 0x60], 1
jmp 0x180090e40
mov dword [rsp + 0xb0], r15d
cmp dword [rbp + r12*8 + 0xc], 0
movsxd rax, dword [rbp + r12*8 + 8]
mov rcx, qword [rsi + 0x10]
mov edx, dword [rbp + r12*8 + 4]
lea r8, [rsp + 0xb0]
cmove r8, r15
shl rax, 5
mov rcx, qword [rax + rcx + 8]
call fcn.18007f2d0
cmp dword [rbp + r12*8 + 0xc], 0
mov r13d, eax
mov dword [rsp + 0x44], eax
je 0x180090e40
movsxd rax, dword [rsp + 0xb0]
mov r8d, 4
add dword [rdi + 0xac], eax
movsxd rcx, dword [rbp + r12*8 + 0xc]
test ecx, ecx
jle case.0x18008abb5.17
mov rbx, qword [rsp + 0x50]
imul rcx, rcx, 0x38
add qword [rcx + rbx], rax
jmp case.0x18008abb5.17
mov dword [rsp + 0xb0], r15d
movsxd rax, dword [rbp + r12*8 + 4]
mov ecx, 5
shl rax, 5
mov ebx, 2
add rax, qword [rsi + 0x10]
mov qword [rsp + 0xb8], rax
cmp byte [rbp + r12*8], 0x62
cmove ebx, ecx
mov dword [rsp + 0xb4], ebx
mov rdi, qword [rax + 8]
mov rcx, rdi
call fcn.180074510
lea rdx, [rsp + 0xb0]
mov r8d, ebx
mov rcx, rdi
call fcn.18007eac0
cmp byte [rdi + 0x11], 0
mov r13d, eax
mov dword [rsp + 0x44], eax
je 0x18008f835
add dword [rdi + 0x14], 0xffffffff
jne 0x18008f835
mov rax, qword [rdi + 8]
mov rcx, qword [rax + 0x50]
test rcx, rcx
je 0x18008f831
call qword [0x1801766e8]
mov byte [rdi + 0x12], 0
movsxd rax, dword [rsp + 0xb0]
mov rdi, qword [rsp + 0x58]
mov qword [r14], rax
jmp 0x180090e40
mov eax, dword [rbp + r12*8 + 4]
mov rcx, rsi
mov dword [rsp + 0xb0], eax
call fcn.180074650
cmp dword [rbp + r12*8 + 8], 0
movsxd r11, dword [rsp + 0xb0]
jne 0x18008f888
mov rax, qword [rsi + 0x10]
mov rcx, r11
shl rcx, 5
mov rcx, qword [rcx + rax + 0x18]
test byte [rcx + 0x72], 1
je 0x18008f968
mov qword [rsp + 0xc8], rsi
lea rax, str.sqlite_master
cmp r11d, 1
mov rcx, r11
lea r9, str.sqlite_temp_master
lea rdx, str.SELECT_name__rootpage__sql_FROM__q._s_WHERE__s_ORDER_BY_rowid
cmovne r9, rax
shl rcx, 5
mov qword [rsp + 0xb8], r9
mov eax, dword [rbp + r12*8 + 4]
mov dword [rsp + 0xd0], eax
lea rax, [rdi + 0x98]
mov qword [rsp + 0xd8], rax
mov r8, qword [rsi + 0x10]
mov rax, qword [rbp + r12*8 + 0x10]
mov r8, qword [rcx + r8]
mov rcx, rsi
mov qword [rsp + 0x20], rax
call fcn.180065fd0
mov qword [rsp + 0xc0], rax
test rax, rax
jne 0x18008f90b
mov r13d, 7
mov dword [rsp + 0x44], r13d
jmp 0x18008f968
mov byte [rsi + 0x94], 1
mov rdx, qword [rsp + 0xc0]
lea r9, [rsp + 0xc8]
lea r8, [fcn.1800b6250]
mov rcx, rsi
mov dword [rsp + 0xe0], r15d
mov qword [rsp + 0x20], r15
call fcn.1800b1d70
mov rdx, qword [rsp + 0xc0]
mov r13d, eax
test eax, eax
mov rcx, rsi
cmove r13d, dword [rsp + 0xe0]
mov dword [rsp + 0x44], r13d
call fcn.1800645a0
mov byte [rsi + 0x94], 0
mov rcx, rsi
call fcn.180074770
cmp r13d, 7
je 0x18008b2dd
jmp 0x180090e40
mov edx, dword [rbp + r12*8 + 4]
mov rcx, rsi
call fcn.18009d860
mov r13d, eax
mov dword [rsp + 0x44], eax
jmp 0x180090e40
mov rdx, qword [rbp + r12*8 + 0x10]
movsxd rcx, dword [rbp + r12*8 + 4]
shl rcx, 5
mov rax, rdx
add rcx, qword [rsi + 0x10]
test rdx, rdx
jne 0x18008f9b7
mov eax, r15d
jmp 0x18008f9cf
cmp byte [rdx], 0
je 0x18008f9c8
nop dword [rax]
inc rax
cmp byte [rax], 0
jne 0x18008f9c0
sub eax, edx
and eax, 0x3fffffff
mov rcx, qword [rcx + 0x18]
xor r9d, r9d
mov r8d, eax
add rcx, 8
call fcn.180068050
mov rcx, rsi
mov rdx, rax
call fcn.18009f7d0
mov eax, 0x200
or dword [rsi + 0x18], eax
jmp 0x180090e40
mov r8, qword [rbp + r12*8 + 0x10]
mov edx, dword [rbp + r12*8 + 4]
mov rcx, rsi
call fcn.18009f480
jmp 0x180090e40
mov r8, qword [rbp + r12*8 + 0x10]
mov edx, dword [rbp + r12*8 + 4]
mov rcx, rsi
call fcn.1800c4420
jmp 0x180090e40
mov edx, dword [rbp + r12*8 + 8]
mov rcx, rsi
mov dword [rsp + 0xb0], edx
lea edx, [rdx*4 + 4]
call fcn.180064880
mov r11, rax
mov qword [rsp + 0xb8], rax
test rax, rax
je 0x18008b2dd
movsxd rcx, dword [rbp + r12*8 + 0xc]
mov rax, qword [rsp + 0x50]
imul rcx, rcx, 0x38
add rcx, rax
mov qword [rsp + 0xd0], rcx
movsxd rbx, dword [rbp + r12*8 + 4]
imul rbx, rbx, 0x38
add rbx, rax
cmp dword [rsp + 0xb0], 0
mov eax, r15d
mov dword [rsp + 0xc0], eax
jle 0x18008fad3
movsxd rcx, eax
imul rcx, rcx, 0x38
add rcx, rbx
call fcn.180083120
movsxd rdx, dword [rsp + 0xc0]
mov rcx, qword [rsp + 0xb8]
mov dword [rcx + rdx*4], eax
mov eax, dword [rsp + 0xc0]
inc eax
cmp eax, dword [rsp + 0xb0]
mov dword [rsp + 0xc0], eax
jl 0x18008fa90
mov r11, qword [rsp + 0xb8]
cdqe
mov dword [r11 + rax*4], r15d
movzx r10d, byte [rbp + r12*8 + 3]
mov rcx, qword [rsi + 0x10]
mov r8d, dword [rsp + 0xb0]
mov rdx, qword [rsp + 0xb8]
lea rax, [rsp + 0xc4]
mov qword [rsp + 0x20], rax
mov rax, qword [rsp + 0xd0]
shl r10, 5
mov r9d, dword [rax]
mov rcx, qword [r10 + rcx + 8]
call fcn.180080f00
mov rdx, qword [rsp + 0xb8]
mov rcx, rsi
mov qword [rsp + 0xc8], rax
call fcn.1800645a0
mov rax, qword [rsp + 0xd0]
movsxd r11, dword [rsp + 0xc4]
mov rcx, rbx
sub qword [rax], r11
call fcn.180083370
cmp dword [rsp + 0xc4], 0
je 0x18008fb82
mov rdx, qword [rsp + 0xc8]
test rdx, rdx
je 0x18008b2dd
lea rax, [fcn.1800644f0]
mov r9b, 1
or r8d, 0xffffffff
mov rcx, rbx
mov qword [rsp + 0x20], rax
call fcn.1800837b0
test byte [rbx + 0x24], 2
movzx ecx, byte [rsp + 0x48]
je 0x180090e40
movzx eax, byte [rbx + 0x27]
cmp eax, ecx
je 0x180090e40
movzx edx, cl
mov rcx, rbx
call fcn.180066690
jmp 0x180090e40
mov rax, qword [rsp + 0x50]
movsxd rbx, dword [rbp + r12*8 + 4]
movsxd rdi, dword [rbp + r12*8 + 8]
imul rbx, rbx, 0x38
imul rdi, rdi, 0x38
add rbx, rax
add rdi, rax
test byte [rbx + 0x24], 0x20
jne 0x18008fbe2
mov rcx, rbx
call fcn.1800834e0
test byte [rbx + 0x24], 0x20
je 0x18008b2d8
mov rdx, qword [rdi]
mov rcx, qword [rbx]
call fcn.18006c730
mov rdi, qword [rsp + 0x58]
jmp 0x180090e40
mov eax, dword [rsi + 0x148]
test eax, eax
jne 0x180091260
movsxd rbx, dword [rbp + r12*8 + 4]
imul rbx, rbx, 0x38
add rbx, qword [rsp + 0x50]
test byte [rbx + 0x24], 0x20
je 0x18008fc7b
mov rdi, qword [rbx]
mov rcx, rdi
call fcn.18006cb80
mov rax, qword [rdi + 0x10]
test rax, rax
je 0x18008fc76
mov rax, qword [rax]
mov qword [rsp + 0xb0], rax
mov rax, qword [rdi + 0x10]
mov rdx, qword [rax + 8]
mov qword [rdi + 0x10], rdx
test rdx, rdx
jne 0x18008fc51
mov rcx, rdi
call fcn.18006c6d0
movsxd rcx, dword [rbp + r12*8 + 0xc]
mov rdx, qword [rsp + 0xb0]
imul rcx, rcx, 0x38
add rcx, qword [rsp + 0x50]
call fcn.180083400
mov rdi, qword [rsp + 0x58]
jmp 0x180090e40
mov rdi, qword [rsp + 0x58]
mov rcx, rbx
call fcn.180083370
mov ecx, dword [rbp + r12*8 + 8]
mov r8d, 4
dec ecx
jmp 0x180090e4a
mov rax, qword [rsp + 0x50]
movsxd rbx, dword [rbp + r12*8 + 4]
movsxd rdi, dword [rbp + r12*8 + 0xc]
imul rbx, rbx, 0x38
imul rdi, rdi, 0x38
add rbx, rax
add rdi, rax
mov eax, dword [rbp + r12*8 + 0x10]
mov dword [rsp + 0xb0], eax
test byte [rbx + 0x24], 0x20
jne 0x18008fcdd
mov rcx, rbx
call fcn.1800834e0
test byte [rbx + 0x24], 0x20
je 0x18008b2d8
mov eax, dword [rsp + 0xb0]
test eax, eax
je 0x18008fd24
js 0x18008fce8
and eax, 0xf
jmp 0x18008fced
mov eax, 0xff
mov r8, qword [rdi]
mov rcx, qword [rbx]
movzx edx, al
call fcn.18006cc10
mov dword [rsp + 0xb4], eax
test eax, eax
je 0x18008fd1b
mov edi, dword [rbp + r12*8 + 8]
dec edi
mov dword [rsp + 0x40], edi
mov rdi, qword [rsp + 0x58]
jmp 0x180090e40
mov eax, dword [rsp + 0xb0]
test eax, eax
js 0x18008afe8
mov rdx, qword [rdi]
mov rcx, qword [rbx]
call fcn.18006c730
mov rdi, qword [rsp + 0x58]
jmp 0x180090e40
mov r8, qword [rbp + r12*8 + 0x10]
mov qword [rsp + 0xd8], r8
movsxd rdx, dword [rbp + r12*8 + 0xc]
imul rdx, rdx, 0x38
add rdx, qword [rsp + 0x50]
mov qword [rsp + 0xb8], rdx
cmp byte [rbp + r12*8 + 3], 0
je 0x18008fdab
mov rax, qword [rdi + 0x158]
mov rcx, qword [r8 + 0x18]
mov qword [rsp + 0xe0], rcx
mov qword [rsp + 0xd0], rax
test rax, rax
je 0x18008fdab
nop word [rax + rax]
cmp qword [rax + 0x40], rcx
je 0x180090e40
mov rax, qword [rax + 0x60]
mov qword [rsp + 0xd0], rax
test rax, rax
jne 0x18008fd90
mov eax, dword [rsi + 0x88]
cmp dword [rdi + 0x160], eax
jl 0x18008fddf
lea rcx, [rdi + 0x98]
lea r8, str.too_many_levels_of_trigger_recursion
mov r13d, 1
mov rdx, rsi
mov dword [rsp + 0x44], r13d
call fcn.180064ab0
jmp 0x180090e40
test byte [rdx + 0x24], 0x40
jne 0x18008ff88
mov edx, dword [r8 + 0xc]
mov rcx, rsi
add edx, dword [r8 + 0x10]
mov dword [rsp + 0xb0], edx
imul edx, edx, 7
add edx, dword [r8 + 0x10]
lea edx, [rdx*8 + 0x68]
mov dword [rsp + 0xb4], edx
call fcn.180064840
mov qword [rsp + 0xd0], rax
test rax, rax
je 0x18008b2dd
mov rcx, qword [rsp + 0xb8]
call fcn.1800830f0
mov rax, qword [rsp + 0xb8]
mov ecx, 0x40
mov word [rax + 0x24], cx
mov rcx, qword [rsp + 0xb8]
mov rax, qword [rsp + 0xd0]
mov qword [rcx], rax
mov rax, qword [rsp + 0xd0]
mov qword [rax], rdi
mov ecx, dword [rsp + 0xb0]
mov rax, qword [rsp + 0xd0]
mov dword [rax + 0x48], ecx
mov rax, qword [rsp + 0xd8]
mov ecx, dword [rax + 0x10]
mov rax, qword [rsp + 0xd0]
mov dword [rax + 0x4c], ecx
mov rax, qword [rsp + 0xd0]
mov ecx, dword [rsp + 0x40]
mov dword [rax + 8], ecx
mov rcx, qword [rdi + 0x80]
mov rax, qword [rsp + 0xd0]
mov qword [rax + 0x20], rcx
mov rax, qword [rsp + 0xd0]
mov ecx, dword [rdi + 0x7c]
mov dword [rax + 0x28], ecx
mov rcx, qword [rdi + 0x58]
mov rax, qword [rsp + 0xd0]
mov qword [rax + 0x30], rcx
mov rax, qword [rsp + 0xd0]
movzx ecx, word [rdi + 0x52]
mov word [rax + 0x38], cx
mov rcx, qword [rdi + 0x20]
mov rax, qword [rsp + 0xd0]
mov qword [rax + 0x10], rcx
mov rax, qword [rsp + 0xd0]
mov ecx, dword [rdi + 0x18]
mov dword [rax + 0x18], ecx
mov rax, qword [rsp + 0xd8]
mov rcx, qword [rax + 0x18]
mov rax, qword [rsp + 0xd0]
mov qword [rax + 0x40], rcx
mov rdx, qword [rsp + 0xd0]
movsxd rax, dword [rdx + 0x48]
imul rax, rax, 0x38
lea rcx, [rax + rdx + 0x68]
lea rax, [rdx + 0x68]
mov qword [rsp + 0xc8], rcx
mov qword [rsp + 0xc0], rax
cmp rax, rcx
je 0x18008ff93
mov ebx, 1
nop word [rax + rax]
mov word [rax + 0x24], bx
mov rax, qword [rsp + 0xc0]
mov qword [rax + 0x10], rsi
mov rax, qword [rsp + 0xc0]
add rax, 0x38
mov qword [rsp + 0xc0], rax
cmp rax, qword [rsp + 0xc8]
jne 0x18008ff50
mov rdx, qword [rsp + 0xd0]
jmp 0x18008ff93
mov rdx, qword [rdx]
mov qword [rsp + 0xd0], rdx
inc dword [rdi + 0x160]
mov rax, qword [rdi + 0x158]
mov qword [rdx + 0x60], rax
mov rcx, qword [rsi + 0x40]
mov rax, qword [rsp + 0xd0]
mov qword [rax + 0x50], rcx
mov ecx, dword [rdi + 0xac]
mov rax, qword [rsp + 0xd0]
mov dword [rax + 0x58], ecx
mov rax, qword [rsp + 0xd0]
mov dword [rdi + 0xac], r15d
lea r11, [rax + 0x30]
mov qword [rdi + 0x158], rax
mov qword [rdi + 0x80], r11
mov ecx, dword [rax + 0x48]
mov qword [rsp + 0x50], r11
mov dword [rdi + 0x7c], ecx
movzx eax, word [rax + 0x4c]
mov word [rdi + 0x52], ax
lea eax, [rcx + 1]
cdqe
imul rax, rax, 0x38
add rax, r11
or ecx, 0xffffffff
mov qword [rdi + 0x58], rax
mov rax, qword [rsp + 0xd8]
lea r8d, [rcx + 5]
mov rbp, qword [rax]
mov qword [rdi + 0x20], rbp
mov eax, dword [rax + 8]
mov qword [rsp + 0x78], rbp
mov dword [rdi + 0x18], eax
jmp 0x180090e4a
mov r8, qword [rdi + 0x158]
mov qword [rsp + 0xb0], r8
movsxd rax, dword [r8 + 8]
lea rcx, [rax + rax*2]
mov rax, qword [r8 + 0x10]
mov edx, dword [rax + rcx*8 + 4]
mov rcx, r14
add edx, dword [rbp + r12*8 + 4]
movsxd rdx, edx
imul rdx, rdx, 0x38
add rdx, qword [r8 + 0x20]
mov r8d, 0x1000
mov qword [rsp + 0xb8], rdx
call fcn.1800835f0
jmp 0x180090e40
cmp dword [rbp + r12*8 + 4], 0
movsxd rax, dword [rbp + r12*8 + 8]
mov ecx, dword [rsp + 0x40]
je 0x180090096
add qword [rsi + 0x320], rax
jmp 0x180090e4a
add qword [rdi + 0x140], rax
jmp 0x180090e4a
cmp dword [rbp + r12*8 + 4], 0
je 0x1800900c4
cmp qword [rsi + 0x320], 0
jne case.0x18008abb5.17
mov ecx, dword [rbp + r12*8 + 8]
dec ecx
jmp 0x180090e4a
cmp qword [rdi + 0x140], 0
jne case.0x18008abb5.17
mov ecx, dword [rbp + r12*8 + 8]
dec ecx
jmp 0x180090e4a
mov rax, qword [rdi + 0x158]
test rax, rax
je 0x180090123
mov qword [rsp + 0xb8], rax
mov rcx, qword [rax + 0x60]
test rcx, rcx
je 0x180090114
nop dword [rax + rax]
mov rax, rcx
mov qword [rsp + 0xb8], rcx
mov rcx, qword [rcx + 0x60]
test rcx, rcx
jne 0x180090100
movsxd rbx, dword [rbp + r12*8 + 4]
imul rbx, rbx, 0x38
add rbx, qword [rax + 0x20]
jmp 0x180090131
movsxd rbx, dword [rbp + r12*8 + 4]
imul rbx, rbx, 0x38
add rbx, qword [rsp + 0x50]
mov rcx, rbx
mov qword [rsp + 0xb0], rbx
call fcn.180083120
mov qword [rbx], rax
mov eax, 0xbf04
and word [rbx + 0x24], ax
or word [rbx + 0x24], 4
movsxd rbx, dword [rbp + r12*8 + 8]
imul rbx, rbx, 0x38
add rbx, qword [rsp + 0x50]
mov rcx, rbx
call fcn.180083120
mov ecx, 0xbf04
mov r8d, 4
and word [rbx + 0x24], cx
or word [rbx + 0x24], 4
mov qword [rbx], rax
mov rcx, qword [rsp + 0xb0]
cmp qword [rcx], rax
jge case.0x18008abb5.17
mov qword [rcx], rax
jmp case.0x18008abb5.17
movsxd rax, dword [rbp + r12*8 + 4]
mov rcx, qword [rsp + 0x50]
imul rax, rax, 0x38
cmp qword [rax + rcx], 0
jle case.0x18008abb5.17
mov ecx, dword [rbp + r12*8 + 8]
dec ecx
jmp 0x180090e4a
movsxd rax, dword [rbp + r12*8 + 4]
mov rcx, qword [rsp + 0x50]
imul rax, rax, 0x38
cmp qword [rax + rcx], 0
jge case.0x18008abb5.17
mov ecx, dword [rbp + r12*8 + 8]
dec ecx
jmp 0x180090e4a
movsxd rcx, dword [rbp + r12*8 + 4]
movsxd rax, dword [rbp + r12*8 + 0xc]
imul rcx, rcx, 0x38
add rcx, qword [rsp + 0x50]
add qword [rcx], rax
jne case.0x18008abb5.17
mov ecx, dword [rbp + r12*8 + 8]
dec ecx
jmp 0x180090e4a
movzx eax, byte [rbp + r12*8 + 3]
mov rbx, qword [rsp + 0x50]
mov r8, qword [rdi + 0x38]
mov dword [rsp + 0xb0], eax
movsxd rdx, dword [rbp + r12*8 + 8]
mov ecx, r15d
mov qword [rsp + 0x128], r8
mov dword [rsp + 0xb4], ecx
imul rdx, rdx, 0x38
add rdx, rbx
mov qword [rsp + 0xc0], rdx
test eax, eax
jle 0x18009029b
nop word [rax + rax]
movsxd rax, ecx
mov qword [r8 + rax*8], rdx
mov rcx, qword [rsp + 0xc0]
call fcn.18008a620
mov ecx, dword [rsp + 0xb4]
mov rdx, qword [rsp + 0xc0]
inc ecx
add rdx, 0x38
cmp ecx, dword [rsp + 0xb0]
mov dword [rsp + 0xb4], ecx
mov qword [rsp + 0xc0], rdx
jge 0x18009029b
mov r8, qword [rsp + 0x128]
jmp 0x180090250
mov rax, qword [rbp + r12*8 + 0x10]
mov qword [rsp + 0xc8], rax
movsxd rax, dword [rbp + r12*8 + 0xc]
imul rax, rax, 0x38
add rax, rbx
mov qword [rsp + 0xb8], rax
mov qword [rsp + 0x110], rax
inc dword [rax + 0x20]
mov r9, qword [rsp + 0xc8]
mov eax, 1
mov word [rsp + 0xfc], ax
mov qword [rsp + 0xf0], r15
mov qword [rsp + 0x108], r15
mov qword [rsp + 0x100], r15
mov qword [rsp + 0xe8], rsi
mov dword [rsp + 0x118], r15d
mov qword [rsp + 0x120], r15
test byte [r9 + 3], 8
je 0x180090320
mov rax, qword [rbp + r12*8 - 8]
mov qword [rsp + 0x120], rax
mov r8, qword [rsp + 0x128]
mov edx, dword [rsp + 0xb0]
lea rcx, [rsp + 0xc8]
call qword [r9 + 0x20]
cmp dword [rsp + 0x118], 0
je 0x18009037a
lea rcx, [rsp + 0xd8]
mov dl, 1
call fcn.180084120
lea rcx, [rdi + 0x98]
lea r8, [0x1801287c8]
mov r9, rax
mov rdx, rsi
call fcn.180064ab0
mov r13d, dword [rsp + 0x118]
mov dword [rsp + 0x44], r13d
lea rcx, [rsp + 0xd8]
call fcn.180083060
mov rdx, qword [rsp + 0x108]
mov rcx, qword [rsp + 0xe8]
call fcn.1800645a0
mov qword [rsp + 0xf0], r15
mov qword [rsp + 0x108], r15
mov qword [rsp + 0x100], r15
jmp 0x180090e40
movsxd rcx, dword [rbp + r12*8 + 4]
imul rcx, rcx, 0x38
add rcx, qword [rsp + 0x50]
mov qword [rsp + 0xb0], rcx
mov rdx, qword [rbp + r12*8 + 0x10]
call fcn.180082f70
mov r13d, eax
mov dword [rsp + 0x44], eax
test eax, eax
je 0x18009040c
mov rcx, qword [rsp + 0xb0]
mov dl, 1
call fcn.180084120
lea rcx, [rdi + 0x98]
lea r8, [0x1801287c8]
mov r9, rax
mov rdx, rsi
call fcn.180064ab0
mov rcx, qword [rsp + 0xb0]
movzx edx, byte [rsp + 0x48]
test byte [rcx + 0x24], 2
je 0x180090434
movzx eax, byte [rcx + 0x27]
cmp eax, edx
je 0x180090434
call fcn.180066690
mov rcx, qword [rsp + 0xb0]
call fcn.1800835c0
test eax, eax
jne 0x18009123f
jmp 0x180090e40
mov edx, dword [rbp + r12*8 + 4]
mov rcx, rsi
call fcn.1800d5dd0
mov r13d, eax
mov dword [rsp + 0x44], eax
jmp 0x180090e40
cmp dword [rdi + 0xc0], 0
mov r8d, dword [rbp + r12*8 + 0xc]
mov dword [rsp + 0xc0], r8d
jne 0x180090492
mov edx, dword [rbp + r12*8 + 4]
mov rcx, rdi
call fcn.1800853f0
mov rcx, rdi
call fcn.1800866f0
mov r8d, dword [rsp + 0xc0]
mov rax, qword [rsi + 0x10]
movsxd rcx, dword [rbp + r12*8 + 4]
shl rcx, 5
cmp r8d, 0xffffffff
mov r10, qword [rcx + rax + 8]
mov qword [rsp + 0xb0], r10
mov rax, qword [r10 + 8]
mov rcx, qword [rax]
mov qword [rsp + 0xb8], rcx
movzx edx, byte [rcx + 9]
cmove r8d, edx
mov dword [rsp + 0xc4], edx
mov dword [rsp + 0xc0], r8d
cmp byte [rcx + 0x12], 3
jae 0x1800904ed
mov rax, qword [rcx + 0x50]
cmp qword [rax], 0
je 0x1800904f7
cmp qword [rcx + 0x60], 0
jle 0x1800904f7
mov r8d, edx
mov dword [rsp + 0xc0], edx
mov rax, qword [rcx + 0xb0]
mov qword [rsp + 0xc8], rax
cmp r8d, 5
jne 0x180090534
cmp byte [rax], 0
je 0x180090525
mov rax, qword [rcx + 0x48]
mov r9, qword [rax]
cmp dword [r9], 2
jl 0x180090525
cmp qword [r9 + 0x68], 0
jne 0x180090534
mov r8d, edx
mov dword [rsp + 0xc0], edx
jmp 0x1800905df
cmp r8d, edx
je 0x1800905df
cmp edx, 5
je 0x18009054c
cmp r8d, 5
jne 0x1800905df
cmp byte [rsi + 0x28], 0
je 0x180090622
cmp dword [rsi + 0xb0], 1
jg 0x180090622
cmp edx, 5
jne 0x180090589
call fcn.180071ad0
mov r13d, eax
mov dword [rsp + 0x44], eax
test eax, eax
jne 0x1800905c7
mov edx, dword [rsp + 0xc0]
mov rcx, qword [rsp + 0xb8]
jmp 0x180090593
cmp edx, 4
jne 0x1800905a8
mov edx, 2
call fcn.1800718f0
mov r10, qword [rsp + 0xb0]
mov r8d, dword [rsp + 0xc0]
mov edx, r15d
cmp r8d, 5
mov rcx, r10
sete dl
inc edx
call fcn.180081660
mov r13d, eax
mov dword [rsp + 0x44], eax
test eax, eax
je 0x180090618
mov r8d, dword [rsp + 0xc4]
mov dword [rsp + 0xc0], r8d
mov rcx, qword [rsp + 0xb8]
mov edx, r8d
call fcn.1800718f0
mov dword [rsp + 0xc0], eax
movsxd r14, dword [rbp + r12*8 + 8]
mov eax, 0xa02
imul r14, r14, 0x38
add r14, qword [rsp + 0x50]
mov word [r14 + 0x24], ax
movsxd rax, dword [rsp + 0xc0]
cmp eax, 6
jne 0x18009065e
mov rcx, r15
jmp 0x18009066d
mov r8d, dword [rsp + 0xc0]
jmp 0x1800905d7
cmp r8d, 5
lea rax, str.into
lea r9, str.out_of
lea rcx, [rdi + 0x98]
lea r8, str.cannot_change__s_wal_mode_from_within_a_transaction
mov r13d, 1
cmove r9, rax
mov rdx, rsi
mov dword [rsp + 0x44], r13d
call fcn.180064ab0
jmp 0x180090e40
lea rcx, [0x180000000]
mov rcx, qword [rcx + rax*8 + 0x12c000]
mov qword [r14 + 0x18], rcx
mov rax, rcx
test rcx, rcx
jne 0x18009067e
mov eax, r15d
jmp 0x180090692
cmp byte [rcx], 0
je 0x18009068b
inc rax
cmp byte [rax], 0
jne 0x180090683
sub eax, ecx
and eax, 0x3fffffff
mov dword [r14 + 0x20], eax
movzx eax, byte [rsp + 0x48]
mov byte [r14 + 0x27], 1
cmp eax, 1
je 0x180090e40
movzx edx, al
mov rcx, r14
call fcn.180066690
jmp 0x180090e40
lea rcx, [rdi + 0x98]
mov rdx, rsi
call fcn.1800c7900
mov r13d, eax
mov dword [rsp + 0x44], eax
jmp 0x180090e40
movsxd rcx, dword [rbp + r12*8 + 4]
mov rax, qword [rsi + 0x10]
shl rcx, 5
mov rcx, qword [rcx + rax + 8]
mov qword [rsp + 0xb0], rcx
call fcn.180078770
mov r8d, 4
mov r13d, eax
mov dword [rsp + 0x44], eax
cmp eax, 0x65
jne case.0x18008abb5.17
mov r13d, dword [rbp + r12*8 + 8]
mov dword [rsp + 0x44], r15d
dec r13d
mov dword [rsp + 0x40], r13d
mov r13d, r15d
jmp case.0x18008abb5.17
cmp dword [rbp + r12*8 + 4], 0
jne 0x180090738
mov rcx, rsi
call fcn.180087ef0
jmp case.0x18008abb5.17
mov byte [rdi + 0xa2], 1
jmp case.0x18008abb5.17
movzx r8d, byte [rbp + r12*8 + 0xc]
test r8b, r8b
jne 0x18009075a
bt dword [rsi + 0x18], 0x13
jb 0x180090e40
movsxd rax, dword [rbp + r12*8 + 4]
mov rcx, qword [rsi + 0x10]
mov edx, dword [rbp + r12*8 + 8]
shl rax, 5
mov rcx, qword [rax + rcx + 8]
call fcn.180081500
mov r13d, eax
mov dword [rsp + 0x44], eax
cmp al, 6
jne 0x180090e40
mov r9, qword [rbp + r12*8 + 0x10]
lea rcx, [rdi + 0x98]
lea r8, str.database_table_is_locked:__s
mov rdx, rsi
call fcn.180064ab0
jmp 0x180090e40
mov rdx, qword [rbp + r12*8 + 0x10]
mov rcx, rsi
mov qword [rsp + 0xb0], rdx
call fcn.1800c9060
mov rdx, qword [rsp + 0xb0]
mov r13d, eax
mov dword [rsp + 0x44], eax
test rdx, rdx
je 0x180090e40
mov rdx, qword [rdx + 0x10]
mov rcx, rdi
call fcn.18008a9c0
jmp 0x180090e40
mov r8, qword [rbp + r12*8 + 0x10]
mov edx, dword [rbp + r12*8 + 4]
lea r9, [rdi + 0x98]
mov rcx, rsi
call fcn.1800c8b40
mov r13d, eax
mov dword [rsp + 0x44], eax
jmp 0x180090e40
mov byte [rdi + 0xa5], 2
mov r8, qword [rbp + r12*8 + 0x10]
mov edx, dword [rbp + r12*8 + 4]
mov rcx, rsi
call fcn.1800c8e20
mov byte [rdi + 0xa5], 0
mov r13d, eax
mov dword [rsp + 0x44], eax
jmp 0x180090e40
mov qword [rsp + 0xb0], r15
mov qword [rsp + 0xb8], r15
mov rax, qword [rbp + r12*8 + 0x10]
mov rcx, qword [rax + 0x10]
lea rdx, [rsp + 0xb8]
mov qword [rsp + 0xc0], rcx
mov rax, qword [rcx]
mov qword [rsp + 0xc8], rax
call qword [rax + 0x30]
mov rdx, qword [rsp + 0xc0]
mov rcx, rdi
mov r13d, eax
mov dword [rsp + 0x44], eax
call fcn.18008a9c0
test r13d, r13d
jne 0x180090e40
mov rcx, qword [rsp + 0xb8]
mov rax, qword [rsp + 0xc0]
or r9d, 0xffffffff
mov qword [rcx], rax
mov edx, dword [rbp + r12*8 + 4]
xor r8d, r8d
mov rcx, rdi
mov dword [rsp + 0x20], r15d
call fcn.18008a650
mov qword [rsp + 0xb0], rax
test rax, rax
je 0x1800908ef
mov rcx, qword [rsp + 0xb8]
mov qword [rax + 0x50], rcx
mov rax, qword [rsp + 0xb8]
mov rcx, qword [rax]
mov rax, qword [rsp + 0xb0]
mov rdx, qword [rcx]
mov qword [rax + 0x58], rdx
jmp 0x180090e40
mov byte [rsi + 0x2a], 1
mov rax, qword [rsp + 0xc8]
mov rcx, qword [rsp + 0xb8]
call qword [rax + 0x38]
jmp 0x180090e40
movsxd r8, dword [rbp + r12*8 + 0xc]
mov rax, qword [rdi + 0x58]
imul r8, r8, 0x38
add r8, qword [rsp + 0x50]
mov qword [rsp + 0xc0], r8
lea r9, [r8 + 0x38]
mov qword [rsp + 0xc8], r9
movsxd rcx, dword [rbp + r12*8 + 4]
mov rdx, qword [rax + rcx*8]
mov qword [rsp + 0xe0], rdx
mov rcx, qword [rdx + 0x50]
mov edx, r15d
mov qword [rsp + 0xd0], rcx
mov rax, qword [rcx]
mov qword [rsp + 0xd8], rax
mov r10, qword [rax]
mov qword [rsp + 0xb8], r10
mov eax, dword [r9]
mov dword [rsp + 0xb0], eax
mov r11d, dword [r8]
mov r8, qword [rdi + 0x38]
mov qword [rsp + 0xf0], r8
mov dword [rsp + 0xb4], r11d
mov dword [rsp + 0xe8], r15d
mov dword [rsp + 0xec], edx
test eax, eax
jle 0x180090a12
nop dword [rax + rax]
lea eax, [rdx + 1]
movsxd rcx, eax
movsxd rax, edx
imul rcx, rcx, 0x38
add rcx, r9
mov qword [r8 + rax*8], rcx
movsxd rax, dword [rsp + 0xec]
mov rcx, qword [rsp + 0xf0]
mov rcx, qword [rcx + rax*8]
call fcn.18008a620
mov edx, dword [rsp + 0xec]
mov eax, dword [rsp + 0xb0]
mov r8, qword [rsp + 0xf0]
inc edx
cmp edx, eax
mov dword [rsp + 0xec], edx
jge 0x1800909fa
mov r9, qword [rsp + 0xc8]
jmp 0x1800909a0
mov rcx, qword [rsp + 0xd0]
mov r10, qword [rsp + 0xb8]
mov r11d, dword [rsp + 0xb4]
mov byte [rdi + 0xa5], 1
mov qword [rsp + 0x20], r8
mov r8, qword [rbp + r12*8 + 0x10]
mov r9d, eax
mov edx, r11d
call qword [r10 + 0x40]
mov rdx, qword [rsp + 0xd8]
mov rcx, rdi
mov r13d, eax
mov dword [rsp + 0x44], eax
mov byte [rdi + 0xa5], 0
call fcn.18008a9c0
test r13d, r13d
jne 0x180090a6c
mov rax, qword [rsp + 0xb8]
mov rcx, qword [rsp + 0xd0]
call qword [rax + 0x50]
mov dword [rsp + 0xe8], eax
jmp 0x180090a73
mov eax, dword [rsp + 0xe8]
test eax, eax
je 0x180090a82
mov eax, dword [rbp + r12*8 + 8]
dec eax
mov dword [rsp + 0x40], eax
mov rax, qword [rsp + 0xe0]
mov byte [rax + 0x1c], 0
jmp 0x180090e40
movsxd rcx, dword [rbp + r12*8 + 4]
mov rax, qword [rdi + 0x58]
mov rbx, qword [rax + rcx*8]
movsxd rcx, dword [rbp + r12*8 + 0xc]
imul rcx, rcx, 0x38
add rcx, qword [rsp + 0x50]
mov qword [rsp + 0xc0], rcx
cmp byte [rbx + 0x1c], 0
je 0x180090ac6
call fcn.180083370
jmp 0x180090e40
mov rax, qword [rbx + 0x50]
xor edx, edx
lea rcx, [rsp + 0xc8]
mov rax, qword [rax]
lea r8d, [rdx + 0x60]
mov qword [rsp + 0xb0], rax
mov rax, qword [rax]
mov qword [rsp + 0xb8], rax
call sub.MSVCR90.dll_memset
mov rdx, qword [rsp + 0xc0]
lea rcx, [rsp + 0xd8]
call fcn.180083720
movzx r11d, word [rsp + 0xfc]
mov eax, 0xbf01
and r11w, ax
mov rax, qword [rsp + 0xb8]
lea rdx, [rsp + 0xc8]
or r11w, 1
mov word [rsp + 0xfc], r11w
mov r8d, dword [rbp + r12*8 + 8]
mov rcx, qword [rbx + 0x50]
call qword [rax + 0x58]
mov rdx, qword [rsp + 0xb0]
mov rcx, rdi
mov r13d, eax
call fcn.18008a9c0
mov eax, dword [rsp + 0x118]
movzx ecx, byte [rsp + 0x48]
test eax, eax
cmovne r13d, eax
test byte [rsp + 0xfc], 2
mov dword [rsp + 0x44], r13d
je 0x180090b94
movzx eax, byte [rsp + 0xff]
cmp eax, ecx
je 0x180090b94
movzx edx, cl
lea rcx, [rsp + 0xd8]
call fcn.180066690
mov rcx, qword [rsp + 0xc0]
lea rdx, [rsp + 0xd8]
call fcn.180083720
mov rcx, qword [rsp + 0xc0]
call fcn.1800835c0
test eax, eax
jne 0x18009123f
jmp 0x180090e40
mov rax, qword [rdi + 0x58]
mov dword [rsp + 0xc0], r15d
movsxd rcx, dword [rbp + r12*8 + 4]
mov rdx, qword [rax + rcx*8]
mov qword [rsp + 0xc8], rdx
cmp byte [rdx + 0x1c], 0
jne case.0x18008abb5.17
mov rax, qword [rdx + 0x50]
mov rcx, qword [rax]
mov qword [rsp + 0xb0], rcx
mov rax, qword [rcx]
mov byte [rdi + 0xa5], 1
mov qword [rsp + 0xb8], rax
mov rcx, qword [rdx + 0x50]
call qword [rax + 0x48]
mov rdx, qword [rsp + 0xb0]
mov rcx, rdi
mov r13d, eax
mov dword [rsp + 0x44], eax
mov byte [rdi + 0xa5], 0
call fcn.18008a9c0
test r13d, r13d
jne 0x180090c55
mov rcx, qword [rsp + 0xc8]
mov rax, qword [rsp + 0xb8]
mov rcx, qword [rcx + 0x50]
call qword [rax + 0x50]
mov dword [rsp + 0xc0], eax
jmp 0x180090c5c
mov eax, dword [rsp + 0xc0]
mov r8d, 4
test eax, eax
jne case.0x18008abb5.17
mov ecx, dword [rbp + r12*8 + 8]
dec ecx
jmp 0x180090e4a
mov rax, qword [rbp + r12*8 + 0x10]
mov rcx, qword [rax + 0x10]
mov qword [rsp + 0xb0], rcx
movsxd rdx, dword [rbp + r12*8 + 4]
imul rdx, rdx, 0x38
add rdx, qword [rsp + 0x50]
mov qword [rsp + 0xb8], rdx
mov rax, qword [rcx]
mov rdx, qword [rdx + 0x18]
call qword [rax + 0x98]
mov rdx, qword [rsp + 0xb0]
mov rcx, rdi
mov r13d, eax
mov dword [rsp + 0x44], eax
call fcn.18008a9c0
jmp 0x180090e40
mov rax, qword [rbp + r12*8 + 0x10]
mov r10, qword [rax + 0x10]
mov qword [rsp + 0xb0], r10
mov rax, qword [r10]
mov qword [rsp + 0xb8], rax
mov edx, dword [rbp + r12*8 + 8]
mov dword [rsp + 0xc0], edx
cmp qword [rax + 0x68], 0
je case.0x18008abb5.17
mov r8, qword [rdi + 0x38]
mov qword [rsp + 0xd0], r8
movsxd rcx, dword [rbp + r12*8 + 0xc]
mov dword [rsp + 0xc4], r15d
imul rcx, rcx, 0x38
add rcx, qword [rsp + 0x50]
mov qword [rsp + 0xd8], rcx
test edx, edx
jle 0x180090d8f
call fcn.18008a620
movsxd rdx, dword [rsp + 0xc4]
mov rax, qword [rsp + 0xd8]
mov rcx, qword [rsp + 0xd0]
mov qword [rcx + rdx*8], rax
mov eax, dword [rsp + 0xc4]
mov rcx, qword [rsp + 0xd8]
mov edx, dword [rsp + 0xc0]
inc eax
add rcx, 0x38
cmp eax, edx
mov qword [rsp + 0xd8], rcx
mov dword [rsp + 0xc4], eax
jl 0x180090d27
mov r8, qword [rsp + 0xd0]
mov rax, qword [rsp + 0xb8]
mov r10, qword [rsp + 0xb0]
lea r9, [rsp + 0xc8]
mov rcx, r10
call qword [rax + 0x68]
mov rdx, qword [rsp + 0xb0]
mov rcx, rdi
mov r13d, eax
mov dword [rsp + 0x44], eax
call fcn.18008a9c0
test r13d, r13d
jne 0x180090dcc
cmp dword [rbp + r12*8 + 4], r13d
je 0x180090dcc
mov rax, qword [rsp + 0xc8]
mov qword [rsi + 0x40], rax
inc dword [rdi + 0xac]
jmp 0x180090e40
mov rax, qword [rsi + 0x10]
movsxd rcx, dword [rbp + r12*8 + 4]
shl rcx, 5
mov rcx, qword [rcx + rax + 8]
mov rax, qword [rcx + 8]
mov ecx, dword [rax + 0x3c]
mov qword [r14], rcx
jmp case.0x18008abb5.17
mov rdx, qword [rbp + r12*8 + 0x10]
test rdx, rdx
jne 0x180090e03
mov rdx, qword [rdi + 0x130]
mov qword [rsp + 0xb0], rdx
test rdx, rdx
je case.0x18008abb5.17
cmp qword [rsi + 0xb8], 0
je case.0x18008abb5.17
mov rcx, rdi
call fcn.18008a100
mov rcx, qword [rsi + 0xc0]
mov rdx, rax
mov rbx, rax
call qword [rsi + 0xb8]
mov rdx, rbx
mov rcx, rsi
call fcn.1800645a0
mov r8d, 4
mov ecx, dword [rsp + 0x40]
inc ecx
mov dword [rsp + 0x40], ecx
test r13d, r13d
jne 0x18008b2fd
mov rax, qword [rsp + 0xa0]
jmp 0x18008ab12
mov r13d, 9
jmp 0x18008b2fd
mov eax, dword [rbp + r12*8 + 4]
mov ebx, dword [rsp + 0x40]
mov dword [rdi + 0x90], eax
movzx eax, byte [rbp + r12*8 + 8]
mov dword [rdi + 0x8c], ebx
mov byte [rdi + 0x60], al
mov r9, qword [rbp + r12*8 + 0x10]
test r9, r9
je 0x180090ed6
lea rcx, [rdi + 0x98]
lea r8, [0x1801287c8]
mov rdx, rsi
call fcn.180064ab0
mov r11, qword [rbp + r12*8 + 0x10]
mov r9, qword [rdi + 0x130]
mov ecx, dword [rbp + r12*8 + 4]
lea rdx, str.abort_at__d_in___s_:__s
mov r8d, ebx
mov qword [rsp + 0x20], r11
call fcn.1800663b0
jmp 0x180090efa
cmp dword [rdi + 0x90], 0
je 0x180090efa
mov r9, qword [rdi + 0x130]
mov ecx, dword [rbp + r12*8 + 4]
lea rdx, str.constraint_failed_at__d_in___s_
mov r8d, ebx
call fcn.1800663b0
mov rcx, rdi
call fcn.180086780
cmp eax, 5
je 0x1800910c9
cmp dword [rdi + 0x90], 0
mov ebx, 0x65
mov eax, 1
cmovne ebx, eax
jmp 0x18008b356
mov eax, dword [rdi + 0x88]
mov rcx, qword [rsp + 0x50]
add eax, 2
or eax, 1
mov dword [rdi + 0x88], eax
movsxd rdx, dword [rbp + r12*8 + 4]
mov dword [rsp + 0xb8], r15d
imul rdx, rdx, 0x38
add rdx, rcx
mov qword [rdi + 0x48], rdx
mov qword [rsp + 0xb0], rdx
cmp dword [rbp + r12*8 + 8], 0
jle 0x180090fbc
nop word [rax + rax]
movsxd rcx, r15d
imul rcx, rcx, 0x38
add rcx, rdx
call fcn.180082e30
movsxd rcx, dword [rsp + 0xb8]
imul rcx, rcx, 0x38
add rcx, qword [rsp + 0xb0]
call fcn.18008a620
mov r15d, dword [rsp + 0xb8]
inc r15d
mov dword [rsp + 0xb8], r15d
cmp r15d, dword [rbp + r12*8 + 8]
jge 0x180090fbc
mov rdx, qword [rsp + 0xb0]
jmp 0x180090f70
mov rsi, qword [rsp + 0x68]
cmp byte [rsi + 0x2a], 0
jne 0x18008b2dd
mov eax, dword [rsp + 0x40]
mov ebx, 0x64
inc eax
mov dword [rdi + 0x8c], eax
jmp 0x18008b356
movzx eax, word [rsp + 0xf4]
mov ecx, 0x2460
test cx, ax
je 0x18009107c
mov ecx, 0x2000
test cx, ax
je 0x180091025
mov rdx, qword [rsp + 0xd0]
lea rcx, [rsp + 0xd0]
call fcn.180082f70
lea rcx, [rsp + 0xd0]
call fcn.1800830f0
jmp 0x18009107c
mov ecx, 0x400
test cx, ax
je 0x180091050
mov rax, qword [rsp + 0xf8]
test rax, rax
je 0x180091050
mov rcx, qword [rsp + 0xe8]
call rax
mov qword [rsp + 0xf8], r15
jmp 0x18009107c
movzx eax, byte [rsp + 0xf4]
test al, 0x20
je 0x18009106b
mov rcx, qword [rsp + 0xd0]
call fcn.18006c6d0
jmp 0x18009107c
test al, 0x40
je 0x18009107c
lea rcx, [rsp + 0xd0]
call fcn.180083370
mov rdx, qword [rsp + 0x100]
mov rcx, qword [rsp + 0xe0]
call fcn.1800645a0
mov qword [rsp + 0xe8], r15
mov qword [rsp + 0x100], r15
mov qword [rsp + 0xf8], r15
jmp 0x18008b2dd
mov r13d, 0x14
jmp 0x1800911f2
mov eax, dword [rsp + 0x40]
mov dword [rdi + 0x8c], eax
mov byte [r12 + 0x28], 0
mov eax, 5
mov ebx, eax
mov dword [rdi + 0x90], eax
jmp 0x18008b356
lea rcx, [rdi + 0x98]
lea r8, str.foreign_key_constraint_failed
mov dword [rdi + 0x90], 0x13
mov byte [rdi + 0x60], 2
call fcn.180064ab0
mov ebx, r12d
jmp 0x18008b356
test ecx, ecx
je 0x180091137
mov rcx, rsi
call fcn.1800d50b0
mov byte [rsi + 0x28], 1
mov rcx, rsi
call fcn.1800d4b50
cmp dword [rdi + 0x90], 0
mov ebx, 0x65
mov eax, 1
cmove eax, ebx
mov ebx, eax
jmp 0x18008b356
mov rdx, qword [rdi]
cmp qword [rdx + 0x320], 0
jle 0x18009116a
lea rcx, [rdi + 0x98]
lea r8, str.foreign_key_constraint_failed
mov dword [rdi + 0x90], 0x13
mov byte [rdi + 0x60], 2
call fcn.180064ab0
jmp 0x18008b356
movzx eax, byte [rsp + 0xb0]
mov rcx, rdi
mov byte [rsi + 0x28], al
call fcn.180086780
cmp eax, 5
jne 0x180091114
mov eax, dword [rsp + 0x40]
sub bl, byte [rsp + 0xb0]
mov dword [rdi + 0x8c], eax
mov eax, 5
mov byte [rsi + 0x28], bl
mov ebx, eax
mov dword [rdi + 0x90], eax
jmp 0x18008b356
mov eax, dword [rsp + 0x40]
mov dword [rdi + 0x8c], eax
mov eax, 5
mov ebx, eax
mov dword [rdi + 0x90], eax
jmp 0x18008b356
lea r9, [0x180138514]
lea rdx, str.database_corruption_at_line__d_of___.10s_
mov r8d, 0xf432
mov ecx, 0xb
call fcn.1800663b0
mov r13d, 0xb
jmp 0x1800911f2
mov rdi, qword [rsp + 0x58]
mov rsi, r12
cmp byte [rsi + 0x2a], 0
je 0x180091200
mov r13d, 7
jmp 0x18009120d
cmp r13d, 0xc0a
je 0x18008b2fd
mov ecx, r13d
call fcn.1800d51b0
mov r9, rax
lea rcx, [rdi + 0x98]
lea r8, [0x1801287c8]
mov rdx, rsi
call fcn.180064ab0
jmp 0x18008b2fd
mov rsi, qword [rsp + 0x68]
jmp 0x18009123f
mov rdi, qword [rsp + 0x58]
lea rcx, [rdi + 0x98]
lea r8, str.string_or_blob_too_big
mov rdx, rsi
call fcn.180064ab0
mov r13d, 0x12
jmp 0x18008b2fd
mov r13d, 9
lea r9, str.unknown_error
mov dword [rdi + 0x90], r13d
mov rax, qword [str.interrupted]
test rax, rax
cmovne r9, rax
jmp 0x180091218
mov rsi, qword [rsp + 0x68]
jmp 0x18008b2dd