Function at 0x1800388f4
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 + 0x44], 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.1800348c0
cmp dword [r12 + 0x84], 7
mov ecx, 1
je 0x18003dc26
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 0x18003dbb8
cmp qword [r15 + 0x188], r8
je 0x1800389eb
mov eax, dword [r12 + 0xb0]
mov r14d, dword [r15 + 0x198]
mov dword [rbp - 0x7c], r14d
test eax, eax
je 0x1800389e8
xor edx, edx
div r14d
mov dword [rbp - 0x7c], edx
mov r14d, r8d
mov r10d, dword [r12 + 0x80]
xorps xmm7, xmm7
mov dword [rsp + 0x40], r10d
mov r10, r8
mov edx, 4
mov r8d, dword [rsp + 0x40]
mov r9d, 8
mov rsi, rdi
mov r11d, 2
xor edi, edi
cmp byte [r15 + 0x51], dil
jne 0x18003dc1f
add r14d, ecx
movsxd rbx, r8d
mov dword [rsp + 0x44], r14d
lea r14, [rbx + rbx*2]
test byte [r13 + r14*8 + 2], r11b
je 0x180038a7d
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 0x180038a78
mov rcx, r10
call fcn.180032dfc
mov r10, qword [rsp + 0x50]
lea ecx, [rdi + 1]
mov r8d, dword [rsp + 0x40]
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 0x18003b5a2
je 0x18003b585
cmp edi, 0x27
ja 0x180039f13
je 0x180039ef2
cmp edi, 0x14
ja 0x180039976
je 0x18003991f
cmp edi, 0xa
ja 0x180039400
je 0x1800392e1
sub edi, 1
je 0x180039153
sub edi, 1
je 0x180038e0d
sub edi, 1
je 0x180038d82
sub edi, 1
je 0x180038ba6
sub edi, 1
je 0x180038b46
sub edi, 1
je 0x180038b0c
sub edi, 1
je 0x180038b0c
sub edi, 1
je 0x180038b20
cmp edi, 1
je 0x180038b20
mov ecx, dword [rbp + 0x3a8]
mov esi, 1
jmp 0x180038d5b
movsxd rcx, dword [r13 + r14*8 + 4]
xor edi, edi
mov rax, qword [r12 + 0x60]
cmp qword [rax + rcx*8], rdi
je 0x180038afc
jmp 0x180038b22
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 0x180038b68
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.18003fb64
mov dword [rbp + 0x3a8], eax
mov dword [rbx + 0x50], edi
cmp dword [rbp - 0x68], edi
jne 0x180038b9d
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 + 0x40], ecx
add dword [r12 + rax*4 + 0xa0], ebx
jmp 0x18003d5fc
mov byte [rbx + 0x25], 1
jmp 0x18003d5fc
mov edx, dword [r13 + r14*8 + 8]
xor edi, edi
test edx, edx
je 0x180038bbf
test dword [r15 + 0x2c], 0x2000000
jne 0x18003d846
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 0x180038cc9
mov rcx, rbx
call fcn.18002a8f0
mov ecx, 5
mov dword [rbp + 0x3a8], eax
cmp eax, ecx
je 0x18003d851
test eax, eax
jne 0x18003dadd
cmp dword [r13 + r14*8 + 8], edi
je 0x180038c9e
lea eax, [rcx + 0x7b]
test byte [r12 + 0x8c], al
je 0x180038c9e
cmp byte [r15 + 0x4f], dil
je 0x180038c29
cmp dword [r15 + 0xa8], 1
jle 0x180038c9e
mov r8d, dword [r12 + 0x9c]
test r8d, r8d
jne 0x180038c53
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.180067518
mov dword [rbp + 0x3a8], eax
test eax, eax
jne 0x180038c80
mov edx, dword [r12 + 0x9c]
mov rcx, rbx
call fcn.18002bd44
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.180030e28
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 0x180038cd0
mov eax, edi
mov edx, edi
mov dword [rbp - 0x48], eax
cmp byte [r13 + r14*8 + 3], dil
je 0x180038e02
cmp eax, dword [r13 + r14*8 + 0xc]
jne 0x180038ced
cmp edx, dword [r13 + r14*8 + 0x10]
je 0x180038e02
mov rdx, qword [r12 + 0x48]
mov rcx, r15
call fcn.18001ae10
lea rdx, str.database_schema_has_changed
mov rcx, r15
call fcn.18001b21c
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 0x180038d32
mov rcx, r15
call fcn.18004a1b0
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 + 0x40]
mov rdi, qword [rsp + 0x48]
mov r14d, dword [rsp + 0x44]
add r8d, esi
mov dword [rsp + 0x40], r8d
test ecx, ecx
jne 0x18003da76
mov ecx, 1
lea edx, [rcx + 3]
jmp 0x180038a0e
mov edi, dword [r13 + r14*8 + 4]
mov ecx, dword [r13 + r14*8 + 8]
xor r14d, r14d
test edi, edi
je 0x180038dbb
mov al, byte [r15 + 0x4f]
test al, al
jne 0x180038dbb
test ecx, ecx
jne 0x180038dbf
cmp dword [r15 + 0xac], r14d
jle 0x180038dbf
mov dword [rbp + 0x3a8], 5
lea r8, str.cannot_commit_transaction___SQL_statements_in_progress
jmp 0x180038df5
mov al, byte [r15 + 0x4f]
movzx eax, al
cmp edi, eax
jne 0x18003d862
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.18001b2d8
mov ecx, dword [rbp + 0x3a8]
jmp 0x180038d46
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 0x180038ef7
cmp dword [r15 + 0xac], r14d
jg 0x18003d8c6
mov rbx, rsi
test rsi, rsi
jne 0x180038e42
mov ebx, r14d
jmp 0x180038e57
cmp byte [rsi], r14b
je 0x180038e4f
inc rbx
cmp byte [rbx], r14b
jne 0x180038e47
sub ebx, esi
and ebx, 0x3fffffff
mov r8d, dword [r15 + 0x308]
xor edx, edx
add r8d, dword [r15 + 0x304]
mov rcx, r15
call fcn.180067518
mov dword [rbp + 0x3a8], eax
mov r13d, eax
test eax, eax
jne 0x18003dae7
mov edx, ebx
mov rcx, r15
add rdx, 0x21
call fcn.18001b080
mov rdi, rax
test rax, rax
je 0x18003d7dd
lea rcx, [rax + 0x20]
mov rdx, rsi
lea r8d, [rbx + 1]
mov qword [rax], rcx
call fcn.1800ab070
cmp byte [r15 + 0x4f], r14b
je 0x180038ebe
mov byte [r15 + 0x4f], r14b
mov byte [r15 + 0x56], 1
jmp 0x180038ec5
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 0x18003d78c
mov r15, qword [r15 + 0x2f8]
mov edi, r14d
test r15, r15
je 0x18003d921
mov rcx, qword [r15]
mov rdx, rsi
call fcn.18001d0d0
test eax, eax
je 0x180038f21
mov r15, qword [r15 + 0x18]
inc edi
jmp 0x180038f01
mov rcx, qword [rsp + 0x58]
mov r8d, 1
cmp dword [rcx + 0xac], r14d
jle 0x180038f3e
cmp r13d, r8d
je 0x18003d8ec
lea rsi, [r15 + 0x18]
mov qword [rbp - 0x78], rsi
cmp qword [rsi], r14
jne 0x180038fad
cmp byte [rcx + 0x56], r14b
je 0x180038fad
mov r12d, r8d
cmp r13d, r8d
jne 0x180038fb0
mov r14, qword [rbp + 0x390]
mov edx, r8d
mov rcx, r14
call fcn.180035adc
mov ebx, eax
test eax, eax
jne 0x18003dc4e
mov rbx, qword [rsp + 0x58]
mov rcx, r14
mov byte [rbx + 0x4f], 1
call fcn.180035b38
mov ecx, 5
cmp eax, ecx
je 0x18003d8fa
xor eax, eax
mov rcx, rbx
mov byte [rbx + 0x56], al
mov edx, dword [r14 + 0x84]
mov dword [rbp + 0x3a8], edx
jmp 0x1800390a5
mov r12d, r14d
mov edx, dword [rcx + 0x304]
mov r9d, 2
mov eax, dword [rcx + 0x28]
sub edx, edi
sub edx, r8d
mov dword [rsp + 0x68], edx
cmp r13d, r9d
jne 0x180039028
mov r14d, dword [rcx + 0x2c]
xor r9d, r9d
shr r14d, 1
mov esi, r9d
and r14d, r8d
test eax, eax
jle 0x180039024
mov edi, r14d
mov ebx, r9d
xor edi, r8d
mov rcx, qword [rcx + 0x20]
mov r8d, edi
mov edx, 0x204
mov rcx, qword [rcx + rbx + 8]
call fcn.18002bb28
mov dword [rbp + 0x3a8], eax
test eax, eax
jne 0x18003dad1
mov rcx, qword [rsp + 0x58]
inc esi
add rbx, 0x20
mov eax, dword [rcx + 0x28]
cmp esi, eax
jl 0x180038fea
mov edx, dword [rsp + 0x68]
mov rsi, qword [rbp - 0x78]
xor r8d, r8d
mov edi, r8d
test eax, eax
jle 0x18003906b
mov ebx, r8d
mov rcx, qword [rcx + 0x20]
mov r8d, edx
mov edx, r13d
mov rcx, qword [rcx + rbx + 8]
call fcn.18002bda4
mov dword [rbp + 0x3a8], eax
test eax, eax
jne 0x18003dad1
mov rcx, qword [rsp + 0x58]
inc edi
mov edx, dword [rsp + 0x68]
add rbx, 0x20
cmp edi, dword [rcx + 0x28]
jl 0x180039035
test r14d, r14d
je 0x1800390a1
mov rax, qword [rcx + 8]
xor r14d, r14d
jmp 0x180039084
or dword [rax + 0x8c], 0x20
mov rax, qword [rax + 0x58]
test rax, rax
jne 0x180039079
call fcn.18004a1f4
mov rcx, qword [rsp + 0x58]
mov eax, 2
mov edi, dword [rsp + 0x68]
or dword [rcx + 0x2c], eax
jmp 0x1800390cc
mov edi, dword [rsp + 0x68]
xor r14d, r14d
jmp 0x1800390cc
mov rdx, qword [rcx + 0x2f8]
mov rax, qword [rdx + 0x18]
mov qword [rcx + 0x2f8], rax
call fcn.18001ae10
mov rcx, qword [rsp + 0x58]
dec dword [rcx + 0x304]
cmp qword [rcx + 0x2f8], r15
jne 0x1800390aa
cmp r13d, 1
jne 0x180039107
mov rax, qword [rsi]
mov rdx, r15
mov r15, qword [rsp + 0x58]
mov qword [rcx + 0x2f8], rax
mov rcx, r15
call fcn.18001ae10
test r12d, r12d
jne 0x18003d0c7
dec dword [r15 + 0x304]
jmp 0x18003912b
mov rax, qword [r15 + 8]
mov qword [rcx + 0x310], rax
mov rax, qword [r15 + 0x10]
mov r15, qword [rsp + 0x58]
mov qword [r15 + 0x318], rax
test r12d, r12d
jne 0x18003d0c7
mov r8d, edi
mov edx, r13d
mov rcx, r15
call fcn.180067518
mov r12, qword [rbp + 0x390]
mov dword [rbp + 0x3a8], eax
test eax, eax
jne 0x18003dae0
jmp 0x180038eed
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 0x1800391c6
mov eax, 0x1000
mov qword [r15 + rdi*8], rbx
test word [rbx + 8], ax
je 0x1800391b6
mov rcx, rbx
call fcn.180032b24
xor r8d, r8d
test eax, eax
jne 0x18003dc00
mov eax, 0x1000
inc rdi
add rbx, 0x38
cmp rdi, r12
jl 0x180039194
mov rcx, qword [rbp + 0x60]
mov rax, qword [r13 + r14*8 + 0x10]
mov edx, 0xbe01
mov r9, qword [rsp + 0x58]
mov ebx, dword [rsp + 0x40]
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
lea rcx, [rbp + 0x60]
mov rax, qword [rsp + 0x48]
mov qword [r9 + 0x30], rax
mov rax, qword [rbp + 0x68]
mov byte [rbp + 0x89], r8b
mov r8, r15
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 0x18003928d
cmp dword [rbp + 0x84], eax
je 0x180039275
mov rcx, qword [rbp + 0x60]
mov dl, 1
call fcn.180033928
mov r12, qword [rbp + 0x390]
lea r8, [0x1800ffec4]
mov r9, rax
mov rdx, r15
lea rcx, [r12 + 0x48]
call fcn.18001b2d8
mov eax, dword [rbp + 0x84]
mov dword [rbp + 0x3a8], eax
jmp 0x18003927c
mov r12, qword [rbp + 0x390]
mov r8d, dword [r13 + r14*8 + 4]
mov edx, ebx
mov rcx, r12
call fcn.18003615c
jmp 0x180039294
mov r12, qword [rbp + 0x390]
mov rcx, qword [rbp + 0x60]
mov eax, 2
test byte [rcx + 8], al
je 0x1800392b8
mov al, byte [rbp + 0x3a0]
cmp byte [rcx + 0xa], al
je 0x1800392b8
mov dl, al
call fcn.18001c9e8
mov rcx, qword [rbp + 0x60]
call fcn.180033380
test eax, eax
jne 0x18003db8a
mov ecx, dword [rbp + 0x3a8]
lea esi, [rax + 1]
mov r8d, ebx
mov r10, qword [rsp + 0x50]
mov r9d, 8
jmp 0x180038d60
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 0x180039317
mov qword [rbx + rax*8], rcx
add rcx, 0x38
inc rax
cmp rax, rdi
jl 0x180039307
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.180033188
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 + 0x40]
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 0x1800393cc
lea rcx, [rbp + 0x1d0]
call fcn.180037668
mov r9, rax
lea rcx, [r12 + 0x48]
lea r8, [0x1800ffec4]
mov rdx, r15
call fcn.18001b2d8
mov eax, dword [rbp + 0xdc]
mov dword [rbp + 0x3a8], eax
cmp byte [rbp + 0xe0], dil
je 0x1800393ef
movsxd rax, dword [r13 + r14*8 - 0x14]
test eax, eax
je 0x1800393ef
imul rcx, rax, 0x38
mov edx, 1
add rcx, rsi
call fcn.18003323c
lea rcx, [rbp + 0x1d0]
call fcn.180032ea4
jmp 0x180038e02
sub edi, 0xb
je 0x1800398a7
sub edi, 1
je 0x180039752
sub edi, 1
je 0x180039738
sub edi, 1
je 0x180039639
sub edi, 1
je 0x18003951f
sub edi, 1
je 0x18003cf61
sub edi, 1
je 0x1800394fd
sub edi, 1
je 0x1800394d0
cmp edi, 1
jne 0x180038afc
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 0x180039493
mov rcx, rax
call fcn.180032dfc
mov rax, qword [rsp + 0x50]
lea edx, [rdi + 3]
mov ecx, edi
jmp 0x180039497
mov word [rax + 8], cx
test byte [rbx + 8], cl
jne 0x180038e02
mov rcx, rbx
mov word [rax + 8], dx
call fcn.180032ec4
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 0x180038d50
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 + 0x40], esi
mov ecx, dword [rbp + 0x3a8]
mov esi, 1
jmp 0x180038d56
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 + 0x40], ecx
jmp 0x1800394ed
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 0x18003d827
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 0x180039569
mov qword [r8 + rax*8], rcx
add rcx, 0x38
inc rax
cmp rax, rdx
jl 0x180039559
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.18003747c
mov ecx, dword [rbp + 0x3a8]
xor r8d, r8d
test ecx, ecx
jne 0x1800395bb
cmp dword [r13 + r14*8 + 4], r8d
je 0x180039625
mov rdi, qword [rbp + 0x90]
mov qword [rsp + 0x48], rdi
mov qword [r15 + 0x30], rdi
jmp 0x18003962a
mov qword [rsp + 0x48], rsi
mov rdi, rsi
cmp cl, 0x13
jne 0x18003962a
mov rax, qword [r13 + r14*8 + 0x10]
mov qword [rsp + 0x48], rsi
cmp byte [rax + 0x1c], r8b
je 0x18003962a
movzx ecx, byte [r13 + r14*8 + 3]
mov r11d, 4
cmp cl, r11b
jne 0x1800395f4
mov ecx, r8d
mov dword [rbp + 0x3a8], ecx
jmp 0x180039611
cmp cl, 5
mov eax, ecx
mov ecx, dword [rbp + 0x3a8]
mov r9d, 2
cmove eax, r9d
mov byte [r12 + 0x8a], al
mov qword [rsp + 0x48], rsi
mov esi, 1
mov r8d, dword [rsp + 0x40]
jmp 0x1800392d1
mov rdi, qword [rsp + 0x48]
mov esi, 1
add dword [r12 + 0x90], esi
jmp 0x18003961b
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 0x1800396b2
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 0x18003968b
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.18003747c
mov ecx, dword [rbp + 0x3a8]
xor r15d, r15d
test ecx, ecx
jne 0x180039727
mov rcx, rbx
call qword [rsi + 0x50]
test eax, eax
je 0x180039721
mov ecx, dword [rdi + r14*8 + 8]
dec ecx
mov dword [rsp + 0x40], ecx
mov ecx, dword [rbp + 0x3a8]
mov byte [r13 + 0x25], r15b
mov r13, rdi
mov r15, qword [rsp + 0x58]
jmp 0x180038d46
lea rcx, [r12 + 0x48]
mov rdx, r15
call fcn.180066634
mov ecx, eax
mov dword [rbp + 0x3a8], eax
jmp 0x180038d46
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.1800310f8
mov rcx, rax
mov rsi, rax
call fcn.180026014
cmp ebx, 0xffffffff
mov rcx, rsi
mov edi, eax
cmove ebx, eax
call fcn.18002601c
test eax, eax
mov edx, 1
mov rcx, rsi
cmove ebx, edi
call fcn.180025f04
cmp ebx, 5
jne 0x1800397c3
mov rcx, rax
call fcn.18001cf40
test eax, eax
je 0x18003983e
mov rcx, rsi
call fcn.18002603c
xor ecx, ecx
test eax, eax
jne 0x1800397c5
jmp 0x18003983e
xor ecx, ecx
cmp ebx, edi
je 0x180039840
cmp edi, 5
je 0x1800397d3
cmp ebx, 5
jne 0x180039840
mov rax, qword [rsp + 0x58]
cmp byte [rax + 0x4f], cl
je 0x18003d950
cmp dword [rax + 0xa8], 1
jg 0x18003d950
cmp edi, 5
jne 0x180039809
mov rcx, rsi
call fcn.180026154
mov dword [rbp + 0x3a8], eax
test eax, eax
jne 0x18003983e
mov edx, ebx
jmp 0x180039818
mov r11d, 4
cmp edi, r11d
jne 0x180039820
lea edx, [r11 - 2]
mov rcx, rsi
call fcn.180025f20
xor eax, eax
mov rcx, r15
mov edx, eax
cmp ebx, 5
sete dl
inc edx
call fcn.180031f8c
mov dword [rbp + 0x3a8], eax
test eax, eax
je 0x180039840
mov ebx, edi
mov edx, ebx
mov rcx, rsi
call fcn.180025f20
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.1800582e8
mov rcx, rax
mov qword [rbx + 0x10], rax
call fcn.18001cf40
movzx edx, byte [rbp + 0x3a0]
mov rcx, rbx
mov dword [rbx + 0xc], eax
mov byte [rbx + 0xa], 1
call fcn.1800329bc
mov ecx, dword [rbp + 0x3a8]
mov r10, rbx
mov r15, qword [rsp + 0x58]
mov esi, 1
jmp 0x180038d50
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.180073ea8
mov dword [rbp + 0x3a8], eax
cmp eax, 5
jne 0x1800398eb
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.18003323c
inc rdi
add rbx, 0x38
cmp rdi, 3
jl 0x1800398f9
mov r12, qword [rbp + 0x390]
jmp 0x180038e02
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 + 0x44]
test eax, eax
je 0x18003caaa
lea ecx, [rax - 1]
mov dword [rsp + 0x40], ecx
mov ecx, dword [rbp + 0x3a8]
mov r8d, dword [rsp + 0x40]
jmp 0x180038d65
cmp edi, 0x1e
ja 0x180039bca
je 0x180039b9a
sub edi, 0x15
je 0x180039b6c
sub edi, 1
je 0x180039b50
sub edi, 1
je 0x180039a7d
sub edi, 1
je 0x180039aa2
sub edi, 1
je 0x180039a70
sub edi, 1
je 0x18003cc5a
sub edi, 1
je 0x18003c167
mov esi, 1
sub edi, 1
je 0x180039a04
cmp edi, esi
mov rdi, qword [rsp + 0x48]
jne 0x1800399f9
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 0x180038d60
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 0x180039a97
mov r15, qword [rsp + 0x50]
mov eax, 0x2460
add r15, 0x38
test word [r15 + 8], ax
je 0x180039a50
mov rcx, r15
call fcn.180032dfc
mov eax, 0x2460
dec ebx
mov word [r15 + 8], di
test ebx, ebx
jg 0x180039a38
mov ecx, dword [rbp + 0x3a8]
mov qword [rsp + 0x50], r15
mov r15, qword [rsp + 0x58]
jmp 0x180038d4b
movsxd rax, dword [r13 + r14*8 + 4]
mov qword [r10], rax
jmp 0x180038afc
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 0x180039aa7
mov ecx, dword [rbp + 0x3a8]
jmp 0x180038d5b
mov esi, 1
mov edx, dword [r13 + r14*8 + 4]
xor r10d, r10d
test edx, edx
jne 0x18003d995
mov rcx, qword [r12 + 0xf0]
test rcx, rcx
je 0x18003d995
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.1800352b0
mov rdi, qword [r15 + 0x30]
mov r11d, 4
movsxd rcx, eax
mov dword [rsp + 0x40], ecx
mov qword [rsp + 0x48], rdi
cmp dword [r13 + r14*8 + 8], r11d
jne 0x180039b2c
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 + 0x40], ecx
jmp 0x180039b36
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 0x18003961b
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 0x1800394e9
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 + 0x40], ecx
jmp 0x1800394ed
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.1800334e0
mov r10, qword [rsp + 0x50]
mov bl, byte [rbp + 0x3a0]
mov byte [r10 + 0xa], bl
jmp 0x1800394c0
sub edi, 0x1f
je 0x180039ebd
sub edi, 1
je 0x180039e6b
sub edi, 1
je 0x180039dfb
sub edi, 1
je 0x180039dca
sub edi, 1
je 0x180039cce
sub edi, 1
je 0x180039c93
sub edi, 1
je 0x180039c70
cmp edi, 1
jne 0x180038afc
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 0x180039c5c
mov r8b, byte [rbp + 0x3a0]
mov dl, 0x43
mov rcx, rbx
call fcn.180038828
movzx eax, word [rbx + 8]
lea edx, [rdi + 3]
test dl, al
jne 0x180039c5c
mov eax, dword [r13 + r14*8 + 8]
xor r14d, r14d
test eax, eax
je 0x18003da55
lea ecx, [rax - 1]
mov dword [rsp + 0x40], ecx
jmp 0x180038e02
mov ecx, 0xbe04
and ax, cx
or ax, dx
mov word [rbx + 8], ax
jmp 0x180038e02
movsxd rax, dword [r13 + r14*8 + 4]
imul rbx, rax, 0x38
add rbx, qword [rsp + 0x60]
mov rcx, rbx
call fcn.180032ff8
movsxd rax, dword [r13 + r14*8 + 8]
add qword [rbx], rax
jmp 0x180038e02
movsxd rax, dword [r13 + r14*8 + 4]
xor edi, edi
test eax, eax
je 0x180038afc
imul rcx, rax, 0x38
mov eax, 0x2460
add rcx, qword [rsp + 0x60]
test word [rcx + 8], ax
je 0x180039cc2
xor edx, edx
call fcn.180033204
jmp 0x180038e02
mov qword [rcx], rdi
mov word [rcx + 8], dx
jmp 0x180038afc
mov rax, qword [r15 + 0x188]
test rax, rax
je 0x180039cf4
mov ecx, dword [rsp + 0x44]
cmp ecx, dword [rbp - 0x7c]
jb 0x180039cf4
mov rcx, qword [r15 + 0x190]
call rax
test eax, eax
jne 0x18003d658
xor edx, edx
mov rcx, r12
call fcn.180035adc
mov dword [rbp + 0x3a8], eax
mov ecx, eax
test eax, eax
jne 0x180038d46
lea edi, [rax + 1]
mov rcx, r12
mov edx, edi
call fcn.1800359c0
mov dword [rbp + 0x3a8], eax
test eax, eax
jne 0x18003d989
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 0x180039da6
lea rbx, [rsi + 8]
mov eax, 0x1000
test word [rbx], ax
je 0x180039d7b
movsxd rax, edi
imul rcx, rax, 0x38
add rcx, rsi
call fcn.180032b24
test eax, eax
jne 0x18003dc1f
movzx eax, word [rbx]
mov ecx, 0x202
and ax, cx
mov ecx, 2
cmp ax, cx
jne 0x180039d99
lea rcx, [rbx - 8]
call fcn.180032c00
inc edi
add rbx, 0x38
cmp edi, dword [r13 + r14*8 + 8]
jl 0x180039d5a
xor r14d, r14d
cmp byte [r15 + 0x51], r14b
jne 0x18003dc1f
mov eax, dword [rsp + 0x40]
lea ebx, [r14 + 0x64]
inc eax
mov dword [r12 + 0x80], eax
jmp 0x18003dc55
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.1800333a8
jmp 0x180038e02
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.1800333a8
mov r10, qword [rsp + 0x50]
test word [r10 + 8], si
je 0x180039e55
mov rcx, r10
call fcn.180032b24
test eax, eax
jne 0x18003dc1f
mov r10, qword [rsp + 0x50]
mov eax, edi
dec edi
test eax, eax
je 0x1800394c0
add r10, 0x38
add rbx, 0x38
jmp 0x180039e21
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.180033490
mov r10, qword [rsp + 0x50]
add rbx, 0x38
add r10, 0x38
mov qword [rsp + 0x50], r10
sub edi, 1
jne 0x180039e91
mov r15, qword [rsp + 0x58]
jmp 0x1800394c0
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.180033380
test eax, eax
jne 0x18003db8a
mov rcx, qword [rsp + 0x50]
mov r8d, 0x800
mov rdx, rbx
jmp 0x180039df1
movsxd rax, dword [r13 + r14*8 + 4]
imul rcx, rax, 0x38
add rcx, qword [rsp + 0x60]
test byte [rcx + 8], dl
je 0x180038afc
call fcn.180033020
jmp 0x180038e02
cmp edi, 0x3a
ja 0x18003ad23
je 0x18003ace2
cmp edi, 0x31
ja 0x18003a889
je 0x18003a63a
sub edi, 0x28
je 0x18003a5f6
sub edi, 1
je 0x18003a5e8
sub edi, 1
je 0x18003a527
sub edi, 1
je 0x18003a503
sub edi, 1
je 0x18003a4dd
sub edi, 1
je 0x18003a46e
sub edi, 1
je 0x18003a46e
sub edi, 1
je 0x180039fcd
cmp edi, 1
jne 0x180038afc
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 0x180038afc
mov r15b, byte [rbp + 0x3a0]
mov r8b, r15b
mov dl, al
mov rcx, rbx
inc rdi
call fcn.180038828
mov al, byte [rdi]
add rbx, 0x38
test al, al
jne 0x180039fa2
mov r12, qword [rbp + 0x390]
mov r15, qword [rsp + 0x58]
jmp 0x180038e02
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.1800363b0
xor r8d, r8d
mov dword [rbp + 0x3a8], eax
test eax, eax
jne 0x18003dad1
mov rax, qword [rbp + 0x390]
mov eax, dword [rax + 0x7c]
cmp dword [rbx + 0x50], eax
je 0x18003a159
cmp byte [rbx + 0x25], r8b
je 0x18003a087
test rsi, rsi
jne 0x18003a05f
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 0x18003a0ee
mov eax, 0x2460
test word [r15 + 8], ax
je 0x18003a078
mov rcx, r15
call fcn.180032dfc
jmp 0x18003a3e2
mov ecx, 1
mov word [r15 + 8], cx
jmp 0x18003a3e2
mov r11d, 4
mov rcx, rsi
test byte [rbx + 0x28], r11b
jne 0x18003a0b7
call fcn.18002c068
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 0x18003a0ce
call fcn.18002c068
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 r9, qword [rsp + 0x58]
mov r8d, eax
movzx edi, dx
cmp eax, edi
cmova eax, edi
mov dword [rbx + 0x58], eax
cmp r8d, dword [r9 + 0x68]
ja 0x18003db80
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 0x18003a10f
mov dword [rsp + 0x7c], eax
mov al, 1
jmp 0x18003a11c
lea rdx, [rsp + 0x7c]
call fcn.18001dcf8
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 0x18003da60
cmp eax, dword [rbx + 0x54]
ja 0x18003da60
cmp edi, eax
mov edi, dword [rsp + 0x68]
jae 0x18003a165
mov qword [rbx + 0x60], r8
mov dword [rbx + 0x58], r8d
jmp 0x18003a165
movzx eax, word [rbx + 0x22]
cmp eax, edi
jg 0x18003a310
mov eax, dword [r12]
cmp dword [rbx + 0x5c], eax
jae 0x18003a2e4
mov r15, qword [rbx + 0x60]
test r15, r15
jne 0x18003a1cd
xor edx, edx
lea r8d, [r15 + 0x38]
lea rcx, [rbp + 0x168]
call fcn.1800ab9f0
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.180033788
mov dword [rbp + 0x3a8], eax
mov ecx, eax
test eax, eax
jne 0x18003d7f8
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 0x18003a203
movzx eax, byte [r8]
lea r8, [r13 + 1]
mov dword [rbp - 0x80], eax
jmp 0x18003a219
lea rdx, [rbp - 0x80]
mov rcx, r8
call fcn.18001dcf8
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 0x18003a22f
lea ecx, [rax - 0xc]
shr ecx, 1
jmp 0x18003a23e
lea rcx, [0x180000000]
movzx ecx, byte [rax + rcx + 0xf8f08]
mov eax, dword [rsp + 0x7c]
add eax, ecx
mov dword [rsp + 0x7c], eax
cmp eax, ecx
jb 0x18003a265
mov rcx, qword [rbp - 0x30]
inc esi
movsxd rdi, esi
mov dword [rcx + rdi*4], eax
cmp esi, dword [rsp + 0x68]
jg 0x18003a26d
cmp r13, r12
jb 0x18003a1ec
jmp 0x18003a26d
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 0x18003a2ae
mov ecx, 0x2460
test word [rbp + 0x170], cx
jne 0x18003a296
cmp dword [rbp + 0x188], eax
je 0x18003a2a2
lea rcx, [rbp + 0x168]
call fcn.180032e68
mov eax, 1
mov word [rbp + 0x170], ax
mov eax, dword [rsp + 0x7c]
cmp r13, r12
jb 0x18003a2c6
ja 0x18003da60
cmp eax, dword [rbx + 0x54]
jne 0x18003da60
cmp eax, dword [rbx + 0x54]
ja 0x18003da60
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 0x18003a310
cmp byte [r13 + r14*8 + 1], 0xf8
jne 0x18003a05f
mov rdx, qword [r13 + r14*8 + 0x10]
mov r8d, 0x800
mov rcx, r15
call fcn.1800333a8
jmp 0x18003a3e2
mov eax, 0x2460
test word [r15 + 8], ax
je 0x18003a324
mov rcx, r15
call fcn.180032dfc
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 0x18003a345
mov ecx, dword [r12 + rcx*4]
add rcx, qword [rbx + 0x60]
jmp 0x18003a461
mov al, byte [r13 + r14*8 + 3]
test al, 0xc0
je 0x18003a368
cmp edx, 0xc
jb 0x18003a35c
test dl, 1
je 0x18003a454
xor edi, edi
test al, al
js 0x18003a456
jmp 0x18003a36a
xor edi, edi
cmp edx, 0xc
jb 0x18003a378
lea r8d, [rdx - 0xc]
shr r8d, 1
jmp 0x18003a388
lea r8, [0x180000000]
movzx r8d, byte [rdx + r8 + 0xf8f08]
test r8d, r8d
je 0x18003a456
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.180033788
mov dword [rbp + 0x3a8], eax
test eax, eax
jne 0x18003a442
mov edx, dword [rbp - 0x80]
mov r8, r15
mov rcx, qword [r15 + 0x10]
call fcn.1800365b0
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 0x18003a442
mov r14, qword [r15 + 0x10]
test r14, r14
je 0x18003a442
movsxd rsi, dword [r15 + 0xc]
mov rcx, r15
lea edx, [rsi + 2]
call fcn.180032b04
xor r12d, r12d
test eax, eax
jne 0x18003dc00
mov rcx, qword [r15 + 0x10]
mov r8, rsi
mov rdx, r14
call fcn.1800ab070
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 0x18003972e
xor edi, edi
cmp edx, 0xd
lea rcx, [rbp + 0x50]
cmova rcx, rdi
mov r8, r15
call fcn.1800365b0
jmp 0x18003a3d8
movsxd rax, dword [r13 + r14*8 + 4]
imul rcx, rax, 0x38
add rcx, qword [rsp + 0x60]
test byte [rcx + 8], 1
je 0x18003a489
mov eax, dword [r13 + r14*8 + 0xc]
jmp 0x18003a4aa
call fcn.180032f40
ucomisd xmm0, xmm7
jp 0x18003a49a
jne 0x18003a49a
xor eax, eax
jmp 0x18003a49f
mov eax, 1
cmp byte [r13 + r14*8], 0x2e
jne 0x18003a4aa
xor eax, 1
test eax, eax
mov rdi, qword [rsp + 0x48]
mov r9d, 8
mov r10, qword [rsp + 0x50]
lea esi, [r9 - 7]
je 0x18003a4cd
mov ecx, dword [r13 + r14*8 + 8]
dec ecx
mov dword [rsp + 0x40], ecx
mov ecx, dword [rbp + 0x3a8]
mov r8d, dword [rsp + 0x40]
jmp 0x180038d60
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 0x18003a4c2
mov byte [rax + rcx], sil
jmp 0x1800399f9
mov edx, dword [rbp - 0x44]
test edx, edx
jns 0x18003a511
mov eax, dword [r13 + r14*8 + 4]
jmp 0x18003a51f
jne 0x18003a51a
mov eax, dword [r13 + r14*8 + 8]
jmp 0x18003a51f
mov eax, dword [r13 + r14*8 + 0xc]
lea ecx, [rax - 1]
jmp 0x180039519
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 0x18003a5da
lea r14, [r13 + 0x20]
test rdi, rdi
je 0x18003a575
mov r8d, dword [rdi + rbx*4]
jmp 0x18003a578
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.1800369f4
xor r8d, r8d
mov dword [rbp - 0x44], eax
mov edx, eax
test eax, eax
jne 0x18003a5d0
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 0x18003a56a
jmp 0x18003a5da
test sil, sil
je 0x18003a5da
neg edx
mov dword [rbp - 0x44], edx
mov r13, qword [rsp + 0x70]
mov qword [rbp + 0x38], r8
jmp 0x18003a442
mov rax, qword [r13 + r14*8 + 0x10]
mov qword [rbp + 0x38], rax
jmp 0x180038afc
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 0x18003a619
mov rcx, rbx
call fcn.180032ba0
jmp 0x18003a61b
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.1800330c0
jmp 0x180038e02
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 0x18003a6c7
mov al, byte [rbx]
mov rdi, rcx
mov r12b, byte [rbp + 0x3a0]
mov r8b, r12b
mov dl, al
mov rcx, rdi
call fcn.180038828
inc rbx
add rdi, 0x38
mov al, byte [rbx]
test al, al
jne 0x18003a6a9
mov r12d, dword [rbp - 0x30]
mov r14, qword [rbp + 8]
mov edx, r12d
mov rcx, rsi
call fcn.1800363d0
mov edi, eax
mov dword [rsi + 0x24], edi
cmp eax, 0xc
jb 0x18003a6e7
lea ebx, [rdi - 0xc]
shr ebx, 1
jmp 0x18003a6f6
lea rcx, [0x180000000]
movzx ebx, byte [rdi + rcx + 0xf8f08]
mov eax, 0x4000
xor r9d, r9d
test word [rsi + 8], ax
je 0x18003a722
test r13, r13
je 0x18003a716
mov rcx, rsi
call fcn.180032ba0
xor r9d, r9d
jmp 0x18003a722
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 0x18003a738
mov eax, r8d
jmp 0x18003a74f
mov rcx, rdi
mov eax, r9d
add eax, r8d
shr rcx, 7
test rcx, rcx
je 0x18003a74f
cmp eax, 9
jl 0x18003a73e
add r15d, eax
sub rsi, 0x38
cmp rsi, r14
jae 0x18003a6cb
cmp r15d, 0x7e
jle 0x18003a79a
movsxd rax, r15d
mov ecx, r9d
add ecx, r8d
shr rax, 7
test rax, rax
je 0x18003a77c
cmp ecx, 9
jl 0x18003a76b
add r15d, ecx
mov eax, r9d
movsxd rdx, r15d
add eax, r8d
shr rdx, 7
test rdx, rdx
je 0x18003a796
cmp eax, 9
jl 0x18003a785
cmp ecx, eax
jge 0x18003a79d
add r15d, r8d
mov r9, qword [rsp + 0x58]
movsxd rbx, r15d
movsxd rax, dword [r9 + 0x68]
lea r14, [rbx + r13]
mov qword [rbp - 0x50], r14
cmp r14, rax
jg 0x18003db80
mov rdi, qword [rsp + 0x50]
mov edx, r14d
mov rcx, rdi
call fcn.180032b04
test eax, eax
jne 0x18003dc00
mov rdi, qword [rdi + 0x10]
mov edx, 0x80
cmp r15d, edx
jae 0x18003a7e8
mov byte [rdi], r15b
lea eax, [rdx - 0x7f]
jmp 0x18003a7f8
mov rdx, rbx
mov rcx, rdi
call fcn.18001db04
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 0x18003a81a
mov byte [rcx], bl
mov eax, 1
jmp 0x18003a822
mov rdx, rbx
call fcn.18001db04
movzx eax, al
mov r8d, ebx
movsxd rcx, r15d
mov rdx, r13
add rcx, rdi
add esi, eax
call fcn.180036478
add r15d, eax
add r13, 0x38
mov edx, 0x80
cmp r13, r12
jbe 0x18003a803
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 0x18003a873
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 0x180039eb3
mov ecx, edi
sub ecx, 0x32
je 0x18003acb6
sub ecx, 1
je 0x18003ac85
sub ecx, 1
je 0x18003abe2
sub ecx, 1
je 0x18003aa5a
sub ecx, 1
je 0x18003aa7d
sub ecx, 1
je 0x18003aa7d
sub ecx, 1
je 0x18003a8cf
cmp ecx, 1
jne 0x180038afc
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.180038694
mov r15, rax
test rax, rax
je 0x18003dc07
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.18002995c
mov dword [rbp + 0x3a8], eax
test eax, eax
jne 0x18003aa1e
mov rcx, qword [rsi]
lea edx, [rax + 1]
call fcn.18002a8f0
mov dword [rbp + 0x3a8], eax
test eax, eax
jne 0x18003aa1e
mov r12, qword [r13 + r14*8 + 0x10]
mov rdi, qword [rsi]
mov rcx, rdi
test r12, r12
je 0x18003a9de
movzx ebx, byte [r13 + r14*8 + 3]
or ebx, 2
call fcn.180028644
mov r8d, ebx
lea rdx, [rbp + 0x28]
mov rcx, rdi
call fcn.180030734
mov rcx, rdi
mov dword [rbp + 0x3a8], eax
mov ebx, eax
call fcn.1800286f4
test ebx, ebx
jne 0x18003a9d7
mov rsi, qword [rsi]
mov rbx, qword [r15]
mov rcx, rsi
mov edi, dword [rbp + 0x28]
mov qword [r15 + 0x10], r12
call fcn.180028644
mov r9, r12
mov qword [rsp + 0x20], rbx
mov r8d, 1
mov edx, edi
mov rcx, rsi
call fcn.18002be7c
mov rcx, rsi
mov dword [rbp + 0x3a8], eax
call fcn.1800286f4
and dword [r15 + 0x28], 0xfffffffb
jmp 0x18003aa17
mov rbx, qword [r15]
call fcn.180028644
xor r9d, r9d
mov qword [rsp + 0x20], rbx
mov rcx, rdi
lea eax, [r9 + 1]
mov r8d, eax
mov edx, eax
call fcn.18002be7c
mov rcx, rdi
mov dword [rbp + 0x3a8], eax
call fcn.1800286f4
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 0x180038d56
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 0x18003aa7f
mov eax, dword [r13 + r14*8 + 8]
cmp dword [rdx + 0x2c], eax
je 0x180038afc
xor eax, eax
test byte [r12 + 0x8c], 0x20
jne 0x18003db03
movsxd rdx, dword [r13 + r14*8 + 0xc]
mov esi, eax
mov r9, 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 [r9 + 0x20]
mov rcx, qword [rax + 8]
mov qword [rbp - 0x50], rcx
cmp dil, 0x37
jne 0x18003aae5
mov rax, qword [rax + 0x18]
mov r13d, 1
mov cl, byte [rax + 0x70]
mov rax, qword [rbp + 0x390]
cmp cl, byte [rax + 0x8b]
jae 0x18003aaea
mov byte [rax + 0x8b], cl
jmp 0x18003aaea
xor eax, eax
mov r13d, eax
mov rdi, qword [rsp + 0x70]
test byte [rdi + r14*8 + 3], r11b
je 0x18003ab1e
imul rbx, r12, 0x38
add rbx, qword [rsp + 0x60]
mov rcx, rbx
call fcn.180032ff8
mov r12d, dword [rbx]
mov eax, 2
cmp r12d, eax
jl 0x18003dac7
mov edx, dword [rbp + 0x3a8]
mov al, byte [rdi + r14*8 + 1]
cmp al, 0xfa
jne 0x18003ab3a
mov r15, qword [rdi + r14*8 + 0x10]
movzx esi, word [r15 + 8]
movzx eax, word [r15 + 6]
add esi, eax
jmp 0x18003ab43
cmp al, 0xf2
jne 0x18003ab43
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.180038694
mov rdi, rax
test rax, rax
je 0x18003dc00
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.180028644
mov r9, r15
mov qword [rsp + 0x20], rbx
mov r8d, r13d
mov edx, r12d
mov rcx, rsi
call fcn.18002be7c
mov rcx, rsi
mov dword [rbp + 0x3a8], eax
call fcn.1800286f4
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 0x18003a442
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.180032ff8
mov r8d, dword [rdi]
mov edx, dword [r13 + r14*8 + 8]
mov rcx, qword [rbx + 8]
call fcn.180030ed0
mov esi, 1
mov dword [rbp + 0x3a8], eax
mov ecx, eax
cmp dword [r13 + r14*8 + 8], esi
jne 0x18003ac3b
mov eax, dword [rdi]
mov rcx, qword [rbx + 0x18]
mov dword [rcx], eax
lea eax, [rsi + 1]
or dword [r15 + 0x2c], eax
jmp 0x18003ac50
mov eax, 2
cmp dword [r13 + r14*8 + 8], eax
jne 0x18003ac56
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 0x180038d4b
mov rax, qword [r15 + 8]
jmp 0x18003ac72
or dword [rax + 0x8c], 0x20
mov rax, qword [rax + 0x58]
test rax, rax
jne 0x18003ac67
and dword [r12 + 0x8c], 0xffffffdf
jmp 0x180038d4b
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.180030e28
movsxd rax, dword [rbp + 0x2c]
mov r10, qword [rsp + 0x50]
mov qword [r10], rax
jmp 0x1800394c0
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.180030f9c
mov dword [rbp + 0x3a8], eax
mov rax, qword [rbp + 0x58]
jmp 0x18003aca9
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.180038694
test rax, rax
je 0x18003dc1f
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.18003e180
jmp 0x180039745
cmp edi, 0x44
ja 0x18003b0eb
je 0x18003ad7f
sub edi, 0x3b
je 0x18003b0b9
sub edi, 1
je 0x18003b07b
sub edi, 1
je 0x18003b04f
sub edi, 1
je 0x18003ae57
sub edi, 1
je 0x18003ae57
sub edi, 1
je 0x18003ae57
sub edi, 1
je 0x18003ae57
sub edi, 1
je 0x18003ae24
cmp edi, 1
jne 0x180038afc
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 0x18003b44a
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 0x18003ae18
mov r13d, 0x4000
test word [rsi + rbx + 8], r13w
je 0x18003adfd
movsxd rax, edi
imul rcx, rax, 0x38
add rcx, rbx
call fcn.180032ba0
movzx ecx, word [rbp + 0xf0]
mov rbx, qword [rbp + 0xf8]
inc edi
movzx eax, cx
add rsi, 0x38
cmp edi, eax
jl 0x18003add8
mov r13, qword [rsp + 0x70]
xor esi, esi
mov r12, qword [rbp + 0x390]
lea rdi, [rbp + 0xe8]
jmp 0x18003b492
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.180032ec4
mov qword [rbx + 0x40], rax
mov byte [rbx + 0x26], 1
jmp 0x180038e02
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 0x18003af23
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 0x18003ae9b
xor edx, edx
mov rcx, rbx
call fcn.180038798
mov rcx, rbx
call fcn.180032ec4
mov r11d, 4
mov r15, rax
test byte [rbx + 8], r11b
jne 0x18003aefe
lea r9d, [r11 + 4]
test byte [rbx + 8], r9b
jne 0x18003aecc
mov ecx, dword [r13 + r14*8 + 8]
dec ecx
mov dword [rsp + 0x40], ecx
jmp 0x18003aa40
movsd xmm1, qword [rbx]
xorps xmm0, xmm0
cvtsi2sd xmm0, r15
comisd xmm0, xmm1
jbe 0x18003aeec
mov eax, 1
test al, dil
je 0x18003aefe
sub edi, eax
jmp 0x18003aefe
comisd xmm1, xmm0
jbe 0x18003aefe
mov eax, 1
test al, dil
jne 0x18003aefe
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.18002c980
mov qword [rsi + 0x40], r15
mov r15, qword [rsp + 0x58]
jmp 0x18003af91
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 0x18003af72
call fcn.180032ba0
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.18002c980
xor ecx, ecx
mov dword [rbp + 0x3a8], eax
test eax, eax
jne 0x18003dadd
lea eax, [rcx + 0x40]
mov byte [rsi + 0x26], cl
cmp edi, eax
mov dword [rsi + 0x50], ecx
mov eax, dword [rsp + 0x78]
jl 0x18003afd9
test eax, eax
js 0x18003afc6
jne 0x18003afbd
cmp edi, 0x41
je 0x18003afc6
mov dword [rsp + 0x78], ecx
jmp 0x180038e02
mov dword [rsp + 0x78], ecx
lea rdx, [rsp + 0x78]
mov rcx, qword [rsi]
call fcn.18002cf5c
jmp 0x18003b012
test eax, eax
jg 0x18003b001
jne 0x18003afe4
cmp edi, 0x3e
je 0x18003b001
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 0x18003b027
mov dword [rsp + 0x78], ecx
lea rdx, [rsp + 0x78]
mov rcx, qword [rsi]
call fcn.18002d0ec
xor edx, edx
mov dword [rbp + 0x3a8], eax
mov ecx, eax
test eax, eax
jne 0x18003dadd
lea esi, [rdx + 1]
cmp dword [rsp + 0x78], edx
mov rdi, qword [rsp + 0x48]
mov r9d, 8
je 0x18003b045
mov r10d, dword [r13 + r14*8 + 8]
sub r10d, esi
mov dword [rsp + 0x40], r10d
mov r10, qword [rsp + 0x50]
jmp 0x18003a4d3
movsxd rax, dword [r13 + r14*8 + 4]
mov rcx, r12
mov rdx, qword [r12 + 0x60]
mov rdx, qword [rdx + rax*8]
call fcn.180035200
movsxd rcx, dword [r13 + r14*8 + 4]
xor r8d, r8d
mov rax, qword [r12 + 0x60]
mov qword [rax + rcx*8], r8
jmp 0x180038e02
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.180038694
test rax, rax
je 0x18003dc1f
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 0x180038e02
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 0x1800399f9
jmp 0x18003a4c2
mov ecx, edi
sub ecx, 0x45
je 0x18003ad7f
sub ecx, 1
je 0x18003b3e2
sub ecx, 1
je 0x18003b311
sub ecx, 1
je 0x18003b311
sub ecx, 1
je 0x18003b2e5
sub ecx, 1
je 0x18003b158
sub ecx, 1
je 0x18003b671
mov esi, 1
cmp ecx, esi
jne 0x180039a97
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 0x1800399f9
jmp 0x18003a4c2
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 0x18003b2dd
test byte [rdi + 0x28], r11b
jne 0x18003b1ab
lea rdx, [rbp - 0x64]
call fcn.18002c91c
mov dword [rbp + 0x3a8], eax
test eax, eax
jne 0x18003dadd
cmp dword [rbp - 0x64], esi
je 0x18003b1d8
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 0x18003b265
mov rcx, qword [r12 + 0xf0]
test rcx, rcx
je 0x18003b22b
mov rax, qword [rcx + 8]
jmp 0x18003b21c
mov rbx, qword [rdi]
mov rcx, rbx
call fcn.18002c068
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 0x18003b20c
or dword [rdi + 0x28], r11d
jmp 0x18003b1b5
inc rax
mov qword [rbp - 0x58], rax
jmp 0x18003b1b5
mov rcx, rax
mov rax, qword [rax + 8]
test rax, rax
jne 0x18003b215
imul rbx, rdx, 0x38
add rbx, qword [rcx + 0x20]
jmp 0x18003b234
imul rbx, rdx, 0x38
add rbx, qword [rsp + 0x60]
mov rcx, rbx
call fcn.180032ff8
mov rax, qword [rbx]
cmp rax, rsi
je 0x18003b2c1
mov r11d, 2
test byte [rdi + 0x28], r11b
jne 0x18003b2c1
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 0x18003b2cc
mov ebx, r14d
lea rdx, [rbp - 0x58]
mov ecx, 8
call fcn.18001c7cc
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.18002c980
mov dword [rbp + 0x3a8], eax
test eax, eax
jne 0x18003b2cc
cmp dword [rbp - 0x64], r14d
jne 0x18003b2cc
inc ebx
cmp ebx, 0x64
jl 0x18003b26e
mov r13d, 0xd
jmp 0x18003dae7
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 0x1800394c0
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 0x180038afc
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 0x18003b32f
mov rbx, r11
xor esi, esi
jmp 0x18003b342
call fcn.180032ec4
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 0x18003b359
mov rcx, r11
jmp 0x18003b36d
call fcn.180032ec4
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 0x18003b38c
mov dl, byte [rcx + rax + 0xfa148]
jmp 0x18003b393
mov dl, byte [rcx + rax + 0xfa678]
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 0x18003b3c0
mov eax, 0xbe01
and cx, ax
or cx, si
jmp 0x18003b3d2
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 0x180038d50
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.18002c980
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 0x18003b442
mov ecx, dword [r13 + r14*8 + 8]
dec ecx
mov dword [rsp + 0x40], ecx
mov dword [rdi + 0x18], eax
jmp 0x180038e02
lea r9, [rbp + 0x40]
mov r8d, 0x107
lea rdx, [rbp + 0x210]
call fcn.18003672c
mov rdi, rax
test rax, rax
je 0x18003dc07
mov eax, 0x4000
test word [rbx + 8], ax
je 0x18003b47f
mov rcx, rbx
call fcn.180032ba0
mov r8, qword [rbx + 0x10]
mov r9, rdi
mov edx, dword [rbx + 0xc]
mov rcx, qword [r15 + 0x10]
call fcn.18003679c
mov byte [rdi + 0xa], sil
cmp byte [r13 + r14*8], 0x43
jne 0x18003b4d4
movzx edx, word [rdi + 8]
mov ecx, esi
test edx, edx
je 0x18003b4d4
mov rax, qword [rdi + 0x10]
mov r8d, 1
add rax, 8
test byte [rax], r8b
jne 0x18003b4c8
add ecx, r8d
add rax, 0x38
cmp ecx, edx
jl 0x18003b4b6
jmp 0x18003b4d4
mov eax, dword [r13 + r14*8 + 8]
sub eax, r8d
mov dword [rsp + 0x40], 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.18002c980
mov ecx, eax
mov dword [rbp + 0x3a8], eax
cmp dword [r13 + r14*8 + 0x10], esi
jne 0x18003b511
mov rdx, qword [rbp + 0x40]
mov rcx, qword [rsp + 0x58]
call fcn.18001ae10
mov ecx, dword [rbp + 0x3a8]
test ecx, ecx
jne 0x18003972e
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 0x18003b556
test ecx, ecx
mov ecx, 1
je 0x18003b55f
mov r10d, dword [r13 + r14*8 + 8]
sub r10d, ecx
jmp 0x18003b564
test ecx, ecx
mov ecx, 1
je 0x18003b54c
mov r10d, dword [rsp + 0x40]
mov r15, qword [rsp + 0x58]
add r10d, ecx
mov dword [rsp + 0x40], r10d
mov rdi, qword [rsp + 0x48]
mov r10, qword [rsp + 0x50]
mov r14d, dword [rsp + 0x44]
jmp 0x1800389fe
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 0x18003b0db
cmp edi, 0x74
ja 0x18003c80f
je 0x18003c559
cmp edi, 0x61
ja 0x18003c18e
je 0x18003c089
cmp edi, 0x57
ja 0x18003ba12
je 0x18003b616
mov ecx, edi
sub ecx, 0x4e
je 0x18003b7b3
sub ecx, 1
je 0x18003b7b3
sub ecx, 1
je 0x18003b7b3
sub ecx, 1
je 0x18003b7b3
sub ecx, 1
je 0x18003b7b3
sub ecx, 1
je 0x18003b7b3
sub ecx, 1
je 0x18003b671
sub ecx, 1
je 0x18003b616
cmp ecx, 1
jne 0x180038afc
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 0x18003bf81
mov eax, 0x2460
test word [r10 + 8], ax
jne 0x18003bbb6
mov ecx, 1
mov word [r10 + 8], cx
jmp 0x180038afc
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 0x18003b6a3
imul rax, rbx, 0x38
mov rbx, qword [rax + rdx]
mov al, byte [r13 + r14*8 + 3]
mov ecx, 1
test cl, al
je 0x18003b6be
add dword [r12 + 0x90], ecx
mov al, byte [r13 + r14*8 + 3]
test r11b, al
je 0x18003b6d1
mov rdi, rbx
mov qword [rsp + 0x48], rbx
mov qword [r15 + 0x30], rbx
jmp 0x18003b6d6
mov rdi, qword [rsp + 0x48]
test byte [r9 + 8], cl
je 0x18003b6e8
xor ecx, ecx
mov qword [r9 + 0x10], rcx
mov dword [r9 + 0xc], ecx
jmp 0x18003b6ea
xor ecx, ecx
movzx eax, byte [r13 + r14*8 + 3]
mov edx, 0x10
test dl, al
je 0x18003b6fe
mov edx, dword [rsi + 0x18]
jmp 0x18003b700
mov edx, ecx
mov r8d, 0x4000
test word [r9 + 8], r8w
je 0x18003b710
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.180030218
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 0x180039616
mov r10, qword [r15 + 0x108]
test r10, r10
je 0x180039616
mov r9, qword [r13 + r14*8 + 0x10]
test r9, r9
je 0x180039616
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
inc dword [rsp + 0x40]
mov ecx, 1
jmp 0x18003b576
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 0x18003b886
xor edx, edx
test al, al
jns 0x18003b81a
movzx eax, di
xor r8d, r8d
and ax, r15w
bt ax, r8w
jae 0x18003b813
bt di, 8
jae 0x18003b96d
mov edx, ecx
jmp 0x18003b96d
mov r15, qword [rsp + 0x58]
test al, 0x20
je 0x18003b857
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 0x180038d5b
mov rdi, qword [rsp + 0x48]
mov r9d, 0x10
test r9b, al
mov r9d, 8
je 0x18003d0f9
mov esi, dword [r13 + r14*8 + 8]
sub esi, ecx
mov dword [rsp + 0x40], esi
mov esi, 1
jmp 0x18003a4cd
and al, 0x47
cmp al, 0x43
jb 0x18003b8c1
mov al, r15b
movzx ecx, di
and al, 0xe
cmp al, r11b
jne 0x18003b8ad
xor edx, edx
mov rcx, rsi
call fcn.180038798
movzx ecx, word [rbx + 8]
mov r11d, 2
and cl, 0xe
cmp cl, r11b
jne 0x18003b90b
xor edx, edx
mov rcx, rbx
call fcn.180038798
jmp 0x18003b90b
cmp al, 0x42
jne 0x18003b90b
movzx eax, di
test r11b, r15b
jne 0x18003b8f1
test r15b, 0xc
je 0x18003b8f1
mov dl, byte [rbp + 0x3a0]
mov r8b, cl
mov rcx, rsi
call fcn.180032c50
movzx eax, word [rbx + 8]
mov ecx, 1
lea r11d, [rcx + 1]
test r11b, al
jne 0x18003b90b
test al, 0xc
je 0x18003b90b
mov dl, byte [rbp + 0x3a0]
mov r8b, cl
mov rcx, rbx
call fcn.180032c50
mov eax, 0x4000
test word [rsi + 8], ax
je 0x18003b92c
mov rcx, rsi
call fcn.180032ba0
mov eax, 0xbfff
and r15w, ax
mov eax, 0x4000
test word [rbx + 8], ax
je 0x18003b942
mov rcx, rbx
call fcn.180032ba0
mov eax, 0xbfff
and di, ax
mov r9, qword [rsp + 0x58]
xor eax, eax
cmp byte [r9 + 0x51], al
jne 0x18003dc17
mov r8, qword [r13 + r14*8 + 0x10]
mov rdx, rsi
mov rcx, rbx
call fcn.1800369f4
mov r9, qword [rsp + 0x60]
mov edx, eax
xor r8d, r8d
movzx eax, byte [r13 + r14*8]
sub eax, 0x4e
je 0x18003b9b1
sub eax, 1
je 0x18003b9a7
sub eax, 1
je 0x18003b99d
sub eax, 1
je 0x18003b993
cmp eax, 1
je 0x18003b98e
not edx
shr edx, 0x1f
jmp 0x18003b9bb
test edx, edx
mov eax, r8d
setle al
jmp 0x18003b9b9
test edx, edx
mov eax, r8d
setg al
jmp 0x18003b9b9
test edx, edx
mov eax, r8d
sete al
jmp 0x18003b9b9
test edx, edx
mov eax, r8d
setne al
mov edx, eax
test byte [r13 + r14*8 + 3], 0x20
je 0x18003b9f0
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 0x18003ba04
mov r10, qword [rsp + 0x50]
test edx, edx
je 0x18003ba04
mov ecx, dword [r13 + r14*8 + 8]
dec ecx
mov dword [rsp + 0x40], ecx
mov word [rsi + 8], r15w
mov word [rbx + 8], di
jmp 0x180039eb3
sub edi, 0x58
je 0x18003b616
sub edi, 1
je 0x18003bcfc
sub edi, 1
je 0x18003bcfc
sub edi, 1
je 0x18003bcfc
sub edi, 1
je 0x18003bcfc
sub edi, 1
je 0x18003bcfc
sub edi, 1
je 0x18003bb72
sub edi, 1
je 0x18003bac6
cmp edi, 1
jne 0x180038afc
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 0x18003ba9d
mov rcx, r10
call fcn.180032dfc
mov r10, qword [rsp + 0x50]
mov ecx, edi
jmp 0x18003baa2
mov word [r10 + 8], cx
test byte [rbx + 8], cl
jne 0x1800394c0
mov r11d, 4
mov rcx, rbx
mov word [r10 + 8], r11w
call fcn.180032ec4
not rax
jmp 0x18003aca9
movsxd rcx, dword [r13 + r14*8 + 4]
mov rax, qword [r12 + 0x60]
mov rbx, qword [rax + rcx*8]
mov rcx, qword [rbx]
call fcn.180030474
xor r8d, r8d
mov dword [rbp + 0x3a8], eax
mov dword [rbx + 0x50], r8d
mov ecx, eax
test eax, eax
jne 0x18003bb3d
mov r10, qword [r15 + 0x108]
test r10, r10
je 0x18003bb3d
mov r9, qword [r13 + r14*8 + 0x10]
test r9, r9
je 0x18003bb3d
lea r11d, [rax + 4]
test byte [rbx + 0x28], r11b
je 0x18003bb3d
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 + 0x40]
mov rdi, qword [rsp + 0x48]
mov r14d, dword [rsp + 0x44]
lea r9d, [rsi + 7]
je 0x180038d65
add dword [r12 + 0x90], esi
jmp 0x180038d65
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 0x18003bbcd
mov eax, 0x2460
test word [r10 + 8], ax
je 0x18003bbc3
mov rcx, r10
call fcn.180032dfc
jmp 0x180038e02
mov word [r10 + 8], cx
jmp 0x18003b843
mov esi, 0x4000
test word [rdi + 8], si
je 0x18003bbe8
mov rcx, rdi
call fcn.180032ba0
test eax, eax
jne 0x18003dc1f
test word [rbx + 8], si
je 0x18003bbfe
mov rcx, rbx
call fcn.180032ba0
test eax, eax
jne 0x18003dc1f
mov sil, byte [rbp + 0x3a0]
mov eax, 0x12
test byte [rdi + 8], al
jne 0x18003bc2a
xor r8d, r8d
mov dl, sil
mov rcx, rdi
call fcn.180032c50
test eax, eax
jne 0x18003dc1f
mov eax, 0x12
test byte [rbx + 8], al
jne 0x18003bc45
xor r8d, r8d
mov dl, sil
mov rcx, rbx
call fcn.180032c50
test eax, eax
jne 0x18003dc1f
mov esi, dword [rdi + 0xc]
add esi, dword [rbx + 0xc]
movsxd rax, dword [r15 + 0x68]
movsxd r14, esi
cmp r14, rax
jg 0x18003db8a
mov rcx, qword [rsp + 0x50]
lea edx, [rsi + 2]
xor eax, eax
cmp qword [rsp + 0x50], rbx
mov r8d, eax
sete r8b
call fcn.1800329d4
test eax, eax
jne 0x18003dc1f
mov rax, qword [rsp + 0x50]
mov ecx, 0xbe02
mov r9d, 2
and word [rax + 8], cx
or word [rax + 8], r9w
cmp rax, rbx
je 0x18003bcb2
movsxd r8, dword [rbx + 0xc]
mov rdx, qword [rbx + 0x10]
mov rcx, qword [rax + 0x10]
call fcn.1800ab070
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.1800ab070
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 0x1800394c0
movsxd rax, dword [r13 + r14*8 + 4]
imul rbx, rax, 0x38
add rbx, qword [rsp + 0x60]
mov rcx, rbx
call fcn.1800388dc
movsxd rcx, dword [r13 + r14*8 + 8]
movzx r12d, ax
imul rdi, rcx, 0x38
add rdi, qword [rsp + 0x60]
mov rcx, rdi
call fcn.1800388dc
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 0x18003bf52
mov cl, sil
lea r11d, [rax + 3]
and cl, r12b
test r11b, cl
je 0x18003be60
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 0x18003bdff
sub ecx, eax
je 0x18003bde8
sub ecx, eax
je 0x18003bdda
cmp ecx, eax
je 0x18003bdae
test r8, r8
je 0x18003bf4d
cmp r8, 0xffffffffffffffff
cmove r8, rax
mov rax, rdx
cqo
idiv r8
mov qword [rbp - 0x38], rdx
jmp 0x18003be40
test r8, r8
je 0x18003bf4d
cmp r8, 0xffffffffffffffff
jne 0x18003bdd0
movabs rax, 0x8000000000000000
cmp rdx, rax
je 0x18003be65
mov rax, rdx
cqo
idiv r8
jmp 0x18003be3c
mov rdx, r8
lea rcx, [rbp - 0x38]
call fcn.18001de9c
jmp 0x18003bdf4
mov rdx, r8
lea rcx, [rbp - 0x38]
call fcn.18001de6c
test eax, eax
jne 0x18003be65
mov r10, qword [rsp + 0x50]
jmp 0x18003be40
test r8, r8
js 0x18003be1d
test rdx, rdx
jle 0x18003be38
movabs rax, 0x7fffffffffffffff
sub rax, rdx
cmp rax, r8
jge 0x18003be38
jmp 0x18003be65
test rdx, rdx
jns 0x18003be38
movabs rcx, 0x8000000000000001
lea rax, [r8 + 1]
sub rcx, rdx
cmp rcx, rax
jg 0x18003be65
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 0x18003a87d
xor eax, eax
mov r15b, al
mov rcx, rbx
call fcn.180032f40
mov rcx, rdi
movaps xmm6, xmm0
call fcn.180032f40
movzx ecx, byte [r13 + r14*8]
movaps xmm3, xmm0
sub ecx, 0x59
je 0x18003bee2
sub ecx, 1
je 0x18003bedc
sub ecx, 1
je 0x18003bed6
cmp ecx, 1
je 0x18003bec8
cvttsd2si rcx, xmm6
cvttsd2si rax, xmm0
mov qword [rbp - 0x38], rax
test rcx, rcx
je 0x18003bf48
cmp rcx, 0xffffffffffffffff
mov edx, 1
xorps xmm3, xmm3
cmove rcx, rdx
cqo
idiv rcx
cvtsi2sd xmm3, rdx
jmp 0x18003bee6
ucomisd xmm6, xmm7
jp 0x18003bed0
je 0x18003bf48
divsd xmm3, xmm6
jmp 0x18003bee6
mulsd xmm3, xmm6
jmp 0x18003bee6
subsd xmm3, xmm6
jmp 0x18003bee6
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 0x18003bf4d
jne 0x18003bf4d
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 0x18003d7e7
test r15b, r15b
jne 0x18003d7e7
mov rcx, r10
call fcn.180032f90
jmp 0x18003a442
mov r10, qword [rsp + 0x50]
mov r15, qword [rsp + 0x58]
mov eax, 0x2460
test word [r10 + 8], ax
je 0x18003bf6b
mov rcx, r10
call fcn.180032dfc
jmp 0x180039913
mov r12, qword [rbp + 0x390]
mov ecx, 1
mov word [r10 + 8], cx
jmp 0x1800394c0
call fcn.180032ec4
mov rcx, rbx
mov qword [rbp - 0x70], rax
call fcn.180032ec4
mov dil, byte [r13 + r14*8]
mov rbx, rax
cmp dil, 0x55
jne 0x18003bfa9
and qword [rbp - 0x70], rax
jmp 0x18003c064
cmp dil, 0x56
jne 0x18003bfb8
or qword [rbp - 0x70], rbx
jmp 0x18003c064
xor esi, esi
test rbx, rbx
je 0x18003c064
jns 0x18003bfe4
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 0x18003c009
cmp qword [rbp - 0x70], rsi
jge 0x18003c000
cmp dil, 0x57
je 0x18003c000
or rax, 0xffffffffffffffff
jmp 0x18003c003
mov rax, rsi
mov qword [rbp - 0x70], rax
jmp 0x18003c064
mov r14d, 8
lea rdx, [rbp - 0x70]
mov r8d, r14d
lea rcx, [rbp - 0x28]
call fcn.1800ab070
mov rcx, rbx
cmp dil, 0x57
jne 0x18003c02e
shl qword [rbp - 0x28], cl
jmp 0x18003c054
mov r8, qword [rbp - 0x28]
shr r8, cl
mov qword [rbp - 0x28], r8
cmp qword [rbp - 0x70], rsi
jge 0x18003c054
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.1800ab070
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 0x1800394c0
mov rdx, qword [r13 + r14*8 + 0x10]
xor edi, edi
mov byte [r13 + r14*8], 0x1b
mov rax, rdx
test rdx, rdx
jne 0x18003c0a2
mov eax, edi
jmp 0x18003c0b6
cmp byte [rdx], dil
je 0x18003c0af
add rax, rcx
cmp byte [rax], dil
jne 0x18003c0a7
sub eax, edx
and eax, 0x3fffffff
mov bl, byte [rbp + 0x3a0]
mov dword [r13 + r14*8 + 4], eax
cmp bl, cl
je 0x18003c15b
mov r9b, 1
mov qword [rsp + 0x20], rdi
or r8d, 0xffffffff
mov rcx, r10
call fcn.1800334e0
mov ecx, 0x12
mov dword [rbp + 0x3a8], eax
cmp eax, ecx
je 0x18003db8a
mov r10, qword [rsp + 0x50]
lea eax, [rcx - 0x10]
test byte [r10 + 8], al
je 0x18003c11b
cmp byte [r10 + 0xa], bl
je 0x18003c11b
mov dl, bl
mov rcx, r10
call fcn.18001c9e8
test eax, eax
jne 0x18003dc1f
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 0x18003c143
mov rdx, qword [r13 + r14*8 + 0x10]
mov rcx, r15
call fcn.18001ae10
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 0x18003db8a
jmp 0x18003c16d
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 0x180039bc1
cmp edi, 0x6b
ja 0x18003c519
je 0x18003c1e6
sub edi, 0x62
je 0x18003c4fa
sub edi, 1
je 0x18003c4b8
sub edi, 1
je 0x18003c472
sub edi, 1
je 0x18003c3a5
sub edi, 1
je 0x18003c3a5
sub edi, 1
je 0x18003c2bc
sub edi, 1
je 0x18003c283
sub edi, 1
je 0x18003c220
cmp edi, 1
jne 0x180038afc
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 0x18003c7bd
mov rcx, rbx
call fcn.18003faf4
jmp 0x18003c7cc
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.18002c91c
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 0x180038e02
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 + 0x44]
je 0x180039966
jmp 0x18003995f
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 0x180038afc
mov rcx, qword [rbx + 0x58]
call fcn.18001ad2c
mov qword [rbx + 0x58], rdi
mov byte [rbx + 0x6d], dil
jmp 0x180038e02
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 0x18003b662
cmp byte [rbx + 0x26], r14b
je 0x18003c2ec
mov rax, qword [rbx + 0x40]
mov ecx, dword [rbp + 0x3a8]
jmp 0x18003c399
mov rcx, qword [rbx + 0x30]
test rcx, rcx
je 0x18003c324
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.18003747c
mov rax, qword [rbp + 0x20]
mov ecx, dword [rbp + 0x3a8]
mov r10, qword [rsp + 0x50]
jmp 0x18003c39d
mov rax, qword [rbx]
mov esi, 1
cmp byte [rax + 0x6d], sil
je 0x18003c34d
mov rcx, rbx
call fcn.180036354
mov dword [rbp + 0x3a8], eax
test eax, eax
jne 0x18003dae0
lea edx, [rsi + 3]
jmp 0x18003c354
mov dword [rbp + 0x3a8], r14d
cmp byte [rbx + 0x25], r14b
je 0x18003c37c
mov r10, qword [rsp + 0x50]
mov word [r10 + 8], si
inc dword [rsp + 0x40]
mov ecx, 1
mov rdi, qword [rsp + 0x48]
mov r14d, dword [rsp + 0x44]
jmp 0x180038a03
mov rbx, qword [rbx]
mov rcx, rbx
call fcn.18002c068
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 0x1800394c6
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 0x18003c3e9
call fcn.18002c068
movsxd rax, dword [r15 + 0x68]
mov rbx, qword [rdi + 0x30]
cmp rbx, rax
jg 0x18003db8a
jmp 0x18003c3fb
call fcn.18002c068
mov ebx, dword [rdi + 0x40]
cmp ebx, dword [r15 + 0x68]
ja 0x18003db8a
mov r14, qword [rsp + 0x50]
mov edx, 0x20
cmp ebx, edx
mov rcx, r14
cmova edx, ebx
call fcn.180032b04
xor ecx, ecx
test eax, eax
jne 0x18003dc1f
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 0x18003c451
mov dword [rsp + 0x20], ecx
mov rcx, rdi
call fcn.18002c240
jmp 0x18003c459
mov rcx, rdi
call fcn.18002c554
mov esi, 1
mov dword [rbp + 0x3a8], eax
mov byte [r14 + 0xa], sil
mov ecx, eax
mov r10, r14
jmp 0x180038d50
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.18003fc10
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 0x180038e02
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.18003fcc4
cmp dword [rbp - 0x10], edi
lea esi, [rdi + 1]
mov ecx, eax
mov dword [rbp + 0x3a8], eax
jmp 0x18003b02b
mov eax, dword [r12 + 0x90]
add dword [r15 + 0x64], eax
xor ecx, ecx
mov dword [r15 + 0x60], eax
mov dword [r12 + 0x90], ecx
jmp 0x180038afc
sub edi, 0x6c
je 0x18003c1ee
sub edi, 1
je 0x18003c6fc
sub edi, 1
je 0x18003c6fc
sub edi, 1
je 0x18003c66e
sub edi, 1
je 0x18003c5d8
sub edi, 1
je 0x18003c559
sub edi, 1
je 0x18003c559
cmp edi, 1
jne 0x180038afc
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.18003739c
lea ecx, [rdi + 1]
mov dword [rbp + 0x3a8], eax
mov eax, dword [rbp - 0x5c]
test byte [r13 + r14*8], cl
je 0x18003c7e0
neg eax
jmp 0x18003c7e2
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 0x18003c61e
mov rcx, rbx
call fcn.180036354
xor r14d, r14d
mov dword [rbp + 0x3a8], eax
test eax, eax
jne 0x18003dae0
mov r10, qword [rsp + 0x50]
lea edx, [rax + 4]
jmp 0x18003c628
xor r14d, r14d
mov dword [rbp + 0x3a8], r14d
cmp byte [rbx + 0x25], r14b
jne 0x18003c364
lea r8, [rbp + 0x48]
mov qword [rbp + 0x48], r14
mov rdx, rdi
mov rcx, r15
call fcn.180037250
mov dword [rbp + 0x3a8], eax
test eax, eax
jne 0x18003dae0
mov r10, qword [rsp + 0x50]
mov edx, 4
mov rax, qword [rbp + 0x48]
mov qword [r10], rax
mov word [r10 + 8], dx
jmp 0x18003c364
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.18002c980
mov dword [rbp + 0x3a8], eax
mov ecx, eax
test eax, eax
jne 0x18003c6f4
cmp dword [rbp + 0x30], esi
jne 0x18003c6f4
mov rcx, rdi
call fcn.180030474
mov ecx, eax
mov dword [rbp + 0x3a8], eax
mov dword [rbx + 0x50], esi
jmp 0x180038d46
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 0x18003c72f
add dword [r12 + 0x90], eax
mov eax, 0x4000
test word [rbx + 8], ax
je 0x18003c752
mov rcx, rbx
call fcn.180032ba0
mov dword [rbp + 0x3a8], eax
mov ecx, eax
test eax, eax
jne 0x180038d46
xor ecx, ecx
cmp qword [rdi + 0x48], rcx
je 0x18003c76a
mov rdx, rbx
mov rcx, rdi
call fcn.18003f020
jmp 0x180039745
mov eax, 0x10
test byte [r13 + r14*8 + 3], al
je 0x18003c77b
mov eax, dword [rdi + 0x18]
jmp 0x18003c77d
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.180030218
xor r8d, r8d
mov dword [rbp + 0x3a8], eax
mov dword [rdi + 0x50], r8d
mov ecx, eax
jmp 0x180038d46
mov rcx, qword [rbx]
call fcn.18002c8e0
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 0x18003a4ac
inc eax
mov rdi, qword [rsp + 0x48]
mov esi, 1
mov dword [rbp - 0x5c], eax
lea r9d, [rsi + 7]
test eax, eax
jle 0x18003c804
mov r10d, dword [r13 + r14*8 + 8]
sub r10d, ecx
mov dword [rsp + 0x40], r10d
mov ecx, dword [rbp + 0x3a8]
jmp 0x18003b045
cmp edi, 0x87
ja 0x18003d113
je 0x18003d0d1
cmp edi, 0x7e
ja 0x18003cbc0
je 0x18003cba9
mov ecx, edi
sub ecx, 0x75
je 0x18003cab5
sub ecx, 1
je 0x18003ca24
sub ecx, 1
je 0x18003c9ea
sub ecx, 1
je 0x18003c99a
sub ecx, 1
je 0x18003c99a
sub ecx, 1
je 0x18003c8b7
sub ecx, 1
je 0x18003c8a5
sub ecx, 1
je 0x18003c88e
cmp ecx, 1
jne 0x180038afc
mov r8, qword [r13 + r14*8 + 0x10]
mov rcx, r15
mov edx, dword [r13 + r14*8 + 4]
call fcn.18004a038
jmp 0x180038e02
mov r8, qword [r13 + r14*8 + 0x10]
mov rcx, r15
mov edx, dword [r13 + r14*8 + 4]
call fcn.18004a4f0
jmp 0x180038e02
mov edx, dword [r13 + r14*8 + 4]
mov rcx, r15
call fcn.180048c74
jmp 0x180039745
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.18001c654
xor r14d, r14d
mov rbx, rax
test rax, rax
jne 0x18003c926
mov dword [rbp + 0x3a8], 7
jmp 0x18003c97e
lea r9, [rbp + 0xa0]
mov byte [r15 + 0xa1], 1
lea r8, [fcn.18005b9c0]
mov dword [rbp + 0xb4], r14d
mov rdx, rbx
mov qword [rsp + 0x20], r14
mov rcx, r15
call fcn.180057d94
test eax, eax
mov rdx, rbx
mov rcx, r15
cmove eax, dword [rbp + 0xb4]
mov dword [rbp + 0x3a8], eax
call fcn.18001ae10
mov ecx, dword [rbp + 0x3a8]
mov byte [r15 + 0xa1], r14b
test ecx, ecx
je 0x18003c98c
mov rcx, r15
call fcn.18004a1f4
mov ecx, dword [rbp + 0x3a8]
cmp ecx, 7
je 0x18003dc1f
jmp 0x180038d46
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.180028644
mov r8d, esi
lea rdx, [rbp - 0xc]
cmp dil, 0x79
mov rcx, rbx
setne r8b
inc r8d
call fcn.180030734
mov rcx, rbx
mov dword [rbp + 0x3a8], eax
call fcn.1800286f4
movsxd rax, dword [rbp - 0xc]
jmp 0x18003aca9
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 0x18003ca0e
mov rcx, r15
call fcn.18003e594
jmp 0x180038e02
mov rcx, qword [rcx]
xor r8d, r8d
mov edx, dword [rcx + 0x60]
mov rcx, qword [rcx]
call fcn.180030b5c
jmp 0x180039745
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.180030b5c
mov ecx, eax
mov dword [rbp + 0x3a8], eax
cmp dword [r13 + r14*8 + 0xc], edi
je 0x180038d46
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 + 0x40]
mov rdi, qword [rsp + 0x48]
mov r14d, dword [rsp + 0x44]
test eax, eax
jle 0x180038d65
mov rbx, qword [rsp + 0x60]
imul rcx, rax, 0x38
add qword [rcx + rbx], rdx
mov ecx, dword [rbp + 0x3a8]
jmp 0x180038d65
mov rax, qword [r15 + 8]
xor r8d, r8d
mov edx, r8d
test rax, rax
je 0x18003cb00
cmp dword [rax + 0x44], 0xbdf20da3
jne 0x18003caec
mov ecx, dword [rax + 0x8c]
bt ecx, 9
jae 0x18003caec
and cl, 0xc
cmp cl, r9b
jae 0x18003caec
cmp dword [rax + 0x80], r8d
jl 0x18003caec
inc edx
mov rax, qword [rax + 0x58]
test rax, rax
jne 0x18003cac4
mov r12, qword [rbp + 0x390]
lea r11d, [rax + 2]
mov edi, 1
mov word [r10 + 8], di
cmp edx, edi
jg 0x18003db3f
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.180028644
lea r8, [rbp - 0x20]
mov edx, ebx
mov rcx, rdi
call fcn.180030c08
mov rcx, rdi
mov dword [rbp + 0x3a8], eax
call fcn.1800286f4
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 0x1800394c6
test r8d, r8d
je 0x1800394c6
mov r9d, dword [r13 + r14*8 + 4]
mov edx, esi
mov rcx, r15
call fcn.18004c3c8
inc dword [rsp + 0x40]
mov ecx, 1
lea r14d, [rcx + rsi]
mov byte [rbp + 0x398], r14b
jmp 0x18003b571
mov r8, qword [r13 + r14*8 + 0x10]
mov rcx, r15
mov edx, dword [r13 + r14*8 + 4]
call fcn.1800644dc
jmp 0x180038e02
sub edi, 0x7f
je 0x18003cfad
sub edi, 1
je 0x18003cf71
sub edi, 1
je 0x18003cf12
sub edi, 1
je 0x18003cea0
sub edi, 1
je 0x18003cc99
sub edi, 1
je 0x18003cc6a
sub edi, 1
je 0x18003cc55
cmp edi, 1
jne 0x180038afc
test dword [r15 + 0x2c], 0x1000000
je 0x18003cc1b
movsxd rax, dword [r13 + r14*8 + 8]
add qword [r15 + 0x318], rax
jmp 0x180038afc
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 + 0x44]
je 0x18003cc48
add qword [r15 + 0x310], rax
jmp 0x180038d65
add qword [r12 + 0xc8], rax
jmp 0x180038d65
mov word [r10 + 8], r9w
mov rax, qword [r13 + r14*8 + 0x10]
mov rcx, qword [rax]
mov qword [r10], rcx
jmp 0x180038afc
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 0x180039deb
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 0x18003ccd6
mov rcx, qword [r15 + 0x18]
mov rax, qword [r12 + 0xf0]
jmp 0x18003ccd1
cmp qword [rax + 0x38], rcx
je 0x18003d83c
mov rax, qword [rax + 8]
test rax, rax
jne 0x18003ccc3
mov r14, qword [rsp + 0x58]
mov eax, dword [r12 + 0x100]
cmp eax, dword [r14 + 0x90]
jge 0x18003db59
mov r13d, 0x40
test byte [rdi + 8], r13b
jne 0x18003cdde
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.18001b048
mov rbx, rax
test rax, rax
je 0x18003dc1c
mov rcx, rdi
call fcn.180032ea4
mov eax, dword [rsp + 0x40]
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 0x18003cdd2
lea edx, [r13 + 0x40]
mov word [rax + 8], dx
mov qword [rax + 0x28], r14
add rax, 0x38
cmp rax, rcx
jne 0x18003cdc1
mov eax, dword [r12 + 0x100]
xor esi, esi
jmp 0x18003cde1
mov rbx, qword [rdi]
or dword [rsp + 0x40], 0xffffffff
lea rdi, [rbx + 0x38]
inc eax
mov qword [rsp + 0x60], rdi
mov dword [r12 + 0x100], eax
mov rax, qword [r12 + 0xf0]
mov qword [rbx + 8], rax
mov rax, qword [rsp + 0x48]
mov qword [rbx + 0x40], rax
mov eax, dword [r12 + 0x90]
mov dword [rbx + 0x64], eax
mov rax, qword [r12]
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.1800ab9f0
mov ecx, dword [rbp + 0x3a8]
mov r15, r14
jmp 0x180038d46
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 0x18003ced9
mov rcx, rbx
call fcn.1800332a8
test byte [rbx + 8], 0x20
je 0x18003dc1f
test edi, edi
je 0x18003cf02
mov r8, qword [rsi]
mov edx, edi
mov rcx, qword [rbx]
call fcn.180022100
test eax, eax
je 0x18003cefa
mov ecx, dword [r13 + r14*8 + 8]
dec ecx
jmp 0x180039c53
test edi, edi
js 0x180038e02
mov rdx, qword [rsi]
mov rcx, qword [rbx]
call fcn.180021dfc
jmp 0x180038e02
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 0x18003cf59
mov rcx, qword [rbx]
lea rdx, [rbp + 0x98]
call fcn.180022090
test eax, eax
je 0x18003cf59
movsxd rax, dword [r13 + r14*8 + 0xc]
mov rdx, qword [rbp + 0x98]
imul rcx, rax, 0x38
add rcx, rdi
call fcn.18003323c
jmp 0x18003d5fc
mov rcx, rbx
call fcn.180033198
mov ecx, dword [r13 + r14*8 + 8]
dec ecx
mov dword [rsp + 0x40], ecx
jmp 0x18003d5fc
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 0x18003cfa5
mov rcx, rbx
call fcn.1800332a8
test byte [rbx + 8], 0x20
je 0x18003dc1f
mov rdx, qword [rdi]
jmp 0x18003cf05
mov esi, dword [r13 + r14*8 + 8]
mov rcx, r15
movsxd rdx, esi
lea rdx, [rdx*4 + 4]
call fcn.18001b080
xor r8d, r8d
mov r12, rax
test rax, rax
je 0x18003dc0e
movsxd rcx, dword [r13 + r14*8 + 0xc]
mov r15d, r8d
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 0x18003d036
mov rdi, rbx
mov r13d, esi
lea ebx, [r8 + 1]
mov rcx, rdi
call fcn.180032ec4
mov dword [r12 + r15*4], eax
add rdi, 0x38
add r15, rbx
sub r13, rbx
jne 0x18003d00e
mov rbx, qword [rbp - 0x50]
xor r8d, r8d
mov r13, qword [rbp - 0x78]
mov rax, qword [rsp + 0x70]
mov dword [r12 + r15*4], r8d
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.180031b10
mov rdx, r12
mov rcx, r15
mov rdi, rax
call fcn.18001ae10
movsxd rcx, dword [rbp - 0x1c]
sub qword [r13], rcx
mov rcx, rbx
call fcn.180033198
xor r14d, r14d
cmp dword [rbp - 0x1c], r14d
je 0x18003d0b8
test rdi, rdi
je 0x18003dc0e
lea rax, [fcn.18001ad2c]
mov r9b, 1
or r8d, 0xffffffff
mov qword [rsp + 0x20], rax
mov rdx, rdi
mov rcx, rbx
call fcn.1800334e0
movzx edx, byte [rbp + 0x3a0]
mov rcx, rbx
call fcn.1800329bc
mov r13, qword [rsp + 0x70]
jmp 0x180039913
xor edi, edi
cmp dword [r13 + r14*8 + 4], edi
je 0x18003d109
cmp qword [r15 + 0x310], rdi
jne 0x180038afc
cmp qword [r15 + 0x318], rdi
mov rdi, qword [rsp + 0x48]
je 0x18003b871
mov ecx, dword [rbp + 0x3a8]
mov esi, 1
jmp 0x180038d60
cmp qword [r12 + 0xc8], rdi
jmp 0x18003d0e1
cmp edi, 0x91
ja 0x18003d3ff
je 0x18003d3e3
sub edi, 0x88
je 0x18003d356
sub edi, 1
je 0x18003d32f
sub edi, 1
je 0x18003d304
sub edi, 1
je 0x18003d2e9
sub edi, 1
je 0x18003d281
sub edi, 1
je 0x18003d22e
sub edi, 1
je 0x18003d20a
sub edi, 1
je 0x18003d1a7
cmp edi, 1
jne 0x180038afc
mov rbx, qword [r13 + r14*8 + 0x10]
mov rcx, r15
mov rdx, rbx
call fcn.180067470
mov dword [rbp + 0x3a8], eax
mov ecx, eax
test rbx, rbx
je 0x180038d46
mov rdx, qword [rbx + 0x10]
mov rcx, r12
call fcn.18003747c
jmp 0x180038e02
mov r8b, byte [r13 + r14*8 + 0xc]
test r8b, r8b
jne 0x18003d1c0
mov eax, 0x4000
test dword [r15 + 0x2c], eax
jne 0x1800394ed
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.180031ec0
mov dword [rbp + 0x3a8], eax
mov ecx, eax
cmp al, 6
jne 0x180038d46
mov r9, qword [r13 + r14*8 + 0x10]
lea rcx, [r12 + 0x48]
lea r8, str.database_table_is_locked:__s
mov rdx, r15
call fcn.18001b2d8
jmp 0x180038e02
xor ecx, ecx
cmp dword [r13 + r14*8 + 4], ecx
jne 0x18003d220
mov rcx, r15
call fcn.180037464
jmp 0x180038e02
or dword [r12 + 0x8c], 0x20
jmp 0x180038afc
movsxd rcx, dword [r13 + r14*8 + 4]
mov rax, qword [r15 + 0x20]
shl rcx, 5
mov rcx, qword [rcx + rax + 8]
call fcn.18002b564
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 0x18003a4d3
mov ecx, dword [r13 + r14*8 + 8]
dec ecx
mov dword [rsp + 0x40], ecx
xor ecx, ecx
mov dword [rbp + 0x3a8], ecx
jmp 0x18003a4d3
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.180032d48
mov dword [rbp + 0x3a8], eax
test eax, eax
je 0x18003d2c5
mov rcx, rbx
call fcn.180037668
mov r9, rax
lea rcx, [r12 + 0x48]
lea r8, [0x1800ffec4]
mov rdx, r15
call fcn.18001b2d8
movzx edx, byte [rbp + 0x3a0]
mov rcx, rbx
call fcn.1800329bc
mov rcx, rbx
call fcn.180033380
test eax, eax
jne 0x18003db8a
jmp 0x180038e02
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 0x18003b0d6
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 0x1800399f9
jmp 0x18003a4c2
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 0x1800399f9
jmp 0x18003a4c2
mov rcx, qword [r12 + 0xf0]
test rcx, rcx
je 0x18003d384
mov rax, qword [rcx + 8]
jmp 0x18003d370
mov rcx, rax
mov rax, qword [rax + 8]
test rax, rax
jne 0x18003d369
movsxd rax, dword [r13 + r14*8 + 4]
imul rdi, rax, 0x38
add rdi, qword [rcx + 0x20]
jmp 0x18003d392
movsxd rax, dword [r13 + r14*8 + 4]
imul rdi, rax, 0x38
add rdi, qword [rsp + 0x60]
mov rcx, rdi
call fcn.180032ff8
movsxd rax, dword [r13 + r14*8 + 8]
imul rbx, rax, 0x38
add rbx, qword [rsp + 0x60]
mov rcx, rbx
call fcn.180032ff8
mov rax, qword [rbx]
mov esi, 1
mov ecx, dword [rbp + 0x3a8]
mov r10, qword [rsp + 0x50]
mov r8d, dword [rsp + 0x40]
lea r9d, [rsi + 7]
mov r14d, dword [rsp + 0x44]
cmp qword [rdi], rax
jge 0x18003d3d9
mov qword [rdi], rax
mov rdi, qword [rsp + 0x48]
jmp 0x180038d65
mov r8, qword [r13 + r14*8 + 0x10]
lea r9, [r12 + 0x48]
mov edx, dword [r13 + r14*8 + 4]
mov rcx, r15
call fcn.180067200
jmp 0x180039745
sub edi, 0x92
je 0x18003d7a4
sub edi, 1
je 0x18003d725
sub edi, 1
je 0x18003d663
sub edi, 1
je 0x18003d587
sub edi, 1
je 0x18003d524
sub edi, 1
je 0x18003d506
sub edi, 1
je 0x18003d4c4
cmp edi, 1
jne 0x180038afc
mov eax, dword [r13 + r14*8 + 8]
xor r8d, r8d
test eax, eax
je 0x18003d45d
lea ecx, [rax - 1]
mov dword [rsp + 0x40], ecx
cmp qword [r15 + 0xc0], r8
je 0x1800394ed
mov eax, 0x800
test dword [r12 + 0x8c], eax
jne 0x1800394ed
mov rdx, qword [r13 + r14*8 + 0x10]
test rdx, rdx
jne 0x18003d498
mov rdx, qword [r12 + 0xe0]
test rdx, rdx
je 0x1800394ed
mov rcx, r12
call fcn.180038388
mov rcx, qword [r15 + 0xc8]
mov rdx, rax
mov rbx, rax
call qword [r15 + 0xc0]
mov rdx, rbx
mov rcx, r15
call fcn.18001ae10
jmp 0x180038e02
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 0x18003d4f4
mov rcx, rbx
call fcn.18002989c
cmp eax, dword [r13 + r14*8 + 0xc]
cmovb eax, dword [r13 + r14*8 + 0xc]
mov edx, eax
mov rcx, rbx
call fcn.18002a374
movsxd rcx, eax
jmp 0x1800394b8
movsxd rax, dword [r13 + r14*8 + 4]
mov rcx, qword [r15 + 0x20]
shl rax, 5
mov rcx, qword [rax + rcx + 8]
call fcn.18002989c
mov eax, eax
jmp 0x18003aca9
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.1800329bc
mov dword [rbp + 0x3a8], eax
mov ecx, eax
test eax, eax
jne 0x180038d46
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.18003747c
and dword [r12 + 0x8c], 0xffffffdf
jmp 0x180038e02
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 0x180038afc
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.18003747c
xor ebx, ebx
cmp dword [rbp + 0x3a8], ebx
jne 0x18003d5f1
mov rcx, qword [rdi + 0x30]
call qword [rsi + 0x50]
test eax, eax
jne 0x18003d5fc
mov eax, dword [r13 + r14*8 + 8]
dec eax
mov dword [rsp + 0x40], eax
mov eax, dword [r15 + 0x140]
test eax, eax
jne 0x18003dbb1
mov r8, qword [r15 + 0x188]
mov r14d, dword [rsp + 0x44]
test r8, r8
je 0x18003d804
cmp r14d, dword [rbp - 0x7c]
jb 0x18003d804
mov r14d, dword [r15 + 0x198]
xor edx, edx
mov eax, dword [rsp + 0x44]
mov rcx, qword [r15 + 0x190]
div r14d
sub r14d, edx
add r14d, dword [rsp + 0x44]
mov dword [rbp - 0x7c], r14d
call r8
test eax, eax
je 0x180038e02
mov r13d, 9
jmp 0x18003d8e0
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 0x18003d694
mov rcx, rsi
call fcn.180033198
jmp 0x18003a449
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.1800ab9f0
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.18003747c
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.1800329bc
mov rcx, rsi
call fcn.180033380
mov r15, qword [rsp + 0x58]
jmp 0x18003d2dc
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.18003747c
mov ecx, dword [rbp + 0x3a8]
test ecx, ecx
jne 0x180038d46
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.180038694
mov rcx, qword [rbp]
test rax, rax
je 0x18003d79a
mov qword [rax + 0x30], rcx
inc dword [rsp + 0x40]
mov ecx, 1
jmp 0x18003b571
mov byte [r15 + 0x51], 1
call qword [rdi + 0x38]
jmp 0x18003d78c
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.180067308
and dword [r12 + 0x8c], 0xfffffff3
mov ecx, eax
mov dword [rbp + 0x3a8], eax
jmp 0x180038d46
mov r13, qword [rsp + 0x70]
jmp 0x180038e02
mov r12, qword [rbp + 0x390]
mov r15, qword [rsp + 0x58]
jmp 0x1800394ed
mov r12, qword [rbp + 0x390]
jmp 0x18003972e
mov ecx, dword [rbp + 0x3a8]
mov esi, 1
mov r10, qword [rsp + 0x50]
mov r8d, dword [rsp + 0x40]
mov rdi, qword [rsp + 0x48]
lea r9d, [rsi + 7]
jmp 0x180038d65
mov ecx, dword [rbp + 0x3a8]
mov esi, 1
mov r10, qword [rsp + 0x50]
jmp 0x180038d5b
mov r15, qword [rsp + 0x58]
jmp 0x180038afc
mov r13d, r9d
xor r14d, r14d
jmp 0x18003dae7
mov eax, dword [rsp + 0x40]
mov dword [r12 + 0x80], eax
jmp 0x18003d912
test ecx, ecx
je 0x18003d885
mov edx, 0x204
mov rcx, r15
call fcn.1800738a0
mov byte [r15 + 0x4f], 1
mov rcx, r15
call fcn.180073448
jmp 0x18003da3e
mov esi, 1
mov rcx, r12
mov edx, esi
call fcn.180035adc
mov ebx, eax
test eax, eax
jne 0x18003dc55
mov rcx, r12
mov byte [r15 + 0x4f], dil
call fcn.180035b38
lea ecx, [rsi + 4]
cmp eax, ecx
jne 0x18003d878
mov eax, dword [rsp + 0x40]
sub sil, dil
mov dword [r12 + 0x80], eax
mov byte [r15 + 0x4f], sil
jmp 0x18003d912
lea r8, str.cannot_open_savepoint___SQL_statements_in_progress
lea rcx, [r12 + 0x48]
mov rdx, r15
call fcn.18001b2d8
mov r13d, 5
mov dword [rbp + 0x3a8], r13d
jmp 0x18003da7d
mov r15, qword [rsp + 0x58]
lea r8, str.cannot_release_savepoint___SQL_statements_in_progress
jmp 0x18003d8cd
mov eax, dword [rsp + 0x40]
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 0x18003dc55
mov r15, qword [rsp + 0x58]
lea rcx, [r12 + 0x48]
mov rdx, r15
lea r8, str.no_such_savepoint:__s
mov r9, rsi
call fcn.18001b2d8
mov edi, 1
mov r13d, edi
mov dword [rbp + 0x3a8], edi
jmp 0x18003da82
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.18001b2d8
mov r13d, dword [rbp + 0x3a8]
jmp 0x18003da82
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 0x18003da29
movzx eax, byte [r13 + r14*8 + 3]
test al, al
je 0x18003d9fc
lea rcx, [0x180000000]
mov r9, qword [rcx + rax*8 + 0xf9480]
mov rax, r9
test r9, r9
je 0x18003d9ff
mov rdx, qword [r13 + r14*8 + 0x10]
test rdx, rdx
je 0x18003d9ff
mov qword [rsp + 0x20], rdx
lea rcx, [r12 + 0x48]
mov rdx, r15
lea r8, str._s_constraint_failed:__s
call fcn.18001b2d8
jmp 0x18003da29
mov rax, r10
mov r9, qword [r13 + r14*8 + 0x10]
lea rcx, [r12 + 0x48]
mov rdx, r15
test r9, r9
je 0x18003da1a
lea r8, [0x1800ffec4]
jmp 0x18003da24
mov r9, rax
lea r8, str._s_constraint_failed
call fcn.18001b2d8
mov rcx, r12
call fcn.180035b38
mov ecx, 5
cmp eax, ecx
je 0x18003d912
mov eax, dword [r12 + 0x84]
neg eax
sbb ebx, ebx
and ebx, 0xffffff9c
add ebx, 0x65
jmp 0x18003dc55
mov r13d, 0x14
jmp 0x18003dae7
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.180035b38
cmp dword [rbp + 0x3a8], 0xc0a
jne 0x18003daa9
mov byte [r15 + 0x51], dil
mov ebx, edi
test sil, sil
je 0x18003dc55
movzx edx, sil
mov rcx, r15
sub edx, edi
call fcn.18004a1b0
jmp 0x18003dc55
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 0x18003db0e
mov r13d, 7
mov dword [rbp + 0x3a8], r13d
jmp 0x18003db1b
mov r13d, 0x204
jmp 0x18003d8e0
cmp r13d, 0xc0a
je 0x18003da7d
mov ecx, r13d
call fcn.1800739d4
mov r9, rax
lea rcx, [r12 + 0x48]
lea r8, [0x1800ffec4]
mov rdx, r15
call fcn.18001b2d8
jmp 0x18003da7d
mov r13d, 6
mov byte [r12 + 0x8a], r11b
mov dword [rbp + 0x3a8], r13d
jmp 0x18003da82
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.18001b2d8
jmp 0x18003d989
mov r12, qword [rbp + 0x390]
mov r15, r9
lea rcx, [r12 + 0x48]
mov rdx, r15
lea r8, str.string_or_blob_too_big
call fcn.18001b2d8
mov eax, 0x12
mov r13d, eax
mov dword [rbp + 0x3a8], eax
jmp 0x18003da7d
mov sil, byte [rbp + 0x398]
mov ecx, 9
mov dword [rbp + 0x3a8], 9
mov dword [r12 + 0x84], 9
call fcn.1800739d4
mov r9, rax
lea rcx, [r12 + 0x48]
lea r8, [0x1800ffec4]
mov rdx, r15
call fcn.18001b2d8
mov r13d, dword [rbp + 0x3a8]
mov edi, 1
jmp 0x18003da89
mov r12, qword [rbp + 0x390]
mov r15, qword [rsp + 0x58]
jmp 0x18003dc1f
mov r12, qword [rbp + 0x390]
jmp 0x18003dc1f
mov r15, r9
jmp 0x18003dc1f
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.18001b2d8
mov r13d, 7
mov dword [rbp + 0x3a8], r13d
jmp 0x18003dbf6
mov r12, qword [rbp + 0x390]
mov rax, qword [rsp + 0x48]
mov rcx, r12
mov r9, qword [rsp + 0x58]
mov qword [r9 + 0x30], rax
mov eax, dword [rsp + 0x44]
add dword [r12 + 0xb0], eax
call fcn.180034944
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