Function at 0x1800387dc
Capabilities:
Reference sql statements

Disassembly:
mov rax, rsp
mov qword [rax + 8], rcx
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x388]
sub rsp, 0x448
mov r13, qword [rcx + 8]
mov r12, rcx
xor ecx, ecx
movaps xmmword [rax - 0x58], xmm6
movaps xmmword [rax - 0x68], xmm7
mov sil, cl
mov dword [rbp + 0x3a8], ecx
mov r14d, ecx
mov r15, qword [r12]
mov rbx, qword [r12 + 0x10]
mov byte [rbp + 0x398], cl
mov dword [rbp - 0x44], ecx
mov al, byte [r15 + 0x4e]
mov rdi, qword [r15 + 0x30]
mov dword [rsp + 0x40], ecx
mov dword [rbp - 0x7c], ecx
mov qword [rsp + 0x50], rcx
mov qword [rbp + 0x38], rcx
mov rcx, r12
mov byte [rbp + 0x3a0], al
mov qword [rsp + 0x48], rdi
mov qword [rsp + 0x70], r13
mov qword [rsp + 0x58], r15
mov qword [rsp + 0x60], rbx
call fcn.1800347b0
cmp dword [r12 + 0x84], 7
mov ecx, 1
je 0x18003dad9
xor r8d, r8d
mov dword [r12 + 0x84], r8d
mov qword [r12 + 0xc0], r8
mov qword [r12 + 0x28], r8
mov eax, dword [r15 + 0x140]
mov dword [r15 + 0x2b0], r8d
test eax, eax
jne 0x18003da6b
cmp qword [r15 + 0x188], r8
je 0x1800388d3
mov eax, dword [r12 + 0xb0]
mov r14d, dword [r15 + 0x198]
mov dword [rbp - 0x7c], r14d
test eax, eax
je 0x1800388d0
xor edx, edx
div r14d
mov dword [rbp - 0x7c], edx
mov r14d, r8d
mov r10d, dword [r12 + 0x80]
xorps xmm7, xmm7
mov dword [rsp + 0x44], r10d
mov r10, r8
mov edx, 4
mov r8d, dword [rsp + 0x44]
mov r9d, 8
mov rsi, rdi
mov r11d, 2
xor edi, edi
cmp byte [r15 + 0x51], dil
jne 0x18003dad2
add r14d, ecx
movsxd rbx, r8d
mov dword [rsp + 0x40], r14d
lea r14, [rbx + rbx*2]
test byte [r13 + r14*8 + 2], r11b
je 0x180038965
movsxd rax, dword [r13 + r14*8 + 8]
imul r10, rax, 0x38
mov eax, 0x2460
add r10, qword [rsp + 0x60]
mov qword [rsp + 0x50], r10
test word [r10 + 8], ax
je 0x180038960
mov rcx, r10
call fcn.180032cec
mov r10, qword [rsp + 0x50]
lea ecx, [rdi + 1]
mov r8d, dword [rsp + 0x44]
lea edx, [rdi + 4]
lea r11d, [rdi + 2]
lea r9d, [rdi + 8]
mov word [r10 + 8], dx
movzx edi, byte [r13 + r14*8]
cmp edi, 0x4d
ja 0x18003b472
je 0x18003b455
cmp edi, 0x27
ja 0x180039de8
je 0x180039dc7
cmp edi, 0x14
ja 0x18003984b
je 0x1800397f4
cmp edi, 0xa
ja 0x1800392d5
je 0x1800391b6
sub edi, 1
je 0x180039028
sub edi, 1
je 0x180038cf5
sub edi, 1
je 0x180038c6a
sub edi, 1
je 0x180038a8e
sub edi, 1
je 0x180038a2e
sub edi, 1
je 0x1800389f4
sub edi, 1
je 0x1800389f4
sub edi, 1
je 0x180038a08
cmp edi, 1
je 0x180038a08
mov ecx, dword [rbp + 0x3a8]
mov esi, 1
jmp 0x180038c43
movsxd rcx, dword [r13 + r14*8 + 4]
xor edi, edi
mov rax, qword [r12 + 0x60]
cmp qword [rax + rcx*8], rdi
je 0x1800389e4
jmp 0x180038a0a
xor edi, edi
movsxd rcx, dword [r13 + r14*8 + 4]
lea rdx, [rbp - 0x68]
mov rax, qword [r12 + 0x60]
mov rbx, qword [rax + rcx*8]
mov eax, dword [r13 + r14*8 + 0xc]
mov dword [rbp - 0x68], eax
mov rcx, qword [rbx]
call qword [r13 + r14*8 + 0x10]
jmp 0x180038a50
movsxd rcx, dword [r13 + r14*8 + 4]
lea r8, [rbp - 0x68]
mov rax, qword [r12 + 0x60]
xor edi, edi
mov rbx, qword [rax + rcx*8]
mov rcx, r15
mov rdx, rbx
mov dword [rbp - 0x68], edi
call fcn.18003fa18
mov dword [rbp + 0x3a8], eax
mov dword [rbx + 0x50], edi
cmp dword [rbp - 0x68], edi
jne 0x180038a85
mov byte [rbx + 0x25], dil
mov ebx, 1
mov ecx, dword [r13 + r14*8 + 8]
movzx eax, byte [r13 + r14*8 + 3]
sub ecx, ebx
mov dword [rsp + 0x44], ecx
add dword [r12 + rax*4 + 0xa0], ebx
jmp 0x18003d4bb
mov byte [rbx + 0x25], 1
jmp 0x18003d4bb
mov edx, dword [r13 + r14*8 + 8]
xor edi, edi
test edx, edx
je 0x180038aa7
test dword [r15 + 0x2c], 0x2000000
jne 0x18003d6fc
movsxd rcx, dword [r13 + r14*8 + 4]
mov rax, qword [r15 + 0x20]
shl rcx, 5
mov rbx, qword [rcx + rax + 8]
test rbx, rbx
je 0x180038bb1
mov rcx, rbx
call fcn.18002a7e0
mov ecx, 5
mov dword [rbp + 0x3a8], eax
cmp eax, ecx
je 0x18003d707
test eax, eax
jne 0x18003d989
cmp dword [r13 + r14*8 + 8], edi
je 0x180038b86
lea eax, [rcx + 0x7b]
test byte [r12 + 0x8c], al
je 0x180038b86
cmp byte [r15 + 0x4f], dil
je 0x180038b11
cmp dword [r15 + 0xa8], 1
jle 0x180038b86
mov r8d, dword [r12 + 0x9c]
test r8d, r8d
jne 0x180038b3b
inc dword [r15 + 0x308]
mov r8d, dword [r15 + 0x304]
add r8d, dword [r15 + 0x308]
mov dword [r12 + 0x9c], r8d
dec r8d
xor edx, edx
mov rcx, r15
call fcn.1800673b4
mov dword [rbp + 0x3a8], eax
test eax, eax
jne 0x180038b68
mov edx, dword [r12 + 0x9c]
mov rcx, rbx
call fcn.18002bc34
mov dword [rbp + 0x3a8], eax
mov rax, qword [r15 + 0x310]
mov qword [r12 + 0xd0], rax
mov rax, qword [r15 + 0x318]
mov qword [r12 + 0xd8], rax
lea r8, [rbp - 0x48]
mov edx, 1
mov rcx, rbx
call fcn.180030d18
mov rax, qword [r15 + 0x20]
movsxd rcx, dword [r13 + r14*8 + 4]
shl rcx, 5
mov rcx, qword [rcx + rax + 0x18]
mov eax, dword [rbp - 0x48]
mov edx, dword [rcx + 4]
jmp 0x180038bb8
mov eax, edi
mov edx, edi
mov dword [rbp - 0x48], eax
cmp byte [r13 + r14*8 + 3], dil
je 0x180038cea
cmp eax, dword [r13 + r14*8 + 0xc]
jne 0x180038bd5
cmp edx, dword [r13 + r14*8 + 0x10]
je 0x180038cea
mov rdx, qword [r12 + 0x48]
mov rcx, r15
call fcn.18001acf0
lea rdx, str.database_schema_has_changed
mov rcx, r15
call fcn.18001b0fc
mov qword [r12 + 0x48], rax
mov rax, qword [r15 + 0x20]
movsxd rdx, dword [r13 + r14*8 + 4]
mov rcx, rdx
shl rcx, 5
mov rcx, qword [rcx + rax + 0x18]
mov eax, dword [rbp - 0x48]
cmp dword [rcx], eax
je 0x180038c1a
mov rcx, r15
call fcn.18004a06c
or dword [r12 + 0x8c], 0x20
mov ecx, 0x11
mov dword [rbp + 0x3a8], ecx
mov esi, 1
mov r10, qword [rsp + 0x50]
mov r9d, 8
mov r8d, dword [rsp + 0x44]
mov rdi, qword [rsp + 0x48]
mov r14d, dword [rsp + 0x40]
add r8d, esi
mov dword [rsp + 0x44], r8d
test ecx, ecx
jne 0x18003d922
mov ecx, 1
lea edx, [rcx + 3]
jmp 0x1800388f6
mov edi, dword [r13 + r14*8 + 4]
mov ecx, dword [r13 + r14*8 + 8]
xor r14d, r14d
test edi, edi
je 0x180038ca3
mov al, byte [r15 + 0x4f]
test al, al
jne 0x180038ca3
test ecx, ecx
jne 0x180038ca7
cmp dword [r15 + 0xac], r14d
jle 0x180038ca7
mov dword [rbp + 0x3a8], 5
lea r8, str.cannot_commit_transaction___SQL_statements_in_progress
jmp 0x180038cdd
mov al, byte [r15 + 0x4f]
movzx eax, al
cmp edi, eax
jne 0x18003d718
test ecx, ecx
mov dword [rbp + 0x3a8], 1
lea rax, str.cannot_rollback___no_transaction_is_active
lea r8, str.cannot_commit___no_transaction_is_active
cmovne r8, rax
test edi, edi
lea rax, str.cannot_start_a_transaction_within_a_transaction
cmove r8, rax
lea rcx, [r12 + 0x48]
mov rdx, r15
call fcn.18001b1b8
mov ecx, dword [rbp + 0x3a8]
jmp 0x180038c2e
mov r13d, dword [r13 + r14*8 + 4]
mov rsi, qword [rsp + 0x70]
mov rsi, qword [rsi + r14*8 + 0x10]
xor r14d, r14d
test r13d, r13d
jne 0x180038ddb
cmp dword [r15 + 0xac], r14d
jg 0x18003d77c
mov rbx, rsi
test rsi, rsi
jne 0x180038d2a
mov ebx, r14d
jmp 0x180038d3f
cmp byte [rsi], r14b
je 0x180038d37
inc rbx
cmp byte [rbx], r14b
jne 0x180038d2f
sub ebx, esi
and ebx, 0x3fffffff
mov r8d, dword [r15 + 0x308]
xor edx, edx
add r8d, dword [r15 + 0x304]
mov rcx, r15
call fcn.1800673b4
mov dword [rbp + 0x3a8], eax
mov r13d, eax
test eax, eax
jne 0x18003d993
mov edx, ebx
mov rcx, r15
add rdx, 0x21
call fcn.18001af60
mov rdi, rax
test rax, rax
je 0x180038dd1
lea rcx, [rax + 0x20]
mov rdx, rsi
lea r8d, [rbx + 1]
mov qword [rax], rcx
call fcn.1800aaec0
cmp byte [r15 + 0x4f], r14b
je 0x180038da2
mov byte [r15 + 0x4f], r14b
mov byte [r15 + 0x56], 1
jmp 0x180038da9
inc dword [r15 + 0x304]
mov rax, qword [r15 + 0x2f8]
mov qword [rdi + 0x18], rax
mov rax, qword [r15 + 0x310]
mov qword [r15 + 0x2f8], rdi
mov qword [rdi + 8], rax
mov rax, qword [r15 + 0x318]
mov qword [rdi + 0x10], rax
mov r13, qword [rsp + 0x70]
jmp 0x180038cea
mov edi, r14d
xor ebx, ebx
mov r14, qword [r15 + 0x2f8]
test r14, r14
je 0x18003d7d2
mov rcx, qword [r14]
mov rdx, rsi
call fcn.18001cfb0
test eax, eax
je 0x180038e07
mov r14, qword [r14 + 0x18]
inc edi
jmp 0x180038de7
mov ecx, 1
cmp dword [r15 + 0xac], ebx
jle 0x180038e1e
cmp r13d, ecx
je 0x18003d7a2
lea rsi, [r14 + 0x18]
mov qword [rbp - 0x78], rsi
cmp qword [rsi], rbx
jne 0x180038e8c
cmp byte [r15 + 0x56], bl
je 0x180038e8c
mov r12d, ecx
cmp r13d, ecx
jne 0x180038e8f
mov r15, qword [rbp + 0x390]
mov edx, ecx
mov rcx, r15
call fcn.1800359cc
mov ebx, eax
test eax, eax
jne 0x18003db01
mov rbx, qword [rsp + 0x58]
mov rcx, r15
mov byte [rbx + 0x4f], 1
call fcn.180035a28
mov ecx, 5
cmp eax, ecx
je 0x18003d7ab
xor eax, eax
mov byte [rbx + 0x56], al
mov edx, dword [r15 + 0x84]
mov r15, rbx
mov dword [rbp + 0x3a8], edx
jmp 0x180038fa5
mov r12d, ebx
mov edx, dword [r15 + 0x304]
mov r8d, 2
mov eax, dword [r15 + 0x28]
sub edx, edi
sub edx, ecx
mov dword [rsp + 0x68], edx
cmp r13d, r8d
jne 0x180038f09
mov r15d, dword [r15 + 0x2c]
mov esi, ebx
shr r15d, 1
and r15d, ecx
test eax, eax
jle 0x180038f03
mov edi, r15d
xor edi, ecx
mov rcx, qword [rsp + 0x58]
mov r8d, edi
mov edx, 0x204
mov rcx, qword [rcx + 0x20]
mov rcx, qword [rcx + rbx + 8]
call fcn.18002ba18
mov dword [rbp + 0x3a8], eax
test eax, eax
jne 0x18003d97d
mov rax, qword [rsp + 0x58]
inc esi
add rbx, 0x20
mov eax, dword [rax + 0x28]
cmp esi, eax
jl 0x180038ec2
mov edx, dword [rsp + 0x68]
xor ebx, ebx
mov rsi, qword [rbp - 0x78]
jmp 0x180038f0c
mov r15d, ebx
mov edi, ebx
test eax, eax
jle 0x180038f4d
mov rax, qword [rsp + 0x58]
mov rcx, qword [rax + 0x20]
mov r8d, edx
mov edx, r13d
mov rcx, qword [rcx + rbx + 8]
call fcn.18002bc94
mov dword [rbp + 0x3a8], eax
test eax, eax
jne 0x18003d97d
mov rax, qword [rsp + 0x58]
inc edi
mov edx, dword [rsp + 0x68]
add rbx, 0x20
cmp edi, dword [rax + 0x28]
jl 0x180038f17
test r15d, r15d
mov r15, qword [rsp + 0x58]
je 0x180038f7e
mov rax, qword [r15 + 8]
jmp 0x180038f68
or dword [rax + 0x8c], 0x20
mov rax, qword [rax + 0x58]
test rax, rax
jne 0x180038f5d
mov rcx, r15
call fcn.18004a0b0
mov eax, 2
or dword [r15 + 0x2c], eax
mov edi, dword [rsp + 0x68]
jmp 0x180038fa5
mov rdx, qword [r15 + 0x2f8]
mov rcx, r15
mov rax, qword [rdx + 0x18]
mov qword [r15 + 0x2f8], rax
call fcn.18001acf0
dec dword [r15 + 0x304]
cmp qword [r15 + 0x2f8], r14
jne 0x180038f84
cmp r13d, 1
jne 0x180038fde
mov rax, qword [rsi]
mov rdx, r14
mov rcx, r15
mov qword [r15 + 0x2f8], rax
call fcn.18001acf0
xor r14d, r14d
test r12d, r12d
jne 0x18003cf86
dec dword [r15 + 0x304]
jmp 0x180039000
mov rax, qword [r14 + 8]
mov qword [r15 + 0x310], rax
mov rax, qword [r14 + 0x10]
xor r14d, r14d
mov qword [r15 + 0x318], rax
test r12d, r12d
jne 0x18003cf86
mov r8d, edi
mov edx, r13d
mov rcx, r15
call fcn.1800673b4
mov r12, qword [rbp + 0x390]
mov dword [rbp + 0x3a8], eax
test eax, eax
jne 0x18003d98c
jmp 0x180038dd1
movsxd rax, dword [r13 + r14*8 + 0xc]
xor r8d, r8d
mov r15, qword [rbp + 0x390]
mov edi, r8d
movzx r12d, byte [r13 + r14*8 + 3]
imul rcx, rax, 0x38
movsxd rax, dword [r13 + r14*8 + 8]
add rcx, qword [rsp + 0x60]
mov r15, qword [r15 + 0x18]
imul rbx, rax, 0x38
mov qword [rbp + 0x60], rcx
add rbx, qword [rsp + 0x60]
test r12d, r12d
je 0x18003909b
mov eax, 0x1000
mov qword [r15 + rdi*8], rbx
test word [rbx + 8], ax
je 0x18003908b
mov rcx, rbx
call fcn.180032a14
xor r8d, r8d
test eax, eax
jne 0x18003dab3
mov eax, 0x1000
inc rdi
add rbx, 0x38
cmp rdi, r12
jl 0x180039069
mov rcx, qword [rbp + 0x60]
mov rax, qword [r13 + r14*8 + 0x10]
mov edx, 0xbe01
mov ebx, dword [rsp + 0x44]
mov qword [rbp + 0x68], rax
mov rax, qword [rbp + 0x390]
mov qword [rbp + 0x78], rax
mov dword [rbp + 0x80], ebx
movzx eax, word [rcx + 8]
and ax, dx
mov edx, r12d
or ax, 1
mov word [rcx + 8], ax
mov rax, qword [rsp + 0x58]
mov rcx, qword [rsp + 0x48]
mov byte [rbp + 0x89], r8b
mov r8, r15
mov qword [rax + 0x30], rcx
lea rcx, [rbp + 0x60]
mov rax, qword [rbp + 0x68]
call qword [rax + 0x18]
mov r15, qword [rsp + 0x58]
xor eax, eax
mov rdi, qword [r15 + 0x30]
mov qword [rsp + 0x48], rdi
cmp byte [rbp + 0x89], al
je 0x180039162
cmp dword [rbp + 0x84], eax
je 0x18003914a
mov rcx, qword [rbp + 0x60]
mov dl, 1
call fcn.180033818
mov r12, qword [rbp + 0x390]
lea r8, [0x1800ffdc4]
mov r9, rax
mov rdx, r15
lea rcx, [r12 + 0x48]
call fcn.18001b1b8
mov eax, dword [rbp + 0x84]
mov dword [rbp + 0x3a8], eax
jmp 0x180039151
mov r12, qword [rbp + 0x390]
mov r8d, dword [r13 + r14*8 + 4]
mov edx, ebx
mov rcx, r12
call fcn.18003604c
jmp 0x180039169
mov r12, qword [rbp + 0x390]
mov rcx, qword [rbp + 0x60]
mov eax, 2
test byte [rcx + 8], al
je 0x18003918d
mov al, byte [rbp + 0x3a0]
cmp byte [rcx + 0xa], al
je 0x18003918d
mov dl, al
call fcn.18001c8c8
mov rcx, qword [rbp + 0x60]
call fcn.180033270
test eax, eax
jne 0x18003da3d
mov ecx, dword [rbp + 0x3a8]
lea esi, [rax + 1]
mov r8d, ebx
mov r10, qword [rsp + 0x50]
mov r9d, 8
jmp 0x180038c48
movsxd rax, dword [r13 + r14*8 + 8]
xor r8d, r8d
mov rsi, qword [rsp + 0x60]
movzx edi, byte [r13 + r14*8 + 3]
mov rbx, qword [r12 + 0x18]
imul rcx, rax, 0x38
mov eax, r8d
add rcx, rsi
test edi, edi
je 0x1800391ec
mov qword [rbx + rax*8], rcx
add rcx, 0x38
inc rax
cmp rax, rdi
jl 0x1800391dc
mov rax, qword [r13 + r14*8 + 0x10]
mov rdx, r15
mov qword [rbp + 0xc0], rax
movsxd rax, dword [r13 + r14*8 + 0xc]
imul rcx, rax, 0x38
mov eax, 1
add rcx, rsi
mov r8d, eax
mov qword [rbp + 0xc8], rcx
add dword [rcx + 0xc], eax
lea rcx, [rbp + 0x1d0]
call fcn.180033078
xor ecx, ecx
mov qword [rbp + 0xd0], r12
lea rax, [rbp + 0x1d0]
mov dword [rbp + 0xdc], ecx
mov qword [rbp + 0xb8], rax
mov r8, rbx
mov eax, dword [rsp + 0x44]
mov edx, edi
mov dword [rbp + 0xd8], eax
mov rax, qword [rbp + 0xc0]
mov byte [rbp + 0xe0], cl
lea rcx, [rbp + 0xb8]
call qword [rax + 0x20]
xor edi, edi
cmp dword [rbp + 0xdc], edi
je 0x1800392a1
lea rcx, [rbp + 0x1d0]
call fcn.180037550
mov r9, rax
lea rcx, [r12 + 0x48]
lea r8, [0x1800ffdc4]
mov rdx, r15
call fcn.18001b1b8
mov eax, dword [rbp + 0xdc]
mov dword [rbp + 0x3a8], eax
cmp byte [rbp + 0xe0], dil
je 0x1800392c4
movsxd rax, dword [r13 + r14*8 - 0x14]
test eax, eax
je 0x1800392c4
imul rcx, rax, 0x38
mov edx, 1
add rcx, rsi
call fcn.18003312c
lea rcx, [rbp + 0x1d0]
call fcn.180032d94
jmp 0x180038cea
sub edi, 0xb
je 0x18003977c
sub edi, 1
je 0x180039627
sub edi, 1
je 0x18003960d
sub edi, 1
je 0x18003950e
sub edi, 1
je 0x1800393f4
sub edi, 1
je 0x18003ce22
sub edi, 1
je 0x1800393d2
sub edi, 1
je 0x1800393a5
cmp edi, 1
jne 0x1800389e4
movsxd rax, dword [r13 + r14*8 + 4]
mov r8d, 0x2460
imul rbx, rax, 0x38
movsxd rax, dword [r13 + r14*8 + 8]
add rbx, qword [rsp + 0x60]
imul rax, rax, 0x38
add rax, qword [rsp + 0x60]
mov qword [rsp + 0x50], rax
test word [rax + 8], r8w
je 0x180039368
mov rcx, rax
call fcn.180032cec
mov rax, qword [rsp + 0x50]
lea edx, [rdi + 3]
mov ecx, edi
jmp 0x18003936c
mov word [rax + 8], cx
test byte [rbx + 8], cl
jne 0x180038cea
mov rcx, rbx
mov word [rax + 8], dx
call fcn.180032db4
xor r8d, r8d
test rax, rax
mov ecx, r8d
sete cl
mov r10, qword [rsp + 0x50]
mov qword [r10], rcx
mov ecx, dword [rbp + 0x3a8]
mov esi, 1
jmp 0x180038c38
movsxd rax, dword [r13 + r14*8 + 4]
imul rcx, rax, 0x38
mov eax, 0x80
add rcx, qword [rsp + 0x60]
mov esi, dword [rcx]
mov word [rcx + 8], ax
mov dword [rsp + 0x44], esi
mov ecx, dword [rbp + 0x3a8]
mov esi, 1
jmp 0x180038c3e
movsxd rax, dword [r13 + r14*8 + 4]
imul rcx, rax, 0x38
add rcx, qword [rsp + 0x60]
mov word [rcx + 8], dx
mov qword [rcx], rbx
mov ecx, dword [r13 + r14*8 + 8]
dec ecx
mov dword [rsp + 0x44], ecx
jmp 0x1800393c2
mov rax, qword [r13 + r14*8 + 0x10]
xor ecx, ecx
movsxd rdx, dword [r13 + r14*8 + 8]
mov rbx, qword [rax + 0x10]
mov r10, qword [rbx]
cmp qword [r10 + 0x68], rcx
je 0x18003d6dd
movsxd rax, dword [r13 + r14*8 + 0xc]
mov dil, byte [r15 + 0x55]
mov r8, qword [r12 + 0x18]
imul rcx, rax, 0x38
xor eax, eax
add rcx, qword [rsp + 0x60]
test edx, edx
jle 0x18003943e
mov qword [r8 + rax*8], rcx
add rcx, 0x38
inc rax
cmp rax, rdx
jl 0x18003942e
mov al, byte [r13 + r14*8 + 3]
lea r9, [rbp + 0x90]
mov rcx, rbx
mov byte [r15 + 0x55], al
call qword [r10 + 0x68]
mov rdx, rbx
mov byte [r15 + 0x55], dil
mov rcx, r12
mov dword [rbp + 0x3a8], eax
call fcn.180037364
mov ecx, dword [rbp + 0x3a8]
xor r8d, r8d
test ecx, ecx
jne 0x180039490
cmp dword [r13 + r14*8 + 4], r8d
je 0x1800394fa
mov rdi, qword [rbp + 0x90]
mov qword [rsp + 0x48], rdi
mov qword [r15 + 0x30], rdi
jmp 0x1800394ff
mov qword [rsp + 0x48], rsi
mov rdi, rsi
cmp cl, 0x13
jne 0x1800394ff
mov rax, qword [r13 + r14*8 + 0x10]
mov qword [rsp + 0x48], rsi
cmp byte [rax + 0x1c], r8b
je 0x1800394ff
movzx ecx, byte [r13 + r14*8 + 3]
mov r11d, 4
cmp cl, r11b
jne 0x1800394c9
mov ecx, r8d
mov dword [rbp + 0x3a8], ecx
jmp 0x1800394e6
cmp cl, 5
mov eax, ecx
mov ecx, dword [rbp + 0x3a8]
mov r8d, 2
cmove eax, r8d
mov byte [r12 + 0x8a], al
mov qword [rsp + 0x48], rsi
mov esi, 1
mov r8d, dword [rsp + 0x44]
jmp 0x1800391a6
mov rdi, qword [rsp + 0x48]
mov esi, 1
add dword [r12 + 0x90], esi
jmp 0x1800394f0
movsxd rax, dword [r13 + r14*8 + 0xc]
movsxd rcx, dword [r13 + r14*8 + 4]
imul rdx, rax, 0x38
mov rax, qword [r12 + 0x60]
add rdx, qword [rsp + 0x60]
mov r13, qword [rax + rcx*8]
xor ecx, ecx
mov rax, qword [rbp + 0x390]
lea r10, [rdx + 0x38]
movsxd r9, dword [r10]
mov r12d, dword [rdx]
mov edx, ecx
mov rbx, qword [r13 + 0x30]
mov rdi, qword [rax + 0x18]
mov qword [rbp + 0x3a8], r13
mov r15, qword [rbx]
mov rsi, qword [r15]
test r9d, r9d
jle 0x180039587
lea r13d, [rcx + 1]
mov r8d, r13d
movsxd rax, r8d
add r8d, r13d
imul rcx, rax, 0x38
add rcx, r10
mov qword [rdi + rdx*8], rcx
add rdx, r13
cmp rdx, r9
jl 0x180039560
mov r13, qword [rbp + 0x3a8]
mov rax, qword [rbp + 0x390]
and dword [rax + 0x8c], 0xfffffff7
mov r11d, 4
or dword [rax + 0x8c], r11d
mov edx, r12d
mov qword [rsp + 0x20], rdi
mov rcx, rbx
mov rdi, qword [rsp + 0x70]
mov r8, qword [rdi + r14*8 + 0x10]
call qword [rsi + 0x40]
mov r12, qword [rbp + 0x390]
mov rdx, r15
mov rcx, r12
mov dword [rbp + 0x3a8], eax
and dword [r12 + 0x8c], 0xfffffff3
call fcn.180037364
mov ecx, dword [rbp + 0x3a8]
xor r15d, r15d
test ecx, ecx
jne 0x1800395fc
mov rcx, rbx
call qword [rsi + 0x50]
test eax, eax
je 0x1800395f6
mov ecx, dword [rdi + r14*8 + 8]
dec ecx
mov dword [rsp + 0x44], ecx
mov ecx, dword [rbp + 0x3a8]
mov byte [r13 + 0x25], r15b
mov r13, rdi
mov r15, qword [rsp + 0x58]
jmp 0x180038c2e
lea rcx, [r12 + 0x48]
mov rdx, r15
call fcn.1800664d0
mov ecx, eax
mov dword [rbp + 0x3a8], eax
jmp 0x180038c2e
movsxd rcx, dword [r13 + r14*8 + 4]
mov rax, qword [r15 + 0x20]
mov ebx, dword [r13 + r14*8 + 0xc]
shl rcx, 5
mov r15, qword [rcx + rax + 8]
mov rcx, r15
call fcn.180030fe8
mov rcx, rax
mov rsi, rax
call fcn.180025f00
cmp ebx, 0xffffffff
mov rcx, rsi
mov edi, eax
cmove ebx, eax
call fcn.180025f08
test eax, eax
mov edx, 1
mov rcx, rsi
cmove ebx, edi
call fcn.180025df0
cmp ebx, 5
jne 0x180039698
mov rcx, rax
call fcn.18001ce20
test eax, eax
je 0x180039713
mov rcx, rsi
call fcn.180025f28
xor ecx, ecx
test eax, eax
jne 0x18003969a
jmp 0x180039713
xor ecx, ecx
cmp ebx, edi
je 0x180039715
cmp edi, 5
je 0x1800396a8
cmp ebx, 5
jne 0x180039715
mov rax, qword [rsp + 0x58]
cmp byte [rax + 0x4f], cl
je 0x18003d7fc
cmp dword [rax + 0xa8], 1
jg 0x18003d7fc
cmp edi, 5
jne 0x1800396de
mov rcx, rsi
call fcn.180026040
mov dword [rbp + 0x3a8], eax
test eax, eax
jne 0x180039713
mov edx, ebx
jmp 0x1800396ed
mov r11d, 4
cmp edi, r11d
jne 0x1800396f5
lea edx, [r11 - 2]
mov rcx, rsi
call fcn.180025e0c
xor eax, eax
mov rcx, r15
mov edx, eax
cmp ebx, 5
sete dl
inc edx
call fcn.180031e7c
mov dword [rbp + 0x3a8], eax
test eax, eax
je 0x180039715
mov ebx, edi
mov edx, ebx
mov rcx, rsi
call fcn.180025e0c
movsxd rcx, dword [r13 + r14*8 + 8]
imul rbx, rcx, 0x38
mov ecx, 0xa02
add rbx, qword [rsp + 0x60]
mov qword [rsp + 0x50], rbx
mov word [rbx + 8], cx
mov ecx, eax
call fcn.1800581ac
mov rcx, rax
mov qword [rbx + 0x10], rax
call fcn.18001ce20
movzx edx, byte [rbp + 0x3a0]
mov rcx, rbx
mov dword [rbx + 0xc], eax
mov byte [rbx + 0xa], 1
call fcn.1800328ac
mov ecx, dword [rbp + 0x3a8]
mov r10, rbx
mov r15, qword [rsp + 0x58]
mov esi, 1
jmp 0x180038c38
mov r8d, dword [r13 + r14*8 + 8]
lea rax, [rbp + 0x18]
mov edx, dword [r13 + r14*8 + 4]
lea r9, [rbp + 0x14]
or dword [rbp + 0x18], 0xffffffff
xor edi, edi
or dword [rbp + 0x14], 0xffffffff
mov rcx, r15
mov dword [rbp + 0x10], edi
mov qword [rsp + 0x20], rax
call fcn.180073d44
mov dword [rbp + 0x3a8], eax
cmp eax, 5
jne 0x1800397c0
mov dword [rbp + 0x3a8], edi
mov dword [rbp + 0x10], 1
movsxd rax, dword [r13 + r14*8 + 0xc]
imul rbx, rax, 0x38
add rbx, qword [rsp + 0x60]
movsxd rdx, dword [rbp + rdi*4 + 0x10]
mov rcx, rbx
call fcn.18003312c
inc rdi
add rbx, 0x38
cmp rdi, 3
jl 0x1800397ce
mov r12, qword [rbp + 0x390]
jmp 0x180038cea
movsxd rax, dword [r13 + r14*8 + 4]
mov esi, 1
mov rdi, qword [rsp + 0x48]
imul r10, rax, 0x38
mov eax, dword [r13 + r14*8 + 0xc]
add r10, qword [rsp + 0x60]
sub eax, ecx
cdqe
mov qword [rsp + 0x50], r10
mov qword [r10], rax
mov word [r10 + 8], dx
mov eax, dword [r13 + r14*8 + 8]
mov r14d, dword [rsp + 0x40]
test eax, eax
je 0x18003c974
lea ecx, [rax - 1]
mov dword [rsp + 0x44], ecx
mov ecx, dword [rbp + 0x3a8]
mov r8d, dword [rsp + 0x44]
jmp 0x180038c4d
cmp edi, 0x1e
ja 0x180039a9f
je 0x180039a6f
sub edi, 0x15
je 0x180039a41
sub edi, 1
je 0x180039a25
sub edi, 1
je 0x180039952
sub edi, 1
je 0x180039977
sub edi, 1
je 0x180039945
sub edi, 1
je 0x18003cb1b
sub edi, 1
je 0x18003c033
mov esi, 1
sub edi, 1
je 0x1800398d9
cmp edi, esi
mov rdi, qword [rsp + 0x48]
jne 0x1800398ce
movsxd rax, dword [r13 + r14*8 + 4]
imul r10, rax, 0x38
mov eax, 0xff7f
add r10, qword [rsp + 0x60]
mov qword [rsp + 0x50], r10
and word [r10 + 8], ax
or word [r10 + 8], cx
mov ecx, dword [rbp + 0x3a8]
jmp 0x180038c48
mov eax, dword [r13 + r14*8 + 4]
mov ebx, dword [r13 + r14*8 + 0xc]
neg eax
mov ecx, dword [r13 + r14*8 + 8]
mov eax, 0x100
sbb di, di
sub ebx, ecx
and di, ax
add di, si
mov word [r10 + 8], di
test ebx, ebx
jle 0x18003996c
mov r15, qword [rsp + 0x50]
mov eax, 0x2460
add r15, 0x38
test word [r15 + 8], ax
je 0x180039925
mov rcx, r15
call fcn.180032cec
mov eax, 0x2460
dec ebx
mov word [r15 + 8], di
test ebx, ebx
jg 0x18003990d
mov ecx, dword [rbp + 0x3a8]
mov qword [rsp + 0x50], r15
mov r15, qword [rsp + 0x58]
jmp 0x180038c33
movsxd rax, dword [r13 + r14*8 + 4]
mov qword [r10], rax
jmp 0x1800389e4
movsxd rax, dword [r13 + r14*8 + 0xc]
mov esi, 1
imul rcx, rax, 0x38
mov rax, qword [rsp + 0x60]
test byte [rcx + rax + 8], sil
jne 0x18003997c
mov ecx, dword [rbp + 0x3a8]
jmp 0x180038c43
mov esi, 1
mov edx, dword [r13 + r14*8 + 4]
xor r10d, r10d
test edx, edx
jne 0x18003d841
mov rcx, qword [r12 + 0xf0]
test rcx, rcx
je 0x18003d841
mov rax, qword [rcx + 8]
dec dword [r12 + 0x100]
mov qword [r12 + 0xf0], rax
mov eax, dword [r12 + 0x90]
add dword [r15 + 0x64], eax
mov dword [r15 + 0x60], eax
call fcn.1800351a0
mov rdi, qword [r15 + 0x30]
mov r11d, 4
movsxd rcx, eax
mov dword [rsp + 0x44], ecx
mov qword [rsp + 0x48], rdi
cmp dword [r13 + r14*8 + 8], r11d
jne 0x180039a01
mov rdx, qword [r12 + 8]
lea rcx, [rcx + rcx*2]
mov qword [rsp + 0x70], rdx
lea esi, [r11 - 3]
mov ecx, dword [rdx + rcx*8 + 8]
dec ecx
mov dword [rsp + 0x44], ecx
jmp 0x180039a0b
mov rax, qword [r12 + 8]
mov qword [rsp + 0x70], rax
mov rax, qword [r12 + 0x10]
mov r13, qword [rsp + 0x70]
mov ecx, dword [rbp + 0x3a8]
mov qword [rsp + 0x60], rax
jmp 0x1800394f0
movsxd rax, dword [r13 + r14*8 + 4]
imul rcx, rax, 0x38
add rcx, qword [rsp + 0x60]
mov esi, dword [rcx]
mov qword [rcx], rbx
mov word [rcx + 8], dx
jmp 0x1800393be
movsxd rax, dword [r13 + r14*8 + 4]
imul rdx, rax, 0x38
add rdx, qword [rsp + 0x60]
mov rax, qword [rdx]
lea rcx, [rax + rax*2]
mov eax, 0x80
mov ecx, dword [r13 + rcx*8 + 8]
dec ecx
mov word [rdx + 8], ax
mov dword [rsp + 0x44], ecx
jmp 0x1800393c2
mov r8d, dword [r13 + r14*8 + 4]
xor ecx, ecx
mov rdx, qword [r13 + r14*8 + 0x10]
xor r9d, r9d
mov qword [rsp + 0x20], rcx
mov rcx, r10
call fcn.1800333d0
mov r10, qword [rsp + 0x50]
mov bl, byte [rbp + 0x3a0]
mov byte [r10 + 0xa], bl
jmp 0x180039395
sub edi, 0x1f
je 0x180039d92
sub edi, 1
je 0x180039d40
sub edi, 1
je 0x180039cd0
sub edi, 1
je 0x180039c9f
sub edi, 1
je 0x180039ba3
sub edi, 1
je 0x180039b68
sub edi, 1
je 0x180039b45
cmp edi, 1
jne 0x1800389e4
movsxd rax, dword [r13 + r14*8 + 4]
imul rbx, rax, 0x38
add rbx, qword [rsp + 0x60]
movzx eax, word [rbx + 8]
test dl, al
jne 0x180039b31
mov r8b, byte [rbp + 0x3a0]
mov dl, 0x43
mov rcx, rbx
call fcn.180038710
movzx eax, word [rbx + 8]
lea edx, [rdi + 3]
test dl, al
jne 0x180039b31
mov eax, dword [r13 + r14*8 + 8]
xor r14d, r14d
test eax, eax
je 0x18003d901
lea ecx, [rax - 1]
mov dword [rsp + 0x44], ecx
jmp 0x180038cea
mov ecx, 0xbe04
and ax, cx
or ax, dx
mov word [rbx + 8], ax
jmp 0x180038cea
movsxd rax, dword [r13 + r14*8 + 4]
imul rbx, rax, 0x38
add rbx, qword [rsp + 0x60]
mov rcx, rbx
call fcn.180032ee8
movsxd rax, dword [r13 + r14*8 + 8]
add qword [rbx], rax
jmp 0x180038cea
movsxd rax, dword [r13 + r14*8 + 4]
xor edi, edi
test eax, eax
je 0x1800389e4
imul rcx, rax, 0x38
mov eax, 0x2460
add rcx, qword [rsp + 0x60]
test word [rcx + 8], ax
je 0x180039b97
xor edx, edx
call fcn.1800330f4
jmp 0x180038cea
mov qword [rcx], rdi
mov word [rcx + 8], dx
jmp 0x1800389e4
mov rax, qword [r15 + 0x188]
test rax, rax
je 0x180039bc9
mov ecx, dword [rsp + 0x40]
cmp ecx, dword [rbp - 0x7c]
jb 0x180039bc9
mov rcx, qword [r15 + 0x190]
call rax
test eax, eax
jne 0x18003d517
xor edx, edx
mov rcx, r12
call fcn.1800359cc
mov dword [rbp + 0x3a8], eax
mov ecx, eax
test eax, eax
jne 0x180038c2e
lea edi, [rax + 1]
mov rcx, r12
mov edx, edi
call fcn.1800358b0
mov dword [rbp + 0x3a8], eax
test eax, eax
jne 0x18003d835
mov eax, dword [r12 + 0x7c]
add eax, 2
or eax, edi
mov dword [r12 + 0x7c], eax
movsxd rax, dword [r13 + r14*8 + 4]
imul rsi, rax, 0x38
xor eax, eax
add rsi, qword [rsp + 0x60]
mov edi, eax
mov qword [r12 + 0x28], rsi
cmp dword [r13 + r14*8 + 8], eax
jle 0x180039c7b
lea rbx, [rsi + 8]
mov eax, 0x1000
test word [rbx], ax
je 0x180039c50
movsxd rax, edi
imul rcx, rax, 0x38
add rcx, rsi
call fcn.180032a14
test eax, eax
jne 0x18003dad2
movzx eax, word [rbx]
mov ecx, 0x202
and ax, cx
mov ecx, 2
cmp ax, cx
jne 0x180039c6e
lea rcx, [rbx - 8]
call fcn.180032af0
inc edi
add rbx, 0x38
cmp edi, dword [r13 + r14*8 + 8]
jl 0x180039c2f
xor r14d, r14d
cmp byte [r15 + 0x51], r14b
jne 0x18003dad2
mov eax, dword [rsp + 0x44]
lea ebx, [r14 + 0x64]
inc eax
mov dword [r12 + 0x80], eax
jmp 0x18003db08
movsxd rax, dword [r13 + r14*8 + 8]
imul rcx, rax, 0x38
movsxd rax, dword [r13 + r14*8 + 4]
add rcx, qword [rsp + 0x60]
imul rdx, rax, 0x38
mov qword [rsp + 0x50], rcx
add rdx, qword [rsp + 0x60]
mov r8d, 0x1000
call fcn.180033298
jmp 0x180038cea
movsxd rax, dword [r13 + r14*8 + 4]
mov esi, 0x1000
mov edi, dword [r13 + r14*8 + 0xc]
imul rbx, rax, 0x38
movsxd rax, dword [r13 + r14*8 + 8]
add rbx, qword [rsp + 0x60]
imul r10, rax, 0x38
add r10, qword [rsp + 0x60]
mov r8d, esi
mov qword [rsp + 0x50], r10
mov rdx, rbx
mov rcx, r10
call fcn.180033298
mov r10, qword [rsp + 0x50]
test word [r10 + 8], si
je 0x180039d2a
mov rcx, r10
call fcn.180032a14
test eax, eax
jne 0x18003dad2
mov r10, qword [rsp + 0x50]
mov eax, edi
dec edi
test eax, eax
je 0x180039395
add r10, 0x38
add rbx, 0x38
jmp 0x180039cf6
movsxd rax, dword [r13 + r14*8 + 4]
mov edi, dword [r13 + r14*8 + 0xc]
imul rbx, rax, 0x38
movsxd rax, dword [r13 + r14*8 + 8]
add rbx, qword [rsp + 0x60]
imul r10, rax, 0x38
add r10, qword [rsp + 0x60]
mov qword [rsp + 0x50], r10
mov rdx, rbx
mov rcx, r10
call fcn.180033380
mov r10, qword [rsp + 0x50]
add rbx, 0x38
add r10, 0x38
mov qword [rsp + 0x50], r10
sub edi, 1
jne 0x180039d66
mov r15, qword [rsp + 0x58]
jmp 0x180039395
mov eax, dword [r13 + r14*8 + 4]
sub eax, ecx
cdqe
imul rbx, rax, 0x38
add rbx, qword [r12 + 0x68]
mov rcx, rbx
call fcn.180033270
test eax, eax
jne 0x18003da3d
mov rcx, qword [rsp + 0x50]
mov r8d, 0x800
mov rdx, rbx
jmp 0x180039cc6
movsxd rax, dword [r13 + r14*8 + 4]
imul rcx, rax, 0x38
add rcx, qword [rsp + 0x60]
test byte [rcx + 8], dl
je 0x1800389e4
call fcn.180032f10
jmp 0x180038cea
cmp edi, 0x3a
ja 0x18003abf3
je 0x18003abb2
cmp edi, 0x31
ja 0x18003a759
je 0x18003a50f
sub edi, 0x28
je 0x18003a4cb
sub edi, 1
je 0x18003a4bd
sub edi, 1
je 0x18003a3fc
sub edi, 1
je 0x18003a3d8
sub edi, 1
je 0x18003a3b2
sub edi, 1
je 0x18003a343
sub edi, 1
je 0x18003a343
sub edi, 1
je 0x180039ea2
cmp edi, 1
jne 0x1800389e4
movsxd rax, dword [r13 + r14*8 + 4]
mov rdi, qword [r13 + r14*8 + 0x10]
imul rbx, rax, 0x38
mov al, byte [rdi]
add rbx, qword [rsp + 0x60]
test al, al
je 0x1800389e4
mov r15b, byte [rbp + 0x3a0]
mov r8b, r15b
mov dl, al
mov rcx, rbx
inc rdi
call fcn.180038710
mov al, byte [rdi]
add rbx, 0x38
test al, al
jne 0x180039e77
mov r12, qword [rbp + 0x390]
mov r15, qword [rsp + 0x58]
jmp 0x180038cea
movsxd rax, dword [r13 + r14*8 + 0xc]
movsxd rcx, dword [r13 + r14*8 + 4]
mov edi, dword [r13 + r14*8 + 8]
imul r15, rax, 0x38
mov rax, qword [r12 + 0x60]
add r15, qword [rsp + 0x60]
mov qword [rbp - 0x78], r15
mov dword [rsp + 0x68], edi
mov rbx, qword [rax + rcx*8]
mov rcx, rbx
mov r12, qword [rbx + 0x68]
mov rsi, qword [rbx]
mov qword [rbp - 0x30], r12
mov qword [rbp + 8], rsi
call fcn.1800362a0
xor r8d, r8d
mov dword [rbp + 0x3a8], eax
test eax, eax
jne 0x18003d97d
mov rax, qword [rbp + 0x390]
mov eax, dword [rax + 0x7c]
cmp dword [rbx + 0x50], eax
je 0x18003a02e
cmp byte [rbx + 0x25], r8b
je 0x180039f5c
test rsi, rsi
jne 0x180039f34
movsxd rax, dword [rbx + 0x1c]
imul rcx, rax, 0x38
add rcx, qword [rsp + 0x60]
mov edi, dword [rcx + 0xc]
mov dword [rbx + 0x58], edi
mov dword [rbx + 0x54], edi
mov rcx, qword [rcx + 0x10]
mov qword [rbx + 0x60], rcx
jmp 0x180039fc3
mov eax, 0x2460
test word [r15 + 8], ax
je 0x180039f4d
mov rcx, r15
call fcn.180032cec
jmp 0x18003a2b7
mov ecx, 1
mov word [r15 + 8], cx
jmp 0x18003a2b7
mov r11d, 4
mov rcx, rsi
test byte [rbx + 0x28], r11b
jne 0x180039f8c
call fcn.18002bf58
mov rax, qword [rsi + 0x30]
mov qword [rbp + 0x50], rax
mov rcx, qword [rsi + 0x38]
movzx edx, word [rsi + 0x44]
mov qword [rbx + 0x60], rcx
mov eax, dword [rbp + 0x50]
mov dword [rbx + 0x54], eax
jmp 0x180039fa3
call fcn.18002bf58
mov eax, dword [rsi + 0x40]
mov dword [rbx + 0x54], eax
mov rcx, qword [rsi + 0x38]
movzx edx, word [rsi + 0x44]
mov qword [rbx + 0x60], rcx
mov r8d, eax
movzx edi, dx
cmp eax, edi
cmova eax, edi
mov dword [rbx + 0x58], eax
mov rax, qword [rsp + 0x58]
cmp r8d, dword [rax + 0x68]
ja 0x18003da33
xor r8d, r8d
mov rax, qword [rbp + 0x390]
mov edx, 0x80
mov eax, dword [rax + 0x7c]
mov dword [rbx + 0x50], eax
movzx eax, byte [rcx]
cmp al, dl
jae 0x180039fe4
mov dword [rsp + 0x7c], eax
mov al, 1
jmp 0x180039ff1
lea rdx, [rsp + 0x7c]
call fcn.18001dbd8
xor r8d, r8d
movzx eax, al
mov dword [rbx + 0x5c], eax
mov word [rbx + 0x22], r8w
mov eax, dword [rsp + 0x7c]
mov dword [r12], eax
mov eax, dword [rsp + 0x7c]
cmp eax, 0x18003
ja 0x18003d90c
cmp eax, dword [rbx + 0x54]
ja 0x18003d90c
cmp edi, eax
mov edi, dword [rsp + 0x68]
jae 0x18003a03a
mov qword [rbx + 0x60], r8
mov dword [rbx + 0x58], r8d
jmp 0x18003a03a
movzx eax, word [rbx + 0x22]
cmp eax, edi
jg 0x18003a1e5
mov eax, dword [r12]
cmp dword [rbx + 0x5c], eax
jae 0x18003a1b9
mov r15, qword [rbx + 0x60]
test r15, r15
jne 0x18003a0a2
xor edx, edx
lea r8d, [r15 + 0x38]
lea rcx, [rbp + 0x168]
call fcn.1800ab840
mov r9d, dword [rbx + 0x28]
lea rax, [rbp + 0x168]
mov r8d, dword [r12]
xor edx, edx
shr r9d, 2
mov rcx, rsi
not r9d
mov qword [rsp + 0x20], rax
and r9d, 1
call fcn.180033678
mov dword [rbp + 0x3a8], eax
mov ecx, eax
test eax, eax
jne 0x18003d6ae
mov r15, qword [rbp + 0x178]
movzx esi, word [rbx + 0x22]
mov edi, esi
mov eax, dword [r12 + rsi*4]
mov dword [rsp + 0x7c], eax
mov r8d, dword [rbx + 0x5c]
mov r12d, dword [r12]
add r8, r15
add r12, r15
mov r13, r8
mov eax, 0x80
cmp byte [r8], al
jae 0x18003a0d8
movzx eax, byte [r8]
lea r8, [r13 + 1]
mov dword [rbp - 0x80], eax
jmp 0x18003a0ee
lea rdx, [rbp - 0x80]
mov rcx, r8
call fcn.18001dbd8
movzx r8d, al
mov eax, dword [rbp - 0x80]
add r8, r13
mov dword [rbx + rdi*4 + 0x70], eax
mov r13, r8
mov eax, dword [rbp - 0x80]
cmp eax, 0xc
jb 0x18003a104
lea ecx, [rax - 0xc]
shr ecx, 1
jmp 0x18003a113
lea rcx, [0x180000000]
movzx ecx, byte [rax + rcx + 0xf8e08]
mov eax, dword [rsp + 0x7c]
add eax, ecx
mov dword [rsp + 0x7c], eax
cmp eax, ecx
jb 0x18003a13a
mov rcx, qword [rbp - 0x30]
inc esi
movsxd rdi, esi
mov dword [rcx + rdi*4], eax
cmp esi, dword [rsp + 0x68]
jg 0x18003a142
cmp r13, r12
jb 0x18003a0c1
jmp 0x18003a142
lea r8, [r12 + 1]
mov r13, r8
sub r8d, r15d
mov word [rbx + 0x22], si
xor eax, eax
mov dword [rbx + 0x5c], r8d
cmp qword [rbx + 0x60], rax
jne 0x18003a183
mov ecx, 0x2460
test word [rbp + 0x170], cx
jne 0x18003a16b
cmp dword [rbp + 0x188], eax
je 0x18003a177
lea rcx, [rbp + 0x168]
call fcn.180032d58
mov eax, 1
mov word [rbp + 0x170], ax
mov eax, dword [rsp + 0x7c]
cmp r13, r12
jb 0x18003a19b
ja 0x18003d90c
cmp eax, dword [rbx + 0x54]
jne 0x18003d90c
cmp eax, dword [rbx + 0x54]
ja 0x18003d90c
mov r15, qword [rbp - 0x78]
mov edi, dword [rsp + 0x68]
mov r12, qword [rbp - 0x30]
mov rsi, qword [rbp + 8]
mov r13, qword [rsp + 0x70]
movzx eax, word [rbx + 0x22]
cmp eax, edi
jg 0x18003a1e5
cmp byte [r13 + r14*8 + 1], 0xf8
jne 0x180039f34
mov rdx, qword [r13 + r14*8 + 0x10]
mov r8d, 0x800
mov rcx, r15
call fcn.180033298
jmp 0x18003a2b7
mov eax, 0x2460
test word [r15 + 8], ax
je 0x18003a1f9
mov rcx, r15
call fcn.180032cec
movsxd rcx, edi
mov edx, dword [rbx + rcx*4 + 0x70]
mov dword [rbp - 0x80], edx
mov eax, dword [r12 + rcx*4 + 4]
cmp dword [rbx + 0x58], eax
jb 0x18003a21a
mov ecx, dword [r12 + rcx*4]
add rcx, qword [rbx + 0x60]
jmp 0x18003a336
mov al, byte [r13 + r14*8 + 3]
test al, 0xc0
je 0x18003a23d
cmp edx, 0xc
jb 0x18003a231
test dl, 1
je 0x18003a329
xor edi, edi
test al, al
js 0x18003a32b
jmp 0x18003a23f
xor edi, edi
cmp edx, 0xc
jb 0x18003a24d
lea r8d, [rdx - 0xc]
shr r8d, 1
jmp 0x18003a25d
lea r8, [0x180000000]
movzx r8d, byte [rdx + r8 + 0xf8e08]
test r8d, r8d
je 0x18003a32b
mov r9d, dword [rbx + 0x28]
mov edx, dword [r12 + rcx*4]
mov rcx, rsi
shr r9d, 2
not r9d
mov qword [rsp + 0x20], r15
and r9d, 1
call fcn.180033678
mov dword [rbp + 0x3a8], eax
test eax, eax
jne 0x18003a317
mov edx, dword [rbp - 0x80]
mov r8, r15
mov rcx, qword [r15 + 0x10]
call fcn.1800364a0
mov eax, 0xefff
and word [r15 + 8], ax
mov al, byte [rbp + 0x3a0]
mov byte [r15 + 0xa], al
movzx edi, word [r15 + 8]
bt di, 0xc
jae 0x18003a317
mov r14, qword [r15 + 0x10]
test r14, r14
je 0x18003a317
movsxd rsi, dword [r15 + 0xc]
mov rcx, r15
lea edx, [rsi + 2]
call fcn.1800329f4
xor r12d, r12d
test eax, eax
jne 0x18003dab3
mov rcx, qword [r15 + 0x10]
mov r8, rsi
mov rdx, r14
call fcn.1800aaec0
mov rax, qword [r15 + 0x10]
and di, 0x12
mov byte [rsi + rax], r12b
mov rax, qword [r15 + 0x10]
mov byte [rsi + rax + 1], r12b
mov eax, 0x200
or di, ax
mov word [r15 + 8], di
mov r12, qword [rbp + 0x390]
mov ecx, dword [rbp + 0x3a8]
jmp 0x180039603
xor edi, edi
cmp edx, 0xd
lea rcx, [rbp + 0x50]
cmova rcx, rdi
mov r8, r15
call fcn.1800364a0
jmp 0x18003a2ad
movsxd rax, dword [r13 + r14*8 + 4]
imul rcx, rax, 0x38
add rcx, qword [rsp + 0x60]
test byte [rcx + 8], 1
je 0x18003a35e
mov eax, dword [r13 + r14*8 + 0xc]
jmp 0x18003a37f
call fcn.180032e30
ucomisd xmm0, xmm7
jp 0x18003a36f
jne 0x18003a36f
xor eax, eax
jmp 0x18003a374
mov eax, 1
cmp byte [r13 + r14*8], 0x2e
jne 0x18003a37f
xor eax, 1
test eax, eax
mov rdi, qword [rsp + 0x48]
mov r9d, 8
mov r10, qword [rsp + 0x50]
lea esi, [r9 - 7]
je 0x18003a3a2
mov ecx, dword [r13 + r14*8 + 8]
dec ecx
mov dword [rsp + 0x44], ecx
mov ecx, dword [rbp + 0x3a8]
mov r8d, dword [rsp + 0x44]
jmp 0x180038c48
movsxd rax, dword [r13 + r14*8 + 4]
xor edi, edi
mov rcx, qword [r12 + 0x118]
lea esi, [rdi + 1]
cmp byte [rax + rcx], dil
mov rdi, qword [rsp + 0x48]
jne 0x18003a397
mov byte [rax + rcx], sil
jmp 0x1800398ce
mov edx, dword [rbp - 0x44]
test edx, edx
jns 0x18003a3e6
mov eax, dword [r13 + r14*8 + 4]
jmp 0x18003a3f4
jne 0x18003a3ef
mov eax, dword [r13 + r14*8 + 8]
jmp 0x18003a3f4
mov eax, dword [r13 + r14*8 + 0xc]
lea ecx, [rax - 1]
jmp 0x1800393ee
mov al, byte [r13 + r14*8 + 3]
mov r13, qword [r13 + r14*8 + 0x10]
and al, cl
neg al
mov rax, qword [rsp + 0x70]
sbb rdi, rdi
xor r8d, r8d
and rdi, qword [rbp + 0x38]
mov r15d, r8d
mov ebx, r8d
movsxd r12, dword [rax + r14*8 + 0xc]
mov r9d, dword [rax + r14*8 + 4]
mov ecx, dword [rax + r14*8 + 8]
mov dword [rsp + 0x68], r9d
mov dword [rbp - 0x30], ecx
test r12, r12
jle 0x18003a4af
lea r14, [r13 + 0x20]
test rdi, rdi
je 0x18003a44a
mov r8d, dword [rdi + rbx*4]
jmp 0x18003a44d
mov r8d, r15d
mov rax, qword [r13 + 0x18]
mov sil, byte [rbx + rax]
lea eax, [r8 + rcx]
movsxd rcx, eax
lea eax, [r8 + r9]
mov r8, qword [r14]
imul rdx, rcx, 0x38
movsxd rcx, eax
add rdx, qword [rsp + 0x60]
imul rcx, rcx, 0x38
add rcx, qword [rsp + 0x60]
call fcn.1800368e4
xor r8d, r8d
mov dword [rbp - 0x44], eax
mov edx, eax
test eax, eax
jne 0x18003a4a5
mov r9d, dword [rsp + 0x68]
lea ecx, [rax + 1]
add r15d, ecx
add rbx, rcx
mov ecx, dword [rbp - 0x30]
add r14, 8
cmp rbx, r12
jl 0x18003a43f
jmp 0x18003a4af
test sil, sil
je 0x18003a4af
neg edx
mov dword [rbp - 0x44], edx
mov r13, qword [rsp + 0x70]
mov qword [rbp + 0x38], r8
jmp 0x18003a317
mov rax, qword [r13 + r14*8 + 0x10]
mov qword [rbp + 0x38], rax
jmp 0x1800389e4
movsxd rax, dword [r13 + r14*8 + 4]
imul rbx, rax, 0x38
mov eax, 0x4000
add rbx, qword [rsp + 0x60]
test word [rbx + 8], ax
je 0x18003a4ee
mov rcx, rbx
call fcn.180032a90
jmp 0x18003a4f0
xor eax, eax
mov r8b, byte [rbp + 0x3a0]
mov rcx, rbx
mov dl, byte [r13 + r14*8 + 8]
mov dword [rbp + 0x3a8], eax
call fcn.180032fb0
jmp 0x180038cea
mov rdx, qword [rsp + 0x70]
xor r10d, r10d
movzx r12d, byte [r12 + 0x8b]
mov r13d, r10d
mov r15d, r10d
mov dword [rsp + 0x68], r10d
mov dword [rbp - 0x30], r12d
movsxd rax, dword [rdx + r14*8 + 4]
mov rbx, qword [rdx + r14*8 + 0x10]
imul rcx, rax, 0x38
mov eax, dword [rdx + r14*8 + 8]
add rcx, qword [rsp + 0x60]
dec eax
cdqe
imul rsi, rax, 0x38
movsxd rax, dword [rdx + r14*8 + 0xc]
imul rax, rax, 0x38
add rsi, rcx
mov qword [rbp + 8], rcx
add rax, qword [rsp + 0x60]
mov qword [rbp - 0x78], rsi
mov qword [rsp + 0x50], rax
test rbx, rbx
je 0x18003a59c
mov al, byte [rbx]
mov rdi, rcx
mov r12b, byte [rbp + 0x3a0]
mov r8b, r12b
mov dl, al
mov rcx, rdi
call fcn.180038710
inc rbx
add rdi, 0x38
mov al, byte [rbx]
test al, al
jne 0x18003a57e
mov r12d, dword [rbp - 0x30]
mov r14, qword [rbp + 8]
mov edx, r12d
mov rcx, rsi
call fcn.1800362c0
mov edi, eax
mov dword [rsi + 0x24], edi
cmp eax, 0xc
jb 0x18003a5bc
lea ebx, [rdi - 0xc]
shr ebx, 1
jmp 0x18003a5cb
lea rcx, [0x180000000]
movzx ebx, byte [rdi + rcx + 0xf8e08]
mov eax, 0x4000
test word [rsi + 8], ax
je 0x18003a5f1
test r13, r13
je 0x18003a5e5
mov rcx, rsi
call fcn.180032a90
jmp 0x18003a5f1
mov eax, dword [rsp + 0x68]
add eax, dword [rsi]
sub ebx, dword [rsi]
mov dword [rsp + 0x68], eax
movsxd rax, ebx
mov r8d, 1
add r13, rax
cmp edi, 0x7f
ja 0x18003a609
mov eax, r8d
xor edi, edi
jmp 0x18003a621
mov rcx, rdi
xor edi, edi
mov eax, edi
add eax, r8d
shr rcx, 7
test rcx, rcx
je 0x18003a621
cmp eax, 9
jl 0x18003a610
add r15d, eax
sub rsi, 0x38
cmp rsi, r14
jae 0x18003a5a0
cmp r15d, 0x7e
jle 0x18003a66a
movsxd rax, r15d
mov ecx, edi
add ecx, r8d
shr rax, 7
test rax, rax
je 0x18003a64d
cmp ecx, 9
jl 0x18003a63c
add r15d, ecx
mov eax, edi
movsxd rdx, r15d
add eax, r8d
shr rdx, 7
test rdx, rdx
je 0x18003a666
cmp eax, 9
jl 0x18003a655
cmp ecx, eax
jge 0x18003a66d
add r15d, r8d
mov rax, qword [rsp + 0x58]
movsxd rbx, r15d
movsxd rax, dword [rax + 0x68]
lea r14, [rbx + r13]
mov qword [rbp - 0x50], r14
cmp r14, rax
jg 0x18003da2c
mov rdi, qword [rsp + 0x50]
mov edx, r14d
mov rcx, rdi
call fcn.1800329f4
test eax, eax
jne 0x18003dab3
mov rdi, qword [rdi + 0x10]
mov edx, 0x80
cmp r15d, edx
jae 0x18003a6b8
mov byte [rdi], r15b
lea eax, [rdx - 0x7f]
jmp 0x18003a6c8
mov rdx, rbx
mov rcx, rdi
call fcn.18001d9e4
mov edx, 0x80
mov r13, qword [rbp + 8]
mov r12, qword [rbp - 0x78]
movzx esi, al
mov ebx, dword [r13 + 0x24]
movsxd rcx, esi
add rcx, rdi
cmp ebx, edx
jae 0x18003a6ea
mov byte [rcx], bl
mov eax, 1
jmp 0x18003a6f2
mov rdx, rbx
call fcn.18001d9e4
movzx eax, al
mov r8d, ebx
movsxd rcx, r15d
mov rdx, r13
add rcx, rdi
add esi, eax
call fcn.180036368
add r15d, eax
add r13, 0x38
mov edx, 0x80
cmp r13, r12
jbe 0x18003a6d3
mov r10, qword [rsp + 0x50]
lea eax, [rdx - 0x70]
mov r14, qword [rbp - 0x50]
mov word [r10 + 8], ax
mov eax, dword [rsp + 0x68]
mov dword [r10 + 0xc], r14d
test eax, eax
je 0x18003a743
mov dword [r10], eax
mov eax, 0x4010
mov word [r10 + 8], ax
mov r13, qword [rsp + 0x70]
mov byte [r10 + 0xa], 1
mov r12, qword [rbp + 0x390]
jmp 0x180039d88
mov ecx, edi
sub ecx, 0x32
je 0x18003ab86
sub ecx, 1
je 0x18003ab55
sub ecx, 1
je 0x18003aab2
sub ecx, 1
je 0x18003a92a
sub ecx, 1
je 0x18003a94d
sub ecx, 1
je 0x18003a94d
sub ecx, 1
je 0x18003a79f
cmp ecx, 1
jne 0x1800389e4
mov r8d, dword [r13 + r14*8 + 8]
or r9d, 0xffffffff
mov edx, dword [r13 + r14*8 + 4]
mov rcx, r12
mov dword [rsp + 0x20], 1
call fcn.18003857c
mov r15, rax
test rax, rax
je 0x18003daba
mov eax, 1
mov dword [rsp + 0x28], 0x41e
or dword [r15 + 0x28], eax
lea rsi, [r15 + 8]
mov byte [r15 + 0x25], al
mov r9, rsi
movzx ecx, byte [r13 + r14*8 + 3]
xor edx, edx
mov rax, qword [rsp + 0x58]
or ecx, 5
mov dword [rsp + 0x20], ecx
mov r8, rax
mov rcx, qword [rax]
call fcn.180029848
mov dword [rbp + 0x3a8], eax
test eax, eax
jne 0x18003a8ee
mov rcx, qword [rsi]
lea edx, [rax + 1]
call fcn.18002a7e0
mov dword [rbp + 0x3a8], eax
test eax, eax
jne 0x18003a8ee
mov r12, qword [r13 + r14*8 + 0x10]
mov rdi, qword [rsi]
mov rcx, rdi
test r12, r12
je 0x18003a8ae
movzx ebx, byte [r13 + r14*8 + 3]
or ebx, 2
call fcn.180028530
mov r8d, ebx
lea rdx, [rbp + 0x28]
mov rcx, rdi
call fcn.180030624
mov rcx, rdi
mov dword [rbp + 0x3a8], eax
mov ebx, eax
call fcn.1800285e0
test ebx, ebx
jne 0x18003a8a7
mov rsi, qword [rsi]
mov rbx, qword [r15]
mov rcx, rsi
mov edi, dword [rbp + 0x28]
mov qword [r15 + 0x10], r12
call fcn.180028530
mov r9, r12
mov qword [rsp + 0x20], rbx
mov r8d, 1
mov edx, edi
mov rcx, rsi
call fcn.18002bd6c
mov rcx, rsi
mov dword [rbp + 0x3a8], eax
call fcn.1800285e0
and dword [r15 + 0x28], 0xfffffffb
jmp 0x18003a8e7
mov rbx, qword [r15]
call fcn.180028530
xor r9d, r9d
mov qword [rsp + 0x20], rbx
mov rcx, rdi
lea eax, [r9 + 1]
mov r8d, eax
mov edx, eax
call fcn.18002bd6c
mov rcx, rdi
mov dword [rbp + 0x3a8], eax
call fcn.1800285e0
mov r11d, 4
or dword [r15 + 0x28], r11d
mov r12, qword [rbp + 0x390]
mov al, byte [r13 + r14*8 + 3]
mov r9d, 8
sub al, r9b
neg al
mov eax, dword [r15 + 0x28]
sbb ecx, ecx
and eax, 0xfffffff7
and ecx, r9d
or ecx, eax
mov dword [r15 + 0x28], ecx
mov ecx, dword [rbp + 0x3a8]
mov esi, 1
mov r15, qword [rsp + 0x58]
mov r10, qword [rsp + 0x50]
jmp 0x180038c3e
mov rax, qword [r12 + 0x60]
movsxd rcx, dword [r13 + r14*8 + 4]
mov rdx, qword [rax + rcx*8]
xor eax, eax
test rdx, rdx
je 0x18003a94f
mov eax, dword [r13 + r14*8 + 8]
cmp dword [rdx + 0x2c], eax
je 0x1800389e4
xor eax, eax
test byte [r12 + 0x8c], 0x20
jne 0x18003d9af
movsxd rdx, dword [r13 + r14*8 + 0xc]
mov esi, eax
mov rcx, qword [rsp + 0x58]
mov r15, rax
movsxd r12, dword [r13 + r14*8 + 8]
mov rax, rdx
shl rax, 5
mov dword [rbp + 0x3a8], edx
add rax, qword [rcx + 0x20]
mov rcx, qword [rax + 8]
mov qword [rbp - 0x50], rcx
cmp dil, 0x37
jne 0x18003a9b5
mov rax, qword [rax + 0x18]
mov r13d, 1
mov cl, byte [rax + 0x70]
mov rax, qword [rbp + 0x390]
cmp cl, byte [rax + 0x8b]
jae 0x18003a9ba
mov byte [rax + 0x8b], cl
jmp 0x18003a9ba
xor eax, eax
mov r13d, eax
mov rdi, qword [rsp + 0x70]
test byte [rdi + r14*8 + 3], r11b
je 0x18003a9ee
imul rbx, r12, 0x38
add rbx, qword [rsp + 0x60]
mov rcx, rbx
call fcn.180032ee8
mov r12d, dword [rbx]
mov eax, 2
cmp r12d, eax
jl 0x18003d973
mov edx, dword [rbp + 0x3a8]
mov al, byte [rdi + r14*8 + 1]
cmp al, 0xfa
jne 0x18003aa0a
mov r15, qword [rdi + r14*8 + 0x10]
movzx esi, word [r15 + 8]
movzx eax, word [r15 + 6]
add esi, eax
jmp 0x18003aa13
cmp al, 0xf2
jne 0x18003aa13
mov esi, dword [rdi + r14*8 + 0x10]
mov rcx, qword [rbp + 0x390]
mov r9d, edx
mov edx, dword [rdi + r14*8 + 4]
mov r8d, esi
mov dword [rsp + 0x20], 1
call fcn.18003857c
mov rdi, rax
test rax, rax
je 0x18003dab3
mov rsi, qword [rbp - 0x50]
or dword [rax + 0x28], 8
mov rcx, rsi
mov rbx, qword [rax]
mov byte [rax + 0x25], 1
mov dword [rax + 0x2c], r12d
call fcn.180028530
mov r9, r15
mov qword [rsp + 0x20], rbx
mov r8d, r13d
mov edx, r12d
mov rcx, rsi
call fcn.18002bd6c
mov rcx, rsi
mov dword [rbp + 0x3a8], eax
call fcn.1800285e0
mov rax, qword [rdi]
mov r13, qword [rsp + 0x70]
mov qword [rdi + 0x10], r15
mov cl, byte [r13 + r14*8 + 3]
and cl, 1
mov byte [rax + 0x6e], cl
mov al, byte [r13 + r14*8 + 1]
sub al, 0xfa
neg al
mov eax, dword [rdi + 0x28]
sbb ecx, ecx
and eax, 0xfffffffb
and ecx, 4
or ecx, eax
mov dword [rdi + 0x28], ecx
jmp 0x18003a317
movsxd rax, dword [r13 + r14*8 + 0xc]
movsxd rbx, dword [r13 + r14*8 + 4]
imul rdi, rax, 0x38
shl rbx, 5
add rdi, qword [rsp + 0x60]
add rbx, qword [r15 + 0x20]
mov rcx, rdi
call fcn.180032ee8
mov r8d, dword [rdi]
mov edx, dword [r13 + r14*8 + 8]
mov rcx, qword [rbx + 8]
call fcn.180030dc0
mov esi, 1
mov dword [rbp + 0x3a8], eax
mov ecx, eax
cmp dword [r13 + r14*8 + 8], esi
jne 0x18003ab0b
mov eax, dword [rdi]
mov rcx, qword [rbx + 0x18]
mov dword [rcx], eax
lea eax, [rsi + 1]
or dword [r15 + 0x2c], eax
jmp 0x18003ab20
mov eax, 2
cmp dword [r13 + r14*8 + 8], eax
jne 0x18003ab26
mov rcx, qword [rbx + 0x18]
mov al, byte [rdi]
mov byte [rcx + 0x70], al
mov ecx, dword [rbp + 0x3a8]
cmp dword [r13 + r14*8 + 4], esi
jne 0x180038c33
mov rax, qword [r15 + 8]
jmp 0x18003ab42
or dword [rax + 0x8c], 0x20
mov rax, qword [rax + 0x58]
test rax, rax
jne 0x18003ab37
and dword [r12 + 0x8c], 0xffffffdf
jmp 0x180038c33
movsxd rax, dword [r13 + r14*8 + 4]
lea r8, [rbp + 0x2c]
mov rcx, qword [r15 + 0x20]
mov edx, dword [r13 + r14*8 + 0xc]
shl rax, 5
mov rcx, qword [rax + rcx + 8]
call fcn.180030d18
movsxd rax, dword [rbp + 0x2c]
mov r10, qword [rsp + 0x50]
mov qword [r10], rax
jmp 0x180039395
mov rax, qword [r12 + 0x60]
lea rdx, [rbp + 0x58]
movsxd rcx, dword [r13 + r14*8 + 4]
mov rcx, qword [rax + rcx*8]
xor eax, eax
mov rcx, qword [rcx]
mov qword [rbp + 0x58], rax
call fcn.180030e8c
mov dword [rbp + 0x3a8], eax
mov rax, qword [rbp + 0x58]
jmp 0x18003ab79
mov r8d, dword [r13 + r14*8 + 8]
or r9d, 0xffffffff
mov edx, dword [r13 + r14*8 + 4]
mov dword [rsp + 0x20], ecx
mov rcx, r12
call fcn.18003857c
test rax, rax
je 0x18003dad2
mov rcx, qword [r13 + r14*8 + 0x10]
mov r8, rax
mov qword [rax + 0x10], rcx
mov rcx, r15
mov edx, dword [r13 + r14*8 + 0xc]
call fcn.18003e034
jmp 0x18003961a
cmp edi, 0x44
ja 0x18003afbb
je 0x18003ac4f
sub edi, 0x3b
je 0x18003af89
sub edi, 1
je 0x18003af4b
sub edi, 1
je 0x18003af1f
sub edi, 1
je 0x18003ad27
sub edi, 1
je 0x18003ad27
sub edi, 1
je 0x18003ad27
sub edi, 1
je 0x18003ad27
sub edi, 1
je 0x18003acf4
cmp edi, 1
jne 0x1800389e4
movsxd rcx, dword [r13 + r14*8 + 4]
xor esi, esi
mov rax, qword [r12 + 0x60]
mov r15, qword [rax + rcx*8]
movsxd rax, dword [r13 + r14*8 + 0xc]
imul rbx, rax, 0x38
mov qword [rbp + 0x40], rsi
add rbx, qword [rsp + 0x60]
mov rcx, qword [r15 + 0x10]
cmp dword [r13 + r14*8 + 0x10], esi
jle 0x18003b31a
mov qword [rbp + 0xe8], rcx
mov edi, esi
movzx ecx, word [r13 + r14*8 + 0x10]
mov word [rbp + 0xf0], cx
mov qword [rbp + 0xf8], rbx
cmp si, cx
jae 0x18003ace8
mov r13d, 0x4000
test word [rsi + rbx + 8], r13w
je 0x18003accd
movsxd rax, edi
imul rcx, rax, 0x38
add rcx, rbx
call fcn.180032a90
movzx ecx, word [rbp + 0xf0]
mov rbx, qword [rbp + 0xf8]
inc edi
movzx eax, cx
add rsi, 0x38
cmp edi, eax
jl 0x18003aca8
mov r13, qword [rsp + 0x70]
xor esi, esi
mov r12, qword [rbp + 0x390]
lea rdi, [rbp + 0xe8]
jmp 0x18003b362
movsxd rcx, dword [r13 + r14*8 + 4]
mov rax, qword [r12 + 0x60]
mov rbx, qword [rax + rcx*8]
xor eax, eax
mov byte [rbx + 0x25], al
movsxd rax, dword [r13 + r14*8 + 8]
imul rcx, rax, 0x38
add rcx, qword [rsp + 0x60]
call fcn.180032db4
mov qword [rbx + 0x40], rax
mov byte [rbx + 0x26], 1
jmp 0x180038cea
mov rax, qword [r12 + 0x60]
movsxd rcx, dword [r13 + r14*8 + 4]
movzx edi, byte [r13 + r14*8]
mov rsi, qword [rax + rcx*8]
xor eax, eax
mov byte [rsi + 0x25], al
test byte [rsi + 0x28], dl
je 0x18003adf3
movsxd rax, dword [r13 + r14*8 + 0xc]
imul rbx, rax, 0x38
add rbx, qword [rsp + 0x60]
mov al, byte [rbx + 8]
and al, 0xe
cmp al, r11b
jne 0x18003ad6b
xor edx, edx
mov rcx, rbx
call fcn.180038680
mov rcx, rbx
call fcn.180032db4
mov r11d, 4
mov r15, rax
test byte [rbx + 8], r11b
jne 0x18003adce
lea r9d, [r11 + 4]
test byte [rbx + 8], r9b
jne 0x18003ad9c
mov ecx, dword [r13 + r14*8 + 8]
dec ecx
mov dword [rsp + 0x44], ecx
jmp 0x18003a910
movsd xmm1, qword [rbx]
xorps xmm0, xmm0
cvtsi2sd xmm0, r15
comisd xmm0, xmm1
jbe 0x18003adbc
mov eax, 1
test al, dil
je 0x18003adce
sub edi, eax
jmp 0x18003adce
comisd xmm1, xmm0
jbe 0x18003adce
mov eax, 1
test al, dil
jne 0x18003adce
add edi, eax
mov rcx, qword [rsi]
lea rax, [rsp + 0x78]
xor r9d, r9d
mov qword [rsp + 0x20], rax
mov r8, r15
xor edx, edx
call fcn.18002c870
mov qword [rsi + 0x40], r15
mov r15, qword [rsp + 0x58]
jmp 0x18003ae61
mov rax, qword [rsi + 0x10]
mov ecx, dword [r13 + r14*8 + 0x10]
mov word [rbp + 0x110], cx
mov qword [rbp + 0x108], rax
mov eax, edi
and al, 1
neg al
sbb cl, cl
and cl, 0xfe
inc cl
mov byte [rbp + 0x112], cl
movsxd rax, dword [r13 + r14*8 + 0xc]
imul rcx, rax, 0x38
mov eax, 0x4000
add rcx, qword [rsp + 0x60]
mov qword [rbp + 0x118], rcx
test word [rcx + 8], ax
je 0x18003ae42
call fcn.180032a90
mov rcx, qword [rsi]
lea rax, [rsp + 0x78]
xor r9d, r9d
mov qword [rsp + 0x20], rax
xor r8d, r8d
lea rdx, [rbp + 0x108]
call fcn.18002c870
xor ecx, ecx
mov dword [rbp + 0x3a8], eax
test eax, eax
jne 0x18003d989
lea eax, [rcx + 0x40]
mov byte [rsi + 0x26], cl
cmp edi, eax
mov dword [rsi + 0x50], ecx
mov eax, dword [rsp + 0x78]
jl 0x18003aea9
test eax, eax
js 0x18003ae96
jne 0x18003ae8d
cmp edi, 0x41
je 0x18003ae96
mov dword [rsp + 0x78], ecx
jmp 0x180038cea
mov dword [rsp + 0x78], ecx
lea rdx, [rsp + 0x78]
mov rcx, qword [rsi]
call fcn.18002ce4c
jmp 0x18003aee2
test eax, eax
jg 0x18003aed1
jne 0x18003aeb4
cmp edi, 0x3e
je 0x18003aed1
mov rax, qword [rsi]
mov esi, 1
cmp byte [rax + 0x6d], sil
setne cl
xor edx, edx
mov dword [rsp + 0x78], ecx
mov ecx, dword [rbp + 0x3a8]
jmp 0x18003aef7
mov dword [rsp + 0x78], ecx
lea rdx, [rsp + 0x78]
mov rcx, qword [rsi]
call fcn.18002cfdc
xor edx, edx
mov dword [rbp + 0x3a8], eax
mov ecx, eax
test eax, eax
jne 0x18003d989
lea esi, [rdx + 1]
cmp dword [rsp + 0x78], edx
mov rdi, qword [rsp + 0x48]
mov r9d, 8
je 0x18003af15
mov r10d, dword [r13 + r14*8 + 8]
sub r10d, esi
mov dword [rsp + 0x44], r10d
mov r10, qword [rsp + 0x50]
jmp 0x18003a3a8
movsxd rax, dword [r13 + r14*8 + 4]
mov rcx, r12
mov rdx, qword [r12 + 0x60]
mov rdx, qword [rdx + rax*8]
call fcn.1800350f0
movsxd rcx, dword [r13 + r14*8 + 4]
xor r8d, r8d
mov rax, qword [r12 + 0x60]
mov qword [rax + rcx*8], r8
jmp 0x180038cea
mov r8d, dword [r13 + r14*8 + 0xc]
xor edi, edi
mov edx, dword [r13 + r14*8 + 4]
or r9d, 0xffffffff
mov rcx, r12
mov dword [rsp + 0x20], edi
call fcn.18003857c
test rax, rax
je 0x18003dad2
mov byte [rax + 0x25], 1
lea r11d, [rdi + 4]
mov ecx, dword [r13 + r14*8 + 8]
or dword [rax + 0x28], r11d
mov dword [rax + 0x1c], ecx
jmp 0x180038cea
movsxd rcx, dword [r13 + r14*8 + 4]
mov rax, qword [r12 + 0x60]
mov rdx, qword [rax + rcx*8]
mov rcx, qword [rdx + 0x38]
test rcx, rcx
lea rax, [rcx + 1]
mov qword [rdx + 0x38], rax
mov esi, 1
mov rdi, qword [rsp + 0x48]
jne 0x1800398ce
jmp 0x18003a397
mov ecx, edi
sub ecx, 0x45
je 0x18003ac4f
sub ecx, 1
je 0x18003b2b2
sub ecx, 1
je 0x18003b1e1
sub ecx, 1
je 0x18003b1e1
sub ecx, 1
je 0x18003b1b5
sub ecx, 1
je 0x18003b028
sub ecx, 1
je 0x18003b541
mov esi, 1
cmp ecx, esi
jne 0x18003996c
movsxd rax, dword [r13 + r14*8 + 4]
mov rdi, qword [rsp + 0x48]
imul rcx, rax, 0x38
mov rax, qword [rsp + 0x60]
test byte [rcx + rax + 8], sil
je 0x1800398ce
jmp 0x18003a397
movsxd rcx, dword [r13 + r14*8 + 4]
xor esi, esi
mov rax, qword [r12 + 0x60]
mov edx, esi
mov qword [rbp - 0x58], rdx
mov dword [rbp - 0x64], esi
mov rdi, qword [rax + rcx*8]
mov rcx, qword [rdi]
test rcx, rcx
je 0x18003b1ad
test byte [rdi + 0x28], r11b
jne 0x18003b07b
lea rdx, [rbp - 0x64]
call fcn.18002c80c
mov dword [rbp + 0x3a8], eax
test eax, eax
jne 0x18003d989
cmp dword [rbp - 0x64], esi
je 0x18003b0a8
mov qword [rbp - 0x58], 1
lea r11d, [rsi + 2]
movabs rsi, 0x7fffffffffffffff
movsxd rdx, dword [r13 + r14*8 + 0xc]
xor r14d, r14d
test edx, edx
je 0x18003b135
mov rcx, qword [r12 + 0xf0]
test rcx, rcx
je 0x18003b0fb
mov rax, qword [rcx + 8]
jmp 0x18003b0ec
mov rbx, qword [rdi]
mov rcx, rbx
call fcn.18002bf58
mov rax, qword [rbx + 0x30]
mov r11d, 2
mov dword [rbp + 0x3a8], esi
movabs rsi, 0x7fffffffffffffff
mov qword [rbp - 0x58], rax
cmp rax, rsi
jl 0x18003b0dc
or dword [rdi + 0x28], r11d
jmp 0x18003b085
inc rax
mov qword [rbp - 0x58], rax
jmp 0x18003b085
mov rcx, rax
mov rax, qword [rax + 8]
test rax, rax
jne 0x18003b0e5
imul rbx, rdx, 0x38
add rbx, qword [rcx + 0x20]
jmp 0x18003b104
imul rbx, rdx, 0x38
add rbx, qword [rsp + 0x60]
mov rcx, rbx
call fcn.180032ee8
mov rax, qword [rbx]
cmp rax, rsi
je 0x18003b191
mov r11d, 2
test byte [rdi + 0x28], r11b
jne 0x18003b191
mov rcx, qword [rbp - 0x58]
inc rax
cmp rcx, rax
cmovl rcx, rax
mov qword [rbp - 0x58], rcx
mov qword [rbx], rcx
test byte [rdi + 0x28], r11b
je 0x18003b19c
mov ebx, r14d
lea rdx, [rbp - 0x58]
mov ecx, 8
call fcn.18001c6ac
mov r8, qword [rbp - 0x58]
movabs rax, 0x3fffffffffffffff
and r8, rax
xor r9d, r9d
inc r8
lea rax, [rbp - 0x64]
mov qword [rbp - 0x58], r8
xor edx, edx
mov rcx, qword [rdi]
mov qword [rsp + 0x20], rax
call fcn.18002c870
mov dword [rbp + 0x3a8], eax
test eax, eax
jne 0x18003b19c
cmp dword [rbp - 0x64], r14d
jne 0x18003b19c
inc ebx
cmp ebx, 0x64
jl 0x18003b13e
mov r13d, 0xd
jmp 0x18003d993
mov r10, qword [rsp + 0x50]
mov byte [rdi + 0x26], r14b
mov dword [rdi + 0x50], r14d
mov rdx, qword [rbp - 0x58]
mov qword [r10], rdx
jmp 0x180039395
mov rax, qword [r12 + 0x60]
movsxd rcx, dword [r13 + r14*8 + 4]
mov rcx, qword [rax + rcx*8]
mov rax, qword [rcx + 0x38]
mov qword [r10], rax
movsxd rcx, dword [r13 + r14*8 + 4]
mov rax, qword [r12 + 0x60]
mov rdx, qword [rax + rcx*8]
inc qword [rdx + 0x38]
jmp 0x1800389e4
movsxd rax, dword [r13 + r14*8 + 4]
mov rdi, qword [rsp + 0x60]
imul rcx, rax, 0x38
add rcx, rdi
test byte [rcx + 8], 1
je 0x18003b1ff
mov rbx, r11
xor esi, esi
jmp 0x18003b212
call fcn.180032db4
xor esi, esi
test rax, rax
mov ebx, esi
setne bl
lea r11d, [rsi + 2]
movsxd rax, dword [r13 + r14*8 + 8]
imul rcx, rax, 0x38
add rcx, rdi
test byte [rcx + 8], 1
je 0x18003b229
mov rcx, r11
jmp 0x18003b23d
call fcn.180032db4
test rax, rax
mov rcx, rsi
mov r11d, 2
setne cl
lea rcx, [rcx + rbx*2]
add rcx, rbx
lea rax, [0x180000000]
cmp byte [r13 + r14*8], 0x48
jne 0x18003b25c
mov dl, byte [rcx + rax + 0xfa048]
jmp 0x18003b263
mov dl, byte [rcx + rax + 0xfa578]
movsxd rax, dword [r13 + r14*8 + 0xc]
mov esi, 1
imul r10, rax, 0x38
add r10, rdi
mov qword [rsp + 0x50], r10
movzx ecx, word [r10 + 8]
cmp dl, r11b
jne 0x18003b290
mov eax, 0xbe01
and cx, ax
or cx, si
jmp 0x18003b2a2
movzx eax, dl
mov qword [r10], rax
mov eax, 0xbe04
and cx, ax
or cx, 4
mov word [r10 + 8], cx
mov ecx, dword [rbp + 0x3a8]
jmp 0x180038c38
movsxd rax, dword [r13 + r14*8 + 0xc]
xor esi, esi
movsxd rcx, dword [r13 + r14*8 + 4]
xor r9d, r9d
imul rdx, rax, 0x38
mov rax, qword [r12 + 0x60]
add rdx, qword [rsp + 0x60]
mov rdi, qword [rax + rcx*8]
lea rax, [rbp - 0x18]
mov qword [rsp + 0x20], rax
mov rcx, qword [rdi]
mov dword [rbp - 0x18], esi
mov rbx, qword [rdx]
xor edx, edx
mov r8, rbx
call fcn.18002c870
mov dword [rbp + 0x3a8], eax
mov qword [rdi + 0x40], rbx
mov word [rdi + 0x25], si
mov dword [rdi + 0x50], esi
mov eax, dword [rbp - 0x18]
test eax, eax
je 0x18003b312
mov ecx, dword [r13 + r14*8 + 8]
dec ecx
mov dword [rsp + 0x44], ecx
mov dword [rdi + 0x18], eax
jmp 0x180038cea
lea r9, [rbp + 0x40]
mov r8d, 0x107
lea rdx, [rbp + 0x210]
call fcn.18003661c
mov rdi, rax
test rax, rax
je 0x18003daba
mov eax, 0x4000
test word [rbx + 8], ax
je 0x18003b34f
mov rcx, rbx
call fcn.180032a90
mov r8, qword [rbx + 0x10]
mov r9, rdi
mov edx, dword [rbx + 0xc]
mov rcx, qword [r15 + 0x10]
call fcn.18003668c
mov byte [rdi + 0xa], sil
cmp byte [r13 + r14*8], 0x43
jne 0x18003b3a4
movzx edx, word [rdi + 8]
mov ecx, esi
test edx, edx
je 0x18003b3a4
mov rax, qword [rdi + 0x10]
mov r8d, 1
add rax, 8
test byte [rax], r8b
jne 0x18003b398
add ecx, r8d
add rax, 0x38
cmp ecx, edx
jl 0x18003b386
jmp 0x18003b3a4
mov eax, dword [r13 + r14*8 + 8]
sub eax, r8d
mov dword [rsp + 0x44], eax
mov rcx, qword [r15]
lea rax, [rbp - 0x14]
xor r9d, r9d
mov qword [rsp + 0x20], rax
xor r8d, r8d
mov rdx, rdi
call fcn.18002c870
mov ecx, eax
mov dword [rbp + 0x3a8], eax
cmp dword [r13 + r14*8 + 0x10], esi
jne 0x18003b3e1
mov rdx, qword [rbp + 0x40]
mov rcx, qword [rsp + 0x58]
call fcn.18001acf0
mov ecx, dword [rbp + 0x3a8]
test ecx, ecx
jne 0x180039603
mov eax, dword [rbp - 0x14]
mov ecx, esi
mov dword [r15 + 0x18], eax
mov eax, dword [rbp - 0x14]
test eax, eax
mov byte [r15 + 0x26], sil
sete cl
mov dword [r15 + 0x50], esi
test eax, eax
setne al
mov byte [r15 + 0x25], al
cmp byte [r13 + r14*8], 0x45
jne 0x18003b426
test ecx, ecx
mov ecx, 1
je 0x18003b42f
mov r10d, dword [r13 + r14*8 + 8]
sub r10d, ecx
jmp 0x18003b434
test ecx, ecx
mov ecx, 1
je 0x18003b41c
mov r10d, dword [rsp + 0x44]
mov r15, qword [rsp + 0x58]
add r10d, ecx
mov dword [rsp + 0x44], r10d
mov r10, qword [rsp + 0x50]
mov rdi, qword [rsp + 0x48]
mov r14d, dword [rsp + 0x40]
jmp 0x1800388e6
movsxd rax, dword [r13 + r14*8 + 4]
mov esi, 1
imul rcx, rax, 0x38
mov rax, qword [rsp + 0x60]
test byte [rcx + rax + 8], sil
jmp 0x18003afab
cmp edi, 0x74
ja 0x18003c6db
je 0x18003c425
cmp edi, 0x61
ja 0x18003c05a
je 0x18003bf55
cmp edi, 0x57
ja 0x18003b8de
je 0x18003b4e6
mov ecx, edi
sub ecx, 0x4e
je 0x18003b680
sub ecx, 1
je 0x18003b680
sub ecx, 1
je 0x18003b680
sub ecx, 1
je 0x18003b680
sub ecx, 1
je 0x18003b680
sub ecx, 1
je 0x18003b680
sub ecx, 1
je 0x18003b541
sub ecx, 1
je 0x18003b4e6
cmp ecx, 1
jne 0x1800389e4
mov rdi, qword [rsp + 0x60]
movsxd rax, dword [r13 + r14*8 + 4]
imul rbx, rax, 0x38
movsxd rax, dword [r13 + r14*8 + 8]
imul rcx, rax, 0x38
movsxd rax, dword [r13 + r14*8 + 0xc]
add rbx, rdi
imul r10, rax, 0x38
add rcx, rdi
add r10, rdi
mov qword [rsp + 0x50], r10
mov al, byte [rcx + 8]
or al, byte [rbx + 8]
test al, 1
je 0x18003be4d
mov eax, 0x2460
test word [r10 + 8], ax
jne 0x18003ba82
mov ecx, 1
mov word [r10 + 8], cx
jmp 0x1800389e4
movsxd rax, dword [r13 + r14*8 + 8]
mov rdx, qword [rsp + 0x60]
movsxd rcx, dword [r13 + r14*8 + 4]
movsxd rbx, dword [r13 + r14*8 + 0xc]
imul r9, rax, 0x38
mov rax, qword [r12 + 0x60]
add r9, rdx
mov rsi, qword [rax + rcx*8]
cmp dil, 0x4b
jne 0x18003b573
imul rax, rbx, 0x38
mov rbx, qword [rax + rdx]
mov al, byte [r13 + r14*8 + 3]
mov ecx, 1
test cl, al
je 0x18003b58e
add dword [r12 + 0x90], ecx
mov al, byte [r13 + r14*8 + 3]
test r11b, al
je 0x18003b5a1
mov rdi, rbx
mov qword [rsp + 0x48], rbx
mov qword [r15 + 0x30], rbx
jmp 0x18003b5a6
mov rdi, qword [rsp + 0x48]
test byte [r9 + 8], cl
je 0x18003b5b8
xor ecx, ecx
mov qword [r9 + 0x10], rcx
mov dword [r9 + 0xc], ecx
jmp 0x18003b5ba
xor ecx, ecx
movzx eax, byte [r13 + r14*8 + 3]
mov edx, 0x10
test dl, al
je 0x18003b5ce
mov edx, dword [rsi + 0x18]
jmp 0x18003b5d0
mov edx, ecx
mov r8d, 0x4000
test word [r9 + 8], r8w
je 0x18003b5e0
mov ecx, dword [r9]
mov dword [rsp + 0x38], edx
mov r8, rbx
shr eax, 3
xor edx, edx
and eax, 1
mov dword [rsp + 0x30], eax
mov eax, dword [r9 + 0xc]
mov r9, qword [r9 + 0x10]
mov dword [rsp + 0x28], ecx
mov rcx, qword [rsi]
mov dword [rsp + 0x20], eax
call fcn.180030108
xor r8d, r8d
mov dword [rbp + 0x3a8], eax
mov byte [rsi + 0x26], r8b
mov ecx, eax
mov dword [rsi + 0x50], r8d
test eax, eax
jne 0x1800394eb
mov r10, qword [r15 + 0x108]
test r10, r10
je 0x1800394eb
mov r9, qword [r13 + r14*8 + 0x10]
test r9, r9
je 0x1800394eb
movsx rcx, byte [rsi + 0x24]
mov al, byte [r13 + r14*8 + 3]
mov r8, qword [r15 + 0x20]
and al, 4
shl rcx, 5
neg al
mov qword [rsp + 0x20], rbx
sbb edx, edx
mov r8, qword [rcx + r8]
and edx, 5
mov rcx, qword [r15 + 0x100]
add edx, 0x12
call r10
mov ecx, dword [rbp + 0x3a8]
jmp 0x1800394eb
movsxd rax, dword [r13 + r14*8 + 4]
mov ecx, 1
mov r9, qword [rsp + 0x60]
imul rsi, rax, 0x38
movsxd rax, dword [r13 + r14*8 + 0xc]
imul rbx, rax, 0x38
add rsi, r9
add rbx, r9
movzx r15d, word [rsi + 8]
movzx edi, word [rbx + 8]
mov al, dil
or al, r15b
test cl, al
mov al, byte [r13 + r14*8 + 3]
je 0x18003b753
xor edx, edx
test al, al
jns 0x18003b6e7
movzx eax, di
xor r8d, r8d
and ax, r15w
bt ax, r8w
jae 0x18003b6e0
bt di, 8
jae 0x18003b839
mov edx, ecx
jmp 0x18003b839
mov r15, qword [rsp + 0x58]
test al, 0x20
je 0x18003b724
movsxd rax, dword [r13 + r14*8 + 8]
imul r10, rax, 0x38
mov eax, 0xbe01
add r10, r9
mov qword [rsp + 0x50], r10
and word [r10 + 8], ax
or word [r10 + 8], cx
mov ecx, dword [rbp + 0x3a8]
mov esi, 1
lea r9d, [rsi + 7]
jmp 0x180038c43
mov rdi, qword [rsp + 0x48]
mov r9d, 0x10
test r9b, al
mov r9d, 8
je 0x18003cfb8
mov esi, dword [r13 + r14*8 + 8]
sub esi, ecx
mov dword [rsp + 0x44], esi
mov esi, 1
jmp 0x18003a3a2
and al, 0x47
cmp al, 0x43
jb 0x18003b78e
mov al, r15b
movzx ecx, di
and al, 0xe
cmp al, r11b
jne 0x18003b77a
xor edx, edx
mov rcx, rsi
call fcn.180038680
movzx ecx, word [rbx + 8]
mov r11d, 2
and cl, 0xe
cmp cl, r11b
jne 0x18003b7d8
xor edx, edx
mov rcx, rbx
call fcn.180038680
jmp 0x18003b7d8
cmp al, 0x42
jne 0x18003b7d8
movzx eax, di
test r11b, r15b
jne 0x18003b7be
test r15b, 0xc
je 0x18003b7be
mov dl, byte [rbp + 0x3a0]
mov r8b, cl
mov rcx, rsi
call fcn.180032b40
movzx eax, word [rbx + 8]
mov ecx, 1
lea r11d, [rcx + 1]
test r11b, al
jne 0x18003b7d8
test al, 0xc
je 0x18003b7d8
mov dl, byte [rbp + 0x3a0]
mov r8b, cl
mov rcx, rbx
call fcn.180032b40
mov eax, 0x4000
test word [rsi + 8], ax
je 0x18003b7f9
mov rcx, rsi
call fcn.180032a90
mov eax, 0xbfff
and r15w, ax
mov eax, 0x4000
test word [rbx + 8], ax
je 0x18003b80f
mov rcx, rbx
call fcn.180032a90
mov eax, 0xbfff
and di, ax
mov rax, qword [rsp + 0x58]
xor ecx, ecx
cmp byte [rax + 0x51], cl
jne 0x18003daca
mov r8, qword [r13 + r14*8 + 0x10]
mov rdx, rsi
mov rcx, rbx
call fcn.1800368e4
mov r9, qword [rsp + 0x60]
mov edx, eax
xor r8d, r8d
movzx eax, byte [r13 + r14*8]
sub eax, 0x4e
je 0x18003b87d
sub eax, 1
je 0x18003b873
sub eax, 1
je 0x18003b869
sub eax, 1
je 0x18003b85f
cmp eax, 1
je 0x18003b85a
not edx
shr edx, 0x1f
jmp 0x18003b887
test edx, edx
mov eax, r8d
setle al
jmp 0x18003b885
test edx, edx
mov eax, r8d
setg al
jmp 0x18003b885
test edx, edx
mov eax, r8d
sete al
jmp 0x18003b885
test edx, edx
mov eax, r8d
setne al
mov edx, eax
test byte [r13 + r14*8 + 3], 0x20
je 0x18003b8bc
movsxd rax, dword [r13 + r14*8 + 8]
mov r11d, 4
imul r10, rax, 0x38
mov eax, 0xbe04
add r10, r9
mov qword [rsp + 0x50], r10
and word [r10 + 8], ax
or word [r10 + 8], r11w
mov eax, edx
mov qword [r10], rax
jmp 0x18003b8d0
mov r10, qword [rsp + 0x50]
test edx, edx
je 0x18003b8d0
mov ecx, dword [r13 + r14*8 + 8]
dec ecx
mov dword [rsp + 0x44], ecx
mov word [rsi + 8], r15w
mov word [rbx + 8], di
jmp 0x180039d88
sub edi, 0x58
je 0x18003b4e6
sub edi, 1
je 0x18003bbc8
sub edi, 1
je 0x18003bbc8
sub edi, 1
je 0x18003bbc8
sub edi, 1
je 0x18003bbc8
sub edi, 1
je 0x18003bbc8
sub edi, 1
je 0x18003ba3e
sub edi, 1
je 0x18003b992
cmp edi, 1
jne 0x1800389e4
movsxd rax, dword [r13 + r14*8 + 4]
imul rbx, rax, 0x38
movsxd rax, dword [r13 + r14*8 + 8]
add rbx, qword [rsp + 0x60]
imul r10, rax, 0x38
mov eax, 0x2460
add r10, qword [rsp + 0x60]
mov qword [rsp + 0x50], r10
test word [r10 + 8], ax
je 0x18003b969
mov rcx, r10
call fcn.180032cec
mov r10, qword [rsp + 0x50]
mov ecx, edi
jmp 0x18003b96e
mov word [r10 + 8], cx
test byte [rbx + 8], cl
jne 0x180039395
mov r11d, 4
mov rcx, rbx
mov word [r10 + 8], r11w
call fcn.180032db4
not rax
jmp 0x18003ab79
movsxd rcx, dword [r13 + r14*8 + 4]
mov rax, qword [r12 + 0x60]
mov rbx, qword [rax + rcx*8]
mov rcx, qword [rbx]
call fcn.180030364
xor r8d, r8d
mov dword [rbp + 0x3a8], eax
mov dword [rbx + 0x50], r8d
mov ecx, eax
test eax, eax
jne 0x18003ba09
mov r10, qword [r15 + 0x108]
test r10, r10
je 0x18003ba09
mov r9, qword [r13 + r14*8 + 0x10]
test r9, r9
je 0x18003ba09
lea r11d, [rax + 4]
test byte [rbx + 0x28], r11b
je 0x18003ba09
movsx rcx, byte [rbx + 0x24]
lea edx, [r11 + 5]
mov r8, qword [r15 + 0x20]
mov rax, qword [rbx + 0x40]
shl rcx, 5
mov qword [rsp + 0x20], rax
mov r8, qword [rcx + r8]
mov rcx, qword [r15 + 0x100]
call r10
mov ecx, dword [rbp + 0x3a8]
mov r10, qword [rsp + 0x50]
mov esi, 1
test byte [r13 + r14*8 + 8], sil
mov r8d, dword [rsp + 0x44]
mov rdi, qword [rsp + 0x48]
mov r14d, dword [rsp + 0x40]
lea r9d, [rsi + 7]
je 0x180038c4d
add dword [r12 + 0x90], esi
jmp 0x180038c4d
mov r9, qword [rsp + 0x60]
movsxd rax, dword [r13 + r14*8 + 4]
imul rdi, rax, 0x38
movsxd rax, dword [r13 + r14*8 + 8]
imul rbx, rax, 0x38
movsxd rax, dword [r13 + r14*8 + 0xc]
add rdi, r9
imul r10, rax, 0x38
mov al, byte [rdi + 8]
add rbx, r9
add r10, r9
mov qword [rsp + 0x50], r10
or al, byte [rbx + 8]
test cl, al
je 0x18003ba99
mov eax, 0x2460
test word [r10 + 8], ax
je 0x18003ba8f
mov rcx, r10
call fcn.180032cec
jmp 0x180038cea
mov word [r10 + 8], cx
jmp 0x18003b710
mov esi, 0x4000
test word [rdi + 8], si
je 0x18003bab4
mov rcx, rdi
call fcn.180032a90
test eax, eax
jne 0x18003dad2
test word [rbx + 8], si
je 0x18003baca
mov rcx, rbx
call fcn.180032a90
test eax, eax
jne 0x18003dad2
mov sil, byte [rbp + 0x3a0]
mov eax, 0x12
test byte [rdi + 8], al
jne 0x18003baf6
xor r8d, r8d
mov dl, sil
mov rcx, rdi
call fcn.180032b40
test eax, eax
jne 0x18003dad2
mov eax, 0x12
test byte [rbx + 8], al
jne 0x18003bb11
xor r8d, r8d
mov dl, sil
mov rcx, rbx
call fcn.180032b40
test eax, eax
jne 0x18003dad2
mov esi, dword [rdi + 0xc]
add esi, dword [rbx + 0xc]
movsxd rax, dword [r15 + 0x68]
movsxd r14, esi
cmp r14, rax
jg 0x18003da3d
mov rcx, qword [rsp + 0x50]
lea edx, [rsi + 2]
xor eax, eax
cmp qword [rsp + 0x50], rbx
mov r8d, eax
sete r8b
call fcn.1800328c4
test eax, eax
jne 0x18003dad2
mov rax, qword [rsp + 0x50]
mov ecx, 0xbe02
mov r8d, 2
and word [rax + 8], cx
or word [rax + 8], r8w
cmp rax, rbx
je 0x18003bb7e
movsxd r8, dword [rbx + 0xc]
mov rdx, qword [rbx + 0x10]
mov rcx, qword [rax + 0x10]
call fcn.1800aaec0
mov rax, qword [rsp + 0x50]
movsxd rcx, dword [rbx + 0xc]
add rcx, qword [rax + 0x10]
movsxd r8, dword [rdi + 0xc]
mov rdx, qword [rdi + 0x10]
call fcn.1800aaec0
mov r10, qword [rsp + 0x50]
xor ecx, ecx
mov rax, qword [r10 + 0x10]
mov byte [r14 + rax], cl
mov rax, qword [r10 + 0x10]
mov byte [rax + r14 + 1], cl
mov eax, 0x200
or word [r10 + 8], ax
mov al, byte [rbp + 0x3a0]
mov byte [r10 + 0xa], al
mov dword [r10 + 0xc], esi
jmp 0x180039395
movsxd rax, dword [r13 + r14*8 + 4]
imul rbx, rax, 0x38
add rbx, qword [rsp + 0x60]
mov rcx, rbx
call fcn.1800387c4
movsxd rcx, dword [r13 + r14*8 + 8]
movzx r12d, ax
imul rdi, rcx, 0x38
add rdi, qword [rsp + 0x60]
mov rcx, rdi
call fcn.1800387c4
movsxd rcx, dword [r13 + r14*8 + 0xc]
movzx esi, ax
imul r10, rcx, 0x38
mov cl, byte [rdi + 8]
mov eax, 1
add r10, qword [rsp + 0x60]
or cl, byte [rbx + 8]
mov qword [rsp + 0x50], r10
test al, cl
jne 0x18003be1e
mov cl, sil
lea r11d, [rax + 3]
and cl, r12b
test r11b, cl
je 0x18003bd2c
movzx ecx, byte [r13 + r14*8]
mov r15b, al
mov rdx, qword [rdi]
mov r8, qword [rbx]
mov qword [rbp - 0x38], rdx
sub ecx, 0x59
je 0x18003bccb
sub ecx, eax
je 0x18003bcb4
sub ecx, eax
je 0x18003bca6
cmp ecx, eax
je 0x18003bc7a
test r8, r8
je 0x18003be19
cmp r8, 0xffffffffffffffff
cmove r8, rax
mov rax, rdx
cqo
idiv r8
mov qword [rbp - 0x38], rdx
jmp 0x18003bd0c
test r8, r8
je 0x18003be19
cmp r8, 0xffffffffffffffff
jne 0x18003bc9c
movabs rax, 0x8000000000000000
cmp rdx, rax
je 0x18003bd31
mov rax, rdx
cqo
idiv r8
jmp 0x18003bd08
mov rdx, r8
lea rcx, [rbp - 0x38]
call fcn.18001dd7c
jmp 0x18003bcc0
mov rdx, r8
lea rcx, [rbp - 0x38]
call fcn.18001dd4c
test eax, eax
jne 0x18003bd31
mov r10, qword [rsp + 0x50]
jmp 0x18003bd0c
test r8, r8
js 0x18003bce9
test rdx, rdx
jle 0x18003bd04
movabs rax, 0x7fffffffffffffff
sub rax, rdx
cmp rax, r8
jge 0x18003bd04
jmp 0x18003bd31
test rdx, rdx
jns 0x18003bd04
movabs rcx, 0x8000000000000001
lea rax, [r8 + 1]
sub rcx, rdx
cmp rcx, rax
jg 0x18003bd31
lea rax, [rdx + r8]
mov qword [rbp - 0x38], rax
mov rax, qword [rbp - 0x38]
mov qword [r10], rax
mov eax, 0xbe04
and word [r10 + 8], ax
mov eax, 4
or word [r10 + 8], ax
jmp 0x18003a74d
xor eax, eax
mov r15b, al
mov rcx, rbx
call fcn.180032e30
mov rcx, rdi
movaps xmm6, xmm0
call fcn.180032e30
movzx ecx, byte [r13 + r14*8]
movaps xmm3, xmm0
sub ecx, 0x59
je 0x18003bdae
sub ecx, 1
je 0x18003bda8
sub ecx, 1
je 0x18003bda2
cmp ecx, 1
je 0x18003bd94
cvttsd2si rcx, xmm6
cvttsd2si rax, xmm0
mov qword [rbp - 0x38], rax
test rcx, rcx
je 0x18003be14
cmp rcx, 0xffffffffffffffff
mov edx, 1
xorps xmm3, xmm3
cmove rcx, rdx
cqo
idiv rcx
cvtsi2sd xmm3, rdx
jmp 0x18003bdb2
ucomisd xmm6, xmm7
jp 0x18003bd9c
je 0x18003be14
divsd xmm3, xmm6
jmp 0x18003bdb2
mulsd xmm3, xmm6
jmp 0x18003bdb2
subsd xmm3, xmm6
jmp 0x18003bdb2
addsd xmm3, xmm6
mov r10, qword [rsp + 0x50]
movsd qword [rbp - 0x78], xmm3
movsd xmm0, qword [rbp - 0x78]
movsd qword [rbp - 0x50], xmm0
movsd xmm2, qword [rbp - 0x78]
movsd xmm1, qword [rbp - 0x50]
ucomisd xmm2, xmm1
jp 0x18003be19
jne 0x18003be19
mov r9d, 8
movsd qword [r10], xmm3
mov eax, 0xbe08
or sil, r12b
and word [r10 + 8], ax
or word [r10 + 8], r9w
test r9b, sil
jne 0x18003d69d
test r15b, r15b
jne 0x18003d69d
mov rcx, r10
call fcn.180032e80
jmp 0x18003a317
mov r10, qword [rsp + 0x50]
mov r15, qword [rsp + 0x58]
mov eax, 0x2460
test word [r10 + 8], ax
je 0x18003be37
mov rcx, r10
call fcn.180032cec
jmp 0x1800397e8
mov r12, qword [rbp + 0x390]
mov ecx, 1
mov word [r10 + 8], cx
jmp 0x180039395
call fcn.180032db4
mov rcx, rbx
mov qword [rbp - 0x70], rax
call fcn.180032db4
mov dil, byte [r13 + r14*8]
mov rbx, rax
cmp dil, 0x55
jne 0x18003be75
and qword [rbp - 0x70], rax
jmp 0x18003bf30
cmp dil, 0x56
jne 0x18003be84
or qword [rbp - 0x70], rbx
jmp 0x18003bf30
xor esi, esi
test rbx, rbx
je 0x18003bf30
jns 0x18003beb0
mov rcx, rbx
mov eax, 0xaf
sub al, dil
neg rcx
mov dil, al
mov rax, rbx
cmp rax, 0xffffffffffffffc0
lea ebx, [rsi + 0x40]
cmovg rbx, rcx
mov eax, 0x40
cmp rbx, rax
jl 0x18003bed5
cmp qword [rbp - 0x70], rsi
jge 0x18003becc
cmp dil, 0x57
je 0x18003becc
or rax, 0xffffffffffffffff
jmp 0x18003becf
mov rax, rsi
mov qword [rbp - 0x70], rax
jmp 0x18003bf30
mov r14d, 8
lea rdx, [rbp - 0x70]
mov r8d, r14d
lea rcx, [rbp - 0x28]
call fcn.1800aaec0
mov rcx, rbx
cmp dil, 0x57
jne 0x18003befa
shl qword [rbp - 0x28], cl
jmp 0x18003bf20
mov r8, qword [rbp - 0x28]
shr r8, cl
mov qword [rbp - 0x28], r8
cmp qword [rbp - 0x70], rsi
jge 0x18003bf20
or rdx, 0xffffffffffffffff
mov ecx, 0x40
sub cl, bl
shl rdx, cl
or rdx, r8
mov qword [rbp - 0x28], rdx
mov r8, r14
lea rdx, [rbp - 0x28]
lea rcx, [rbp - 0x70]
call fcn.1800aaec0
mov rax, qword [rbp - 0x70]
mov r10, qword [rsp + 0x50]
mov qword [r10], rax
mov eax, 0xbe04
and word [r10 + 8], ax
mov eax, 4
or word [r10 + 8], ax
jmp 0x180039395
mov rdx, qword [r13 + r14*8 + 0x10]
xor edi, edi
mov byte [r13 + r14*8], 0x1b
mov rax, rdx
test rdx, rdx
jne 0x18003bf6e
mov eax, edi
jmp 0x18003bf82
cmp byte [rdx], dil
je 0x18003bf7b
add rax, rcx
cmp byte [rax], dil
jne 0x18003bf73
sub eax, edx
and eax, 0x3fffffff
mov bl, byte [rbp + 0x3a0]
mov dword [r13 + r14*8 + 4], eax
cmp bl, cl
je 0x18003c027
mov r9b, 1
mov qword [rsp + 0x20], rdi
or r8d, 0xffffffff
mov rcx, r10
call fcn.1800333d0
mov ecx, 0x12
mov dword [rbp + 0x3a8], eax
cmp eax, ecx
je 0x18003da3d
mov r10, qword [rsp + 0x50]
lea eax, [rcx - 0x10]
test byte [r10 + 8], al
je 0x18003bfe7
cmp byte [r10 + 0xa], bl
je 0x18003bfe7
mov dl, bl
mov rcx, r10
call fcn.18001c8c8
test eax, eax
jne 0x18003dad2
mov r10, qword [rsp + 0x50]
mov eax, 0x800
mov dword [r10 + 0x20], edi
or word [r10 + 8], ax
cmp byte [r13 + r14*8 + 1], 0xff
jne 0x18003c00f
mov rdx, qword [r13 + r14*8 + 0x10]
mov rcx, r15
call fcn.18001acf0
mov r10, qword [rsp + 0x50]
mov byte [r13 + r14*8 + 1], 0xff
mov rax, qword [r10 + 0x10]
mov qword [r13 + r14*8 + 0x10], rax
mov eax, dword [r10 + 0xc]
mov dword [r13 + r14*8 + 4], eax
cmp eax, dword [r15 + 0x68]
jg 0x18003da3d
jmp 0x18003c039
mov bl, byte [rbp + 0x3a0]
mov eax, 0xa02
mov word [r10 + 8], ax
mov rax, qword [r13 + r14*8 + 0x10]
mov qword [r10 + 0x10], rax
mov eax, dword [r13 + r14*8 + 4]
mov dword [r10 + 0xc], eax
jmp 0x180039a96
cmp edi, 0x6b
ja 0x18003c3e5
je 0x18003c0b2
sub edi, 0x62
je 0x18003c3c6
sub edi, 1
je 0x18003c384
sub edi, 1
je 0x18003c33e
sub edi, 1
je 0x18003c271
sub edi, 1
je 0x18003c271
sub edi, 1
je 0x18003c188
sub edi, 1
je 0x18003c14f
sub edi, 1
je 0x18003c0ec
cmp edi, 1
jne 0x1800389e4
inc dword [r12 + 0xa8]
movsxd rcx, dword [r13 + r14*8 + 4]
lea rdx, [rbp - 0x60]
mov rax, qword [r12 + 0x60]
xor edi, edi
mov rbx, qword [rax + rcx*8]
mov dword [rbp - 0x60], 1
cmp qword [rbx + 0x48], rdi
je 0x18003c689
mov rcx, rbx
call fcn.18003f9a8
jmp 0x18003c698
movsxd rcx, dword [r13 + r14*8 + 4]
lea rdx, [rbp - 0x40]
mov rax, qword [r12 + 0x60]
xor edi, edi
mov rbx, qword [rax + rcx*8]
mov rcx, qword [rbx]
mov dword [rbp - 0x40], edi
call fcn.18002c80c
mov dword [rbp + 0x3a8], eax
mov al, byte [rbp - 0x40]
mov byte [rbx + 0x25], al
mov byte [rbx + 0x26], dil
mov dword [rbx + 0x50], edi
mov eax, dword [r13 + r14*8 + 8]
test eax, eax
jle 0x180038cea
cmp dword [rbp - 0x40], edi
lea esi, [rdi + 1]
mov r10, qword [rsp + 0x50]
lea r9d, [rdi + 8]
mov rdi, qword [rsp + 0x48]
mov r14d, dword [rsp + 0x40]
je 0x18003983b
jmp 0x180039834
movsxd rcx, dword [r13 + r14*8 + 4]
xor edi, edi
mov rax, qword [r12 + 0x60]
mov rdx, qword [rax + rcx*8]
mov rbx, qword [rdx]
mov byte [rdx + 0x25], 1
mov dword [rdx + 0x50], edi
test rbx, rbx
je 0x1800389e4
mov rcx, qword [rbx + 0x58]
call fcn.18001ac0c
mov qword [rbx + 0x58], rdi
mov byte [rbx + 0x6d], dil
jmp 0x180038cea
movsxd rcx, dword [r13 + r14*8 + 4]
xor r14d, r14d
mov rax, qword [r12 + 0x60]
mov rbx, qword [rax + rcx*8]
cmp byte [rbx + 0x25], r14b
jne 0x18003b532
cmp byte [rbx + 0x26], r14b
je 0x18003c1b8
mov rax, qword [rbx + 0x40]
mov ecx, dword [rbp + 0x3a8]
jmp 0x18003c265
mov rcx, qword [rbx + 0x30]
test rcx, rcx
je 0x18003c1f0
mov rbx, qword [rcx]
lea rdx, [rbp + 0x20]
mov rax, qword [rbx]
call qword [rax + 0x60]
mov rdx, rbx
mov rcx, r12
mov dword [rbp + 0x3a8], eax
call fcn.180037364
mov rax, qword [rbp + 0x20]
mov ecx, dword [rbp + 0x3a8]
mov r10, qword [rsp + 0x50]
jmp 0x18003c269
mov rax, qword [rbx]
mov esi, 1
cmp byte [rax + 0x6d], sil
je 0x18003c219
mov rcx, rbx
call fcn.180036244
mov dword [rbp + 0x3a8], eax
test eax, eax
jne 0x18003d98c
lea edx, [rsi + 3]
jmp 0x18003c220
mov dword [rbp + 0x3a8], r14d
cmp byte [rbx + 0x25], r14b
je 0x18003c248
mov r10, qword [rsp + 0x50]
mov word [r10 + 8], si
inc dword [rsp + 0x44]
mov ecx, 1
mov rdi, qword [rsp + 0x48]
mov r14d, dword [rsp + 0x40]
jmp 0x1800388eb
mov rbx, qword [rbx]
mov rcx, rbx
call fcn.18002bf58
mov rax, qword [rbx + 0x30]
mov ecx, r14d
mov r10, qword [rsp + 0x50]
mov dword [rbp + 0x3a8], ecx
mov qword [rbp + 0x20], rax
mov qword [r10], rax
jmp 0x18003939b
movsxd rcx, dword [r13 + r14*8 + 4]
movsxd rax, dword [r13 + r14*8 + 8]
imul rax, rax, 0x38
add rax, qword [rsp + 0x60]
mov qword [rsp + 0x50], rax
mov rax, qword [r12 + 0x60]
mov rsi, qword [rax + rcx*8]
mov rdi, qword [rsi]
mov rcx, rdi
test byte [rsi + 0x28], dl
jne 0x18003c2b5
call fcn.18002bf58
movsxd rax, dword [r15 + 0x68]
mov rbx, qword [rdi + 0x30]
cmp rbx, rax
jg 0x18003da3d
jmp 0x18003c2c7
call fcn.18002bf58
mov ebx, dword [rdi + 0x40]
cmp ebx, dword [r15 + 0x68]
ja 0x18003da3d
mov r14, qword [rsp + 0x50]
mov edx, 0x20
cmp ebx, edx
mov rcx, r14
cmova edx, ebx
call fcn.1800329f4
xor ecx, ecx
test eax, eax
jne 0x18003dad2
mov r9, qword [r14 + 0x10]
mov eax, 0xbe10
and word [r14 + 8], ax
xor edx, edx
lea eax, [rcx + 0x10]
mov dword [r14 + 0xc], ebx
or word [r14 + 8], ax
mov r8d, ebx
lea eax, [rcx + 4]
test byte [rsi + 0x28], al
jne 0x18003c31d
mov dword [rsp + 0x20], ecx
mov rcx, rdi
call fcn.18002c130
jmp 0x18003c325
mov rcx, rdi
call fcn.18002c444
mov esi, 1
mov dword [rbp + 0x3a8], eax
mov byte [r14 + 0xa], sil
mov ecx, eax
mov r10, r14
jmp 0x180038c38
movsxd rax, dword [r13 + r14*8 + 8]
movsxd rcx, dword [r13 + r14*8 + 4]
imul rdx, rax, 0x38
mov rax, qword [r12 + 0x60]
add rdx, qword [rsp + 0x60]
mov qword [rsp + 0x50], rdx
mov rcx, qword [rax + rcx*8]
call fcn.18003fac4
movsxd rcx, dword [r13 + r14*8 + 0xc]
xor r8d, r8d
mov dword [rbp + 0x3a8], eax
mov rax, qword [r12 + 0x60]
mov rcx, qword [rax + rcx*8]
mov dword [rcx + 0x50], r8d
jmp 0x180038cea
movsxd rcx, dword [r13 + r14*8 + 4]
lea r9, [rbp - 0x10]
mov rax, qword [r12 + 0x60]
xor edi, edi
mov r8d, dword [r13 + r14*8 + 0x10]
mov rcx, qword [rax + rcx*8]
movsxd rax, dword [r13 + r14*8 + 0xc]
imul rdx, rax, 0x38
mov dword [rbp - 0x10], edi
add rdx, qword [rsp + 0x60]
call fcn.18003fb78
cmp dword [rbp - 0x10], edi
lea esi, [rdi + 1]
mov ecx, eax
mov dword [rbp + 0x3a8], eax
jmp 0x18003aefb
mov eax, dword [r12 + 0x90]
add dword [r15 + 0x64], eax
xor ecx, ecx
mov dword [r15 + 0x60], eax
mov dword [r12 + 0x90], ecx
jmp 0x1800389e4
sub edi, 0x6c
je 0x18003c0ba
sub edi, 1
je 0x18003c5c8
sub edi, 1
je 0x18003c5c8
sub edi, 1
je 0x18003c53a
sub edi, 1
je 0x18003c4a4
sub edi, 1
je 0x18003c425
sub edi, 1
je 0x18003c425
cmp edi, 1
jne 0x1800389e4
movsxd rcx, dword [r13 + r14*8 + 4]
lea r9, [rbp - 0x5c]
mov rax, qword [r12 + 0x60]
lea r8, [rbp + 0x148]
mov rdx, qword [rax + rcx*8]
mov rax, qword [rdx + 0x10]
mov qword [rbp + 0x148], rax
movzx eax, word [r13 + r14*8 + 0x10]
mov word [rbp + 0x150], ax
cmp byte [r13 + r14*8], 0x73
sbb al, al
xor edi, edi
mov byte [rbp + 0x152], al
movsxd rax, dword [r13 + r14*8 + 0xc]
imul rcx, rax, 0x38
mov dword [rbp - 0x5c], edi
add rcx, qword [rsp + 0x60]
mov qword [rbp + 0x158], rcx
mov rcx, r15
call fcn.180037284
lea ecx, [rdi + 1]
mov dword [rbp + 0x3a8], eax
mov eax, dword [rbp - 0x5c]
test byte [r13 + r14*8], cl
je 0x18003c6ac
neg eax
jmp 0x18003c6ae
movsxd rcx, dword [r13 + r14*8 + 4]
mov rax, qword [r12 + 0x60]
mov rbx, qword [rax + rcx*8]
mov ecx, 1
mov rdi, qword [rbx]
mov word [r10 + 8], cx
mov rax, qword [rbx]
cmp byte [rax + 0x6d], cl
je 0x18003c4ea
mov rcx, rbx
call fcn.180036244
xor r14d, r14d
mov dword [rbp + 0x3a8], eax
test eax, eax
jne 0x18003d98c
mov r10, qword [rsp + 0x50]
lea edx, [rax + 4]
jmp 0x18003c4f4
xor r14d, r14d
mov dword [rbp + 0x3a8], r14d
cmp byte [rbx + 0x25], r14b
jne 0x18003c230
lea r8, [rbp + 0x48]
mov qword [rbp + 0x48], r14
mov rdx, rdi
mov rcx, r15
call fcn.180037138
mov dword [rbp + 0x3a8], eax
test eax, eax
jne 0x18003d98c
mov r10, qword [rsp + 0x50]
mov edx, 4
mov rax, qword [rbp + 0x48]
mov qword [r10], rax
mov word [r10 + 8], dx
jmp 0x18003c230
movsxd rcx, dword [r13 + r14*8 + 4]
lea rdx, [rbp + 0x128]
mov rax, qword [r12 + 0x60]
xor esi, esi
xor r9d, r9d
xor r8d, r8d
mov rbx, qword [rax + rcx*8]
mov rax, qword [rbx + 0x10]
mov rdi, qword [rbx]
mov qword [rbp + 0x128], rax
movzx eax, word [r13 + r14*8 + 0xc]
mov word [rbp + 0x130], ax
movsxd rax, dword [r13 + r14*8 + 8]
imul rcx, rax, 0x38
lea rax, [rbp + 0x30]
mov byte [rbp + 0x132], sil
add rcx, qword [rsp + 0x60]
mov qword [rbp + 0x138], rcx
mov rcx, rdi
mov qword [rsp + 0x20], rax
call fcn.18002c870
mov dword [rbp + 0x3a8], eax
mov ecx, eax
test eax, eax
jne 0x18003c5c0
cmp dword [rbp + 0x30], esi
jne 0x18003c5c0
mov rcx, rdi
call fcn.180030364
mov ecx, eax
mov dword [rbp + 0x3a8], eax
mov dword [rbx + 0x50], esi
jmp 0x180038c2e
mov rax, qword [r12 + 0x60]
movsxd rcx, dword [r13 + r14*8 + 4]
mov rdi, qword [rax + rcx*8]
movsxd rax, dword [r13 + r14*8 + 8]
imul rbx, rax, 0x38
mov rsi, qword [rdi]
mov eax, 1
add rbx, qword [rsp + 0x60]
test byte [r13 + r14*8 + 3], al
je 0x18003c5fb
add dword [r12 + 0x90], eax
mov eax, 0x4000
test word [rbx + 8], ax
je 0x18003c61e
mov rcx, rbx
call fcn.180032a90
mov dword [rbp + 0x3a8], eax
mov ecx, eax
test eax, eax
jne 0x180038c2e
xor ecx, ecx
cmp qword [rdi + 0x48], rcx
je 0x18003c636
mov rdx, rbx
mov rcx, rdi
call fcn.18003eed4
jmp 0x18003961a
mov eax, 0x10
test byte [r13 + r14*8 + 3], al
je 0x18003c647
mov eax, dword [rdi + 0x18]
jmp 0x18003c649
mov eax, ecx
movsxd r8, dword [rbx + 0xc]
lea r9, [0x1800f8470]
mov rdx, qword [rbx + 0x10]
mov dword [rsp + 0x38], eax
mov eax, dword [r13 + r14*8 + 0xc]
mov dword [rsp + 0x30], eax
mov dword [rsp + 0x28], ecx
mov dword [rsp + 0x20], ecx
mov rcx, rsi
call fcn.180030108
xor r8d, r8d
mov dword [rbp + 0x3a8], eax
mov dword [rdi + 0x50], r8d
mov ecx, eax
jmp 0x180038c2e
mov rcx, qword [rbx]
call fcn.18002c7d0
mov byte [rbx + 0x26], dil
mov dword [rbx + 0x50], edi
mov dword [rbp + 0x3a8], eax
mov al, byte [rbp - 0x60]
mov byte [rbx + 0x25], al
cmp dword [rbp - 0x60], edi
jmp 0x18003a381
inc eax
mov rdi, qword [rsp + 0x48]
mov esi, 1
mov dword [rbp - 0x5c], eax
lea r9d, [rsi + 7]
test eax, eax
jle 0x18003c6d0
mov r10d, dword [r13 + r14*8 + 8]
sub r10d, ecx
mov dword [rsp + 0x44], r10d
mov ecx, dword [rbp + 0x3a8]
jmp 0x18003af15
cmp edi, 0x87
ja 0x18003cfd2
je 0x18003cf90
cmp edi, 0x7e
ja 0x18003ca81
je 0x18003ca6a
mov ecx, edi
sub ecx, 0x75
je 0x18003c97f
sub ecx, 1
je 0x18003c8ee
sub ecx, 1
je 0x18003c8b4
sub ecx, 1
je 0x18003c864
sub ecx, 1
je 0x18003c864
sub ecx, 1
je 0x18003c783
sub ecx, 1
je 0x18003c771
sub ecx, 1
je 0x18003c75a
cmp ecx, 1
jne 0x1800389e4
mov r8, qword [r13 + r14*8 + 0x10]
mov rcx, r15
mov edx, dword [r13 + r14*8 + 4]
call fcn.180049eec
jmp 0x180038cea
mov r8, qword [r13 + r14*8 + 0x10]
mov rcx, r15
mov edx, dword [r13 + r14*8 + 4]
call fcn.18004a3ac
jmp 0x180038cea
mov edx, dword [r13 + r14*8 + 4]
mov rcx, r15
call fcn.180048b28
jmp 0x18003961a
movsxd rcx, dword [r13 + r14*8 + 4]
lea rax, [r12 + 0x48]
mov r8, qword [r15 + 0x20]
lea r9, str.sqlite_temp_master
mov qword [rbp + 0xa8], rax
lea rdx, str.SELECT_name__rootpage__sql_FROM__q._s_WHERE__s_ORDER_BY_rowid
cmp ecx, 1
mov dword [rbp + 0xb0], ecx
lea rax, str.sqlite_master
mov qword [rbp + 0xa0], r15
cmovne r9, rax
mov rax, qword [r13 + r14*8 + 0x10]
shl rcx, 5
mov qword [rsp + 0x20], rax
mov r8, qword [rcx + r8]
mov rcx, r15
call fcn.18001c534
xor edi, edi
mov rbx, rax
test rax, rax
jne 0x18003c7f1
mov dword [rbp + 0x3a8], 7
jmp 0x18003c848
lea r9, [rbp + 0xa0]
mov byte [r15 + 0xa1], 1
lea r8, [fcn.18005b884]
mov dword [rbp + 0xb4], edi
mov rdx, rbx
mov qword [rsp + 0x20], rdi
mov rcx, r15
call fcn.180057c58
test eax, eax
mov rdx, rbx
mov rcx, r15
cmove eax, dword [rbp + 0xb4]
mov dword [rbp + 0x3a8], eax
call fcn.18001acf0
mov ecx, dword [rbp + 0x3a8]
mov byte [r15 + 0xa1], dil
test ecx, ecx
je 0x18003c856
mov rcx, r15
call fcn.18004a0b0
mov ecx, dword [rbp + 0x3a8]
cmp ecx, 7
je 0x18003dad2
jmp 0x180038c2e
movsxd rcx, dword [r13 + r14*8 + 4]
xor esi, esi
mov rax, qword [r15 + 0x20]
shl rcx, 5
mov dword [rbp - 0xc], esi
mov rbx, qword [rcx + rax + 8]
mov rcx, rbx
call fcn.180028530
mov r8d, esi
lea rdx, [rbp - 0xc]
cmp dil, 0x79
mov rcx, rbx
setne r8b
inc r8d
call fcn.180030624
mov rcx, rbx
mov dword [rbp + 0x3a8], eax
call fcn.1800285e0
movsxd rax, dword [rbp - 0xc]
jmp 0x18003ab79
movsxd rcx, dword [r13 + r14*8 + 4]
mov rax, qword [r12 + 0x60]
mov rcx, qword [rax + rcx*8]
mov rdx, qword [rcx + 0x48]
test rdx, rdx
je 0x18003c8d8
mov rcx, r15
call fcn.18003e448
jmp 0x180038cea
mov rcx, qword [rcx]
xor r8d, r8d
mov edx, dword [rcx + 0x60]
mov rcx, qword [rcx]
call fcn.180030a4c
jmp 0x18003961a
mov eax, dword [r13 + r14*8 + 0xc]
xor edi, edi
mov rcx, qword [r15 + 0x20]
neg eax
mov edx, dword [r13 + r14*8 + 4]
lea rax, [rbp - 8]
sbb r8, r8
mov dword [rbp - 8], edi
and r8, rax
movsxd rax, dword [r13 + r14*8 + 8]
shl rax, 5
mov rcx, qword [rax + rcx + 8]
call fcn.180030a4c
mov ecx, eax
mov dword [rbp + 0x3a8], eax
cmp dword [r13 + r14*8 + 0xc], edi
je 0x180038c2e
movsxd rdx, dword [rbp - 8]
lea esi, [rdi + 1]
add dword [r12 + 0x90], edx
lea r9d, [rsi + 7]
movsxd rax, dword [r13 + r14*8 + 0xc]
mov r10, qword [rsp + 0x50]
mov r8d, dword [rsp + 0x44]
mov rdi, qword [rsp + 0x48]
mov r14d, dword [rsp + 0x40]
test eax, eax
jle 0x180038c4d
mov rbx, qword [rsp + 0x60]
imul rcx, rax, 0x38
add qword [rcx + rbx], rdx
mov ecx, dword [rbp + 0x3a8]
jmp 0x180038c4d
mov rax, qword [r15 + 8]
xor r8d, r8d
mov edx, r8d
test rax, rax
je 0x18003c9ca
cmp dword [rax + 0x44], 0xbdf20da3
jne 0x18003c9b6
mov ecx, dword [rax + 0x8c]
bt ecx, 9
jae 0x18003c9b6
and cl, 0xc
cmp cl, r9b
jae 0x18003c9b6
cmp dword [rax + 0x80], r8d
jl 0x18003c9b6
inc edx
mov rax, qword [rax + 0x58]
test rax, rax
jne 0x18003c98e
mov r12, qword [rbp + 0x390]
lea r11d, [rax + 2]
mov edi, 1
mov word [r10 + 8], di
cmp edx, edi
jg 0x18003d9eb
movsxd rsi, dword [r13 + r14*8 + 0xc]
mov rax, qword [r15 + 0x20]
mov rcx, rsi
mov ebx, dword [r13 + r14*8 + 4]
shl rcx, 5
mov dword [rbp - 0x20], r8d
mov rdi, qword [rcx + rax + 8]
mov rcx, rdi
call fcn.180028530
lea r8, [rbp - 0x20]
mov edx, ebx
mov rcx, rdi
call fcn.180030af8
mov rcx, rdi
mov dword [rbp + 0x3a8], eax
call fcn.1800285e0
mov r10, qword [rsp + 0x50]
mov eax, 4
movsxd r8, dword [rbp - 0x20]
mov ecx, dword [rbp + 0x3a8]
mov word [r10 + 8], ax
mov qword [r10], r8
test ecx, ecx
jne 0x18003939b
test r8d, r8d
je 0x18003939b
mov r9d, dword [r13 + r14*8 + 4]
mov edx, esi
mov rcx, r15
call fcn.18004c284
lea r14d, [rsi + 1]
mov byte [rbp + 0x398], r14b
jmp 0x180038cea
mov r8, qword [r13 + r14*8 + 0x10]
mov rcx, r15
mov edx, dword [r13 + r14*8 + 4]
call fcn.180064378
jmp 0x180038cea
sub edi, 0x7f
je 0x18003ce6e
sub edi, 1
je 0x18003ce32
sub edi, 1
je 0x18003cdd3
sub edi, 1
je 0x18003cd61
sub edi, 1
je 0x18003cb5a
sub edi, 1
je 0x18003cb2b
sub edi, 1
je 0x18003cb16
cmp edi, 1
jne 0x1800389e4
test dword [r15 + 0x2c], 0x1000000
je 0x18003cadc
movsxd rax, dword [r13 + r14*8 + 8]
add qword [r15 + 0x318], rax
jmp 0x1800389e4
mov ecx, dword [rbp + 0x3a8]
xor eax, eax
cmp dword [r13 + r14*8 + 4], eax
mov rdi, qword [rsp + 0x48]
lea esi, [rax + 1]
movsxd rax, dword [r13 + r14*8 + 8]
mov r14d, dword [rsp + 0x40]
je 0x18003cb09
add qword [r15 + 0x310], rax
jmp 0x180038c4d
add qword [r12 + 0xc8], rax
jmp 0x180038c4d
mov word [r10 + 8], r9w
mov rax, qword [r13 + r14*8 + 0x10]
mov rcx, qword [rax]
mov qword [r10], rcx
jmp 0x1800389e4
mov r8, qword [r12 + 0xf0]
movsxd rax, dword [r8 + 0x4c]
lea rcx, [rax + rax*2]
mov rax, qword [r8 + 0x10]
mov eax, dword [rax + rcx*8 + 4]
mov rcx, r10
add eax, dword [r13 + r14*8 + 4]
cdqe
imul rdx, rax, 0x38
add rdx, qword [r8 + 0x20]
jmp 0x180039cc0
movsxd rax, dword [r13 + r14*8 + 0xc]
xor esi, esi
mov r15, qword [r13 + r14*8 + 0x10]
imul rdi, rax, 0x38
add rdi, qword [rsp + 0x60]
cmp byte [r13 + r14*8 + 3], sil
je 0x18003cb97
mov rcx, qword [r15 + 0x18]
mov rax, qword [r12 + 0xf0]
jmp 0x18003cb92
cmp qword [rax + 0x38], rcx
je 0x18003d6f2
mov rax, qword [rax + 8]
test rax, rax
jne 0x18003cb84
mov r14, qword [rsp + 0x58]
mov eax, dword [r12 + 0x100]
cmp eax, dword [r14 + 0x90]
jge 0x18003da05
mov r13d, 0x40
test byte [rdi + 8], r13b
jne 0x18003cc9f
mov esi, dword [r15 + 0xc]
add esi, dword [r15 + 0x10]
lea eax, [rsi + 2]
imul ecx, eax, 7
mov eax, dword [r15 + 0x14]
add ecx, dword [r15 + 0x10]
lea ecx, [rax + rcx*8]
movsxd rdx, ecx
mov rcx, r14
call fcn.18001af28
mov rbx, rax
test rax, rax
je 0x18003dacf
mov rcx, rdi
call fcn.180032d94
mov eax, dword [rsp + 0x44]
mov word [rdi + 8], r13w
mov qword [rdi], rbx
mov qword [rbx], r12
mov dword [rbx + 0x5c], esi
mov ecx, dword [r15 + 0x10]
mov dword [rbx + 0x4c], eax
mov dword [rbx + 0x60], ecx
mov rcx, qword [r12 + 0x10]
mov qword [rbx + 0x20], rcx
mov eax, dword [r12 + 0x38]
mov dword [rbx + 0x54], eax
mov rax, qword [r12 + 0x60]
mov qword [rbx + 0x30], rax
mov eax, dword [r12 + 0x40]
mov dword [rbx + 0x48], eax
mov rax, qword [r12 + 8]
mov qword [rbx + 0x10], rax
mov eax, dword [r12 + 0x3c]
mov dword [rbx + 0x50], eax
mov rax, qword [r15 + 0x18]
mov qword [rbx + 0x38], rax
mov rax, qword [r12 + 0x118]
mov qword [rbx + 0x28], rax
mov eax, dword [r12 + 0x110]
mov dword [rbx + 0x58], eax
movsxd rax, esi
add rax, 2
imul rcx, rax, 0x38
lea rax, [rbx + 0x70]
add rcx, rbx
cmp rax, rcx
je 0x18003cc93
lea edx, [r13 + 0x40]
mov word [rax + 8], dx
mov qword [rax + 0x28], r14
add rax, 0x38
cmp rax, rcx
jne 0x18003cc82
mov eax, dword [r12 + 0x100]
xor esi, esi
jmp 0x18003cca2
mov rbx, qword [rdi]
mov rcx, qword [rsp + 0x48]
lea rdi, [rbx + 0x38]
or dword [rsp + 0x44], 0xffffffff
inc eax
mov dword [r12 + 0x100], eax
mov rax, qword [r12 + 0xf0]
mov qword [rbx + 0x40], rcx
mov qword [rbx + 8], rax
mov eax, dword [r12 + 0x90]
mov dword [rbx + 0x64], eax
mov rax, qword [r12]
mov qword [rsp + 0x60], rdi
mov ecx, dword [rax + 0x60]
mov dword [rbx + 0x68], ecx
mov dword [r12 + 0x90], esi
mov qword [r12 + 0xf0], rbx
mov qword [r12 + 0x10], rdi
mov eax, dword [rbx + 0x5c]
mov dword [r12 + 0x38], eax
inc eax
movzx edx, word [rbx + 0x60]
mov dword [r12 + 0x40], edx
movsxd rcx, eax
imul rcx, rcx, 0x38
add rcx, rdi
mov qword [r12 + 0x60], rcx
mov r13, qword [r15]
mov qword [r12 + 8], r13
mov eax, dword [r15 + 8]
lea rcx, [rcx + rdx*8]
mov dword [r12 + 0x3c], eax
xor edx, edx
mov qword [r12 + 0x118], rcx
movsxd rax, dword [r15 + 0x14]
mov r8, rax
mov qword [rsp + 0x70], r13
mov dword [r12 + 0x110], eax
call fcn.1800ab840
mov ecx, dword [rbp + 0x3a8]
mov r15, r14
jmp 0x180038c2e
movsxd rax, dword [r13 + r14*8 + 4]
mov edi, dword [r13 + r14*8 + 0x10]
imul rbx, rax, 0x38
movsxd rax, dword [r13 + r14*8 + 0xc]
add rbx, qword [rsp + 0x60]
imul rsi, rax, 0x38
add rsi, qword [rsp + 0x60]
test byte [rbx + 8], 0x20
jne 0x18003cd9a
mov rcx, rbx
call fcn.180033198
test byte [rbx + 8], 0x20
je 0x18003dad2
test edi, edi
je 0x18003cdc3
mov r8, qword [rsi]
mov edx, edi
mov rcx, qword [rbx]
call fcn.180021fe0
test eax, eax
je 0x18003cdbb
mov ecx, dword [r13 + r14*8 + 8]
dec ecx
jmp 0x180039b28
test edi, edi
js 0x180038cea
mov rdx, qword [rsi]
mov rcx, qword [rbx]
call fcn.180021cdc
jmp 0x180038cea
movsxd rax, dword [r13 + r14*8 + 4]
mov rdi, qword [rsp + 0x60]
imul rbx, rax, 0x38
add rbx, rdi
test byte [rbx + 8], 0x20
je 0x18003ce1a
mov rcx, qword [rbx]
lea rdx, [rbp + 0x98]
call fcn.180021f70
test eax, eax
je 0x18003ce1a
movsxd rax, dword [r13 + r14*8 + 0xc]
mov rdx, qword [rbp + 0x98]
imul rcx, rax, 0x38
add rcx, rdi
call fcn.18003312c
jmp 0x18003d4bb
mov rcx, rbx
call fcn.180033088
mov ecx, dword [r13 + r14*8 + 8]
dec ecx
mov dword [rsp + 0x44], ecx
jmp 0x18003d4bb
movsxd rax, dword [r13 + r14*8 + 4]
imul rbx, rax, 0x38
movsxd rax, dword [r13 + r14*8 + 8]
add rbx, qword [rsp + 0x60]
imul rdi, rax, 0x38
add rdi, qword [rsp + 0x60]
test byte [rbx + 8], 0x20
jne 0x18003ce66
mov rcx, rbx
call fcn.180033198
test byte [rbx + 8], 0x20
je 0x18003dad2
mov rdx, qword [rdi]
jmp 0x18003cdc6
mov esi, dword [r13 + r14*8 + 8]
mov rcx, r15
movsxd rdx, esi
lea rdx, [rdx*4 + 4]
call fcn.18001af60
xor edi, edi
mov r12, rax
test rax, rax
je 0x18003dac1
movsxd rcx, dword [r13 + r14*8 + 0xc]
mov r15d, edi
mov rax, qword [rsp + 0x70]
imul r13, rcx, 0x38
movsxd rcx, dword [rax + r14*8 + 4]
add r13, qword [rsp + 0x60]
imul rbx, rcx, 0x38
mov qword [rbp - 0x78], r13
add rbx, qword [rsp + 0x60]
mov qword [rbp - 0x50], rbx
test esi, esi
jle 0x18003cef5
mov rdi, rbx
mov r13d, esi
lea ebx, [r15 + 1]
mov rcx, rdi
call fcn.180032db4
mov dword [r12 + r15*4], eax
add rdi, 0x38
add r15, rbx
sub r13, rbx
jne 0x18003cece
mov rbx, qword [rbp - 0x50]
xor edi, edi
mov r13, qword [rbp - 0x78]
mov rax, qword [rsp + 0x70]
mov dword [r12 + r15*4], edi
lea rdx, [rbp - 0x1c]
movzx eax, byte [rax + r14*8 + 3]
mov r8d, esi
mov r15, qword [rsp + 0x58]
mov r9d, dword [r13]
shl rax, 5
mov qword [rsp + 0x20], rdx
mov rdx, r12
mov rcx, qword [r15 + 0x20]
mov rcx, qword [rax + rcx + 8]
call fcn.180031a00
mov rdx, r12
mov rcx, r15
mov rdi, rax
call fcn.18001acf0
movsxd rcx, dword [rbp - 0x1c]
sub qword [r13], rcx
mov rcx, rbx
call fcn.180033088
xor r14d, r14d
cmp dword [rbp - 0x1c], r14d
je 0x18003cf77
test rdi, rdi
je 0x18003dac1
lea rax, [fcn.18001ac0c]
mov r9b, 1
or r8d, 0xffffffff
mov qword [rsp + 0x20], rax
mov rdx, rdi
mov rcx, rbx
call fcn.1800333d0
movzx edx, byte [rbp + 0x3a0]
mov rcx, rbx
call fcn.1800328ac
mov r13, qword [rsp + 0x70]
jmp 0x1800397e8
xor edi, edi
cmp dword [r13 + r14*8 + 4], edi
je 0x18003cfc8
cmp qword [r15 + 0x310], rdi
jne 0x1800389e4
cmp qword [r15 + 0x318], rdi
mov rdi, qword [rsp + 0x48]
je 0x18003b73e
mov ecx, dword [rbp + 0x3a8]
mov esi, 1
jmp 0x180038c48
cmp qword [r12 + 0xc8], rdi
jmp 0x18003cfa0
cmp edi, 0x91
ja 0x18003d2be
je 0x18003d2a2
sub edi, 0x88
je 0x18003d215
sub edi, 1
je 0x18003d1ee
sub edi, 1
je 0x18003d1c3
sub edi, 1
je 0x18003d1a8
sub edi, 1
je 0x18003d140
sub edi, 1
je 0x18003d0ed
sub edi, 1
je 0x18003d0c9
sub edi, 1
je 0x18003d066
cmp edi, 1
jne 0x1800389e4
mov rbx, qword [r13 + r14*8 + 0x10]
mov rcx, r15
mov rdx, rbx
call fcn.18006730c
mov dword [rbp + 0x3a8], eax
mov ecx, eax
test rbx, rbx
je 0x180038c2e
mov rdx, qword [rbx + 0x10]
mov rcx, r12
call fcn.180037364
jmp 0x180038cea
mov r8b, byte [r13 + r14*8 + 0xc]
test r8b, r8b
jne 0x18003d07f
mov eax, 0x4000
test dword [r15 + 0x2c], eax
jne 0x1800393c2
movsxd rax, dword [r13 + r14*8 + 4]
mov rcx, qword [r15 + 0x20]
mov edx, dword [r13 + r14*8 + 8]
shl rax, 5
mov rcx, qword [rax + rcx + 8]
call fcn.180031db0
mov dword [rbp + 0x3a8], eax
mov ecx, eax
cmp al, 6
jne 0x180038c2e
mov r9, qword [r13 + r14*8 + 0x10]
lea rcx, [r12 + 0x48]
lea r8, str.database_table_is_locked:__s
mov rdx, r15
call fcn.18001b1b8
jmp 0x180038cea
xor ecx, ecx
cmp dword [r13 + r14*8 + 4], ecx
jne 0x18003d0df
mov rcx, r15
call fcn.18003734c
jmp 0x180038cea
or dword [r12 + 0x8c], 0x20
jmp 0x1800389e4
movsxd rcx, dword [r13 + r14*8 + 4]
mov rax, qword [r15 + 0x20]
shl rcx, 5
mov rcx, qword [rcx + rax + 8]
call fcn.18002b454
mov r10, qword [rsp + 0x50]
mov esi, 1
mov rdi, qword [rsp + 0x48]
mov ecx, eax
mov dword [rbp + 0x3a8], eax
lea r9d, [rsi + 7]
cmp eax, 0x65
jne 0x18003a3a8
mov ecx, dword [r13 + r14*8 + 8]
dec ecx
mov dword [rsp + 0x44], ecx
xor ecx, ecx
mov dword [rbp + 0x3a8], ecx
jmp 0x18003a3a8
movsxd rax, dword [r13 + r14*8 + 4]
mov rdx, qword [r13 + r14*8 + 0x10]
imul rbx, rax, 0x38
add rbx, qword [rsp + 0x60]
mov rcx, rbx
call fcn.180032c38
mov dword [rbp + 0x3a8], eax
test eax, eax
je 0x18003d184
mov rcx, rbx
call fcn.180037550
mov r9, rax
lea rcx, [r12 + 0x48]
lea r8, [0x1800ffdc4]
mov rdx, r15
call fcn.18001b1b8
movzx edx, byte [rbp + 0x3a0]
mov rcx, rbx
call fcn.1800328ac
mov rcx, rbx
call fcn.180033270
test eax, eax
jne 0x18003da3d
jmp 0x180038cea
movsxd rax, dword [r13 + r14*8 + 4]
imul rcx, rax, 0x38
movsxd rax, dword [r13 + r14*8 + 0xc]
add rcx, qword [rsp + 0x60]
add qword [rcx], rax
jmp 0x18003afa6
movsxd rax, dword [r13 + r14*8 + 4]
mov esi, 1
mov rdi, qword [rsp + 0x48]
imul rcx, rax, 0x38
movsxd rax, dword [r13 + r14*8 + 0xc]
add rcx, qword [rsp + 0x60]
add qword [rcx], rax
jns 0x1800398ce
jmp 0x18003a397
movsxd rax, dword [r13 + r14*8 + 4]
xor edi, edi
imul rcx, rax, 0x38
mov rax, qword [rsp + 0x60]
lea esi, [rdi + 1]
cmp qword [rcx + rax], rdi
mov rdi, qword [rsp + 0x48]
jle 0x1800398ce
jmp 0x18003a397
mov rcx, qword [r12 + 0xf0]
test rcx, rcx
je 0x18003d243
mov rax, qword [rcx + 8]
jmp 0x18003d22f
mov rcx, rax
mov rax, qword [rax + 8]
test rax, rax
jne 0x18003d228
movsxd rax, dword [r13 + r14*8 + 4]
imul rdi, rax, 0x38
add rdi, qword [rcx + 0x20]
jmp 0x18003d251
movsxd rax, dword [r13 + r14*8 + 4]
imul rdi, rax, 0x38
add rdi, qword [rsp + 0x60]
mov rcx, rdi
call fcn.180032ee8
movsxd rax, dword [r13 + r14*8 + 8]
imul rbx, rax, 0x38
add rbx, qword [rsp + 0x60]
mov rcx, rbx
call fcn.180032ee8
mov rax, qword [rbx]
mov esi, 1
mov ecx, dword [rbp + 0x3a8]
mov r10, qword [rsp + 0x50]
mov r8d, dword [rsp + 0x44]
lea r9d, [rsi + 7]
mov r14d, dword [rsp + 0x40]
cmp qword [rdi], rax
jge 0x18003d298
mov qword [rdi], rax
mov rdi, qword [rsp + 0x48]
jmp 0x180038c4d
mov r8, qword [r13 + r14*8 + 0x10]
lea r9, [r12 + 0x48]
mov edx, dword [r13 + r14*8 + 4]
mov rcx, r15
call fcn.18006709c
jmp 0x18003961a
sub edi, 0x92
je 0x18003d664
sub edi, 1
je 0x18003d5e4
sub edi, 1
je 0x18003d522
sub edi, 1
je 0x18003d446
sub edi, 1
je 0x18003d3e3
sub edi, 1
je 0x18003d3c5
sub edi, 1
je 0x18003d383
cmp edi, 1
jne 0x1800389e4
mov eax, dword [r13 + r14*8 + 8]
xor r8d, r8d
test eax, eax
je 0x18003d31c
lea ecx, [rax - 1]
mov dword [rsp + 0x44], ecx
cmp qword [r15 + 0xc0], r8
je 0x1800393c2
mov eax, 0x800
test dword [r12 + 0x8c], eax
jne 0x1800393c2
mov rdx, qword [r13 + r14*8 + 0x10]
test rdx, rdx
jne 0x18003d357
mov rdx, qword [r12 + 0xe0]
test rdx, rdx
je 0x1800393c2
mov rcx, r12
call fcn.180038270
mov rcx, qword [r15 + 0xc8]
mov rdx, rax
mov rbx, rax
call qword [r15 + 0xc0]
mov rdx, rbx
mov rcx, r15
call fcn.18001acf0
jmp 0x180038cea
mov rax, qword [r15 + 0x20]
movsxd rcx, dword [r13 + r14*8 + 4]
shl rcx, 5
mov rbx, qword [rcx + rax + 8]
xor ecx, ecx
mov eax, ecx
cmp dword [r13 + r14*8 + 0xc], ecx
je 0x18003d3b3
mov rcx, rbx
call fcn.180029788
cmp eax, dword [r13 + r14*8 + 0xc]
cmovb eax, dword [r13 + r14*8 + 0xc]
mov edx, eax
mov rcx, rbx
call fcn.18002a264
movsxd rcx, eax
jmp 0x18003938d
movsxd rax, dword [r13 + r14*8 + 4]
mov rcx, qword [r15 + 0x20]
shl rax, 5
mov rcx, qword [rax + rcx + 8]
call fcn.180029788
mov eax, eax
jmp 0x18003ab79
mov rax, qword [r13 + r14*8 + 0x10]
mov edx, 1
mov rdi, qword [rax + 0x10]
movsxd rax, dword [r13 + r14*8 + 4]
imul rbx, rax, 0x38
add rbx, qword [rsp + 0x60]
mov rcx, rbx
call fcn.1800328ac
mov dword [rbp + 0x3a8], eax
mov ecx, eax
test eax, eax
jne 0x180038c2e
mov rax, qword [rdi]
mov rcx, rdi
mov rdx, qword [rbx + 0x10]
call qword [rax + 0x98]
mov rdx, rdi
mov rcx, r12
mov dword [rbp + 0x3a8], eax
call fcn.180037364
and dword [r12 + 0x8c], 0xffffffdf
jmp 0x180038cea
movsxd rcx, dword [r13 + r14*8 + 4]
mov rax, qword [r12 + 0x60]
mov rdi, qword [rax + rcx*8]
xor ecx, ecx
cmp byte [rdi + 0x25], cl
jne 0x1800389e4
mov rax, qword [rdi + 0x30]
mov rbx, qword [rax]
mov rsi, qword [rbx]
and dword [r12 + 0x8c], 0xfffffff7
or dword [r12 + 0x8c], edx
mov rcx, qword [rdi + 0x30]
call qword [rsi + 0x48]
and dword [r12 + 0x8c], 0xfffffff3
mov rdx, rbx
mov rcx, r12
mov dword [rbp + 0x3a8], eax
call fcn.180037364
xor ebx, ebx
cmp dword [rbp + 0x3a8], ebx
jne 0x18003d4b0
mov rcx, qword [rdi + 0x30]
call qword [rsi + 0x50]
test eax, eax
jne 0x18003d4bb
mov eax, dword [r13 + r14*8 + 8]
dec eax
mov dword [rsp + 0x44], eax
mov eax, dword [r15 + 0x140]
test eax, eax
jne 0x18003da64
mov r8, qword [r15 + 0x188]
mov r14d, dword [rsp + 0x40]
test r8, r8
je 0x18003d6ba
cmp r14d, dword [rbp - 0x7c]
jb 0x18003d6ba
mov r14d, dword [r15 + 0x198]
xor edx, edx
mov eax, dword [rsp + 0x40]
mov rcx, qword [r15 + 0x190]
div r14d
sub r14d, edx
add r14d, dword [rsp + 0x40]
mov dword [rbp - 0x7c], r14d
call r8
test eax, eax
je 0x180038cea
mov r13d, 9
jmp 0x18003d796
mov rax, qword [r12 + 0x60]
movsxd rcx, dword [r13 + r14*8 + 4]
mov r15, qword [rax + rcx*8]
movsxd rax, dword [r13 + r14*8 + 0xc]
imul rsi, rax, 0x38
xor eax, eax
add rsi, qword [rsp + 0x60]
cmp byte [r15 + 0x25], al
je 0x18003d553
mov rcx, rsi
call fcn.180033088
jmp 0x18003a31e
mov rax, qword [r15 + 0x30]
lea rcx, [rbp + 0x1a0]
xor edx, edx
mov rdi, qword [rax]
lea r8d, [rdx + 0x30]
mov rbx, qword [rdi]
call fcn.1800ab840
mov qword [rbp + 0x1a0], rsi
lea rdx, [rbp + 0x1a0]
mov eax, 0xbe01
and word [rsi + 8], ax
mov eax, 1
or word [rsi + 8], ax
mov r8d, dword [r13 + r14*8 + 8]
mov rcx, qword [r15 + 0x30]
call qword [rbx + 0x58]
mov rdx, rdi
mov rcx, r12
mov dword [rbp + 0x3a8], eax
call fcn.180037364
mov eax, dword [rbp + 0x1c4]
test eax, eax
mov ecx, dword [rbp + 0x3a8]
movzx edx, byte [rbp + 0x3a0]
cmovne ecx, eax
mov dword [rbp + 0x3a8], ecx
mov rcx, rsi
call fcn.1800328ac
mov rcx, rsi
call fcn.180033270
mov r15, qword [rsp + 0x58]
jmp 0x18003d19b
mov rax, qword [r13 + r14*8 + 0x10]
lea rdx, [rbp]
xor esi, esi
mov qword [rbp], rsi
mov rbx, qword [rax + 0x10]
mov rcx, rbx
mov rdi, qword [rbx]
call qword [rdi + 0x30]
mov rdx, rbx
mov rcx, r12
mov dword [rbp + 0x3a8], eax
call fcn.180037364
mov ecx, dword [rbp + 0x3a8]
test ecx, ecx
jne 0x180038c2e
mov rax, qword [rbp]
or r9d, 0xffffffff
xor r8d, r8d
mov dword [rsp + 0x20], esi
mov rcx, r12
mov qword [rax], rbx
mov edx, dword [r13 + r14*8 + 4]
call fcn.18003857c
mov rcx, qword [rbp]
test rax, rax
je 0x18003d657
inc dword [rsp + 0x44]
mov qword [rax + 0x30], rcx
lea ecx, [rsi + 1]
jmp 0x18003b441
mov byte [r15 + 0x51], 1
call qword [rdi + 0x38]
jmp 0x180038cea
and dword [r12 + 0x8c], 0xfffffffb
mov rcx, r15
or dword [r12 + 0x8c], r9d
mov r8, qword [r13 + r14*8 + 0x10]
mov edx, dword [r13 + r14*8 + 4]
call fcn.1800671a4
and dword [r12 + 0x8c], 0xfffffff3
mov ecx, eax
mov dword [rbp + 0x3a8], eax
jmp 0x180038c2e
mov r12, qword [rbp + 0x390]
mov r15, qword [rsp + 0x58]
jmp 0x1800393c2
mov r12, qword [rbp + 0x390]
jmp 0x180039603
mov ecx, dword [rbp + 0x3a8]
mov esi, 1
mov r10, qword [rsp + 0x50]
mov r8d, dword [rsp + 0x44]
mov rdi, qword [rsp + 0x48]
lea r9d, [rsi + 7]
jmp 0x180038c4d
mov ecx, dword [rbp + 0x3a8]
mov esi, 1
mov r10, qword [rsp + 0x50]
jmp 0x180038c43
mov r15, qword [rsp + 0x58]
jmp 0x1800389e4
mov r13d, r9d
xor r14d, r14d
jmp 0x18003d993
mov eax, dword [rsp + 0x44]
mov dword [r12 + 0x80], eax
jmp 0x18003d7c3
test ecx, ecx
je 0x18003d73b
mov edx, 0x204
mov rcx, r15
call fcn.18007373c
mov byte [r15 + 0x4f], 1
mov rcx, r15
call fcn.1800732e4
jmp 0x18003d8ea
mov esi, 1
mov rcx, r12
mov edx, esi
call fcn.1800359cc
mov ebx, eax
test eax, eax
jne 0x18003db08
mov rcx, r12
mov byte [r15 + 0x4f], dil
call fcn.180035a28
lea ecx, [rsi + 4]
cmp eax, ecx
jne 0x18003d72e
mov eax, dword [rsp + 0x44]
sub sil, dil
mov dword [r12 + 0x80], eax
mov byte [r15 + 0x4f], sil
jmp 0x18003d7c3
lea r8, str.cannot_open_savepoint___SQL_statements_in_progress
lea rcx, [r12 + 0x48]
mov rdx, r15
call fcn.18001b1b8
mov r13d, 5
mov dword [rbp + 0x3a8], r13d
jmp 0x18003d929
lea r8, str.cannot_release_savepoint___SQL_statements_in_progress
jmp 0x18003d783
mov eax, dword [rsp + 0x44]
mov r12, qword [rbp + 0x390]
mov dword [r12 + 0x80], eax
xor eax, eax
mov byte [rbx + 0x4f], al
mov ebx, ecx
mov dword [r12 + 0x84], ecx
jmp 0x18003db08
lea rcx, [r12 + 0x48]
mov r9, rsi
lea r8, str.no_such_savepoint:__s
mov rdx, r15
call fcn.18001b1b8
mov edi, 1
mov r13d, edi
mov dword [rbp + 0x3a8], edi
jmp 0x18003d92e
mov r15, qword [rsp + 0x58]
lea rax, str.into
cmp ebx, 5
lea r9, str.out_of
mov edi, 1
lea rcx, [r12 + 0x48]
cmove r9, rax
mov dword [rbp + 0x3a8], edi
lea r8, str.cannot_change__s_wal_mode_from_within_a_transaction
mov rdx, r15
call fcn.18001b1b8
mov r13d, dword [rbp + 0x3a8]
jmp 0x18003d92e
mov dword [r12 + 0x84], edx
mov al, byte [r13 + r14*8 + 8]
mov byte [r12 + 0x8a], al
mov dword [r12 + 0x80], r8d
test edx, edx
je 0x18003d8d5
movzx eax, byte [r13 + r14*8 + 3]
test al, al
je 0x18003d8a8
lea rcx, [0x180000000]
mov r9, qword [rcx + rax*8 + 0xf9380]
mov rax, r9
test r9, r9
je 0x18003d8ab
mov rdx, qword [r13 + r14*8 + 0x10]
test rdx, rdx
je 0x18003d8ab
mov qword [rsp + 0x20], rdx
lea rcx, [r12 + 0x48]
mov rdx, r15
lea r8, str._s_constraint_failed:__s
call fcn.18001b1b8
jmp 0x18003d8d5
mov rax, r10
mov r9, qword [r13 + r14*8 + 0x10]
lea rcx, [r12 + 0x48]
mov rdx, r15
test r9, r9
je 0x18003d8c6
lea r8, [0x1800ffdc4]
jmp 0x18003d8d0
mov r9, rax
lea r8, str._s_constraint_failed
call fcn.18001b1b8
mov rcx, r12
call fcn.180035a28
mov ecx, 5
cmp eax, ecx
je 0x18003d7c3
mov eax, dword [r12 + 0x84]
neg eax
sbb ebx, ebx
and ebx, 0xffffff9c
add ebx, 0x65
jmp 0x18003db08
mov r13d, 0x14
jmp 0x18003d993
mov r12, qword [rbp + 0x390]
mov r15, qword [rsp + 0x58]
mov dword [rbp + 0x3a8], 0xb
mov r13d, dword [rbp + 0x3a8]
mov edi, 1
mov sil, byte [rbp + 0x398]
mov rcx, r12
mov dword [r12 + 0x84], r13d
call fcn.180035a28
cmp dword [rbp + 0x3a8], 0xc0a
jne 0x18003d955
mov byte [r15 + 0x51], dil
mov ebx, edi
test sil, sil
je 0x18003db08
movzx edx, sil
mov rcx, r15
sub edx, edi
call fcn.18004a06c
jmp 0x18003db08
mov dword [rbp + 0x3a8], 0xb
mov r12, qword [rbp + 0x390]
mov r15, qword [rsp + 0x58]
xor r14d, r14d
mov r13d, dword [rbp + 0x3a8]
mov dword [rbp + 0x3a8], r13d
cmp byte [r15 + 0x51], r14b
je 0x18003d9ba
mov r13d, 7
mov dword [rbp + 0x3a8], r13d
jmp 0x18003d9c7
mov r13d, 0x204
jmp 0x18003d796
cmp r13d, 0xc0a
je 0x18003d929
mov ecx, r13d
call fcn.180073870
mov r9, rax
lea rcx, [r12 + 0x48]
lea r8, [0x1800ffdc4]
mov rdx, r15
call fcn.18001b1b8
jmp 0x18003d929
mov r13d, 6
mov byte [r12 + 0x8a], r11b
mov dword [rbp + 0x3a8], r13d
jmp 0x18003d92e
mov edi, 1
lea rcx, [r12 + 0x48]
lea r8, str.too_many_levels_of_trigger_recursion
mov dword [rbp + 0x3a8], edi
mov rdx, r14
mov r15, r14
call fcn.18001b1b8
jmp 0x18003d835
mov r15, qword [rsp + 0x58]
jmp 0x18003da36
mov r15, rax
mov r12, qword [rbp + 0x390]
lea rcx, [r12 + 0x48]
mov rdx, r15
lea r8, str.string_or_blob_too_big
call fcn.18001b1b8
mov eax, 0x12
mov r13d, eax
mov dword [rbp + 0x3a8], eax
jmp 0x18003d929
mov sil, byte [rbp + 0x398]
mov ecx, 9
mov dword [rbp + 0x3a8], 9
mov dword [r12 + 0x84], 9
call fcn.180073870
mov r9, rax
lea rcx, [r12 + 0x48]
lea r8, [0x1800ffdc4]
mov rdx, r15
call fcn.18001b1b8
mov r13d, dword [rbp + 0x3a8]
mov edi, 1
jmp 0x18003d935
mov r12, qword [rbp + 0x390]
mov r15, qword [rsp + 0x58]
jmp 0x18003dad2
mov r12, qword [rbp + 0x390]
jmp 0x18003dad2
mov r15, rax
jmp 0x18003dad2
mov r15, r14
mov sil, byte [rbp + 0x398]
lea rcx, [r12 + 0x48]
mov byte [r15 + 0x51], 1
lea r8, str.out_of_memory
mov rdx, r15
call fcn.18001b1b8
mov r13d, 7
mov dword [rbp + 0x3a8], r13d
jmp 0x18003daa9
mov r12, qword [rbp + 0x390]
mov rax, qword [rsp + 0x58]
mov rcx, qword [rsp + 0x48]
mov qword [rax + 0x30], rcx
mov rcx, r12
mov eax, dword [rsp + 0x40]
add dword [r12 + 0xb0], eax
call fcn.180034834
lea r11, [rsp + 0x448]
mov eax, ebx
movaps xmm6, xmmword [r11 - 0x18]
movaps xmm7, xmmword [r11 - 0x28]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret