Skip to content

Instantly share code, notes, and snippets.

@piperswe
Last active January 28, 2018 01:07
Show Gist options
  • Save piperswe/a013ea56d90c10fdd56390aa29a886df to your computer and use it in GitHub Desktop.
Save piperswe/a013ea56d90c10fdd56390aa29a886df to your computer and use it in GitHub Desktop.
This file has been truncated, but you can view the full file.
.file "sqlite3.c"
.intel_syntax noprefix
.section .rodata
.LC0:
.string "COMPILER=gcc-6.3.0 20170516"
.LC1:
.string "THREADSAFE=1"
.section .data.rel.ro.local,"aw",@progbits
.align 16
.type sqlite3azCompileOpt, @object
.size sqlite3azCompileOpt, 16
sqlite3azCompileOpt:
.quad .LC0
.quad .LC1
.text
.type sqlite3CompileOptions, @function
sqlite3CompileOptions:
.LFB0:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
mov QWORD PTR -8[rbp], rdi
mov rax, QWORD PTR -8[rbp]
mov DWORD PTR [rax], 2
lea rax, sqlite3azCompileOpt[rip]
pop rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE0:
.size sqlite3CompileOptions, .-sqlite3CompileOptions
.globl sqlite3_version
.section .rodata
.type sqlite3_version, @object
.size sqlite3_version, 7
sqlite3_version:
.string "3.22.0"
.globl sqlite3_temp_directory
.bss
.align 8
.type sqlite3_temp_directory, @object
.size sqlite3_temp_directory, 8
sqlite3_temp_directory:
.zero 8
.globl sqlite3_data_directory
.align 8
.type sqlite3_data_directory, @object
.size sqlite3_data_directory, 8
sqlite3_data_directory:
.zero 8
.section .rodata
.align 32
.type sqlite3UpperToLower, @object
.size sqlite3UpperToLower, 256
sqlite3UpperToLower:
.byte 0
.byte 1
.byte 2
.byte 3
.byte 4
.byte 5
.byte 6
.byte 7
.byte 8
.byte 9
.byte 10
.byte 11
.byte 12
.byte 13
.byte 14
.byte 15
.byte 16
.byte 17
.byte 18
.byte 19
.byte 20
.byte 21
.byte 22
.byte 23
.byte 24
.byte 25
.byte 26
.byte 27
.byte 28
.byte 29
.byte 30
.byte 31
.byte 32
.byte 33
.byte 34
.byte 35
.byte 36
.byte 37
.byte 38
.byte 39
.byte 40
.byte 41
.byte 42
.byte 43
.byte 44
.byte 45
.byte 46
.byte 47
.byte 48
.byte 49
.byte 50
.byte 51
.byte 52
.byte 53
.byte 54
.byte 55
.byte 56
.byte 57
.byte 58
.byte 59
.byte 60
.byte 61
.byte 62
.byte 63
.byte 64
.byte 97
.byte 98
.byte 99
.byte 100
.byte 101
.byte 102
.byte 103
.byte 104
.byte 105
.byte 106
.byte 107
.byte 108
.byte 109
.byte 110
.byte 111
.byte 112
.byte 113
.byte 114
.byte 115
.byte 116
.byte 117
.byte 118
.byte 119
.byte 120
.byte 121
.byte 122
.byte 91
.byte 92
.byte 93
.byte 94
.byte 95
.byte 96
.byte 97
.byte 98
.byte 99
.byte 100
.byte 101
.byte 102
.byte 103
.byte 104
.byte 105
.byte 106
.byte 107
.byte 108
.byte 109
.byte 110
.byte 111
.byte 112
.byte 113
.byte 114
.byte 115
.byte 116
.byte 117
.byte 118
.byte 119
.byte 120
.byte 121
.byte 122
.byte 123
.byte 124
.byte 125
.byte 126
.byte 127
.byte -128
.byte -127
.byte -126
.byte -125
.byte -124
.byte -123
.byte -122
.byte -121
.byte -120
.byte -119
.byte -118
.byte -117
.byte -116
.byte -115
.byte -114
.byte -113
.byte -112
.byte -111
.byte -110
.byte -109
.byte -108
.byte -107
.byte -106
.byte -105
.byte -104
.byte -103
.byte -102
.byte -101
.byte -100
.byte -99
.byte -98
.byte -97
.byte -96
.byte -95
.byte -94
.byte -93
.byte -92
.byte -91
.byte -90
.byte -89
.byte -88
.byte -87
.byte -86
.byte -85
.byte -84
.byte -83
.byte -82
.byte -81
.byte -80
.byte -79
.byte -78
.byte -77
.byte -76
.byte -75
.byte -74
.byte -73
.byte -72
.byte -71
.byte -70
.byte -69
.byte -68
.byte -67
.byte -66
.byte -65
.byte -64
.byte -63
.byte -62
.byte -61
.byte -60
.byte -59
.byte -58
.byte -57
.byte -56
.byte -55
.byte -54
.byte -53
.byte -52
.byte -51
.byte -50
.byte -49
.byte -48
.byte -47
.byte -46
.byte -45
.byte -44
.byte -43
.byte -42
.byte -41
.byte -40
.byte -39
.byte -38
.byte -37
.byte -36
.byte -35
.byte -34
.byte -33
.byte -32
.byte -31
.byte -30
.byte -29
.byte -28
.byte -27
.byte -26
.byte -25
.byte -24
.byte -23
.byte -22
.byte -21
.byte -20
.byte -19
.byte -18
.byte -17
.byte -16
.byte -15
.byte -14
.byte -13
.byte -12
.byte -11
.byte -10
.byte -9
.byte -8
.byte -7
.byte -6
.byte -5
.byte -4
.byte -3
.byte -2
.byte -1
.align 32
.type sqlite3CtypeMap, @object
.size sqlite3CtypeMap, 256
sqlite3CtypeMap:
.byte 0
.byte 0
.byte 0
.byte 0
.byte 0
.byte 0
.byte 0
.byte 0
.byte 0
.byte 1
.byte 1
.byte 1
.byte 1
.byte 1
.byte 0
.byte 0
.byte 0
.byte 0
.byte 0
.byte 0
.byte 0
.byte 0
.byte 0
.byte 0
.byte 0
.byte 0
.byte 0
.byte 0
.byte 0
.byte 0
.byte 0
.byte 0
.byte 1
.byte 0
.byte -128
.byte 0
.byte 64
.byte 0
.byte 0
.byte -128
.byte 0
.byte 0
.byte 0
.byte 0
.byte 0
.byte 0
.byte 0
.byte 0
.byte 12
.byte 12
.byte 12
.byte 12
.byte 12
.byte 12
.byte 12
.byte 12
.byte 12
.byte 12
.byte 0
.byte 0
.byte 0
.byte 0
.byte 0
.byte 0
.byte 0
.byte 10
.byte 10
.byte 10
.byte 10
.byte 10
.byte 10
.byte 2
.byte 2
.byte 2
.byte 2
.byte 2
.byte 2
.byte 2
.byte 2
.byte 2
.byte 2
.byte 2
.byte 2
.byte 2
.byte 2
.byte 2
.byte 2
.byte 2
.byte 2
.byte 2
.byte 2
.byte -128
.byte 0
.byte 0
.byte 0
.byte 64
.byte -128
.byte 42
.byte 42
.byte 42
.byte 42
.byte 42
.byte 42
.byte 34
.byte 34
.byte 34
.byte 34
.byte 34
.byte 34
.byte 34
.byte 34
.byte 34
.byte 34
.byte 34
.byte 34
.byte 34
.byte 34
.byte 34
.byte 34
.byte 34
.byte 34
.byte 34
.byte 34
.byte 0
.byte 0
.byte 0
.byte 0
.byte 0
.byte 64
.byte 64
.byte 64
.byte 64
.byte 64
.byte 64
.byte 64
.byte 64
.byte 64
.byte 64
.byte 64
.byte 64
.byte 64
.byte 64
.byte 64
.byte 64
.byte 64
.byte 64
.byte 64
.byte 64
.byte 64
.byte 64
.byte 64
.byte 64
.byte 64
.byte 64
.byte 64
.byte 64
.byte 64
.byte 64
.byte 64
.byte 64
.byte 64
.byte 64
.byte 64
.byte 64
.byte 64
.byte 64
.byte 64
.byte 64
.byte 64
.byte 64
.byte 64
.byte 64
.byte 64
.byte 64
.byte 64
.byte 64
.byte 64
.byte 64
.byte 64
.byte 64
.byte 64
.byte 64
.byte 64
.byte 64
.byte 64
.byte 64
.byte 64
.byte 64
.byte 64
.byte 64
.byte 64
.byte 64
.byte 64
.byte 64
.byte 64
.byte 64
.byte 64
.byte 64
.byte 64
.byte 64
.byte 64
.byte 64
.byte 64
.byte 64
.byte 64
.byte 64
.byte 64
.byte 64
.byte 64
.byte 64
.byte 64
.byte 64
.byte 64
.byte 64
.byte 64
.byte 64
.byte 64
.byte 64
.byte 64
.byte 64
.byte 64
.byte 64
.byte 64
.byte 64
.byte 64
.byte 64
.byte 64
.byte 64
.byte 64
.byte 64
.byte 64
.byte 64
.byte 64
.byte 64
.byte 64
.byte 64
.byte 64
.byte 64
.byte 64
.byte 64
.byte 64
.byte 64
.byte 64
.byte 64
.byte 64
.byte 64
.byte 64
.byte 64
.byte 64
.byte 64
.byte 64
.byte 64
.byte 64
.byte 64
.byte 64
.byte 64
.data
.align 32
.type sqlite3Config, @object
.size sqlite3Config, 424
sqlite3Config:
.long 1
.long 1
.long 1
.long 0
.long 1
.long 0
.long 2147483646
.long 0
.long 1200
.long 100
.long 65536
.zero 4
.quad 0
.quad 0
.quad 0
.quad 0
.quad 0
.quad 0
.quad 0
.quad 0
.quad 0
.quad 0
.quad 0
.quad 0
.quad 0
.quad 0
.quad 0
.quad 0
.quad 0
.long 0
.zero 4
.quad 0
.quad 0
.quad 0
.quad 0
.quad 0
.quad 0
.quad 0
.quad 0
.quad 0
.quad 0
.quad 0
.quad 0
.quad 0
.long 0
.long 0
.long 0
.zero 4
.quad 0
.quad 2147418112
.quad 0
.long 0
.long 20
.long 0
.long 0
.long 250
.long 0
.long 0
.long 0
.long 0
.long 0
.long 0
.zero 4
.quad 0
.quad 0
.quad 0
.quad 0
.long 0
.long 2147483646
.local sqlite3BuiltinFunctions
.comm sqlite3BuiltinFunctions,184,32
.section .rodata
.LC2:
.string "0"
.LC3:
.string "1"
.section .data.rel.ro.local
.align 32
.type sqlite3IntTokens, @object
.size sqlite3IntTokens, 32
sqlite3IntTokens:
.quad .LC2
.long 1
.zero 4
.quad .LC3
.long 1
.zero 4
.data
.align 4
.type sqlite3PendingByte, @object
.size sqlite3PendingByte, 4
sqlite3PendingByte:
.long 1073741824
.section .rodata
.align 32
.type sqlite3OpcodeProperty, @object
.size sqlite3OpcodeProperty, 170
sqlite3OpcodeProperty:
.byte 0
.byte 0
.byte 0
.byte 1
.byte 1
.byte 1
.byte 1
.byte 1
.byte 0
.byte 16
.byte 0
.byte 1
.byte 0
.byte 1
.byte 1
.byte 1
.byte 3
.byte 3
.byte 1
.byte 18
.byte 1
.byte 3
.byte 3
.byte 1
.byte 9
.byte 9
.byte 9
.byte 9
.byte 9
.byte 9
.byte 9
.byte 9
.byte 9
.byte 1
.byte 1
.byte 1
.byte 1
.byte 1
.byte 1
.byte 1
.byte 1
.byte 1
.byte 35
.byte 38
.byte 38
.byte 11
.byte 1
.byte 1
.byte 3
.byte 3
.byte 3
.byte 3
.byte 11
.byte 11
.byte 11
.byte 11
.byte 11
.byte 11
.byte 1
.byte 3
.byte 1
.byte 1
.byte 1
.byte 2
.byte 2
.byte 8
.byte 0
.byte 16
.byte 16
.byte 16
.byte 16
.byte 0
.byte 16
.byte 16
.byte 0
.byte 0
.byte 16
.byte 16
.byte 0
.byte 0
.byte 2
.byte 2
.byte 2
.byte 0
.byte 38
.byte 38
.byte 38
.byte 38
.byte 38
.byte 38
.byte 38
.byte 38
.byte 38
.byte 38
.byte 0
.byte 18
.byte 32
.byte 16
.byte 0
.byte 0
.byte 0
.byte 16
.byte 16
.byte 0
.byte 0
.byte 0
.byte 0
.byte 0
.byte 0
.byte 0
.byte 0
.byte 0
.byte 0
.byte 0
.byte 0
.byte 16
.byte 16
.byte 0
.byte 0
.byte 0
.byte 0
.byte 0
.byte 0
.byte 0
.byte 16
.byte 0
.byte 0
.byte 4
.byte 4
.byte 0
.byte 0
.byte 16
.byte 16
.byte 16
.byte 0
.byte 0
.byte 16
.byte 0
.byte 0
.byte 0
.byte 0
.byte 0
.byte 0
.byte 0
.byte 6
.byte 16
.byte 0
.byte 4
.byte 26
.byte 0
.byte 0
.byte 0
.byte 0
.byte 0
.byte 0
.byte 0
.byte 0
.byte 0
.byte 0
.byte 0
.byte 16
.byte 16
.byte 0
.byte 0
.byte 0
.byte 0
.byte 0
.byte 0
.byte 0
.byte 0
.type sqlite3StrBINARY, @object
.size sqlite3StrBINARY, 7
sqlite3StrBINARY:
.string "BINARY"
.local sqlite3Stat
.comm sqlite3Stat,160,32
.align 8
.type statMutex, @object
.size statMutex, 10
statMutex:
.byte 0
.byte 1
.byte 1
.byte 0
.byte 0
.byte 0
.byte 0
.byte 1
.byte 0
.byte 0
.text
.type sqlite3StatusValue, @function
sqlite3StatusValue:
.LFB3:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
mov DWORD PTR -4[rbp], edi
mov eax, DWORD PTR -4[rbp]
cdqe
lea rdx, 0[0+rax*8]
lea rax, sqlite3Stat[rip]
mov rax, QWORD PTR [rdx+rax]
pop rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE3:
.size sqlite3StatusValue, .-sqlite3StatusValue
.type sqlite3StatusUp, @function
sqlite3StatusUp:
.LFB4:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
mov DWORD PTR -4[rbp], edi
mov DWORD PTR -8[rbp], esi
mov eax, DWORD PTR -4[rbp]
cdqe
lea rdx, 0[0+rax*8]
lea rax, sqlite3Stat[rip]
mov rdx, QWORD PTR [rdx+rax]
mov eax, DWORD PTR -8[rbp]
cdqe
lea rcx, [rdx+rax]
mov eax, DWORD PTR -4[rbp]
cdqe
lea rdx, 0[0+rax*8]
lea rax, sqlite3Stat[rip]
mov QWORD PTR [rdx+rax], rcx
mov eax, DWORD PTR -4[rbp]
cdqe
lea rdx, 0[0+rax*8]
lea rax, sqlite3Stat[rip]
mov rdx, QWORD PTR [rdx+rax]
mov eax, DWORD PTR -4[rbp]
cdqe
add rax, 10
lea rcx, 0[0+rax*8]
lea rax, sqlite3Stat[rip]
mov rax, QWORD PTR [rcx+rax]
cmp rdx, rax
jle .L7
mov eax, DWORD PTR -4[rbp]
cdqe
lea rdx, 0[0+rax*8]
lea rax, sqlite3Stat[rip]
mov rdx, QWORD PTR [rdx+rax]
mov eax, DWORD PTR -4[rbp]
cdqe
add rax, 10
lea rcx, 0[0+rax*8]
lea rax, sqlite3Stat[rip]
mov QWORD PTR [rcx+rax], rdx
.L7:
nop
pop rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE4:
.size sqlite3StatusUp, .-sqlite3StatusUp
.type sqlite3StatusDown, @function
sqlite3StatusDown:
.LFB5:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
mov DWORD PTR -4[rbp], edi
mov DWORD PTR -8[rbp], esi
mov eax, DWORD PTR -4[rbp]
cdqe
lea rdx, 0[0+rax*8]
lea rax, sqlite3Stat[rip]
mov rdx, QWORD PTR [rdx+rax]
mov eax, DWORD PTR -8[rbp]
cdqe
mov rcx, rdx
sub rcx, rax
mov eax, DWORD PTR -4[rbp]
cdqe
lea rdx, 0[0+rax*8]
lea rax, sqlite3Stat[rip]
mov QWORD PTR [rdx+rax], rcx
nop
pop rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE5:
.size sqlite3StatusDown, .-sqlite3StatusDown
.type sqlite3StatusHighwater, @function
sqlite3StatusHighwater:
.LFB6:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
mov DWORD PTR -20[rbp], edi
mov DWORD PTR -24[rbp], esi
mov eax, DWORD PTR -24[rbp]
cdqe
mov QWORD PTR -8[rbp], rax
mov eax, DWORD PTR -20[rbp]
cdqe
add rax, 10
lea rdx, 0[0+rax*8]
lea rax, sqlite3Stat[rip]
mov rax, QWORD PTR [rdx+rax]
cmp rax, QWORD PTR -8[rbp]
jge .L11
mov eax, DWORD PTR -20[rbp]
cdqe
add rax, 10
lea rcx, 0[0+rax*8]
lea rax, sqlite3Stat[rip]
mov rdx, QWORD PTR -8[rbp]
mov QWORD PTR [rcx+rax], rdx
.L11:
nop
pop rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE6:
.size sqlite3StatusHighwater, .-sqlite3StatusHighwater
.globl sqlite3_status64
.type sqlite3_status64, @function
sqlite3_status64:
.LFB7:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 48
mov DWORD PTR -20[rbp], edi
mov QWORD PTR -32[rbp], rsi
mov QWORD PTR -40[rbp], rdx
mov DWORD PTR -24[rbp], ecx
cmp DWORD PTR -20[rbp], 0
js .L13
cmp DWORD PTR -20[rbp], 9
jle .L14
.L13:
mov edi, 19321
call sqlite3MisuseError
jmp .L15
.L14:
mov eax, DWORD PTR -20[rbp]
movsx rdx, eax
lea rax, statMutex[rip]
movzx eax, BYTE PTR [rdx+rax]
test al, al
je .L16
call sqlite3Pcache1Mutex
jmp .L17
.L16:
call sqlite3MallocMutex
.L17:
mov QWORD PTR -8[rbp], rax
mov rax, QWORD PTR -8[rbp]
mov rdi, rax
call sqlite3_mutex_enter
mov eax, DWORD PTR -20[rbp]
cdqe
lea rdx, 0[0+rax*8]
lea rax, sqlite3Stat[rip]
mov rdx, QWORD PTR [rdx+rax]
mov rax, QWORD PTR -32[rbp]
mov QWORD PTR [rax], rdx
mov eax, DWORD PTR -20[rbp]
cdqe
add rax, 10
lea rdx, 0[0+rax*8]
lea rax, sqlite3Stat[rip]
mov rdx, QWORD PTR [rdx+rax]
mov rax, QWORD PTR -40[rbp]
mov QWORD PTR [rax], rdx
cmp DWORD PTR -24[rbp], 0
je .L18
mov eax, DWORD PTR -20[rbp]
cdqe
lea rdx, 0[0+rax*8]
lea rax, sqlite3Stat[rip]
mov rdx, QWORD PTR [rdx+rax]
mov eax, DWORD PTR -20[rbp]
cdqe
add rax, 10
lea rcx, 0[0+rax*8]
lea rax, sqlite3Stat[rip]
mov QWORD PTR [rcx+rax], rdx
.L18:
mov rax, QWORD PTR -8[rbp]
mov rdi, rax
call sqlite3_mutex_leave
mov eax, 0
.L15:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE7:
.size sqlite3_status64, .-sqlite3_status64
.globl sqlite3_status
.type sqlite3_status, @function
sqlite3_status:
.LFB8:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 64
mov DWORD PTR -36[rbp], edi
mov QWORD PTR -48[rbp], rsi
mov QWORD PTR -56[rbp], rdx
mov DWORD PTR -40[rbp], ecx
mov QWORD PTR -16[rbp], 0
mov QWORD PTR -24[rbp], 0
mov ecx, DWORD PTR -40[rbp]
lea rdx, -24[rbp]
lea rsi, -16[rbp]
mov eax, DWORD PTR -36[rbp]
mov edi, eax
call sqlite3_status64
mov DWORD PTR -4[rbp], eax
cmp DWORD PTR -4[rbp], 0
jne .L20
mov rax, QWORD PTR -16[rbp]
mov edx, eax
mov rax, QWORD PTR -48[rbp]
mov DWORD PTR [rax], edx
mov rax, QWORD PTR -24[rbp]
mov edx, eax
mov rax, QWORD PTR -56[rbp]
mov DWORD PTR [rax], edx
.L20:
mov eax, DWORD PTR -4[rbp]
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE8:
.size sqlite3_status, .-sqlite3_status
.type countLookasideSlots, @function
countLookasideSlots:
.LFB9:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
mov QWORD PTR -24[rbp], rdi
mov DWORD PTR -4[rbp], 0
jmp .L23
.L24:
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR [rax]
mov QWORD PTR -24[rbp], rax
add DWORD PTR -4[rbp], 1
.L23:
cmp QWORD PTR -24[rbp], 0
jne .L24
mov eax, DWORD PTR -4[rbp]
pop rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE9:
.size countLookasideSlots, .-countLookasideSlots
.type sqlite3LookasideUsed, @function
sqlite3LookasideUsed:
.LFB10:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 32
mov QWORD PTR -24[rbp], rdi
mov QWORD PTR -32[rbp], rsi
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 376[rax]
mov rdi, rax
call countLookasideSlots
mov DWORD PTR -4[rbp], eax
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 384[rax]
mov rdi, rax
call countLookasideSlots
mov DWORD PTR -8[rbp], eax
cmp QWORD PTR -32[rbp], 0
je .L27
mov rax, QWORD PTR -24[rbp]
mov eax, DWORD PTR 360[rax]
sub eax, DWORD PTR -4[rbp]
mov edx, eax
mov rax, QWORD PTR -32[rbp]
mov DWORD PTR [rax], edx
.L27:
mov rax, QWORD PTR -24[rbp]
mov eax, DWORD PTR 360[rax]
mov ecx, DWORD PTR -4[rbp]
mov edx, DWORD PTR -8[rbp]
add edx, ecx
sub eax, edx
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE10:
.size sqlite3LookasideUsed, .-sqlite3LookasideUsed
.globl sqlite3_db_status
.type sqlite3_db_status, @function
sqlite3_db_status:
.LFB11:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 144
mov QWORD PTR -120[rbp], rdi
mov DWORD PTR -124[rbp], esi
mov QWORD PTR -136[rbp], rdx
mov QWORD PTR -144[rbp], rcx
mov DWORD PTR -128[rbp], r8d
mov DWORD PTR -4[rbp], 0
mov rax, QWORD PTR -120[rbp]
mov rax, QWORD PTR 24[rax]
mov rdi, rax
call sqlite3_mutex_enter
cmp DWORD PTR -124[rbp], 11
ja .L30
mov eax, DWORD PTR -124[rbp]
lea rdx, 0[0+rax*4]
lea rax, .L32[rip]
mov eax, DWORD PTR [rdx+rax]
movsx rdx, eax
lea rax, .L32[rip]
add rax, rdx
jmp rax
.section .rodata
.align 4
.align 4
.L32:
.long .L31-.L32
.long .L33-.L32
.long .L34-.L32
.long .L35-.L32
.long .L36-.L32
.long .L36-.L32
.long .L36-.L32
.long .L37-.L32
.long .L37-.L32
.long .L37-.L32
.long .L38-.L32
.long .L33-.L32
.text
.L31:
mov rdx, QWORD PTR -144[rbp]
mov rax, QWORD PTR -120[rbp]
mov rsi, rdx
mov rdi, rax
call sqlite3LookasideUsed
mov edx, eax
mov rax, QWORD PTR -136[rbp]
mov DWORD PTR [rax], edx
cmp DWORD PTR -128[rbp], 0
je .L64
mov rax, QWORD PTR -120[rbp]
mov rax, QWORD PTR 384[rax]
mov QWORD PTR -16[rbp], rax
cmp QWORD PTR -16[rbp], 0
je .L64
jmp .L40
.L41:
mov rax, QWORD PTR -16[rbp]
mov rax, QWORD PTR [rax]
mov QWORD PTR -16[rbp], rax
.L40:
mov rax, QWORD PTR -16[rbp]
mov rax, QWORD PTR [rax]
test rax, rax
jne .L41
mov rax, QWORD PTR -120[rbp]
mov rdx, QWORD PTR 376[rax]
mov rax, QWORD PTR -16[rbp]
mov QWORD PTR [rax], rdx
mov rax, QWORD PTR -120[rbp]
mov rdx, QWORD PTR 384[rax]
mov rax, QWORD PTR -120[rbp]
mov QWORD PTR 376[rax], rdx
mov rax, QWORD PTR -120[rbp]
mov QWORD PTR 384[rax], 0
jmp .L64
.L36:
mov rax, QWORD PTR -136[rbp]
mov DWORD PTR [rax], 0
mov eax, DWORD PTR -124[rbp]
lea edx, -4[rax]
mov rax, QWORD PTR -120[rbp]
movsx rdx, edx
add rdx, 88
mov eax, DWORD PTR 12[rax+rdx*4]
mov edx, eax
mov rax, QWORD PTR -144[rbp]
mov DWORD PTR [rax], edx
cmp DWORD PTR -128[rbp], 0
je .L65
mov eax, DWORD PTR -124[rbp]
lea edx, -4[rax]
mov rax, QWORD PTR -120[rbp]
movsx rdx, edx
add rdx, 88
mov DWORD PTR 12[rax+rdx*4], 0
jmp .L65
.L33:
mov DWORD PTR -20[rbp], 0
mov rax, QWORD PTR -120[rbp]
mov rdi, rax
call sqlite3BtreeEnterAll
mov DWORD PTR -24[rbp], 0
jmp .L44
.L47:
mov rax, QWORD PTR -120[rbp]
mov rax, QWORD PTR 32[rax]
mov edx, DWORD PTR -24[rbp]
movsx rdx, edx
sal rdx, 5
add rax, rdx
mov rax, QWORD PTR 8[rax]
mov QWORD PTR -64[rbp], rax
cmp QWORD PTR -64[rbp], 0
je .L45
mov rax, QWORD PTR -64[rbp]
mov rdi, rax
call sqlite3BtreePager
mov QWORD PTR -72[rbp], rax
mov rax, QWORD PTR -72[rbp]
mov rdi, rax
call sqlite3PagerMemUsed
mov DWORD PTR -28[rbp], eax
cmp DWORD PTR -124[rbp], 11
jne .L46
mov rax, QWORD PTR -64[rbp]
mov rdi, rax
call sqlite3BtreeConnectionCount
mov ecx, eax
mov eax, DWORD PTR -28[rbp]
cdq
idiv ecx
mov DWORD PTR -28[rbp], eax
.L46:
mov eax, DWORD PTR -28[rbp]
add DWORD PTR -20[rbp], eax
.L45:
add DWORD PTR -24[rbp], 1
.L44:
mov rax, QWORD PTR -120[rbp]
mov eax, DWORD PTR 40[rax]
cmp eax, DWORD PTR -24[rbp]
jg .L47
mov rax, QWORD PTR -120[rbp]
mov rdi, rax
call sqlite3BtreeLeaveAll
mov rax, QWORD PTR -136[rbp]
mov edx, DWORD PTR -20[rbp]
mov DWORD PTR [rax], edx
mov rax, QWORD PTR -144[rbp]
mov DWORD PTR [rax], 0
jmp .L42
.L34:
mov DWORD PTR -92[rbp], 0
mov rax, QWORD PTR -120[rbp]
mov rdi, rax
call sqlite3BtreeEnterAll
mov rax, QWORD PTR -120[rbp]
lea rdx, -92[rbp]
mov QWORD PTR 672[rax], rdx
mov DWORD PTR -32[rbp], 0
jmp .L48
.L54:
mov rax, QWORD PTR -120[rbp]
mov rax, QWORD PTR 32[rax]
mov edx, DWORD PTR -32[rbp]
movsx rdx, edx
sal rdx, 5
add rax, rdx
mov rax, QWORD PTR 24[rax]
mov QWORD PTR -80[rbp], rax
cmp QWORD PTR -80[rbp], 0
je .L49
mov rax, QWORD PTR sqlite3Config[rip+80]
mov edi, 32
call rax
mov ecx, eax
mov rax, QWORD PTR -80[rbp]
mov edx, DWORD PTR 12[rax]
mov rax, QWORD PTR -80[rbp]
mov eax, DWORD PTR 60[rax]
add edx, eax
mov rax, QWORD PTR -80[rbp]
mov eax, DWORD PTR 36[rax]
add edx, eax
mov rax, QWORD PTR -80[rbp]
mov eax, DWORD PTR 84[rax]
add eax, edx
imul eax, ecx
mov edx, DWORD PTR -92[rbp]
add eax, edx
mov DWORD PTR -92[rbp], eax
mov rax, QWORD PTR -80[rbp]
mov rax, QWORD PTR 24[rax]
mov rdi, rax
call sqlite3_msize
mov edx, eax
mov eax, DWORD PTR -92[rbp]
add eax, edx
mov DWORD PTR -92[rbp], eax
mov rax, QWORD PTR -80[rbp]
mov rax, QWORD PTR 72[rax]
mov rdi, rax
call sqlite3_msize
mov edx, eax
mov eax, DWORD PTR -92[rbp]
add eax, edx
mov DWORD PTR -92[rbp], eax
mov rax, QWORD PTR -80[rbp]
mov rax, QWORD PTR 48[rax]
mov rdi, rax
call sqlite3_msize
mov edx, eax
mov eax, DWORD PTR -92[rbp]
add eax, edx
mov DWORD PTR -92[rbp], eax
mov rax, QWORD PTR -80[rbp]
mov rax, QWORD PTR 96[rax]
mov rdi, rax
call sqlite3_msize
mov edx, eax
mov eax, DWORD PTR -92[rbp]
add eax, edx
mov DWORD PTR -92[rbp], eax
mov rax, QWORD PTR -80[rbp]
mov rax, QWORD PTR 64[rax]
mov QWORD PTR -40[rbp], rax
jmp .L50
.L51:
mov rax, QWORD PTR -40[rbp]
mov rdx, QWORD PTR 16[rax]
mov rax, QWORD PTR -120[rbp]
mov rsi, rdx
mov rdi, rax
call sqlite3DeleteTrigger
mov rax, QWORD PTR -40[rbp]
mov rax, QWORD PTR [rax]
mov QWORD PTR -40[rbp], rax
.L50:
cmp QWORD PTR -40[rbp], 0
jne .L51
mov rax, QWORD PTR -80[rbp]
mov rax, QWORD PTR 16[rax]
mov QWORD PTR -40[rbp], rax
jmp .L52
.L53:
mov rax, QWORD PTR -40[rbp]
mov rdx, QWORD PTR 16[rax]
mov rax, QWORD PTR -120[rbp]
mov rsi, rdx
mov rdi, rax
call sqlite3DeleteTable
mov rax, QWORD PTR -40[rbp]
mov rax, QWORD PTR [rax]
mov QWORD PTR -40[rbp], rax
.L52:
cmp QWORD PTR -40[rbp], 0
jne .L53
.L49:
add DWORD PTR -32[rbp], 1
.L48:
mov rax, QWORD PTR -120[rbp]
mov eax, DWORD PTR 40[rax]
cmp eax, DWORD PTR -32[rbp]
jg .L54
mov rax, QWORD PTR -120[rbp]
mov QWORD PTR 672[rax], 0
mov rax, QWORD PTR -120[rbp]
mov rdi, rax
call sqlite3BtreeLeaveAll
mov rax, QWORD PTR -144[rbp]
mov DWORD PTR [rax], 0
mov edx, DWORD PTR -92[rbp]
mov rax, QWORD PTR -136[rbp]
mov DWORD PTR [rax], edx
nop
jmp .L42
.L35:
mov DWORD PTR -96[rbp], 0
mov rax, QWORD PTR -120[rbp]
lea rdx, -96[rbp]
mov QWORD PTR 672[rax], rdx
mov rax, QWORD PTR -120[rbp]
mov rax, QWORD PTR 8[rax]
mov QWORD PTR -48[rbp], rax
jmp .L55
.L56:
mov rdx, QWORD PTR -48[rbp]
mov rax, QWORD PTR -120[rbp]
mov rsi, rdx
mov rdi, rax
call sqlite3VdbeClearObject
mov rdx, QWORD PTR -48[rbp]
mov rax, QWORD PTR -120[rbp]
mov rsi, rdx
mov rdi, rax
call sqlite3DbFree
mov rax, QWORD PTR -48[rbp]
mov rax, QWORD PTR 16[rax]
mov QWORD PTR -48[rbp], rax
.L55:
cmp QWORD PTR -48[rbp], 0
jne .L56
mov rax, QWORD PTR -120[rbp]
mov QWORD PTR 672[rax], 0
mov rax, QWORD PTR -144[rbp]
mov DWORD PTR [rax], 0
mov edx, DWORD PTR -96[rbp]
mov rax, QWORD PTR -136[rbp]
mov DWORD PTR [rax], edx
nop
jmp .L42
.L37:
mov DWORD PTR -100[rbp], 0
mov DWORD PTR -52[rbp], 0
jmp .L57
.L59:
mov rax, QWORD PTR -120[rbp]
mov rax, QWORD PTR 32[rax]
mov edx, DWORD PTR -52[rbp]
movsx rdx, edx
sal rdx, 5
add rax, rdx
mov rax, QWORD PTR 8[rax]
test rax, rax
je .L58
mov rax, QWORD PTR -120[rbp]
mov rax, QWORD PTR 32[rax]
mov edx, DWORD PTR -52[rbp]
movsx rdx, edx
sal rdx, 5
add rax, rdx
mov rax, QWORD PTR 8[rax]
mov rdi, rax
call sqlite3BtreePager
mov QWORD PTR -88[rbp], rax
lea rcx, -100[rbp]
mov edx, DWORD PTR -128[rbp]
mov esi, DWORD PTR -124[rbp]
mov rax, QWORD PTR -88[rbp]
mov rdi, rax
call sqlite3PagerCacheStat
.L58:
add DWORD PTR -52[rbp], 1
.L57:
mov rax, QWORD PTR -120[rbp]
mov eax, DWORD PTR 40[rax]
cmp eax, DWORD PTR -52[rbp]
jg .L59
mov rax, QWORD PTR -144[rbp]
mov DWORD PTR [rax], 0
mov edx, DWORD PTR -100[rbp]
mov rax, QWORD PTR -136[rbp]
mov DWORD PTR [rax], edx
nop
jmp .L42
.L38:
mov rax, QWORD PTR -144[rbp]
mov DWORD PTR [rax], 0
mov rax, QWORD PTR -120[rbp]
mov rax, QWORD PTR 664[rax]
test rax, rax
jg .L60
mov rax, QWORD PTR -120[rbp]
mov rax, QWORD PTR 656[rax]
test rax, rax
jle .L61
.L60:
mov edx, 1
jmp .L62
.L61:
mov edx, 0
.L62:
mov rax, QWORD PTR -136[rbp]
mov DWORD PTR [rax], edx
jmp .L42
.L30:
mov DWORD PTR -4[rbp], 1
jmp .L42
.L64:
nop
jmp .L42
.L65:
nop
.L42:
mov rax, QWORD PTR -120[rbp]
mov rax, QWORD PTR 24[rax]
mov rdi, rax
call sqlite3_mutex_leave
mov eax, DWORD PTR -4[rbp]
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE11:
.size sqlite3_db_status, .-sqlite3_db_status
.type getDigits, @function
getDigits:
.LFB12:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 120
mov QWORD PTR -232[rbp], rdi
mov QWORD PTR -240[rbp], rsi
mov QWORD PTR -160[rbp], rdx
mov QWORD PTR -152[rbp], rcx
mov QWORD PTR -144[rbp], r8
mov QWORD PTR -136[rbp], r9
test al, al
je .L77
movaps XMMWORD PTR -128[rbp], xmm0
movaps XMMWORD PTR -112[rbp], xmm1
movaps XMMWORD PTR -96[rbp], xmm2
movaps XMMWORD PTR -80[rbp], xmm3
movaps XMMWORD PTR -64[rbp], xmm4
movaps XMMWORD PTR -48[rbp], xmm5
movaps XMMWORD PTR -32[rbp], xmm6
movaps XMMWORD PTR -16[rbp], xmm7
.L77:
mov DWORD PTR -180[rbp], 0
mov DWORD PTR -224[rbp], 16
mov DWORD PTR -220[rbp], 48
lea rax, 16[rbp]
mov QWORD PTR -216[rbp], rax
lea rax, -176[rbp]
mov QWORD PTR -208[rbp], rax
.L75:
mov rax, QWORD PTR -240[rbp]
movzx eax, BYTE PTR [rax]
sub eax, 48
mov BYTE PTR -181[rbp], al
mov rax, QWORD PTR -240[rbp]
add rax, 1
movzx eax, BYTE PTR [rax]
sub eax, 48
mov BYTE PTR -189[rbp], al
mov DWORD PTR -188[rbp], 0
mov rax, QWORD PTR -240[rbp]
add rax, 2
movzx eax, BYTE PTR [rax]
movsx eax, al
sub eax, 97
cdqe
lea rdx, [rax+rax]
lea rax, aMx.8614[rip]
movzx eax, WORD PTR [rdx+rax]
mov WORD PTR -192[rbp], ax
mov rax, QWORD PTR -240[rbp]
movzx eax, BYTE PTR 3[rax]
mov BYTE PTR -193[rbp], al
mov DWORD PTR -188[rbp], 0
jmp .L68
.L71:
mov rax, QWORD PTR -232[rbp]
movzx eax, BYTE PTR [rax]
movzx eax, al
movsx rdx, eax
lea rax, sqlite3CtypeMap[rip]
movzx eax, BYTE PTR [rdx+rax]
movzx eax, al
and eax, 4
test eax, eax
je .L78
mov edx, DWORD PTR -188[rbp]
mov eax, edx
sal eax, 2
add eax, edx
add eax, eax
mov edx, eax
mov rax, QWORD PTR -232[rbp]
movzx eax, BYTE PTR [rax]
movsx eax, al
add eax, edx
sub eax, 48
mov DWORD PTR -188[rbp], eax
add QWORD PTR -232[rbp], 1
.L68:
movzx eax, BYTE PTR -181[rbp]
mov edx, eax
sub edx, 1
mov BYTE PTR -181[rbp], dl
test al, al
jne .L71
movsx eax, BYTE PTR -189[rbp]
cmp eax, DWORD PTR -188[rbp]
jg .L70
movzx eax, WORD PTR -192[rbp]
cmp eax, DWORD PTR -188[rbp]
jl .L70
cmp BYTE PTR -193[rbp], 0
je .L72
mov rax, QWORD PTR -232[rbp]
movzx eax, BYTE PTR [rax]
cmp al, BYTE PTR -193[rbp]
jne .L70
.L72:
mov eax, DWORD PTR -224[rbp]
cmp eax, 47
ja .L73
mov rax, QWORD PTR -208[rbp]
mov edx, DWORD PTR -224[rbp]
mov edx, edx
add rax, rdx
mov edx, DWORD PTR -224[rbp]
add edx, 8
mov DWORD PTR -224[rbp], edx
jmp .L74
.L73:
mov rax, QWORD PTR -216[rbp]
lea rdx, 8[rax]
mov QWORD PTR -216[rbp], rdx
.L74:
mov rax, QWORD PTR [rax]
mov edx, DWORD PTR -188[rbp]
mov DWORD PTR [rax], edx
add QWORD PTR -232[rbp], 1
add DWORD PTR -180[rbp], 1
add QWORD PTR -240[rbp], 4
cmp BYTE PTR -193[rbp], 0
jne .L75
jmp .L70
.L78:
nop
.L70:
mov eax, DWORD PTR -180[rbp]
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE12:
.size getDigits, .-getDigits
.section .rodata
.LC4:
.string "20b:20e"
.text
.type parseTimezone, @function
parseTimezone:
.LFB13:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 32
mov QWORD PTR -24[rbp], rdi
mov QWORD PTR -32[rbp], rsi
mov DWORD PTR -4[rbp], 0
jmp .L80
.L81:
add QWORD PTR -24[rbp], 1
.L80:
mov rax, QWORD PTR -24[rbp]
movzx eax, BYTE PTR [rax]
movzx eax, al
movsx rdx, eax
lea rax, sqlite3CtypeMap[rip]
movzx eax, BYTE PTR [rdx+rax]
movzx eax, al
and eax, 1
test eax, eax
jne .L81
mov rax, QWORD PTR -32[rbp]
mov DWORD PTR 28[rax], 0
mov rax, QWORD PTR -24[rbp]
movzx eax, BYTE PTR [rax]
movsx eax, al
mov DWORD PTR -8[rbp], eax
cmp DWORD PTR -8[rbp], 45
jne .L82
mov DWORD PTR -4[rbp], -1
jmp .L83
.L82:
cmp DWORD PTR -8[rbp], 43
jne .L84
mov DWORD PTR -4[rbp], 1
jmp .L83
.L84:
cmp DWORD PTR -8[rbp], 90
je .L85
cmp DWORD PTR -8[rbp], 122
jne .L86
.L85:
add QWORD PTR -24[rbp], 1
jmp .L87
.L86:
cmp DWORD PTR -8[rbp], 0
setne al
movzx eax, al
jmp .L92
.L83:
add QWORD PTR -24[rbp], 1
lea rcx, -16[rbp]
lea rdx, -12[rbp]
mov rax, QWORD PTR -24[rbp]
lea rsi, .LC4[rip]
mov rdi, rax
mov eax, 0
call getDigits
cmp eax, 2
je .L89
mov eax, 1
jmp .L92
.L89:
add QWORD PTR -24[rbp], 5
mov eax, DWORD PTR -12[rbp]
imul edx, eax, 60
mov eax, DWORD PTR -16[rbp]
add eax, edx
imul eax, DWORD PTR -4[rbp]
mov edx, eax
mov rax, QWORD PTR -32[rbp]
mov DWORD PTR 28[rax], edx
.L87:
jmp .L90
.L91:
add QWORD PTR -24[rbp], 1
.L90:
mov rax, QWORD PTR -24[rbp]
movzx eax, BYTE PTR [rax]
movzx eax, al
movsx rdx, eax
lea rax, sqlite3CtypeMap[rip]
movzx eax, BYTE PTR [rdx+rax]
movzx eax, al
and eax, 1
test eax, eax
jne .L91
mov rax, QWORD PTR -32[rbp]
mov BYTE PTR 45[rax], 1
mov rax, QWORD PTR -24[rbp]
movzx eax, BYTE PTR [rax]
test al, al
setne al
movzx eax, al
.L92:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE13:
.size parseTimezone, .-parseTimezone
.section .rodata
.LC6:
.string "20c:20e"
.LC7:
.string "20e"
.text
.type parseHhMmSs, @function
parseHhMmSs:
.LFB14:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 48
mov QWORD PTR -40[rbp], rdi
mov QWORD PTR -48[rbp], rsi
pxor xmm0, xmm0
movsd QWORD PTR -8[rbp], xmm0
lea rcx, -24[rbp]
lea rdx, -20[rbp]
mov rax, QWORD PTR -40[rbp]
lea rsi, .LC6[rip]
mov rdi, rax
mov eax, 0
call getDigits
cmp eax, 2
je .L94
mov eax, 1
jmp .L103
.L94:
add QWORD PTR -40[rbp], 5
mov rax, QWORD PTR -40[rbp]
movzx eax, BYTE PTR [rax]
cmp al, 58
jne .L96
add QWORD PTR -40[rbp], 1
lea rdx, -28[rbp]
mov rax, QWORD PTR -40[rbp]
lea rsi, .LC7[rip]
mov rdi, rax
mov eax, 0
call getDigits
cmp eax, 1
je .L97
mov eax, 1
jmp .L103
.L97:
add QWORD PTR -40[rbp], 2
mov rax, QWORD PTR -40[rbp]
movzx eax, BYTE PTR [rax]
cmp al, 46
jne .L101
mov rax, QWORD PTR -40[rbp]
add rax, 1
movzx eax, BYTE PTR [rax]
movzx eax, al
movsx rdx, eax
lea rax, sqlite3CtypeMap[rip]
movzx eax, BYTE PTR [rdx+rax]
movzx eax, al
and eax, 4
test eax, eax
je .L101
movsd xmm0, QWORD PTR .LC8[rip]
movsd QWORD PTR -16[rbp], xmm0
add QWORD PTR -40[rbp], 1
jmp .L99
.L100:
movsd xmm1, QWORD PTR -8[rbp]
movsd xmm0, QWORD PTR .LC9[rip]
mulsd xmm1, xmm0
mov rax, QWORD PTR -40[rbp]
movzx eax, BYTE PTR [rax]
movsx eax, al
pxor xmm0, xmm0
cvtsi2sd xmm0, eax
addsd xmm0, xmm1
movsd xmm1, QWORD PTR .LC10[rip]
subsd xmm0, xmm1
movsd QWORD PTR -8[rbp], xmm0
movsd xmm1, QWORD PTR -16[rbp]
movsd xmm0, QWORD PTR .LC9[rip]
mulsd xmm0, xmm1
movsd QWORD PTR -16[rbp], xmm0
add QWORD PTR -40[rbp], 1
.L99:
mov rax, QWORD PTR -40[rbp]
movzx eax, BYTE PTR [rax]
movzx eax, al
movsx rdx, eax
lea rax, sqlite3CtypeMap[rip]
movzx eax, BYTE PTR [rdx+rax]
movzx eax, al
and eax, 4
test eax, eax
jne .L100
movsd xmm0, QWORD PTR -8[rbp]
divsd xmm0, QWORD PTR -16[rbp]
movsd QWORD PTR -8[rbp], xmm0
jmp .L101
.L96:
mov DWORD PTR -28[rbp], 0
.L101:
mov rax, QWORD PTR -48[rbp]
mov BYTE PTR 40[rax], 0
mov rax, QWORD PTR -48[rbp]
mov BYTE PTR 41[rax], 0
mov rax, QWORD PTR -48[rbp]
mov BYTE PTR 43[rax], 1
mov edx, DWORD PTR -20[rbp]
mov rax, QWORD PTR -48[rbp]
mov DWORD PTR 20[rax], edx
mov edx, DWORD PTR -24[rbp]
mov rax, QWORD PTR -48[rbp]
mov DWORD PTR 24[rax], edx
mov eax, DWORD PTR -28[rbp]
pxor xmm0, xmm0
cvtsi2sd xmm0, eax
addsd xmm0, QWORD PTR -8[rbp]
mov rax, QWORD PTR -48[rbp]
movsd QWORD PTR 32[rax], xmm0
mov rdx, QWORD PTR -48[rbp]
mov rax, QWORD PTR -40[rbp]
mov rsi, rdx
mov rdi, rax
call parseTimezone
test eax, eax
je .L102
mov eax, 1
jmp .L103
.L102:
mov rax, QWORD PTR -48[rbp]
mov eax, DWORD PTR 28[rax]
test eax, eax
setne al
mov edx, eax
mov rax, QWORD PTR -48[rbp]
mov BYTE PTR 44[rax], dl
mov eax, 0
.L103:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE14:
.size parseHhMmSs, .-parseHhMmSs
.type datetimeError, @function
datetimeError:
.LFB15:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 16
mov QWORD PTR -8[rbp], rdi
mov rax, QWORD PTR -8[rbp]
mov edx, 48
mov esi, 0
mov rdi, rax
call memset@PLT
mov rax, QWORD PTR -8[rbp]
mov BYTE PTR 46[rax], 1
nop
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE15:
.size datetimeError, .-datetimeError
.type computeJD, @function
computeJD:
.LFB16:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 48
mov QWORD PTR -40[rbp], rdi
mov rax, QWORD PTR -40[rbp]
movzx eax, BYTE PTR 40[rax]
test al, al
jne .L113
mov rax, QWORD PTR -40[rbp]
movzx eax, BYTE PTR 42[rax]
test al, al
je .L108
mov rax, QWORD PTR -40[rbp]
mov eax, DWORD PTR 8[rax]
mov DWORD PTR -4[rbp], eax
mov rax, QWORD PTR -40[rbp]
mov eax, DWORD PTR 12[rax]
mov DWORD PTR -8[rbp], eax
mov rax, QWORD PTR -40[rbp]
mov eax, DWORD PTR 16[rax]
mov DWORD PTR -12[rbp], eax
jmp .L109
.L108:
mov DWORD PTR -4[rbp], 2000
mov DWORD PTR -8[rbp], 1
mov DWORD PTR -12[rbp], 1
.L109:
cmp DWORD PTR -4[rbp], -4713
jl .L110
cmp DWORD PTR -4[rbp], 9999
jg .L110
mov rax, QWORD PTR -40[rbp]
movzx eax, BYTE PTR 41[rax]
test al, al
je .L111
.L110:
mov rax, QWORD PTR -40[rbp]
mov rdi, rax
call datetimeError
jmp .L105
.L111:
cmp DWORD PTR -8[rbp], 2
jg .L112
sub DWORD PTR -4[rbp], 1
add DWORD PTR -8[rbp], 12
.L112:
mov ecx, DWORD PTR -4[rbp]
mov edx, 1374389535
mov eax, ecx
imul edx
sar edx, 5
mov eax, ecx
sar eax, 31
sub edx, eax
mov eax, edx
mov DWORD PTR -16[rbp], eax
mov eax, 2
sub eax, DWORD PTR -16[rbp]
mov edx, eax
mov eax, DWORD PTR -16[rbp]
lea ecx, 3[rax]
test eax, eax
cmovs eax, ecx
sar eax, 2
add eax, edx
mov DWORD PTR -20[rbp], eax
mov eax, DWORD PTR -4[rbp]
add eax, 4716
imul ecx, eax, 36525
mov edx, 1374389535
mov eax, ecx
imul edx
sar edx, 5
mov eax, ecx
sar eax, 31
sub edx, eax
mov eax, edx
mov DWORD PTR -24[rbp], eax
mov eax, DWORD PTR -8[rbp]
add eax, 1
imul ecx, eax, 306001
mov edx, 1759218605
mov eax, ecx
imul edx
sar edx, 12
mov eax, ecx
sar eax, 31
sub edx, eax
mov eax, edx
mov DWORD PTR -28[rbp], eax
mov edx, DWORD PTR -24[rbp]
mov eax, DWORD PTR -28[rbp]
add edx, eax
mov eax, DWORD PTR -12[rbp]
add edx, eax
mov eax, DWORD PTR -20[rbp]
add eax, edx
pxor xmm0, xmm0
cvtsi2sd xmm0, eax
movsd xmm1, QWORD PTR .LC11[rip]
subsd xmm0, xmm1
movsd xmm1, QWORD PTR .LC12[rip]
mulsd xmm0, xmm1
cvttsd2si rdx, xmm0
mov rax, QWORD PTR -40[rbp]
mov QWORD PTR [rax], rdx
mov rax, QWORD PTR -40[rbp]
mov BYTE PTR 40[rax], 1
mov rax, QWORD PTR -40[rbp]
movzx eax, BYTE PTR 43[rax]
test al, al
je .L105
mov rax, QWORD PTR -40[rbp]
mov rdx, QWORD PTR [rax]
mov rax, QWORD PTR -40[rbp]
mov eax, DWORD PTR 20[rax]
imul ecx, eax, 3600000
mov rax, QWORD PTR -40[rbp]
mov eax, DWORD PTR 24[rax]
imul eax, eax, 60000
add eax, ecx
movsx rcx, eax
mov rax, QWORD PTR -40[rbp]
movsd xmm1, QWORD PTR 32[rax]
movsd xmm0, QWORD PTR .LC13[rip]
mulsd xmm0, xmm1
cvttsd2si rax, xmm0
add rax, rcx
add rdx, rax
mov rax, QWORD PTR -40[rbp]
mov QWORD PTR [rax], rdx
mov rax, QWORD PTR -40[rbp]
movzx eax, BYTE PTR 44[rax]
test al, al
je .L105
mov rax, QWORD PTR -40[rbp]
mov rdx, QWORD PTR [rax]
mov rax, QWORD PTR -40[rbp]
mov eax, DWORD PTR 28[rax]
imul eax, eax, 60000
cdqe
sub rdx, rax
mov rax, QWORD PTR -40[rbp]
mov QWORD PTR [rax], rdx
mov rax, QWORD PTR -40[rbp]
mov BYTE PTR 42[rax], 0
mov rax, QWORD PTR -40[rbp]
mov BYTE PTR 43[rax], 0
mov rax, QWORD PTR -40[rbp]
mov BYTE PTR 44[rax], 0
jmp .L105
.L113:
nop
.L105:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE16:
.size computeJD, .-computeJD
.section .rodata
.LC14:
.string "40f-21a-21d"
.text
.type parseYyyyMmDd, @function
parseYyyyMmDd:
.LFB17:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 32
mov QWORD PTR -24[rbp], rdi
mov QWORD PTR -32[rbp], rsi
mov rax, QWORD PTR -24[rbp]
movzx eax, BYTE PTR [rax]
cmp al, 45
jne .L115
add QWORD PTR -24[rbp], 1
mov DWORD PTR -4[rbp], 1
jmp .L116
.L115:
mov DWORD PTR -4[rbp], 0
.L116:
lea rsi, -16[rbp]
lea rcx, -12[rbp]
lea rdx, -8[rbp]
mov rax, QWORD PTR -24[rbp]
mov r8, rsi
lea rsi, .LC14[rip]
mov rdi, rax
mov eax, 0
call getDigits
cmp eax, 3
je .L117
mov eax, 1
jmp .L126
.L117:
add QWORD PTR -24[rbp], 10
jmp .L119
.L120:
add QWORD PTR -24[rbp], 1
.L119:
mov rax, QWORD PTR -24[rbp]
movzx eax, BYTE PTR [rax]
movzx eax, al
movsx rdx, eax
lea rax, sqlite3CtypeMap[rip]
movzx eax, BYTE PTR [rdx+rax]
movzx eax, al
and eax, 1
test eax, eax
jne .L120
mov rax, QWORD PTR -24[rbp]
movzx eax, BYTE PTR [rax]
cmp al, 84
je .L120
mov rdx, QWORD PTR -32[rbp]
mov rax, QWORD PTR -24[rbp]
mov rsi, rdx
mov rdi, rax
call parseHhMmSs
test eax, eax
je .L121
mov rax, QWORD PTR -24[rbp]
movzx eax, BYTE PTR [rax]
test al, al
jne .L122
mov rax, QWORD PTR -32[rbp]
mov BYTE PTR 43[rax], 0
jmp .L121
.L122:
mov eax, 1
jmp .L126
.L121:
mov rax, QWORD PTR -32[rbp]
mov BYTE PTR 40[rax], 0
mov rax, QWORD PTR -32[rbp]
mov BYTE PTR 42[rax], 1
cmp DWORD PTR -4[rbp], 0
je .L123
mov eax, DWORD PTR -8[rbp]
neg eax
jmp .L124
.L123:
mov eax, DWORD PTR -8[rbp]
.L124:
mov rdx, QWORD PTR -32[rbp]
mov DWORD PTR 8[rdx], eax
mov edx, DWORD PTR -12[rbp]
mov rax, QWORD PTR -32[rbp]
mov DWORD PTR 12[rax], edx
mov edx, DWORD PTR -16[rbp]
mov rax, QWORD PTR -32[rbp]
mov DWORD PTR 16[rax], edx
mov rax, QWORD PTR -32[rbp]
movzx eax, BYTE PTR 44[rax]
test al, al
je .L125
mov rax, QWORD PTR -32[rbp]
mov rdi, rax
call computeJD
.L125:
mov eax, 0
.L126:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE17:
.size parseYyyyMmDd, .-parseYyyyMmDd
.type setDateTimeToCurrent, @function
setDateTimeToCurrent:
.LFB18:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 16
mov QWORD PTR -8[rbp], rdi
mov QWORD PTR -16[rbp], rsi
mov rax, QWORD PTR -8[rbp]
mov rdi, rax
call sqlite3StmtCurrentTime
mov rdx, rax
mov rax, QWORD PTR -16[rbp]
mov QWORD PTR [rax], rdx
mov rax, QWORD PTR -16[rbp]
mov rax, QWORD PTR [rax]
test rax, rax
jle .L128
mov rax, QWORD PTR -16[rbp]
mov BYTE PTR 40[rax], 1
mov eax, 0
jmp .L129
.L128:
mov eax, 1
.L129:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE18:
.size setDateTimeToCurrent, .-setDateTimeToCurrent
.type setRawDateNumber, @function
setRawDateNumber:
.LFB19:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
mov QWORD PTR -8[rbp], rdi
movsd QWORD PTR -16[rbp], xmm0
mov rax, QWORD PTR -8[rbp]
movsd xmm0, QWORD PTR -16[rbp]
movsd QWORD PTR 32[rax], xmm0
mov rax, QWORD PTR -8[rbp]
mov BYTE PTR 41[rax], 1
movsd xmm0, QWORD PTR -16[rbp]
pxor xmm1, xmm1
ucomisd xmm0, xmm1
jnb .L134
jmp .L136
.L134:
movsd xmm0, QWORD PTR .LC15[rip]
ucomisd xmm0, QWORD PTR -16[rbp]
ja .L135
jmp .L136
.L135:
movsd xmm1, QWORD PTR -16[rbp]
movsd xmm0, QWORD PTR .LC12[rip]
mulsd xmm0, xmm1
movsd xmm1, QWORD PTR .LC16[rip]
addsd xmm0, xmm1
cvttsd2si rdx, xmm0
mov rax, QWORD PTR -8[rbp]
mov QWORD PTR [rax], rdx
mov rax, QWORD PTR -8[rbp]
mov BYTE PTR 40[rax], 1
.L136:
nop
pop rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE19:
.size setRawDateNumber, .-setRawDateNumber
.section .rodata
.LC17:
.string "now"
.text
.type parseDateOrTime, @function
parseDateOrTime:
.LFB20:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 48
mov QWORD PTR -24[rbp], rdi
mov QWORD PTR -32[rbp], rsi
mov QWORD PTR -40[rbp], rdx
mov rdx, QWORD PTR -40[rbp]
mov rax, QWORD PTR -32[rbp]
mov rsi, rdx
mov rdi, rax
call parseYyyyMmDd
test eax, eax
jne .L138
mov eax, 0
jmp .L143
.L138:
mov rdx, QWORD PTR -40[rbp]
mov rax, QWORD PTR -32[rbp]
mov rsi, rdx
mov rdi, rax
call parseHhMmSs
test eax, eax
jne .L140
mov eax, 0
jmp .L143
.L140:
mov rax, QWORD PTR -32[rbp]
lea rsi, .LC17[rip]
mov rdi, rax
call sqlite3StrICmp
test eax, eax
jne .L141
mov rax, QWORD PTR -24[rbp]
mov rdi, rax
call sqlite3NotPureFunc
test eax, eax
je .L141
mov rdx, QWORD PTR -40[rbp]
mov rax, QWORD PTR -24[rbp]
mov rsi, rdx
mov rdi, rax
call setDateTimeToCurrent
jmp .L143
.L141:
mov rax, QWORD PTR -32[rbp]
mov rdi, rax
call sqlite3Strlen30
mov edx, eax
lea rsi, -8[rbp]
mov rax, QWORD PTR -32[rbp]
mov ecx, 1
mov rdi, rax
call sqlite3AtoF
test eax, eax
je .L142
mov rdx, QWORD PTR -8[rbp]
mov rax, QWORD PTR -40[rbp]
mov QWORD PTR -48[rbp], rdx
movsd xmm0, QWORD PTR -48[rbp]
mov rdi, rax
call setRawDateNumber
mov eax, 0
jmp .L143
.L142:
mov eax, 1
.L143:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE20:
.size parseDateOrTime, .-parseDateOrTime
.type validJulianDay, @function
validJulianDay:
.LFB21:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
mov QWORD PTR -8[rbp], rdi
cmp QWORD PTR -8[rbp], 0
js .L145
movabs rax, 464269060799999
cmp QWORD PTR -8[rbp], rax
jg .L145
mov eax, 1
jmp .L147
.L145:
mov eax, 0
.L147:
pop rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE21:
.size validJulianDay, .-validJulianDay
.type computeYMD, @function
computeYMD:
.LFB22:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 48
mov QWORD PTR -40[rbp], rdi
mov rax, QWORD PTR -40[rbp]
movzx eax, BYTE PTR 42[rax]
test al, al
jne .L158
mov rax, QWORD PTR -40[rbp]
movzx eax, BYTE PTR 40[rax]
test al, al
jne .L151
mov rax, QWORD PTR -40[rbp]
mov DWORD PTR 8[rax], 2000
mov rax, QWORD PTR -40[rbp]
mov DWORD PTR 12[rax], 1
mov rax, QWORD PTR -40[rbp]
mov DWORD PTR 16[rax], 1
jmp .L152
.L151:
mov rax, QWORD PTR -40[rbp]
mov rax, QWORD PTR [rax]
mov rdi, rax
call validJulianDay
test eax, eax
jne .L153
mov rax, QWORD PTR -40[rbp]
mov rdi, rax
call datetimeError
jmp .L148
.L153:
mov rax, QWORD PTR -40[rbp]
mov rax, QWORD PTR [rax]
lea rcx, 43200000[rax]
movabs rdx, 7164004856975580295
mov rax, rcx
imul rdx
sar rdx, 25
mov rax, rcx
sar rax, 63
sub rdx, rax
mov rax, rdx
mov DWORD PTR -4[rbp], eax
pxor xmm0, xmm0
cvtsi2sd xmm0, DWORD PTR -4[rbp]
movsd xmm1, QWORD PTR .LC18[rip]
subsd xmm0, xmm1
movsd xmm1, QWORD PTR .LC19[rip]
divsd xmm0, xmm1
cvttsd2si eax, xmm0
mov DWORD PTR -8[rbp], eax
mov eax, DWORD PTR -4[rbp]
lea edx, 1[rax]
mov eax, DWORD PTR -8[rbp]
lea ecx, [rdx+rax]
mov eax, DWORD PTR -8[rbp]
lea edx, 3[rax]
test eax, eax
cmovs eax, edx
sar eax, 2
neg eax
add eax, ecx
mov DWORD PTR -8[rbp], eax
mov eax, DWORD PTR -8[rbp]
add eax, 1524
mov DWORD PTR -12[rbp], eax
pxor xmm0, xmm0
cvtsi2sd xmm0, DWORD PTR -12[rbp]
movsd xmm1, QWORD PTR .LC20[rip]
subsd xmm0, xmm1
movsd xmm1, QWORD PTR .LC21[rip]
divsd xmm0, xmm1
cvttsd2si eax, xmm0
mov DWORD PTR -16[rbp], eax
mov eax, DWORD PTR -16[rbp]
and eax, 32767
imul ecx, eax, 36525
mov edx, 1374389535
mov eax, ecx
imul edx
sar edx, 5
mov eax, ecx
sar eax, 31
sub edx, eax
mov eax, edx
mov DWORD PTR -20[rbp], eax
mov eax, DWORD PTR -12[rbp]
sub eax, DWORD PTR -20[rbp]
pxor xmm0, xmm0
cvtsi2sd xmm0, eax
movsd xmm1, QWORD PTR .LC22[rip]
divsd xmm0, xmm1
cvttsd2si eax, xmm0
mov DWORD PTR -24[rbp], eax
pxor xmm0, xmm0
cvtsi2sd xmm0, DWORD PTR -24[rbp]
movsd xmm1, QWORD PTR .LC22[rip]
mulsd xmm0, xmm1
cvttsd2si eax, xmm0
mov DWORD PTR -28[rbp], eax
mov eax, DWORD PTR -12[rbp]
sub eax, DWORD PTR -20[rbp]
sub eax, DWORD PTR -28[rbp]
mov edx, eax
mov rax, QWORD PTR -40[rbp]
mov DWORD PTR 16[rax], edx
cmp DWORD PTR -24[rbp], 13
jg .L154
mov eax, DWORD PTR -24[rbp]
sub eax, 1
jmp .L155
.L154:
mov eax, DWORD PTR -24[rbp]
sub eax, 13
.L155:
mov rdx, QWORD PTR -40[rbp]
mov DWORD PTR 12[rdx], eax
mov rax, QWORD PTR -40[rbp]
mov eax, DWORD PTR 12[rax]
cmp eax, 2
jle .L156
mov eax, DWORD PTR -16[rbp]
sub eax, 4716
jmp .L157
.L156:
mov eax, DWORD PTR -16[rbp]
sub eax, 4715
.L157:
mov rdx, QWORD PTR -40[rbp]
mov DWORD PTR 8[rdx], eax
.L152:
mov rax, QWORD PTR -40[rbp]
mov BYTE PTR 42[rax], 1
jmp .L148
.L158:
nop
.L148:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE22:
.size computeYMD, .-computeYMD
.type computeHMS, @function
computeHMS:
.LFB23:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 32
mov QWORD PTR -24[rbp], rdi
mov rax, QWORD PTR -24[rbp]
movzx eax, BYTE PTR 43[rax]
test al, al
jne .L162
mov rax, QWORD PTR -24[rbp]
mov rdi, rax
call computeJD
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR [rax]
lea rcx, 43200000[rax]
movabs rdx, 7164004856975580295
mov rax, rcx
imul rdx
sar rdx, 25
mov rax, rcx
sar rax, 63
sub rdx, rax
mov rax, rdx
imul rax, rax, 86400000
sub rcx, rax
mov rax, rcx
mov DWORD PTR -4[rbp], eax
pxor xmm0, xmm0
cvtsi2sd xmm0, DWORD PTR -4[rbp]
movsd xmm1, QWORD PTR .LC13[rip]
divsd xmm0, xmm1
mov rax, QWORD PTR -24[rbp]
movsd QWORD PTR 32[rax], xmm0
mov rax, QWORD PTR -24[rbp]
movsd xmm0, QWORD PTR 32[rax]
cvttsd2si eax, xmm0
mov DWORD PTR -4[rbp], eax
mov rax, QWORD PTR -24[rbp]
movsd xmm1, QWORD PTR 32[rax]
pxor xmm0, xmm0
cvtsi2sd xmm0, DWORD PTR -4[rbp]
subsd xmm1, xmm0
movapd xmm0, xmm1
mov rax, QWORD PTR -24[rbp]
movsd QWORD PTR 32[rax], xmm0
mov ecx, DWORD PTR -4[rbp]
mov edx, -1851608123
mov eax, ecx
imul edx
lea eax, [rdx+rcx]
sar eax, 11
mov edx, eax
mov eax, ecx
sar eax, 31
sub edx, eax
mov rax, QWORD PTR -24[rbp]
mov DWORD PTR 20[rax], edx
mov rax, QWORD PTR -24[rbp]
mov eax, DWORD PTR 20[rax]
imul eax, eax, -3600
add DWORD PTR -4[rbp], eax
mov ecx, DWORD PTR -4[rbp]
mov edx, -2004318071
mov eax, ecx
imul edx
lea eax, [rdx+rcx]
sar eax, 5
mov edx, eax
mov eax, ecx
sar eax, 31
sub edx, eax
mov rax, QWORD PTR -24[rbp]
mov DWORD PTR 24[rax], edx
mov rax, QWORD PTR -24[rbp]
movsd xmm1, QWORD PTR 32[rax]
mov rax, QWORD PTR -24[rbp]
mov edx, DWORD PTR 24[rax]
mov eax, edx
sal edx, 4
sub eax, edx
sal eax, 2
mov edx, eax
mov eax, DWORD PTR -4[rbp]
add eax, edx
pxor xmm0, xmm0
cvtsi2sd xmm0, eax
addsd xmm0, xmm1
mov rax, QWORD PTR -24[rbp]
movsd QWORD PTR 32[rax], xmm0
mov rax, QWORD PTR -24[rbp]
mov BYTE PTR 41[rax], 0
mov rax, QWORD PTR -24[rbp]
mov BYTE PTR 43[rax], 1
jmp .L159
.L162:
nop
.L159:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE23:
.size computeHMS, .-computeHMS
.type computeYMD_HMS, @function
computeYMD_HMS:
.LFB24:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 16
mov QWORD PTR -8[rbp], rdi
mov rax, QWORD PTR -8[rbp]
mov rdi, rax
call computeYMD
mov rax, QWORD PTR -8[rbp]
mov rdi, rax
call computeHMS
nop
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE24:
.size computeYMD_HMS, .-computeYMD_HMS
.type clearYMD_HMS_TZ, @function
clearYMD_HMS_TZ:
.LFB25:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
mov QWORD PTR -8[rbp], rdi
mov rax, QWORD PTR -8[rbp]
mov BYTE PTR 42[rax], 0
mov rax, QWORD PTR -8[rbp]
mov BYTE PTR 43[rax], 0
mov rax, QWORD PTR -8[rbp]
mov BYTE PTR 44[rax], 0
nop
pop rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE25:
.size clearYMD_HMS_TZ, .-clearYMD_HMS_TZ
.type osLocaltime, @function
osLocaltime:
.LFB26:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 48
mov QWORD PTR -40[rbp], rdi
mov QWORD PTR -48[rbp], rsi
mov edi, 2
call sqlite3MutexAlloc
mov QWORD PTR -16[rbp], rax
mov rax, QWORD PTR -16[rbp]
mov rdi, rax
call sqlite3_mutex_enter
mov rax, QWORD PTR -40[rbp]
mov rdi, rax
call localtime@PLT
mov QWORD PTR -8[rbp], rax
mov eax, DWORD PTR sqlite3Config[rip+416]
test eax, eax
je .L166
mov QWORD PTR -8[rbp], 0
.L166:
cmp QWORD PTR -8[rbp], 0
je .L167
mov rax, QWORD PTR -48[rbp]
mov rdx, QWORD PTR -8[rbp]
mov rcx, QWORD PTR [rdx]
mov QWORD PTR [rax], rcx
mov rcx, QWORD PTR 8[rdx]
mov QWORD PTR 8[rax], rcx
mov rcx, QWORD PTR 16[rdx]
mov QWORD PTR 16[rax], rcx
mov rcx, QWORD PTR 24[rdx]
mov QWORD PTR 24[rax], rcx
mov rcx, QWORD PTR 32[rdx]
mov QWORD PTR 32[rax], rcx
mov rcx, QWORD PTR 40[rdx]
mov QWORD PTR 40[rax], rcx
mov rdx, QWORD PTR 48[rdx]
mov QWORD PTR 48[rax], rdx
.L167:
mov rax, QWORD PTR -16[rbp]
mov rdi, rax
call sqlite3_mutex_leave
cmp QWORD PTR -8[rbp], 0
sete al
movzx eax, al
mov DWORD PTR -20[rbp], eax
mov eax, DWORD PTR -20[rbp]
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE26:
.size osLocaltime, .-osLocaltime
.section .rodata
.LC23:
.string "local time unavailable"
.text
.type localtimeOffset, @function
localtimeOffset:
.LFB27:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 208
mov QWORD PTR -184[rbp], rdi
mov QWORD PTR -192[rbp], rsi
mov QWORD PTR -200[rbp], rdx
lea rax, -176[rbp]
mov edx, 56
mov esi, 0
mov rdi, rax
call memset@PLT
mov rax, QWORD PTR -184[rbp]
mov rdx, QWORD PTR [rax]
mov QWORD PTR -64[rbp], rdx
mov rdx, QWORD PTR 8[rax]
mov QWORD PTR -56[rbp], rdx
mov rdx, QWORD PTR 16[rax]
mov QWORD PTR -48[rbp], rdx
mov rdx, QWORD PTR 24[rax]
mov QWORD PTR -40[rbp], rdx
mov rdx, QWORD PTR 32[rax]
mov QWORD PTR -32[rbp], rdx
mov rax, QWORD PTR 40[rax]
mov QWORD PTR -24[rbp], rax
lea rax, -64[rbp]
mov rdi, rax
call computeYMD_HMS
mov eax, DWORD PTR -56[rbp]
cmp eax, 1970
jle .L170
mov eax, DWORD PTR -56[rbp]
cmp eax, 2037
jle .L171
.L170:
mov DWORD PTR -56[rbp], 2000
mov DWORD PTR -52[rbp], 1
mov DWORD PTR -48[rbp], 1
mov DWORD PTR -44[rbp], 0
mov DWORD PTR -40[rbp], 0
pxor xmm0, xmm0
movsd QWORD PTR -32[rbp], xmm0
jmp .L172
.L171:
movsd xmm1, QWORD PTR -32[rbp]
movsd xmm0, QWORD PTR .LC16[rip]
addsd xmm0, xmm1
cvttsd2si eax, xmm0
mov DWORD PTR -4[rbp], eax
pxor xmm0, xmm0
cvtsi2sd xmm0, DWORD PTR -4[rbp]
movsd QWORD PTR -32[rbp], xmm0
.L172:
mov DWORD PTR -36[rbp], 0
mov BYTE PTR -24[rbp], 0
lea rax, -64[rbp]
mov rdi, rax
call computeJD
mov rcx, QWORD PTR -64[rbp]
movabs rdx, 2361183241434822607
mov rax, rcx
imul rdx
sar rdx, 7
mov rax, rcx
sar rax, 63
sub rdx, rax
movabs rax, -210866760000
add rax, rdx
mov QWORD PTR -120[rbp], rax
lea rdx, -176[rbp]
lea rax, -120[rbp]
mov rsi, rdx
mov rdi, rax
call osLocaltime
test eax, eax
je .L173
mov rax, QWORD PTR -192[rbp]
mov edx, -1
lea rsi, .LC23[rip]
mov rdi, rax
call sqlite3_result_error
mov rax, QWORD PTR -200[rbp]
mov DWORD PTR [rax], 1
mov eax, 0
jmp .L175
.L173:
mov eax, DWORD PTR -156[rbp]
add eax, 1900
mov DWORD PTR -104[rbp], eax
mov eax, DWORD PTR -160[rbp]
add eax, 1
mov DWORD PTR -100[rbp], eax
mov eax, DWORD PTR -164[rbp]
mov DWORD PTR -96[rbp], eax
mov eax, DWORD PTR -168[rbp]
mov DWORD PTR -92[rbp], eax
mov eax, DWORD PTR -172[rbp]
mov DWORD PTR -88[rbp], eax
mov eax, DWORD PTR -176[rbp]
pxor xmm0, xmm0
cvtsi2sd xmm0, eax
movsd QWORD PTR -80[rbp], xmm0
mov BYTE PTR -70[rbp], 1
mov BYTE PTR -69[rbp], 1
mov BYTE PTR -72[rbp], 0
mov BYTE PTR -71[rbp], 0
mov BYTE PTR -68[rbp], 0
mov BYTE PTR -66[rbp], 0
lea rax, -112[rbp]
mov rdi, rax
call computeJD
mov rax, QWORD PTR -200[rbp]
mov DWORD PTR [rax], 0
mov rdx, QWORD PTR -112[rbp]
mov rax, QWORD PTR -64[rbp]
sub rdx, rax
mov rax, rdx
.L175:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE27:
.size localtimeOffset, .-localtimeOffset
.section .rodata
.LC24:
.string "second"
.LC25:
.string "minute"
.LC26:
.string "hour"
.LC27:
.string "day"
.LC28:
.string "month"
.LC29:
.string "year"
.section .data.rel.ro.local
.align 32
.type aXformType, @object
.size aXformType, 192
aXformType:
.byte 0
.byte 6
.zero 6
.quad .LC24
.long 3937402880
.long 1113261605
.long 0
.long 1083129856
.byte 0
.byte 6
.zero 6
.quad .LC25
.long 2768240640
.long 1107088219
.long 0
.long 1089293312
.byte 0
.byte 4
.zero 6
.quad .LC26
.long 2952790016
.long 1100922704
.long 0
.long 1095464768
.byte 0
.byte 3
.zero 6
.quad .LC27
.long 1073741824
.long 1096056715
.long 0
.long 1100257648
.byte 1
.byte 5
.zero 6
.quad .LC28
.long 0
.long 1090882832
.long 0
.long 1105416153
.byte 2
.byte 4
.zero 6
.quad .LC29
.long 0
.long 1087159424
.long 2952790016
.long 1109221060
.section .rodata
.LC30:
.string "localtime"
.LC31:
.string "unixepoch"
.LC34:
.string "utc"
.LC35:
.string "weekday "
.LC37:
.string "start of "
.text
.type parseModifier, @function
parseModifier:
.LFB28:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 160
mov QWORD PTR -136[rbp], rdi
mov QWORD PTR -144[rbp], rsi
mov DWORD PTR -148[rbp], edx
mov QWORD PTR -160[rbp], rcx
mov DWORD PTR -60[rbp], 1
mov rax, QWORD PTR -144[rbp]
movzx eax, BYTE PTR [rax]
movzx eax, al
movsx rdx, eax
lea rax, sqlite3UpperToLower[rip]
movzx eax, BYTE PTR [rdx+rax]
movzx eax, al
sub eax, 43
cmp eax, 76
ja .L237
mov eax, eax
lea rdx, 0[0+rax*4]
lea rax, .L179[rip]
mov eax, DWORD PTR [rdx+rax]
movsx rdx, eax
lea rax, .L179[rip]
add rax, rdx
jmp rax
.section .rodata
.align 4
.align 4
.L179:
.long .L178-.L179
.long .L237-.L179
.long .L178-.L179
.long .L237-.L179
.long .L237-.L179
.long .L178-.L179
.long .L178-.L179
.long .L178-.L179
.long .L178-.L179
.long .L178-.L179
.long .L178-.L179
.long .L178-.L179
.long .L178-.L179
.long .L178-.L179
.long .L178-.L179
.long .L237-.L179
.long .L237-.L179
.long .L237-.L179
.long .L237-.L179
.long .L237-.L179
.long .L237-.L179
.long .L237-.L179
.long .L237-.L179
.long .L237-.L179
.long .L237-.L179
.long .L237-.L179
.long .L237-.L179
.long .L237-.L179
.long .L237-.L179
.long .L237-.L179
.long .L237-.L179
.long .L237-.L179
.long .L237-.L179
.long .L237-.L179
.long .L237-.L179
.long .L237-.L179
.long .L237-.L179
.long .L237-.L179
.long .L237-.L179
.long .L237-.L179
.long .L237-.L179
.long .L237-.L179
.long .L237-.L179
.long .L237-.L179
.long .L237-.L179
.long .L237-.L179
.long .L237-.L179
.long .L237-.L179
.long .L237-.L179
.long .L237-.L179
.long .L237-.L179
.long .L237-.L179
.long .L237-.L179
.long .L237-.L179
.long .L237-.L179
.long .L237-.L179
.long .L237-.L179
.long .L237-.L179
.long .L237-.L179
.long .L237-.L179
.long .L237-.L179
.long .L237-.L179
.long .L237-.L179
.long .L237-.L179
.long .L237-.L179
.long .L180-.L179
.long .L237-.L179
.long .L237-.L179
.long .L237-.L179
.long .L237-.L179
.long .L237-.L179
.long .L237-.L179
.long .L181-.L179
.long .L237-.L179
.long .L182-.L179
.long .L237-.L179
.long .L183-.L179
.text
.L180:
mov rax, QWORD PTR -144[rbp]
lea rsi, .LC30[rip]
mov rdi, rax
call sqlite3_stricmp
test eax, eax
jne .L238
mov rax, QWORD PTR -136[rbp]
mov rdi, rax
call sqlite3NotPureFunc
test eax, eax
je .L238
mov rax, QWORD PTR -160[rbp]
mov rdi, rax
call computeJD
lea rdx, -60[rbp]
mov rcx, QWORD PTR -136[rbp]
mov rax, QWORD PTR -160[rbp]
mov rsi, rcx
mov rdi, rax
call localtimeOffset
mov rdx, rax
mov rax, QWORD PTR -160[rbp]
mov rax, QWORD PTR [rax]
add rdx, rax
mov rax, QWORD PTR -160[rbp]
mov QWORD PTR [rax], rdx
mov rax, QWORD PTR -160[rbp]
mov rdi, rax
call clearYMD_HMS_TZ
jmp .L238
.L182:
mov rax, QWORD PTR -144[rbp]
lea rsi, .LC31[rip]
mov rdi, rax
call sqlite3_stricmp
test eax, eax
jne .L186
mov rax, QWORD PTR -160[rbp]
movzx eax, BYTE PTR 41[rax]
test al, al
je .L186
mov rax, QWORD PTR -160[rbp]
movsd xmm1, QWORD PTR 32[rax]
movsd xmm0, QWORD PTR .LC13[rip]
mulsd xmm0, xmm1
movsd xmm1, QWORD PTR .LC32[rip]
addsd xmm0, xmm1
movsd QWORD PTR -72[rbp], xmm0
movsd xmm0, QWORD PTR -72[rbp]
pxor xmm1, xmm1
ucomisd xmm0, xmm1
jb .L190
movsd xmm1, QWORD PTR -72[rbp]
movsd xmm0, QWORD PTR .LC33[rip]
ucomisd xmm0, xmm1
ja .L230
jmp .L190
.L230:
mov rax, QWORD PTR -160[rbp]
mov rdi, rax
call clearYMD_HMS_TZ
movsd xmm0, QWORD PTR -72[rbp]
cvttsd2si rdx, xmm0
mov rax, QWORD PTR -160[rbp]
mov QWORD PTR [rax], rdx
mov rax, QWORD PTR -160[rbp]
mov BYTE PTR 40[rax], 1
mov rax, QWORD PTR -160[rbp]
mov BYTE PTR 41[rax], 0
mov DWORD PTR -60[rbp], 0
jmp .L190
.L186:
mov rax, QWORD PTR -144[rbp]
lea rsi, .LC34[rip]
mov rdi, rax
call sqlite3_stricmp
test eax, eax
jne .L239
mov rax, QWORD PTR -136[rbp]
mov rdi, rax
call sqlite3NotPureFunc
test eax, eax
je .L239
mov rax, QWORD PTR -160[rbp]
movzx eax, BYTE PTR 45[rax]
test al, al
jne .L191
mov rax, QWORD PTR -160[rbp]
mov rdi, rax
call computeJD
lea rdx, -60[rbp]
mov rcx, QWORD PTR -136[rbp]
mov rax, QWORD PTR -160[rbp]
mov rsi, rcx
mov rdi, rax
call localtimeOffset
mov QWORD PTR -32[rbp], rax
mov eax, DWORD PTR -60[rbp]
test eax, eax
jne .L192
mov rax, QWORD PTR -160[rbp]
mov rax, QWORD PTR [rax]
sub rax, QWORD PTR -32[rbp]
mov rdx, rax
mov rax, QWORD PTR -160[rbp]
mov QWORD PTR [rax], rdx
mov rax, QWORD PTR -160[rbp]
mov rdi, rax
call clearYMD_HMS_TZ
lea rdx, -60[rbp]
mov rcx, QWORD PTR -136[rbp]
mov rax, QWORD PTR -160[rbp]
mov rsi, rcx
mov rdi, rax
call localtimeOffset
mov rdx, rax
mov rax, QWORD PTR -32[rbp]
sub rax, rdx
mov rdx, rax
mov rax, QWORD PTR -160[rbp]
mov rax, QWORD PTR [rax]
add rdx, rax
mov rax, QWORD PTR -160[rbp]
mov QWORD PTR [rax], rdx
.L192:
mov rax, QWORD PTR -160[rbp]
mov BYTE PTR 45[rax], 1
jmp .L239
.L191:
mov DWORD PTR -60[rbp], 0
jmp .L239
.L190:
jmp .L239
.L183:
mov rax, QWORD PTR -144[rbp]
mov edx, 8
lea rsi, .LC35[rip]
mov rdi, rax
call sqlite3_strnicmp
test eax, eax
jne .L240
mov rax, QWORD PTR -144[rbp]
add rax, 8
mov rdi, rax
call sqlite3Strlen30
mov edx, eax
mov rax, QWORD PTR -144[rbp]
lea rdi, 8[rax]
lea rax, -72[rbp]
mov ecx, 1
mov rsi, rax
call sqlite3AtoF
test eax, eax
je .L240
movsd xmm0, QWORD PTR -72[rbp]
cvttsd2si eax, xmm0
mov DWORD PTR -148[rbp], eax
pxor xmm0, xmm0
cvtsi2sd xmm0, DWORD PTR -148[rbp]
movsd xmm1, QWORD PTR -72[rbp]
ucomisd xmm0, xmm1
jp .L240
ucomisd xmm0, xmm1
je .L231
jmp .L240
.L231:
cmp DWORD PTR -148[rbp], 0
js .L240
movsd xmm1, QWORD PTR -72[rbp]
movsd xmm0, QWORD PTR .LC36[rip]
ucomisd xmm0, xmm1
ja .L232
jmp .L240
.L232:
mov rax, QWORD PTR -160[rbp]
mov rdi, rax
call computeYMD_HMS
mov rax, QWORD PTR -160[rbp]
mov BYTE PTR 44[rax], 0
mov rax, QWORD PTR -160[rbp]
mov BYTE PTR 40[rax], 0
mov rax, QWORD PTR -160[rbp]
mov rdi, rax
call computeJD
mov rax, QWORD PTR -160[rbp]
mov rax, QWORD PTR [rax]
lea rcx, 129600000[rax]
movabs rdx, 7164004856975580295
mov rax, rcx
imul rdx
sar rdx, 25
mov rax, rcx
sar rax, 63
mov rcx, rdx
sub rcx, rax
movabs rdx, 5270498306774157605
mov rax, rcx
imul rdx
sar rdx
mov rax, rcx
sar rax, 63
sub rdx, rax
mov rax, rdx
mov QWORD PTR -8[rbp], rax
mov rdx, QWORD PTR -8[rbp]
mov rax, rdx
sal rax, 3
sub rax, rdx
sub rcx, rax
mov rax, rcx
mov QWORD PTR -8[rbp], rax
mov eax, DWORD PTR -148[rbp]
cdqe
cmp rax, QWORD PTR -8[rbp]
jge .L196
sub QWORD PTR -8[rbp], 7
.L196:
mov rax, QWORD PTR -160[rbp]
mov rdx, QWORD PTR [rax]
mov eax, DWORD PTR -148[rbp]
cdqe
sub rax, QWORD PTR -8[rbp]
imul rax, rax, 86400000
add rdx, rax
mov rax, QWORD PTR -160[rbp]
mov QWORD PTR [rax], rdx
mov rax, QWORD PTR -160[rbp]
mov rdi, rax
call clearYMD_HMS_TZ
mov DWORD PTR -60[rbp], 0
jmp .L240
.L181:
mov rax, QWORD PTR -144[rbp]
mov edx, 9
lea rsi, .LC37[rip]
mov rdi, rax
call sqlite3_strnicmp
test eax, eax
jne .L241
mov rax, QWORD PTR -160[rbp]
movzx eax, BYTE PTR 40[rax]
test al, al
jne .L198
mov rax, QWORD PTR -160[rbp]
movzx eax, BYTE PTR 42[rax]
test al, al
jne .L198
mov rax, QWORD PTR -160[rbp]
movzx eax, BYTE PTR 43[rax]
test al, al
je .L242
.L198:
add QWORD PTR -144[rbp], 9
mov rax, QWORD PTR -160[rbp]
mov rdi, rax
call computeYMD
mov rax, QWORD PTR -160[rbp]
mov BYTE PTR 43[rax], 1
mov rax, QWORD PTR -160[rbp]
mov DWORD PTR 24[rax], 0
mov rax, QWORD PTR -160[rbp]
mov edx, DWORD PTR 24[rax]
mov rax, QWORD PTR -160[rbp]
mov DWORD PTR 20[rax], edx
mov rax, QWORD PTR -160[rbp]
pxor xmm0, xmm0
movsd QWORD PTR 32[rax], xmm0
mov rax, QWORD PTR -160[rbp]
mov BYTE PTR 41[rax], 0
mov rax, QWORD PTR -160[rbp]
mov BYTE PTR 44[rax], 0
mov rax, QWORD PTR -160[rbp]
mov BYTE PTR 40[rax], 0
mov rax, QWORD PTR -144[rbp]
lea rsi, .LC28[rip]
mov rdi, rax
call sqlite3_stricmp
test eax, eax
jne .L199
mov rax, QWORD PTR -160[rbp]
mov DWORD PTR 16[rax], 1
mov DWORD PTR -60[rbp], 0
jmp .L243
.L199:
mov rax, QWORD PTR -144[rbp]
lea rsi, .LC29[rip]
mov rdi, rax
call sqlite3_stricmp
test eax, eax
jne .L201
mov rax, QWORD PTR -160[rbp]
mov DWORD PTR 12[rax], 1
mov rax, QWORD PTR -160[rbp]
mov DWORD PTR 16[rax], 1
mov DWORD PTR -60[rbp], 0
jmp .L243
.L201:
mov rax, QWORD PTR -144[rbp]
lea rsi, .LC27[rip]
mov rdi, rax
call sqlite3_stricmp
test eax, eax
jne .L243
mov DWORD PTR -60[rbp], 0
jmp .L243
.L178:
mov DWORD PTR -148[rbp], 1
jmp .L202
.L204:
add DWORD PTR -148[rbp], 1
.L202:
mov eax, DWORD PTR -148[rbp]
movsx rdx, eax
mov rax, QWORD PTR -144[rbp]
add rax, rdx
movzx eax, BYTE PTR [rax]
test al, al
je .L203
mov eax, DWORD PTR -148[rbp]
movsx rdx, eax
mov rax, QWORD PTR -144[rbp]
add rax, rdx
movzx eax, BYTE PTR [rax]
cmp al, 58
je .L203
mov eax, DWORD PTR -148[rbp]
movsx rdx, eax
mov rax, QWORD PTR -144[rbp]
add rax, rdx
movzx eax, BYTE PTR [rax]
movzx eax, al
movsx rdx, eax
lea rax, sqlite3CtypeMap[rip]
movzx eax, BYTE PTR [rdx+rax]
movzx eax, al
and eax, 1
test eax, eax
je .L204
.L203:
mov edx, DWORD PTR -148[rbp]
lea rsi, -72[rbp]
mov rax, QWORD PTR -144[rbp]
mov ecx, 1
mov rdi, rax
call sqlite3AtoF
test eax, eax
jne .L205
mov DWORD PTR -60[rbp], 1
jmp .L185
.L205:
mov eax, DWORD PTR -148[rbp]
movsx rdx, eax
mov rax, QWORD PTR -144[rbp]
add rax, rdx
movzx eax, BYTE PTR [rax]
cmp al, 58
jne .L206
mov rax, QWORD PTR -144[rbp]
mov QWORD PTR -24[rbp], rax
mov rax, QWORD PTR -24[rbp]
movzx eax, BYTE PTR [rax]
movzx eax, al
movsx rdx, eax
lea rax, sqlite3CtypeMap[rip]
movzx eax, BYTE PTR [rdx+rax]
movzx eax, al
and eax, 4
test eax, eax
jne .L207
add QWORD PTR -24[rbp], 1
.L207:
lea rax, -128[rbp]
mov edx, 48
mov esi, 0
mov rdi, rax
call memset@PLT
lea rdx, -128[rbp]
mov rax, QWORD PTR -24[rbp]
mov rsi, rdx
mov rdi, rax
call parseHhMmSs
test eax, eax
jne .L244
lea rax, -128[rbp]
mov rdi, rax
call computeJD
mov rax, QWORD PTR -128[rbp]
sub rax, 43200000
mov QWORD PTR -128[rbp], rax
mov rcx, QWORD PTR -128[rbp]
movabs rdx, 7164004856975580295
mov rax, rcx
imul rdx
sar rdx, 25
mov rax, rcx
sar rax, 63
sub rdx, rax
mov rax, rdx
mov QWORD PTR -40[rbp], rax
mov rdx, QWORD PTR -128[rbp]
mov rax, QWORD PTR -40[rbp]
imul rax, rax, -86400000
add rax, rdx
mov QWORD PTR -128[rbp], rax
mov rax, QWORD PTR -144[rbp]
movzx eax, BYTE PTR [rax]
cmp al, 45
jne .L210
mov rax, QWORD PTR -128[rbp]
neg rax
mov QWORD PTR -128[rbp], rax
.L210:
mov rax, QWORD PTR -160[rbp]
mov rdi, rax
call computeJD
mov rax, QWORD PTR -160[rbp]
mov rdi, rax
call clearYMD_HMS_TZ
mov rax, QWORD PTR -160[rbp]
mov rdx, QWORD PTR [rax]
mov rax, QWORD PTR -128[rbp]
add rdx, rax
mov rax, QWORD PTR -160[rbp]
mov QWORD PTR [rax], rdx
mov DWORD PTR -60[rbp], 0
nop
jmp .L185
.L206:
mov eax, DWORD PTR -148[rbp]
cdqe
add QWORD PTR -144[rbp], rax
jmp .L211
.L212:
add QWORD PTR -144[rbp], 1
.L211:
mov rax, QWORD PTR -144[rbp]
movzx eax, BYTE PTR [rax]
movzx eax, al
movsx rdx, eax
lea rax, sqlite3CtypeMap[rip]
movzx eax, BYTE PTR [rdx+rax]
movzx eax, al
and eax, 1
test eax, eax
jne .L212
mov rax, QWORD PTR -144[rbp]
mov rdi, rax
call sqlite3Strlen30
mov DWORD PTR -148[rbp], eax
cmp DWORD PTR -148[rbp], 10
jg .L185
cmp DWORD PTR -148[rbp], 2
jle .L185
mov eax, DWORD PTR -148[rbp]
cdqe
lea rdx, -1[rax]
mov rax, QWORD PTR -144[rbp]
add rax, rdx
movzx eax, BYTE PTR [rax]
movzx eax, al
movsx rdx, eax
lea rax, sqlite3UpperToLower[rip]
movzx eax, BYTE PTR [rdx+rax]
cmp al, 115
jne .L213
sub DWORD PTR -148[rbp], 1
.L213:
mov rax, QWORD PTR -160[rbp]
mov rdi, rax
call computeJD
mov DWORD PTR -60[rbp], 1
movsd xmm1, QWORD PTR -72[rbp]
pxor xmm0, xmm0
ucomisd xmm0, xmm1
jbe .L236
movsd xmm0, QWORD PTR .LC38[rip]
jmp .L216
.L236:
movsd xmm0, QWORD PTR .LC16[rip]
.L216:
movsd QWORD PTR -48[rbp], xmm0
mov DWORD PTR -12[rbp], 0
jmp .L217
.L227:
mov eax, DWORD PTR -12[rbp]
cdqe
sal rax, 5
mov rdx, rax
lea rax, aXformType[rip+1]
movzx eax, BYTE PTR [rdx+rax]
movzx eax, al
cmp eax, DWORD PTR -148[rbp]
jne .L218
mov eax, DWORD PTR -12[rbp]
cdqe
sal rax, 5
mov rdx, rax
lea rax, aXformType[rip+8]
mov rax, QWORD PTR [rdx+rax]
mov edx, DWORD PTR -148[rbp]
mov rcx, QWORD PTR -144[rbp]
mov rsi, rcx
mov rdi, rax
call sqlite3_strnicmp
test eax, eax
jne .L218
mov eax, DWORD PTR -12[rbp]
cdqe
sal rax, 5
mov rdx, rax
lea rax, aXformType[rip+16]
movsd xmm1, QWORD PTR [rdx+rax]
movsd xmm0, QWORD PTR .LC39[rip]
xorpd xmm0, xmm1
movsd xmm1, QWORD PTR -72[rbp]
ucomisd xmm1, xmm0
jbe .L218
mov eax, DWORD PTR -12[rbp]
cdqe
sal rax, 5
mov rdx, rax
lea rax, aXformType[rip+16]
movsd xmm0, QWORD PTR [rdx+rax]
movsd xmm1, QWORD PTR -72[rbp]
ucomisd xmm0, xmm1
jbe .L218
mov eax, DWORD PTR -12[rbp]
cdqe
sal rax, 5
mov rdx, rax
lea rax, aXformType[rip]
movzx eax, BYTE PTR [rdx+rax]
movzx eax, al
cmp eax, 1
je .L222
cmp eax, 2
je .L223
jmp .L221
.L222:
mov rax, QWORD PTR -160[rbp]
mov rdi, rax
call computeYMD_HMS
mov rax, QWORD PTR -160[rbp]
mov edx, DWORD PTR 12[rax]
movsd xmm0, QWORD PTR -72[rbp]
cvttsd2si eax, xmm0
add edx, eax
mov rax, QWORD PTR -160[rbp]
mov DWORD PTR 12[rax], edx
mov rax, QWORD PTR -160[rbp]
mov eax, DWORD PTR 12[rax]
test eax, eax
jle .L224
mov rax, QWORD PTR -160[rbp]
mov eax, DWORD PTR 12[rax]
lea ecx, -1[rax]
mov edx, 715827883
mov eax, ecx
imul edx
sar edx
mov eax, ecx
sar eax, 31
sub edx, eax
mov eax, edx
jmp .L225
.L224:
mov rax, QWORD PTR -160[rbp]
mov eax, DWORD PTR 12[rax]
lea ecx, -12[rax]
mov edx, 715827883
mov eax, ecx
imul edx
sar edx
mov eax, ecx
sar eax, 31
sub edx, eax
mov eax, edx
.L225:
mov DWORD PTR -52[rbp], eax
mov rax, QWORD PTR -160[rbp]
mov edx, DWORD PTR 8[rax]
mov eax, DWORD PTR -52[rbp]
add edx, eax
mov rax, QWORD PTR -160[rbp]
mov DWORD PTR 8[rax], edx
mov rax, QWORD PTR -160[rbp]
mov ecx, DWORD PTR 12[rax]
mov edx, DWORD PTR -52[rbp]
mov eax, edx
sal edx, 2
sub eax, edx
sal eax, 2
lea edx, [rcx+rax]
mov rax, QWORD PTR -160[rbp]
mov DWORD PTR 12[rax], edx
mov rax, QWORD PTR -160[rbp]
mov BYTE PTR 40[rax], 0
movsd xmm1, QWORD PTR -72[rbp]
movsd xmm0, QWORD PTR -72[rbp]
cvttsd2si eax, xmm0
pxor xmm0, xmm0
cvtsi2sd xmm0, eax
subsd xmm1, xmm0
movapd xmm0, xmm1
movsd QWORD PTR -72[rbp], xmm0
jmp .L221
.L223:
movsd xmm0, QWORD PTR -72[rbp]
cvttsd2si eax, xmm0
mov DWORD PTR -56[rbp], eax
mov rax, QWORD PTR -160[rbp]
mov rdi, rax
call computeYMD_HMS
mov rax, QWORD PTR -160[rbp]
mov edx, DWORD PTR 8[rax]
mov eax, DWORD PTR -56[rbp]
add edx, eax
mov rax, QWORD PTR -160[rbp]
mov DWORD PTR 8[rax], edx
mov rax, QWORD PTR -160[rbp]
mov BYTE PTR 40[rax], 0
movsd xmm1, QWORD PTR -72[rbp]
movsd xmm0, QWORD PTR -72[rbp]
cvttsd2si eax, xmm0
pxor xmm0, xmm0
cvtsi2sd xmm0, eax
subsd xmm1, xmm0
movapd xmm0, xmm1
movsd QWORD PTR -72[rbp], xmm0
nop
.L221:
mov rax, QWORD PTR -160[rbp]
mov rdi, rax
call computeJD
mov rax, QWORD PTR -160[rbp]
mov rdx, QWORD PTR [rax]
mov eax, DWORD PTR -12[rbp]
cdqe
sal rax, 5
mov rcx, rax
lea rax, aXformType[rip+24]
movsd xmm1, QWORD PTR [rcx+rax]
movsd xmm0, QWORD PTR -72[rbp]
mulsd xmm0, xmm1
addsd xmm0, QWORD PTR -48[rbp]
cvttsd2si rax, xmm0
add rdx, rax
mov rax, QWORD PTR -160[rbp]
mov QWORD PTR [rax], rdx
mov DWORD PTR -60[rbp], 0
jmp .L226
.L218:
add DWORD PTR -12[rbp], 1
.L217:
cmp DWORD PTR -12[rbp], 5
jle .L227
.L226:
mov rax, QWORD PTR -160[rbp]
mov rdi, rax
call clearYMD_HMS_TZ
jmp .L185
.L237:
nop
jmp .L185
.L238:
nop
jmp .L185
.L239:
nop
jmp .L185
.L240:
nop
jmp .L185
.L241:
nop
jmp .L185
.L242:
nop
jmp .L185
.L243:
nop
jmp .L185
.L244:
nop
.L185:
mov eax, DWORD PTR -60[rbp]
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE28:
.size parseModifier, .-parseModifier
.type isDate, @function
isDate:
.LFB29:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 64
mov QWORD PTR -40[rbp], rdi
mov DWORD PTR -44[rbp], esi
mov QWORD PTR -56[rbp], rdx
mov QWORD PTR -64[rbp], rcx
mov rax, QWORD PTR -64[rbp]
mov edx, 48
mov esi, 0
mov rdi, rax
call memset@PLT
cmp DWORD PTR -44[rbp], 0
jne .L246
mov rdx, QWORD PTR -64[rbp]
mov rax, QWORD PTR -40[rbp]
mov rsi, rdx
mov rdi, rax
call setDateTimeToCurrent
jmp .L247
.L246:
mov rax, QWORD PTR -56[rbp]
mov rax, QWORD PTR [rax]
mov rdi, rax
call sqlite3_value_type
mov DWORD PTR -8[rbp], eax
cmp DWORD PTR -8[rbp], 2
je .L248
cmp DWORD PTR -8[rbp], 1
jne .L249
.L248:
mov rax, QWORD PTR -56[rbp]
mov rax, QWORD PTR [rax]
mov rdi, rax
call sqlite3_value_double
mov rax, QWORD PTR -64[rbp]
mov rdi, rax
call setRawDateNumber
jmp .L250
.L249:
mov rax, QWORD PTR -56[rbp]
mov rax, QWORD PTR [rax]
mov rdi, rax
call sqlite3_value_text
mov QWORD PTR -16[rbp], rax
cmp QWORD PTR -16[rbp], 0
je .L251
mov rdx, QWORD PTR -64[rbp]
mov rcx, QWORD PTR -16[rbp]
mov rax, QWORD PTR -40[rbp]
mov rsi, rcx
mov rdi, rax
call parseDateOrTime
test eax, eax
je .L250
.L251:
mov eax, 1
jmp .L247
.L250:
mov DWORD PTR -4[rbp], 1
jmp .L252
.L255:
mov eax, DWORD PTR -4[rbp]
cdqe
lea rdx, 0[0+rax*8]
mov rax, QWORD PTR -56[rbp]
add rax, rdx
mov rax, QWORD PTR [rax]
mov rdi, rax
call sqlite3_value_text
mov QWORD PTR -16[rbp], rax
mov eax, DWORD PTR -4[rbp]
cdqe
lea rdx, 0[0+rax*8]
mov rax, QWORD PTR -56[rbp]
add rax, rdx
mov rax, QWORD PTR [rax]
mov rdi, rax
call sqlite3_value_bytes
mov DWORD PTR -20[rbp], eax
cmp QWORD PTR -16[rbp], 0
je .L253
mov rcx, QWORD PTR -64[rbp]
mov edx, DWORD PTR -20[rbp]
mov rsi, QWORD PTR -16[rbp]
mov rax, QWORD PTR -40[rbp]
mov rdi, rax
call parseModifier
test eax, eax
je .L254
.L253:
mov eax, 1
jmp .L247
.L254:
add DWORD PTR -4[rbp], 1
.L252:
mov eax, DWORD PTR -4[rbp]
cmp eax, DWORD PTR -44[rbp]
jl .L255
mov rax, QWORD PTR -64[rbp]
mov rdi, rax
call computeJD
mov rax, QWORD PTR -64[rbp]
movzx eax, BYTE PTR 46[rax]
test al, al
jne .L256
mov rax, QWORD PTR -64[rbp]
mov rax, QWORD PTR [rax]
mov rdi, rax
call validJulianDay
test eax, eax
jne .L257
.L256:
mov eax, 1
jmp .L247
.L257:
mov eax, 0
.L247:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE29:
.size isDate, .-isDate
.type juliandayFunc, @function
juliandayFunc:
.LFB30:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 80
mov QWORD PTR -56[rbp], rdi
mov DWORD PTR -60[rbp], esi
mov QWORD PTR -72[rbp], rdx
lea rcx, -48[rbp]
mov rdx, QWORD PTR -72[rbp]
mov esi, DWORD PTR -60[rbp]
mov rax, QWORD PTR -56[rbp]
mov rdi, rax
call isDate
test eax, eax
jne .L260
lea rax, -48[rbp]
mov rdi, rax
call computeJD
mov rax, QWORD PTR -48[rbp]
pxor xmm0, xmm0
cvtsi2sdq xmm0, rax
movsd xmm1, QWORD PTR .LC12[rip]
divsd xmm0, xmm1
mov rax, QWORD PTR -56[rbp]
mov rdi, rax
call sqlite3_result_double
.L260:
nop
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE30:
.size juliandayFunc, .-juliandayFunc
.section .rodata
.LC40:
.string "%04d-%02d-%02d %02d:%02d:%02d"
.text
.type datetimeFunc, @function
datetimeFunc:
.LFB31:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 192
mov QWORD PTR -168[rbp], rdi
mov DWORD PTR -172[rbp], esi
mov QWORD PTR -184[rbp], rdx
lea rcx, -48[rbp]
mov rdx, QWORD PTR -184[rbp]
mov esi, DWORD PTR -172[rbp]
mov rax, QWORD PTR -168[rbp]
mov rdi, rax
call isDate
test eax, eax
jne .L263
lea rax, -48[rbp]
mov rdi, rax
call computeYMD_HMS
movsd xmm0, QWORD PTR -16[rbp]
cvttsd2si edi, xmm0
mov esi, DWORD PTR -24[rbp]
mov ecx, DWORD PTR -28[rbp]
mov r9d, DWORD PTR -32[rbp]
mov r8d, DWORD PTR -36[rbp]
mov edx, DWORD PTR -40[rbp]
lea rax, -160[rbp]
sub rsp, 8
push rdi
push rsi
push rcx
mov ecx, edx
lea rdx, .LC40[rip]
mov rsi, rax
mov edi, 100
mov eax, 0
call sqlite3_snprintf
add rsp, 32
lea rsi, -160[rbp]
mov rax, QWORD PTR -168[rbp]
mov rcx, -1
mov edx, -1
mov rdi, rax
call sqlite3_result_text
.L263:
nop
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE31:
.size datetimeFunc, .-datetimeFunc
.section .rodata
.LC41:
.string "%02d:%02d:%02d"
.text
.type timeFunc, @function
timeFunc:
.LFB32:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 192
mov QWORD PTR -168[rbp], rdi
mov DWORD PTR -172[rbp], esi
mov QWORD PTR -184[rbp], rdx
lea rcx, -48[rbp]
mov rdx, QWORD PTR -184[rbp]
mov esi, DWORD PTR -172[rbp]
mov rax, QWORD PTR -168[rbp]
mov rdi, rax
call isDate
test eax, eax
jne .L266
lea rax, -48[rbp]
mov rdi, rax
call computeHMS
movsd xmm0, QWORD PTR -16[rbp]
cvttsd2si esi, xmm0
mov ecx, DWORD PTR -24[rbp]
mov edx, DWORD PTR -28[rbp]
lea rax, -160[rbp]
mov r9d, esi
mov r8d, ecx
mov ecx, edx
lea rdx, .LC41[rip]
mov rsi, rax
mov edi, 100
mov eax, 0
call sqlite3_snprintf
lea rsi, -160[rbp]
mov rax, QWORD PTR -168[rbp]
mov rcx, -1
mov edx, -1
mov rdi, rax
call sqlite3_result_text
.L266:
nop
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE32:
.size timeFunc, .-timeFunc
.section .rodata
.LC42:
.string "%04d-%02d-%02d"
.text
.type dateFunc, @function
dateFunc:
.LFB33:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 192
mov QWORD PTR -168[rbp], rdi
mov DWORD PTR -172[rbp], esi
mov QWORD PTR -184[rbp], rdx
lea rcx, -48[rbp]
mov rdx, QWORD PTR -184[rbp]
mov esi, DWORD PTR -172[rbp]
mov rax, QWORD PTR -168[rbp]
mov rdi, rax
call isDate
test eax, eax
jne .L269
lea rax, -48[rbp]
mov rdi, rax
call computeYMD
mov esi, DWORD PTR -32[rbp]
mov ecx, DWORD PTR -36[rbp]
mov edx, DWORD PTR -40[rbp]
lea rax, -160[rbp]
mov r9d, esi
mov r8d, ecx
mov ecx, edx
lea rdx, .LC42[rip]
mov rsi, rax
mov edi, 100
mov eax, 0
call sqlite3_snprintf
lea rsi, -160[rbp]
mov rax, QWORD PTR -168[rbp]
mov rcx, -1
mov edx, -1
mov rdi, rax
call sqlite3_result_text
.L269:
nop
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE33:
.size dateFunc, .-dateFunc
.section .rodata
.LC43:
.string "%02d"
.LC45:
.string "%06.3f"
.LC46:
.string "%03d"
.LC47:
.string "%.16g"
.LC48:
.string "%lld"
.LC49:
.string "%04d"
.text
.type strftimeFunc, @function
strftimeFunc:
.LFB34:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 304
mov QWORD PTR -280[rbp], rdi
mov DWORD PTR -284[rbp], esi
mov QWORD PTR -296[rbp], rdx
cmp DWORD PTR -284[rbp], 0
je .L315
mov rax, QWORD PTR -296[rbp]
mov rax, QWORD PTR [rax]
mov rdi, rax
call sqlite3_value_text
mov QWORD PTR -48[rbp], rax
cmp QWORD PTR -48[rbp], 0
je .L316
mov rax, QWORD PTR -296[rbp]
lea rdi, 8[rax]
mov eax, DWORD PTR -284[rbp]
lea esi, -1[rax]
lea rdx, -112[rbp]
mov rax, QWORD PTR -280[rbp]
mov rcx, rdx
mov rdx, rdi
mov rdi, rax
call isDate
test eax, eax
jne .L316
mov rax, QWORD PTR -280[rbp]
mov rdi, rax
call sqlite3_context_db_handle
mov QWORD PTR -56[rbp], rax
mov QWORD PTR -16[rbp], 0
mov QWORD PTR -8[rbp], 1
jmp .L275
.L286:
mov rdx, QWORD PTR -48[rbp]
mov rax, QWORD PTR -16[rbp]
add rax, rdx
movzx eax, BYTE PTR [rax]
cmp al, 37
jne .L276
mov rax, QWORD PTR -16[rbp]
lea rdx, 1[rax]
mov rax, QWORD PTR -48[rbp]
add rax, rdx
movzx eax, BYTE PTR [rax]
movsx eax, al
sub eax, 37
cmp eax, 82
ja .L317
mov eax, eax
lea rdx, 0[0+rax*4]
lea rax, .L279[rip]
mov eax, DWORD PTR [rdx+rax]
movsx rdx, eax
lea rax, .L279[rip]
add rax, rdx
jmp rax
.section .rodata
.align 4
.align 4
.L279:
.long .L318-.L279
.long .L317-.L279
.long .L317-.L279
.long .L317-.L279
.long .L317-.L279
.long .L317-.L279
.long .L317-.L279
.long .L317-.L279
.long .L317-.L279
.long .L317-.L279
.long .L317-.L279
.long .L317-.L279
.long .L317-.L279
.long .L317-.L279
.long .L317-.L279
.long .L317-.L279
.long .L317-.L279
.long .L317-.L279
.long .L317-.L279
.long .L317-.L279
.long .L317-.L279
.long .L317-.L279
.long .L317-.L279
.long .L317-.L279
.long .L317-.L279
.long .L317-.L279
.long .L317-.L279
.long .L317-.L279
.long .L317-.L279
.long .L317-.L279
.long .L317-.L279
.long .L317-.L279
.long .L317-.L279
.long .L317-.L279
.long .L317-.L279
.long .L280-.L279
.long .L317-.L279
.long .L281-.L279
.long .L317-.L279
.long .L317-.L279
.long .L280-.L279
.long .L317-.L279
.long .L317-.L279
.long .L317-.L279
.long .L317-.L279
.long .L317-.L279
.long .L280-.L279
.long .L317-.L279
.long .L317-.L279
.long .L317-.L279
.long .L280-.L279
.long .L317-.L279
.long .L282-.L279
.long .L317-.L279
.long .L317-.L279
.long .L317-.L279
.long .L317-.L279
.long .L317-.L279
.long .L317-.L279
.long .L317-.L279
.long .L317-.L279
.long .L317-.L279
.long .L317-.L279
.long .L280-.L279
.long .L317-.L279
.long .L283-.L279
.long .L317-.L279
.long .L317-.L279
.long .L317-.L279
.long .L284-.L279
.long .L317-.L279
.long .L317-.L279
.long .L280-.L279
.long .L317-.L279
.long .L317-.L279
.long .L317-.L279
.long .L317-.L279
.long .L317-.L279
.long .L281-.L279
.long .L317-.L279
.long .L317-.L279
.long .L317-.L279
.long .L318-.L279
.text
.L280:
add QWORD PTR -8[rbp], 1
jmp .L318
.L283:
add QWORD PTR -8[rbp], 8
jmp .L285
.L284:
add QWORD PTR -8[rbp], 3
jmp .L285
.L282:
add QWORD PTR -8[rbp], 8
jmp .L285
.L281:
add QWORD PTR -8[rbp], 50
jmp .L285
.L318:
nop
.L285:
add QWORD PTR -16[rbp], 1
.L276:
add QWORD PTR -16[rbp], 1
add QWORD PTR -8[rbp], 1
.L275:
mov rdx, QWORD PTR -48[rbp]
mov rax, QWORD PTR -16[rbp]
add rax, rdx
movzx eax, BYTE PTR [rax]
test al, al
jne .L286
cmp QWORD PTR -8[rbp], 99
ja .L287
lea rax, -224[rbp]
mov QWORD PTR -32[rbp], rax
jmp .L288
.L287:
mov rax, QWORD PTR -56[rbp]
mov eax, DWORD PTR 124[rax]
cdqe
cmp rax, QWORD PTR -8[rbp]
jnb .L289
mov rax, QWORD PTR -280[rbp]
mov rdi, rax
call sqlite3_result_error_toobig
jmp .L270
.L289:
mov rax, QWORD PTR -8[rbp]
movsx rdx, eax
mov rax, QWORD PTR -56[rbp]
mov rsi, rdx
mov rdi, rax
call sqlite3DbMallocRawNN
mov QWORD PTR -32[rbp], rax
cmp QWORD PTR -32[rbp], 0
jne .L288
mov rax, QWORD PTR -280[rbp]
mov rdi, rax
call sqlite3_result_error_nomem
jmp .L270
.L288:
lea rax, -112[rbp]
mov rdi, rax
call computeJD
lea rax, -112[rbp]
mov rdi, rax
call computeYMD_HMS
mov QWORD PTR -24[rbp], 0
mov rax, QWORD PTR -24[rbp]
mov QWORD PTR -16[rbp], rax
jmp .L290
.L310:
mov rdx, QWORD PTR -48[rbp]
mov rax, QWORD PTR -16[rbp]
add rax, rdx
movzx eax, BYTE PTR [rax]
cmp al, 37
je .L291
mov rax, QWORD PTR -24[rbp]
lea rdx, 1[rax]
mov QWORD PTR -24[rbp], rdx
mov rdx, QWORD PTR -32[rbp]
add rdx, rax
mov rcx, QWORD PTR -48[rbp]
mov rax, QWORD PTR -16[rbp]
add rax, rcx
movzx eax, BYTE PTR [rax]
mov BYTE PTR [rdx], al
jmp .L292
.L291:
add QWORD PTR -16[rbp], 1
mov rdx, QWORD PTR -48[rbp]
mov rax, QWORD PTR -16[rbp]
add rax, rdx
movzx eax, BYTE PTR [rax]
movsx eax, al
sub eax, 72
cmp eax, 47
ja .L293
mov eax, eax
lea rdx, 0[0+rax*4]
lea rax, .L295[rip]
mov eax, DWORD PTR [rdx+rax]
movsx rdx, eax
lea rax, .L295[rip]
add rax, rdx
jmp rax
.section .rodata
.align 4
.align 4
.L295:
.long .L294-.L295
.long .L293-.L295
.long .L296-.L295
.long .L293-.L295
.long .L293-.L295
.long .L297-.L295
.long .L293-.L295
.long .L293-.L295
.long .L293-.L295
.long .L293-.L295
.long .L293-.L295
.long .L298-.L295
.long .L293-.L295
.long .L293-.L295
.long .L293-.L295
.long .L299-.L295
.long .L293-.L295
.long .L300-.L295
.long .L293-.L295
.long .L293-.L295
.long .L293-.L295
.long .L293-.L295
.long .L293-.L295
.long .L293-.L295
.long .L293-.L295
.long .L293-.L295
.long .L293-.L295
.long .L293-.L295
.long .L301-.L295
.long .L293-.L295
.long .L302-.L295
.long .L293-.L295
.long .L293-.L295
.long .L293-.L295
.long .L299-.L295
.long .L293-.L295
.long .L293-.L295
.long .L303-.L295
.long .L293-.L295
.long .L293-.L295
.long .L293-.L295
.long .L293-.L295
.long .L293-.L295
.long .L304-.L295
.long .L293-.L295
.long .L293-.L295
.long .L293-.L295
.long .L305-.L295
.text
.L301:
mov eax, DWORD PTR -96[rbp]
mov rcx, QWORD PTR -32[rbp]
mov rdx, QWORD PTR -24[rbp]
lea rsi, [rcx+rdx]
mov ecx, eax
lea rdx, .LC43[rip]
mov edi, 3
mov eax, 0
call sqlite3_snprintf
add QWORD PTR -24[rbp], 2
jmp .L292
.L302:
movsd xmm0, QWORD PTR -80[rbp]
movsd QWORD PTR -40[rbp], xmm0
movsd xmm0, QWORD PTR -40[rbp]
ucomisd xmm0, QWORD PTR .LC44[rip]
jbe .L306
movsd xmm0, QWORD PTR .LC44[rip]
movsd QWORD PTR -40[rbp], xmm0
.L306:
mov rdx, QWORD PTR -32[rbp]
mov rax, QWORD PTR -24[rbp]
lea rcx, [rdx+rax]
mov rax, QWORD PTR -40[rbp]
mov QWORD PTR -304[rbp], rax
movsd xmm0, QWORD PTR -304[rbp]
lea rdx, .LC45[rip]
mov rsi, rcx
mov edi, 7
mov eax, 1
call sqlite3_snprintf
mov rdx, QWORD PTR -32[rbp]
mov rax, QWORD PTR -24[rbp]
add rax, rdx
mov rdi, rax
call sqlite3Strlen30
cdqe
add QWORD PTR -24[rbp], rax
jmp .L292
.L294:
mov eax, DWORD PTR -92[rbp]
mov rcx, QWORD PTR -32[rbp]
mov rdx, QWORD PTR -24[rbp]
lea rsi, [rcx+rdx]
mov ecx, eax
lea rdx, .LC43[rip]
mov edi, 3
mov eax, 0
call sqlite3_snprintf
add QWORD PTR -24[rbp], 2
jmp .L292
.L299:
mov rax, QWORD PTR -112[rbp]
mov QWORD PTR -272[rbp], rax
mov rax, QWORD PTR -104[rbp]
mov QWORD PTR -264[rbp], rax
mov rax, QWORD PTR -96[rbp]
mov QWORD PTR -256[rbp], rax
mov rax, QWORD PTR -88[rbp]
mov QWORD PTR -248[rbp], rax
mov rax, QWORD PTR -80[rbp]
mov QWORD PTR -240[rbp], rax
mov rax, QWORD PTR -72[rbp]
mov QWORD PTR -232[rbp], rax
mov BYTE PTR -232[rbp], 0
mov DWORD PTR -260[rbp], 1
mov DWORD PTR -256[rbp], 1
lea rax, -272[rbp]
mov rdi, rax
call computeJD
mov rdx, QWORD PTR -112[rbp]
mov rax, QWORD PTR -272[rbp]
sub rdx, rax
mov rax, rdx
lea rcx, 43200000[rax]
movabs rdx, 7164004856975580295
mov rax, rcx
imul rdx
sar rdx, 25
mov rax, rcx
sar rax, 63
sub rdx, rax
mov rax, rdx
mov DWORD PTR -60[rbp], eax
mov rdx, QWORD PTR -48[rbp]
mov rax, QWORD PTR -16[rbp]
add rax, rdx
movzx eax, BYTE PTR [rax]
cmp al, 87
jne .L308
mov rax, QWORD PTR -112[rbp]
lea rcx, 43200000[rax]
movabs rdx, 7164004856975580295
mov rax, rcx
imul rdx
sar rdx, 25
mov rax, rcx
sar rax, 63
mov rcx, rdx
sub rcx, rax
movabs rdx, 5270498306774157605
mov rax, rcx
imul rdx
sar rdx
mov rax, rcx
sar rax, 63
sub rdx, rax
mov rax, rdx
mov rdx, rax
sal rdx, 3
sub rdx, rax
mov rax, rcx
sub rax, rdx
mov DWORD PTR -64[rbp], eax
mov eax, DWORD PTR -60[rbp]
add eax, 7
sub eax, DWORD PTR -64[rbp]
mov ecx, eax
mov edx, -1840700269
mov eax, ecx
imul edx
lea eax, [rdx+rcx]
sar eax, 2
mov edx, eax
mov eax, ecx
sar eax, 31
sub edx, eax
mov rcx, QWORD PTR -32[rbp]
mov rax, QWORD PTR -24[rbp]
add rax, rcx
mov ecx, edx
lea rdx, .LC43[rip]
mov rsi, rax
mov edi, 3
mov eax, 0
call sqlite3_snprintf
add QWORD PTR -24[rbp], 2
jmp .L292
.L308:
mov eax, DWORD PTR -60[rbp]
lea edx, 1[rax]
mov rcx, QWORD PTR -32[rbp]
mov rax, QWORD PTR -24[rbp]
add rax, rcx
mov ecx, edx
lea rdx, .LC46[rip]
mov rsi, rax
mov edi, 4
mov eax, 0
call sqlite3_snprintf
add QWORD PTR -24[rbp], 3
nop
jmp .L292
.L296:
mov rax, QWORD PTR -112[rbp]
pxor xmm0, xmm0
cvtsi2sdq xmm0, rax
movsd xmm1, QWORD PTR .LC12[rip]
divsd xmm0, xmm1
mov rdx, QWORD PTR -32[rbp]
mov rax, QWORD PTR -24[rbp]
add rax, rdx
lea rdx, .LC47[rip]
mov rsi, rax
mov edi, 20
mov eax, 1
call sqlite3_snprintf
mov rdx, QWORD PTR -32[rbp]
mov rax, QWORD PTR -24[rbp]
add rax, rdx
mov rdi, rax
call sqlite3Strlen30
cdqe
add QWORD PTR -24[rbp], rax
jmp .L292
.L303:
mov eax, DWORD PTR -100[rbp]
mov rcx, QWORD PTR -32[rbp]
mov rdx, QWORD PTR -24[rbp]
lea rsi, [rcx+rdx]
mov ecx, eax
lea rdx, .LC43[rip]
mov edi, 3
mov eax, 0
call sqlite3_snprintf
add QWORD PTR -24[rbp], 2
jmp .L292
.L297:
mov eax, DWORD PTR -88[rbp]
mov rcx, QWORD PTR -32[rbp]
mov rdx, QWORD PTR -24[rbp]
lea rsi, [rcx+rdx]
mov ecx, eax
lea rdx, .LC43[rip]
mov edi, 3
mov eax, 0
call sqlite3_snprintf
add QWORD PTR -24[rbp], 2
jmp .L292
.L304:
mov rcx, QWORD PTR -112[rbp]
movabs rdx, 2361183241434822607
mov rax, rcx
imul rdx
sar rdx, 7
mov rax, rcx
sar rax, 63
sub rdx, rax
movabs rax, -210866760000
add rdx, rax
mov rcx, QWORD PTR -32[rbp]
mov rax, QWORD PTR -24[rbp]
add rax, rcx
mov rcx, rdx
lea rdx, .LC48[rip]
mov rsi, rax
mov edi, 30
mov eax, 0
call sqlite3_snprintf
mov rdx, QWORD PTR -32[rbp]
mov rax, QWORD PTR -24[rbp]
add rax, rdx
mov rdi, rax
call sqlite3Strlen30
cdqe
add QWORD PTR -24[rbp], rax
jmp .L292
.L298:
movsd xmm0, QWORD PTR -80[rbp]
cvttsd2si eax, xmm0
mov rcx, QWORD PTR -32[rbp]
mov rdx, QWORD PTR -24[rbp]
lea rsi, [rcx+rdx]
mov ecx, eax
lea rdx, .LC43[rip]
mov edi, 3
mov eax, 0
call sqlite3_snprintf
add QWORD PTR -24[rbp], 2
jmp .L292
.L305:
mov rax, QWORD PTR -24[rbp]
lea rdx, 1[rax]
mov QWORD PTR -24[rbp], rdx
mov rdx, QWORD PTR -32[rbp]
lea rsi, [rax+rdx]
mov rax, QWORD PTR -112[rbp]
lea rcx, 129600000[rax]
movabs rdx, 7164004856975580295
mov rax, rcx
imul rdx
sar rdx, 25
mov rax, rcx
sar rax, 63
mov rcx, rdx
sub rcx, rax
movabs rdx, 5270498306774157605
mov rax, rcx
imul rdx
sar rdx
mov rax, rcx
sar rax, 63
sub rdx, rax
mov rax, rdx
mov rdx, rax
sal rdx, 3
sub rdx, rax
mov rax, rcx
sub rax, rdx
add eax, 48
mov BYTE PTR [rsi], al
jmp .L292
.L300:
mov eax, DWORD PTR -104[rbp]
mov rcx, QWORD PTR -32[rbp]
mov rdx, QWORD PTR -24[rbp]
lea rsi, [rcx+rdx]
mov ecx, eax
lea rdx, .LC49[rip]
mov edi, 5
mov eax, 0
call sqlite3_snprintf
mov rdx, QWORD PTR -32[rbp]
mov rax, QWORD PTR -24[rbp]
add rax, rdx
mov rdi, rax
call sqlite3Strlen30
cdqe
add QWORD PTR -24[rbp], rax
jmp .L292
.L293:
mov rax, QWORD PTR -24[rbp]
lea rdx, 1[rax]
mov QWORD PTR -24[rbp], rdx
mov rdx, QWORD PTR -32[rbp]
add rax, rdx
mov BYTE PTR [rax], 37
nop
.L292:
add QWORD PTR -16[rbp], 1
.L290:
mov rdx, QWORD PTR -48[rbp]
mov rax, QWORD PTR -16[rbp]
add rax, rdx
movzx eax, BYTE PTR [rax]
test al, al
jne .L310
mov rdx, QWORD PTR -32[rbp]
mov rax, QWORD PTR -24[rbp]
add rax, rdx
mov BYTE PTR [rax], 0
lea rax, -224[rbp]
cmp QWORD PTR -32[rbp], rax
je .L311
lea rax, sqlite3MallocSize[rip]
jmp .L312
.L311:
mov rax, -1
.L312:
mov rsi, QWORD PTR -32[rbp]
mov rdi, QWORD PTR -280[rbp]
mov rcx, rax
mov edx, -1
call sqlite3_result_text
jmp .L270
.L315:
nop
jmp .L270
.L316:
nop
jmp .L270
.L317:
nop
.L270:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE34:
.size strftimeFunc, .-strftimeFunc
.type ctimeFunc, @function
ctimeFunc:
.LFB35:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 32
mov QWORD PTR -8[rbp], rdi
mov DWORD PTR -12[rbp], esi
mov QWORD PTR -24[rbp], rdx
mov rax, QWORD PTR -8[rbp]
mov edx, 0
mov esi, 0
mov rdi, rax
call timeFunc
nop
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE35:
.size ctimeFunc, .-ctimeFunc
.type cdateFunc, @function
cdateFunc:
.LFB36:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 32
mov QWORD PTR -8[rbp], rdi
mov DWORD PTR -12[rbp], esi
mov QWORD PTR -24[rbp], rdx
mov rax, QWORD PTR -8[rbp]
mov edx, 0
mov esi, 0
mov rdi, rax
call dateFunc
nop
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE36:
.size cdateFunc, .-cdateFunc
.type ctimestampFunc, @function
ctimestampFunc:
.LFB37:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 32
mov QWORD PTR -8[rbp], rdi
mov DWORD PTR -12[rbp], esi
mov QWORD PTR -24[rbp], rdx
mov rax, QWORD PTR -8[rbp]
mov edx, 0
mov esi, 0
mov rdi, rax
call datetimeFunc
nop
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE37:
.size ctimestampFunc, .-ctimestampFunc
.type sqlite3RegisterDateTimeFunctions, @function
sqlite3RegisterDateTimeFunctions:
.LFB38:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
mov esi, 8
lea rdi, aDateTimeFuncs.8897[rip]
call sqlite3InsertBuiltinFuncs
nop
pop rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE38:
.size sqlite3RegisterDateTimeFunctions, .-sqlite3RegisterDateTimeFunctions
.type sqlite3OsClose, @function
sqlite3OsClose:
.LFB39:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 16
mov QWORD PTR -8[rbp], rdi
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR [rax]
test rax, rax
je .L325
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR [rax]
mov rax, QWORD PTR 8[rax]
mov rdx, QWORD PTR -8[rbp]
mov rdi, rdx
call rax
mov rax, QWORD PTR -8[rbp]
mov QWORD PTR [rax], 0
.L325:
nop
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE39:
.size sqlite3OsClose, .-sqlite3OsClose
.type sqlite3OsRead, @function
sqlite3OsRead:
.LFB40:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 32
mov QWORD PTR -8[rbp], rdi
mov QWORD PTR -16[rbp], rsi
mov DWORD PTR -20[rbp], edx
mov QWORD PTR -32[rbp], rcx
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR [rax]
mov rax, QWORD PTR 16[rax]
mov rcx, QWORD PTR -32[rbp]
mov edx, DWORD PTR -20[rbp]
mov rsi, QWORD PTR -16[rbp]
mov rdi, QWORD PTR -8[rbp]
call rax
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE40:
.size sqlite3OsRead, .-sqlite3OsRead
.type sqlite3OsWrite, @function
sqlite3OsWrite:
.LFB41:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 32
mov QWORD PTR -8[rbp], rdi
mov QWORD PTR -16[rbp], rsi
mov DWORD PTR -20[rbp], edx
mov QWORD PTR -32[rbp], rcx
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR [rax]
mov rax, QWORD PTR 24[rax]
mov rcx, QWORD PTR -32[rbp]
mov edx, DWORD PTR -20[rbp]
mov rsi, QWORD PTR -16[rbp]
mov rdi, QWORD PTR -8[rbp]
call rax
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE41:
.size sqlite3OsWrite, .-sqlite3OsWrite
.type sqlite3OsTruncate, @function
sqlite3OsTruncate:
.LFB42:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 16
mov QWORD PTR -8[rbp], rdi
mov QWORD PTR -16[rbp], rsi
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR [rax]
mov rax, QWORD PTR 32[rax]
mov rcx, QWORD PTR -16[rbp]
mov rdx, QWORD PTR -8[rbp]
mov rsi, rcx
mov rdi, rdx
call rax
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE42:
.size sqlite3OsTruncate, .-sqlite3OsTruncate
.type sqlite3OsSync, @function
sqlite3OsSync:
.LFB43:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 16
mov QWORD PTR -8[rbp], rdi
mov DWORD PTR -12[rbp], esi
cmp DWORD PTR -12[rbp], 0
je .L333
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR [rax]
mov rax, QWORD PTR 40[rax]
mov ecx, DWORD PTR -12[rbp]
mov rdx, QWORD PTR -8[rbp]
mov esi, ecx
mov rdi, rdx
call rax
jmp .L335
.L333:
mov eax, 0
.L335:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE43:
.size sqlite3OsSync, .-sqlite3OsSync
.type sqlite3OsFileSize, @function
sqlite3OsFileSize:
.LFB44:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 16
mov QWORD PTR -8[rbp], rdi
mov QWORD PTR -16[rbp], rsi
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR [rax]
mov rax, QWORD PTR 48[rax]
mov rcx, QWORD PTR -16[rbp]
mov rdx, QWORD PTR -8[rbp]
mov rsi, rcx
mov rdi, rdx
call rax
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE44:
.size sqlite3OsFileSize, .-sqlite3OsFileSize
.type sqlite3OsLock, @function
sqlite3OsLock:
.LFB45:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 16
mov QWORD PTR -8[rbp], rdi
mov DWORD PTR -12[rbp], esi
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR [rax]
mov rax, QWORD PTR 56[rax]
mov ecx, DWORD PTR -12[rbp]
mov rdx, QWORD PTR -8[rbp]
mov esi, ecx
mov rdi, rdx
call rax
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE45:
.size sqlite3OsLock, .-sqlite3OsLock
.type sqlite3OsUnlock, @function
sqlite3OsUnlock:
.LFB46:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 16
mov QWORD PTR -8[rbp], rdi
mov DWORD PTR -12[rbp], esi
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR [rax]
mov rax, QWORD PTR 64[rax]
mov ecx, DWORD PTR -12[rbp]
mov rdx, QWORD PTR -8[rbp]
mov esi, ecx
mov rdi, rdx
call rax
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE46:
.size sqlite3OsUnlock, .-sqlite3OsUnlock
.type sqlite3OsCheckReservedLock, @function
sqlite3OsCheckReservedLock:
.LFB47:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 16
mov QWORD PTR -8[rbp], rdi
mov QWORD PTR -16[rbp], rsi
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR [rax]
mov rax, QWORD PTR 72[rax]
mov rcx, QWORD PTR -16[rbp]
mov rdx, QWORD PTR -8[rbp]
mov rsi, rcx
mov rdi, rdx
call rax
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE47:
.size sqlite3OsCheckReservedLock, .-sqlite3OsCheckReservedLock
.type sqlite3OsFileControl, @function
sqlite3OsFileControl:
.LFB48:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 32
mov QWORD PTR -8[rbp], rdi
mov DWORD PTR -12[rbp], esi
mov QWORD PTR -24[rbp], rdx
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR [rax]
mov rax, QWORD PTR 80[rax]
mov rdx, QWORD PTR -24[rbp]
mov esi, DWORD PTR -12[rbp]
mov rcx, QWORD PTR -8[rbp]
mov rdi, rcx
call rax
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE48:
.size sqlite3OsFileControl, .-sqlite3OsFileControl
.type sqlite3OsFileControlHint, @function
sqlite3OsFileControlHint:
.LFB49:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 32
mov QWORD PTR -8[rbp], rdi
mov DWORD PTR -12[rbp], esi
mov QWORD PTR -24[rbp], rdx
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR [rax]
mov rax, QWORD PTR 80[rax]
mov rdx, QWORD PTR -24[rbp]
mov esi, DWORD PTR -12[rbp]
mov rcx, QWORD PTR -8[rbp]
mov rdi, rcx
call rax
nop
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE49:
.size sqlite3OsFileControlHint, .-sqlite3OsFileControlHint
.type sqlite3OsSectorSize, @function
sqlite3OsSectorSize:
.LFB50:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 32
mov QWORD PTR -24[rbp], rdi
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR [rax]
mov rax, QWORD PTR 88[rax]
mov QWORD PTR -8[rbp], rax
cmp QWORD PTR -8[rbp], 0
je .L348
mov rdx, QWORD PTR -24[rbp]
mov rax, QWORD PTR -8[rbp]
mov rdi, rdx
call rax
jmp .L350
.L348:
mov eax, 4096
.L350:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE50:
.size sqlite3OsSectorSize, .-sqlite3OsSectorSize
.type sqlite3OsDeviceCharacteristics, @function
sqlite3OsDeviceCharacteristics:
.LFB51:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 16
mov QWORD PTR -8[rbp], rdi
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR [rax]
mov rax, QWORD PTR 96[rax]
mov rdx, QWORD PTR -8[rbp]
mov rdi, rdx
call rax
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE51:
.size sqlite3OsDeviceCharacteristics, .-sqlite3OsDeviceCharacteristics
.type sqlite3OsShmLock, @function
sqlite3OsShmLock:
.LFB52:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 32
mov QWORD PTR -8[rbp], rdi
mov DWORD PTR -12[rbp], esi
mov DWORD PTR -16[rbp], edx
mov DWORD PTR -20[rbp], ecx
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR [rax]
mov rax, QWORD PTR 112[rax]
mov ecx, DWORD PTR -20[rbp]
mov edx, DWORD PTR -16[rbp]
mov esi, DWORD PTR -12[rbp]
mov rdi, QWORD PTR -8[rbp]
call rax
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE52:
.size sqlite3OsShmLock, .-sqlite3OsShmLock
.type sqlite3OsShmBarrier, @function
sqlite3OsShmBarrier:
.LFB53:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 16
mov QWORD PTR -8[rbp], rdi
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR [rax]
mov rax, QWORD PTR 120[rax]
mov rdx, QWORD PTR -8[rbp]
mov rdi, rdx
call rax
nop
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE53:
.size sqlite3OsShmBarrier, .-sqlite3OsShmBarrier
.type sqlite3OsShmUnmap, @function
sqlite3OsShmUnmap:
.LFB54:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 16
mov QWORD PTR -8[rbp], rdi
mov DWORD PTR -12[rbp], esi
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR [rax]
mov rax, QWORD PTR 128[rax]
mov ecx, DWORD PTR -12[rbp]
mov rdx, QWORD PTR -8[rbp]
mov esi, ecx
mov rdi, rdx
call rax
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE54:
.size sqlite3OsShmUnmap, .-sqlite3OsShmUnmap
.type sqlite3OsShmMap, @function
sqlite3OsShmMap:
.LFB55:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 32
mov QWORD PTR -8[rbp], rdi
mov DWORD PTR -12[rbp], esi
mov DWORD PTR -16[rbp], edx
mov DWORD PTR -20[rbp], ecx
mov QWORD PTR -32[rbp], r8
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR [rax]
mov rax, QWORD PTR 104[rax]
mov r8, QWORD PTR -32[rbp]
mov ecx, DWORD PTR -20[rbp]
mov edx, DWORD PTR -16[rbp]
mov esi, DWORD PTR -12[rbp]
mov rdi, QWORD PTR -8[rbp]
call rax
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE55:
.size sqlite3OsShmMap, .-sqlite3OsShmMap
.type sqlite3OsFetch, @function
sqlite3OsFetch:
.LFB56:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 32
mov QWORD PTR -8[rbp], rdi
mov QWORD PTR -16[rbp], rsi
mov DWORD PTR -20[rbp], edx
mov QWORD PTR -32[rbp], rcx
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR [rax]
mov rax, QWORD PTR 136[rax]
mov rcx, QWORD PTR -32[rbp]
mov edx, DWORD PTR -20[rbp]
mov rsi, QWORD PTR -16[rbp]
mov rdi, QWORD PTR -8[rbp]
call rax
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE56:
.size sqlite3OsFetch, .-sqlite3OsFetch
.type sqlite3OsUnfetch, @function
sqlite3OsUnfetch:
.LFB57:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 32
mov QWORD PTR -8[rbp], rdi
mov QWORD PTR -16[rbp], rsi
mov QWORD PTR -24[rbp], rdx
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR [rax]
mov rax, QWORD PTR 144[rax]
mov rdx, QWORD PTR -24[rbp]
mov rsi, QWORD PTR -16[rbp]
mov rcx, QWORD PTR -8[rbp]
mov rdi, rcx
call rax
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE57:
.size sqlite3OsUnfetch, .-sqlite3OsUnfetch
.type sqlite3OsOpen, @function
sqlite3OsOpen:
.LFB58:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 64
mov QWORD PTR -24[rbp], rdi
mov QWORD PTR -32[rbp], rsi
mov QWORD PTR -40[rbp], rdx
mov DWORD PTR -44[rbp], ecx
mov QWORD PTR -56[rbp], r8
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 40[rax]
mov edx, DWORD PTR -44[rbp]
mov ecx, edx
and ecx, 556927
mov r8, QWORD PTR -56[rbp]
mov rdx, QWORD PTR -40[rbp]
mov rsi, QWORD PTR -32[rbp]
mov rdi, QWORD PTR -24[rbp]
call rax
mov DWORD PTR -4[rbp], eax
mov eax, DWORD PTR -4[rbp]
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE58:
.size sqlite3OsOpen, .-sqlite3OsOpen
.type sqlite3OsDelete, @function
sqlite3OsDelete:
.LFB59:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 32
mov QWORD PTR -8[rbp], rdi
mov QWORD PTR -16[rbp], rsi
mov DWORD PTR -20[rbp], edx
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR 48[rax]
mov edx, DWORD PTR -20[rbp]
mov rsi, QWORD PTR -16[rbp]
mov rcx, QWORD PTR -8[rbp]
mov rdi, rcx
call rax
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE59:
.size sqlite3OsDelete, .-sqlite3OsDelete
.type sqlite3OsAccess, @function
sqlite3OsAccess:
.LFB60:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 32
mov QWORD PTR -8[rbp], rdi
mov QWORD PTR -16[rbp], rsi
mov DWORD PTR -20[rbp], edx
mov QWORD PTR -32[rbp], rcx
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR 56[rax]
mov rcx, QWORD PTR -32[rbp]
mov edx, DWORD PTR -20[rbp]
mov rsi, QWORD PTR -16[rbp]
mov rdi, QWORD PTR -8[rbp]
call rax
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE60:
.size sqlite3OsAccess, .-sqlite3OsAccess
.type sqlite3OsFullPathname, @function
sqlite3OsFullPathname:
.LFB61:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 32
mov QWORD PTR -8[rbp], rdi
mov QWORD PTR -16[rbp], rsi
mov DWORD PTR -20[rbp], edx
mov QWORD PTR -32[rbp], rcx
mov rax, QWORD PTR -32[rbp]
mov BYTE PTR [rax], 0
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR 64[rax]
mov rcx, QWORD PTR -32[rbp]
mov edx, DWORD PTR -20[rbp]
mov rsi, QWORD PTR -16[rbp]
mov rdi, QWORD PTR -8[rbp]
call rax
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE61:
.size sqlite3OsFullPathname, .-sqlite3OsFullPathname
.type sqlite3OsDlOpen, @function
sqlite3OsDlOpen:
.LFB62:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 16
mov QWORD PTR -8[rbp], rdi
mov QWORD PTR -16[rbp], rsi
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR 72[rax]
mov rcx, QWORD PTR -16[rbp]
mov rdx, QWORD PTR -8[rbp]
mov rsi, rcx
mov rdi, rdx
call rax
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE62:
.size sqlite3OsDlOpen, .-sqlite3OsDlOpen
.type sqlite3OsDlError, @function
sqlite3OsDlError:
.LFB63:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 32
mov QWORD PTR -8[rbp], rdi
mov DWORD PTR -12[rbp], esi
mov QWORD PTR -24[rbp], rdx
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR 80[rax]
mov rdx, QWORD PTR -24[rbp]
mov esi, DWORD PTR -12[rbp]
mov rcx, QWORD PTR -8[rbp]
mov rdi, rcx
call rax
nop
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE63:
.size sqlite3OsDlError, .-sqlite3OsDlError
.type sqlite3OsDlSym, @function
sqlite3OsDlSym:
.LFB64:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 32
mov QWORD PTR -8[rbp], rdi
mov QWORD PTR -16[rbp], rsi
mov QWORD PTR -24[rbp], rdx
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR 88[rax]
mov rdx, QWORD PTR -24[rbp]
mov rsi, QWORD PTR -16[rbp]
mov rcx, QWORD PTR -8[rbp]
mov rdi, rcx
call rax
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE64:
.size sqlite3OsDlSym, .-sqlite3OsDlSym
.type sqlite3OsDlClose, @function
sqlite3OsDlClose:
.LFB65:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 16
mov QWORD PTR -8[rbp], rdi
mov QWORD PTR -16[rbp], rsi
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR 96[rax]
mov rcx, QWORD PTR -16[rbp]
mov rdx, QWORD PTR -8[rbp]
mov rsi, rcx
mov rdi, rdx
call rax
nop
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE65:
.size sqlite3OsDlClose, .-sqlite3OsDlClose
.type sqlite3OsRandomness, @function
sqlite3OsRandomness:
.LFB66:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 32
mov QWORD PTR -8[rbp], rdi
mov DWORD PTR -12[rbp], esi
mov QWORD PTR -24[rbp], rdx
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR 104[rax]
mov rdx, QWORD PTR -24[rbp]
mov esi, DWORD PTR -12[rbp]
mov rcx, QWORD PTR -8[rbp]
mov rdi, rcx
call rax
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE66:
.size sqlite3OsRandomness, .-sqlite3OsRandomness
.type sqlite3OsSleep, @function
sqlite3OsSleep:
.LFB67:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 16
mov QWORD PTR -8[rbp], rdi
mov DWORD PTR -12[rbp], esi
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR 112[rax]
mov ecx, DWORD PTR -12[rbp]
mov rdx, QWORD PTR -8[rbp]
mov esi, ecx
mov rdi, rdx
call rax
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE67:
.size sqlite3OsSleep, .-sqlite3OsSleep
.type sqlite3OsGetLastError, @function
sqlite3OsGetLastError:
.LFB68:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 16
mov QWORD PTR -8[rbp], rdi
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR 128[rax]
test rax, rax
je .L383
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR 128[rax]
mov rcx, QWORD PTR -8[rbp]
mov edx, 0
mov esi, 0
mov rdi, rcx
call rax
jmp .L385
.L383:
mov eax, 0
.L385:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE68:
.size sqlite3OsGetLastError, .-sqlite3OsGetLastError
.type sqlite3OsCurrentTimeInt64, @function
sqlite3OsCurrentTimeInt64:
.LFB69:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 32
mov QWORD PTR -24[rbp], rdi
mov QWORD PTR -32[rbp], rsi
mov rax, QWORD PTR -24[rbp]
mov eax, DWORD PTR [rax]
cmp eax, 1
jle .L387
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 136[rax]
test rax, rax
je .L387
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 136[rax]
mov rcx, QWORD PTR -32[rbp]
mov rdx, QWORD PTR -24[rbp]
mov rsi, rcx
mov rdi, rdx
call rax
mov DWORD PTR -4[rbp], eax
jmp .L388
.L387:
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 120[rax]
lea rcx, -16[rbp]
mov rdx, QWORD PTR -24[rbp]
mov rsi, rcx
mov rdi, rdx
call rax
mov DWORD PTR -4[rbp], eax
movsd xmm1, QWORD PTR -16[rbp]
movsd xmm0, QWORD PTR .LC12[rip]
mulsd xmm0, xmm1
cvttsd2si rdx, xmm0
mov rax, QWORD PTR -32[rbp]
mov QWORD PTR [rax], rdx
.L388:
mov eax, DWORD PTR -4[rbp]
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE69:
.size sqlite3OsCurrentTimeInt64, .-sqlite3OsCurrentTimeInt64
.type sqlite3OsOpenMalloc, @function
sqlite3OsOpenMalloc:
.LFB70:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 64
mov QWORD PTR -24[rbp], rdi
mov QWORD PTR -32[rbp], rsi
mov QWORD PTR -40[rbp], rdx
mov DWORD PTR -44[rbp], ecx
mov QWORD PTR -56[rbp], r8
mov rax, QWORD PTR -24[rbp]
mov eax, DWORD PTR 4[rax]
cdqe
mov rdi, rax
call sqlite3MallocZero
mov QWORD PTR -16[rbp], rax
cmp QWORD PTR -16[rbp], 0
je .L391
mov rdi, QWORD PTR -56[rbp]
mov ecx, DWORD PTR -44[rbp]
mov rdx, QWORD PTR -16[rbp]
mov rsi, QWORD PTR -32[rbp]
mov rax, QWORD PTR -24[rbp]
mov r8, rdi
mov rdi, rax
call sqlite3OsOpen
mov DWORD PTR -4[rbp], eax
cmp DWORD PTR -4[rbp], 0
je .L392
mov rax, QWORD PTR -16[rbp]
mov rdi, rax
call sqlite3_free
jmp .L394
.L392:
mov rax, QWORD PTR -40[rbp]
mov rdx, QWORD PTR -16[rbp]
mov QWORD PTR [rax], rdx
jmp .L394
.L391:
mov DWORD PTR -4[rbp], 7
.L394:
mov eax, DWORD PTR -4[rbp]
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE70:
.size sqlite3OsOpenMalloc, .-sqlite3OsOpenMalloc
.type sqlite3OsCloseFree, @function
sqlite3OsCloseFree:
.LFB71:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 16
mov QWORD PTR -8[rbp], rdi
mov rax, QWORD PTR -8[rbp]
mov rdi, rax
call sqlite3OsClose
mov rax, QWORD PTR -8[rbp]
mov rdi, rax
call sqlite3_free
nop
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE71:
.size sqlite3OsCloseFree, .-sqlite3OsCloseFree
.type sqlite3OsInit, @function
sqlite3OsInit:
.LFB72:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 16
mov edi, 10
call sqlite3_malloc
mov QWORD PTR -8[rbp], rax
cmp QWORD PTR -8[rbp], 0
jne .L398
mov eax, 7
jmp .L399
.L398:
mov rax, QWORD PTR -8[rbp]
mov rdi, rax
call sqlite3_free
call sqlite3_os_init
.L399:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE72:
.size sqlite3OsInit, .-sqlite3OsInit
.local vfsList
.comm vfsList,8,8
.globl sqlite3_vfs_find
.type sqlite3_vfs_find, @function
sqlite3_vfs_find:
.LFB73:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 48
mov QWORD PTR -40[rbp], rdi
mov QWORD PTR -8[rbp], 0
call sqlite3_initialize
mov DWORD PTR -12[rbp], eax
cmp DWORD PTR -12[rbp], 0
je .L401
mov eax, 0
jmp .L402
.L401:
mov edi, 2
call sqlite3MutexAlloc
mov QWORD PTR -24[rbp], rax
mov rax, QWORD PTR -24[rbp]
mov rdi, rax
call sqlite3_mutex_enter
mov rax, QWORD PTR vfsList[rip]
mov QWORD PTR -8[rbp], rax
jmp .L403
.L407:
cmp QWORD PTR -40[rbp], 0
je .L408
mov rax, QWORD PTR -8[rbp]
mov rdx, QWORD PTR 24[rax]
mov rax, QWORD PTR -40[rbp]
mov rsi, rdx
mov rdi, rax
call strcmp@PLT
test eax, eax
je .L409
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR 16[rax]
mov QWORD PTR -8[rbp], rax
.L403:
cmp QWORD PTR -8[rbp], 0
jne .L407
jmp .L405
.L408:
nop
jmp .L405
.L409:
nop
.L405:
mov rax, QWORD PTR -24[rbp]
mov rdi, rax
call sqlite3_mutex_leave
mov rax, QWORD PTR -8[rbp]
.L402:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE73:
.size sqlite3_vfs_find, .-sqlite3_vfs_find
.type vfsUnlink, @function
vfsUnlink:
.LFB74:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
mov QWORD PTR -24[rbp], rdi
cmp QWORD PTR -24[rbp], 0
je .L416
mov rax, QWORD PTR vfsList[rip]
cmp rax, QWORD PTR -24[rbp]
jne .L412
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 16[rax]
mov QWORD PTR vfsList[rip], rax
jmp .L416
.L412:
mov rax, QWORD PTR vfsList[rip]
test rax, rax
je .L416
mov rax, QWORD PTR vfsList[rip]
mov QWORD PTR -8[rbp], rax
jmp .L413
.L415:
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR 16[rax]
mov QWORD PTR -8[rbp], rax
.L413:
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR 16[rax]
test rax, rax
je .L414
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR 16[rax]
cmp rax, QWORD PTR -24[rbp]
jne .L415
.L414:
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR 16[rax]
cmp rax, QWORD PTR -24[rbp]
jne .L416
mov rax, QWORD PTR -24[rbp]
mov rdx, QWORD PTR 16[rax]
mov rax, QWORD PTR -8[rbp]
mov QWORD PTR 16[rax], rdx
.L416:
nop
pop rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE74:
.size vfsUnlink, .-vfsUnlink
.globl sqlite3_vfs_register
.type sqlite3_vfs_register, @function
sqlite3_vfs_register:
.LFB75:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 32
mov QWORD PTR -24[rbp], rdi
mov DWORD PTR -28[rbp], esi
call sqlite3_initialize
mov DWORD PTR -4[rbp], eax
cmp DWORD PTR -4[rbp], 0
je .L418
mov eax, DWORD PTR -4[rbp]
jmp .L419
.L418:
mov edi, 2
call sqlite3MutexAlloc
mov QWORD PTR -16[rbp], rax
mov rax, QWORD PTR -16[rbp]
mov rdi, rax
call sqlite3_mutex_enter
mov rax, QWORD PTR -24[rbp]
mov rdi, rax
call vfsUnlink
cmp DWORD PTR -28[rbp], 0
jne .L420
mov rax, QWORD PTR vfsList[rip]
test rax, rax
jne .L421
.L420:
mov rdx, QWORD PTR vfsList[rip]
mov rax, QWORD PTR -24[rbp]
mov QWORD PTR 16[rax], rdx
mov rax, QWORD PTR -24[rbp]
mov QWORD PTR vfsList[rip], rax
jmp .L422
.L421:
mov rax, QWORD PTR vfsList[rip]
mov rdx, QWORD PTR 16[rax]
mov rax, QWORD PTR -24[rbp]
mov QWORD PTR 16[rax], rdx
mov rax, QWORD PTR vfsList[rip]
mov rdx, QWORD PTR -24[rbp]
mov QWORD PTR 16[rax], rdx
.L422:
mov rax, QWORD PTR -16[rbp]
mov rdi, rax
call sqlite3_mutex_leave
mov eax, 0
.L419:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE75:
.size sqlite3_vfs_register, .-sqlite3_vfs_register
.globl sqlite3_vfs_unregister
.type sqlite3_vfs_unregister, @function
sqlite3_vfs_unregister:
.LFB76:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 32
mov QWORD PTR -24[rbp], rdi
mov edi, 2
call sqlite3MutexAlloc
mov QWORD PTR -8[rbp], rax
mov rax, QWORD PTR -8[rbp]
mov rdi, rax
call sqlite3_mutex_enter
mov rax, QWORD PTR -24[rbp]
mov rdi, rax
call vfsUnlink
mov rax, QWORD PTR -8[rbp]
mov rdi, rax
call sqlite3_mutex_leave
mov eax, 0
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE76:
.size sqlite3_vfs_unregister, .-sqlite3_vfs_unregister
.local sqlite3Hooks
.comm sqlite3Hooks,16,16
.type sqlite3BenignMallocHooks, @function
sqlite3BenignMallocHooks:
.LFB77:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
mov QWORD PTR -8[rbp], rdi
mov QWORD PTR -16[rbp], rsi
mov rax, QWORD PTR -8[rbp]
mov QWORD PTR sqlite3Hooks[rip], rax
mov rax, QWORD PTR -16[rbp]
mov QWORD PTR sqlite3Hooks[rip+8], rax
nop
pop rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE77:
.size sqlite3BenignMallocHooks, .-sqlite3BenignMallocHooks
.type sqlite3BeginBenignMalloc, @function
sqlite3BeginBenignMalloc:
.LFB78:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
mov rax, QWORD PTR sqlite3Hooks[rip]
test rax, rax
je .L428
mov rax, QWORD PTR sqlite3Hooks[rip]
call rax
.L428:
nop
pop rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE78:
.size sqlite3BeginBenignMalloc, .-sqlite3BeginBenignMalloc
.type sqlite3EndBenignMalloc, @function
sqlite3EndBenignMalloc:
.LFB79:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
mov rax, QWORD PTR sqlite3Hooks[rip+8]
test rax, rax
je .L431
mov rax, QWORD PTR sqlite3Hooks[rip+8]
call rax
.L431:
nop
pop rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE79:
.size sqlite3EndBenignMalloc, .-sqlite3EndBenignMalloc
.section .rodata
.align 8
.LC50:
.string "failed to allocate %u bytes of memory"
.text
.type sqlite3MemMalloc, @function
sqlite3MemMalloc:
.LFB80:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 32
mov DWORD PTR -20[rbp], edi
mov eax, DWORD PTR -20[rbp]
add eax, 8
cdqe
mov rdi, rax
call malloc@PLT
mov QWORD PTR -8[rbp], rax
cmp QWORD PTR -8[rbp], 0
je .L433
mov eax, DWORD PTR -20[rbp]
movsx rdx, eax
mov rax, QWORD PTR -8[rbp]
mov QWORD PTR [rax], rdx
add QWORD PTR -8[rbp], 8
jmp .L434
.L433:
mov eax, DWORD PTR -20[rbp]
mov edx, eax
lea rsi, .LC50[rip]
mov edi, 7
mov eax, 0
call sqlite3_log
.L434:
mov rax, QWORD PTR -8[rbp]
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE80:
.size sqlite3MemMalloc, .-sqlite3MemMalloc
.type sqlite3MemFree, @function
sqlite3MemFree:
.LFB81:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 32
mov QWORD PTR -24[rbp], rdi
mov rax, QWORD PTR -24[rbp]
mov QWORD PTR -8[rbp], rax
sub QWORD PTR -8[rbp], 8
mov rax, QWORD PTR -8[rbp]
mov rdi, rax
call free@PLT
nop
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE81:
.size sqlite3MemFree, .-sqlite3MemFree
.type sqlite3MemSize, @function
sqlite3MemSize:
.LFB82:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
mov QWORD PTR -24[rbp], rdi
mov rax, QWORD PTR -24[rbp]
mov QWORD PTR -8[rbp], rax
sub QWORD PTR -8[rbp], 8
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR [rax]
pop rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE82:
.size sqlite3MemSize, .-sqlite3MemSize
.section .rodata
.align 8
.LC51:
.string "failed memory resize %u to %u bytes"
.text
.type sqlite3MemRealloc, @function
sqlite3MemRealloc:
.LFB83:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 32
mov QWORD PTR -24[rbp], rdi
mov DWORD PTR -28[rbp], esi
mov rax, QWORD PTR -24[rbp]
mov QWORD PTR -8[rbp], rax
sub QWORD PTR -8[rbp], 8
mov eax, DWORD PTR -28[rbp]
add eax, 8
movsx rdx, eax
mov rax, QWORD PTR -8[rbp]
mov rsi, rdx
mov rdi, rax
call realloc@PLT
mov QWORD PTR -8[rbp], rax
cmp QWORD PTR -8[rbp], 0
je .L440
mov eax, DWORD PTR -28[rbp]
movsx rdx, eax
mov rax, QWORD PTR -8[rbp]
mov QWORD PTR [rax], rdx
add QWORD PTR -8[rbp], 8
jmp .L441
.L440:
mov rax, QWORD PTR -24[rbp]
mov rdi, rax
call sqlite3MemSize
mov edx, eax
mov eax, DWORD PTR -28[rbp]
mov ecx, eax
lea rsi, .LC51[rip]
mov edi, 7
mov eax, 0
call sqlite3_log
.L441:
mov rax, QWORD PTR -8[rbp]
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE83:
.size sqlite3MemRealloc, .-sqlite3MemRealloc
.type sqlite3MemRoundup, @function
sqlite3MemRoundup:
.LFB84:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
mov DWORD PTR -4[rbp], edi
mov eax, DWORD PTR -4[rbp]
add eax, 7
and eax, -8
pop rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE84:
.size sqlite3MemRoundup, .-sqlite3MemRoundup
.type sqlite3MemInit, @function
sqlite3MemInit:
.LFB85:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
mov QWORD PTR -8[rbp], rdi
mov eax, 0
pop rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE85:
.size sqlite3MemInit, .-sqlite3MemInit
.type sqlite3MemShutdown, @function
sqlite3MemShutdown:
.LFB86:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
mov QWORD PTR -8[rbp], rdi
nop
pop rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE86:
.size sqlite3MemShutdown, .-sqlite3MemShutdown
.type sqlite3MemSetDefault, @function
sqlite3MemSetDefault:
.LFB87:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
lea rsi, defaultMethods.9139[rip]
mov edi, 4
mov eax, 0
call sqlite3_config
nop
pop rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE87:
.size sqlite3MemSetDefault, .-sqlite3MemSetDefault
.type sqlite3MutexInit, @function
sqlite3MutexInit:
.LFB88:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 32
mov DWORD PTR -12[rbp], 0
mov rax, QWORD PTR sqlite3Config[rip+128]
test rax, rax
jne .L451
lea rax, sqlite3Config[rip+112]
mov QWORD PTR -24[rbp], rax
mov eax, DWORD PTR sqlite3Config[rip+4]
test eax, eax
je .L452
call sqlite3DefaultMutex
mov QWORD PTR -8[rbp], rax
jmp .L453
.L452:
call sqlite3NoopMutex
mov QWORD PTR -8[rbp], rax
.L453:
mov rax, QWORD PTR -8[rbp]
mov rdx, QWORD PTR [rax]
mov rax, QWORD PTR -24[rbp]
mov QWORD PTR [rax], rdx
mov rax, QWORD PTR -8[rbp]
mov rdx, QWORD PTR 8[rax]
mov rax, QWORD PTR -24[rbp]
mov QWORD PTR 8[rax], rdx
mov rax, QWORD PTR -8[rbp]
mov rdx, QWORD PTR 24[rax]
mov rax, QWORD PTR -24[rbp]
mov QWORD PTR 24[rax], rdx
mov rax, QWORD PTR -8[rbp]
mov rdx, QWORD PTR 32[rax]
mov rax, QWORD PTR -24[rbp]
mov QWORD PTR 32[rax], rdx
mov rax, QWORD PTR -8[rbp]
mov rdx, QWORD PTR 40[rax]
mov rax, QWORD PTR -24[rbp]
mov QWORD PTR 40[rax], rdx
mov rax, QWORD PTR -8[rbp]
mov rdx, QWORD PTR 48[rax]
mov rax, QWORD PTR -24[rbp]
mov QWORD PTR 48[rax], rdx
mov rax, QWORD PTR -8[rbp]
mov rdx, QWORD PTR 56[rax]
mov rax, QWORD PTR -24[rbp]
mov QWORD PTR 56[rax], rdx
mov rax, QWORD PTR -8[rbp]
mov rdx, QWORD PTR 64[rax]
mov rax, QWORD PTR -24[rbp]
mov QWORD PTR 64[rax], rdx
call sqlite3MemoryBarrier
mov rax, QWORD PTR -8[rbp]
mov rdx, QWORD PTR 16[rax]
mov rax, QWORD PTR -24[rbp]
mov QWORD PTR 16[rax], rdx
.L451:
mov rax, QWORD PTR sqlite3Config[rip+112]
call rax
mov DWORD PTR -12[rbp], eax
mov eax, DWORD PTR -12[rbp]
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE88:
.size sqlite3MutexInit, .-sqlite3MutexInit
.type sqlite3MutexEnd, @function
sqlite3MutexEnd:
.LFB89:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 16
mov DWORD PTR -4[rbp], 0
mov rax, QWORD PTR sqlite3Config[rip+120]
test rax, rax
je .L456
mov rax, QWORD PTR sqlite3Config[rip+120]
call rax
mov DWORD PTR -4[rbp], eax
.L456:
mov eax, DWORD PTR -4[rbp]
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE89:
.size sqlite3MutexEnd, .-sqlite3MutexEnd
.globl sqlite3_mutex_alloc
.type sqlite3_mutex_alloc, @function
sqlite3_mutex_alloc:
.LFB90:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 16
mov DWORD PTR -4[rbp], edi
cmp DWORD PTR -4[rbp], 1
jg .L459
call sqlite3_initialize
test eax, eax
je .L459
mov eax, 0
jmp .L460
.L459:
cmp DWORD PTR -4[rbp], 1
jle .L461
call sqlite3MutexInit
test eax, eax
je .L461
mov eax, 0
jmp .L460
.L461:
mov rax, QWORD PTR sqlite3Config[rip+128]
mov edx, DWORD PTR -4[rbp]
mov edi, edx
call rax
.L460:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE90:
.size sqlite3_mutex_alloc, .-sqlite3_mutex_alloc
.type sqlite3MutexAlloc, @function
sqlite3MutexAlloc:
.LFB91:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 16
mov DWORD PTR -4[rbp], edi
mov eax, DWORD PTR sqlite3Config[rip+4]
test eax, eax
jne .L463
mov eax, 0
jmp .L464
.L463:
mov rax, QWORD PTR sqlite3Config[rip+128]
mov edx, DWORD PTR -4[rbp]
mov edi, edx
call rax
.L464:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE91:
.size sqlite3MutexAlloc, .-sqlite3MutexAlloc
.globl sqlite3_mutex_free
.type sqlite3_mutex_free, @function
sqlite3_mutex_free:
.LFB92:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 16
mov QWORD PTR -8[rbp], rdi
cmp QWORD PTR -8[rbp], 0
je .L467
mov rax, QWORD PTR sqlite3Config[rip+136]
mov rdx, QWORD PTR -8[rbp]
mov rdi, rdx
call rax
.L467:
nop
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE92:
.size sqlite3_mutex_free, .-sqlite3_mutex_free
.globl sqlite3_mutex_enter
.type sqlite3_mutex_enter, @function
sqlite3_mutex_enter:
.LFB93:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 16
mov QWORD PTR -8[rbp], rdi
cmp QWORD PTR -8[rbp], 0
je .L470
mov rax, QWORD PTR sqlite3Config[rip+144]
mov rdx, QWORD PTR -8[rbp]
mov rdi, rdx
call rax
.L470:
nop
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE93:
.size sqlite3_mutex_enter, .-sqlite3_mutex_enter
.globl sqlite3_mutex_try
.type sqlite3_mutex_try, @function
sqlite3_mutex_try:
.LFB94:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 32
mov QWORD PTR -24[rbp], rdi
mov DWORD PTR -4[rbp], 0
cmp QWORD PTR -24[rbp], 0
je .L472
mov rax, QWORD PTR sqlite3Config[rip+152]
mov rdx, QWORD PTR -24[rbp]
mov rdi, rdx
call rax
jmp .L473
.L472:
mov eax, DWORD PTR -4[rbp]
.L473:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE94:
.size sqlite3_mutex_try, .-sqlite3_mutex_try
.globl sqlite3_mutex_leave
.type sqlite3_mutex_leave, @function
sqlite3_mutex_leave:
.LFB95:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 16
mov QWORD PTR -8[rbp], rdi
cmp QWORD PTR -8[rbp], 0
je .L476
mov rax, QWORD PTR sqlite3Config[rip+160]
mov rdx, QWORD PTR -8[rbp]
mov rdi, rdx
call rax
.L476:
nop
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE95:
.size sqlite3_mutex_leave, .-sqlite3_mutex_leave
.type noopMutexInit, @function
noopMutexInit:
.LFB96:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
mov eax, 0
pop rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE96:
.size noopMutexInit, .-noopMutexInit
.type noopMutexEnd, @function
noopMutexEnd:
.LFB97:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
mov eax, 0
pop rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE97:
.size noopMutexEnd, .-noopMutexEnd
.type noopMutexAlloc, @function
noopMutexAlloc:
.LFB98:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
mov DWORD PTR -4[rbp], edi
mov eax, 8
pop rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE98:
.size noopMutexAlloc, .-noopMutexAlloc
.type noopMutexFree, @function
noopMutexFree:
.LFB99:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
mov QWORD PTR -8[rbp], rdi
nop
pop rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE99:
.size noopMutexFree, .-noopMutexFree
.type noopMutexEnter, @function
noopMutexEnter:
.LFB100:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
mov QWORD PTR -8[rbp], rdi
nop
pop rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE100:
.size noopMutexEnter, .-noopMutexEnter
.type noopMutexTry, @function
noopMutexTry:
.LFB101:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
mov QWORD PTR -8[rbp], rdi
mov eax, 0
pop rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE101:
.size noopMutexTry, .-noopMutexTry
.type noopMutexLeave, @function
noopMutexLeave:
.LFB102:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
mov QWORD PTR -8[rbp], rdi
nop
pop rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE102:
.size noopMutexLeave, .-noopMutexLeave
.type sqlite3NoopMutex, @function
sqlite3NoopMutex:
.LFB103:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
lea rax, sMutex.9193[rip]
pop rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE103:
.size sqlite3NoopMutex, .-sqlite3NoopMutex
.type sqlite3MemoryBarrier, @function
sqlite3MemoryBarrier:
.LFB104:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
mfence
nop
pop rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE104:
.size sqlite3MemoryBarrier, .-sqlite3MemoryBarrier
.type pthreadMutexInit, @function
pthreadMutexInit:
.LFB105:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
mov eax, 0
pop rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE105:
.size pthreadMutexInit, .-pthreadMutexInit
.type pthreadMutexEnd, @function
pthreadMutexEnd:
.LFB106:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
mov eax, 0
pop rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE106:
.size pthreadMutexEnd, .-pthreadMutexEnd
.type pthreadMutexAlloc, @function
pthreadMutexAlloc:
.LFB107:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 32
mov DWORD PTR -20[rbp], edi
mov eax, DWORD PTR -20[rbp]
test eax, eax
je .L500
cmp eax, 1
jne .L506
mov edi, 40
call sqlite3MallocZero
mov QWORD PTR -8[rbp], rax
cmp QWORD PTR -8[rbp], 0
je .L507
lea rax, -12[rbp]
mov rdi, rax
call pthread_mutexattr_init@PLT
lea rax, -12[rbp]
mov esi, 1
mov rdi, rax
call pthread_mutexattr_settype@PLT
mov rax, QWORD PTR -8[rbp]
lea rdx, -12[rbp]
mov rsi, rdx
mov rdi, rax
call pthread_mutex_init@PLT
lea rax, -12[rbp]
mov rdi, rax
call pthread_mutexattr_destroy@PLT
jmp .L507
.L500:
mov edi, 40
call sqlite3MallocZero
mov QWORD PTR -8[rbp], rax
cmp QWORD PTR -8[rbp], 0
je .L508
mov rax, QWORD PTR -8[rbp]
mov esi, 0
mov rdi, rax
call pthread_mutex_init@PLT
jmp .L508
.L506:
mov eax, DWORD PTR -20[rbp]
sub eax, 2
movsx rdx, eax
mov rax, rdx
sal rax, 2
add rax, rdx
sal rax, 3
lea rdx, staticMutexes.9670[rip]
add rax, rdx
mov QWORD PTR -8[rbp], rax
jmp .L503
.L507:
nop
jmp .L503
.L508:
nop
.L503:
mov rax, QWORD PTR -8[rbp]
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE107:
.size pthreadMutexAlloc, .-pthreadMutexAlloc
.type pthreadMutexFree, @function
pthreadMutexFree:
.LFB108:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 16
mov QWORD PTR -8[rbp], rdi
mov rax, QWORD PTR -8[rbp]
mov rdi, rax
call pthread_mutex_destroy@PLT
mov rax, QWORD PTR -8[rbp]
mov rdi, rax
call sqlite3_free
nop
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE108:
.size pthreadMutexFree, .-pthreadMutexFree
.type pthreadMutexEnter, @function
pthreadMutexEnter:
.LFB109:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 16
mov QWORD PTR -8[rbp], rdi
mov rax, QWORD PTR -8[rbp]
mov rdi, rax
call pthread_mutex_lock@PLT
nop
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE109:
.size pthreadMutexEnter, .-pthreadMutexEnter
.type pthreadMutexTry, @function
pthreadMutexTry:
.LFB110:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 32
mov QWORD PTR -24[rbp], rdi
mov rax, QWORD PTR -24[rbp]
mov rdi, rax
call pthread_mutex_trylock@PLT
test eax, eax
jne .L512
mov DWORD PTR -4[rbp], 0
jmp .L513
.L512:
mov DWORD PTR -4[rbp], 5
.L513:
mov eax, DWORD PTR -4[rbp]
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE110:
.size pthreadMutexTry, .-pthreadMutexTry
.type pthreadMutexLeave, @function
pthreadMutexLeave:
.LFB111:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 16
mov QWORD PTR -8[rbp], rdi
mov rax, QWORD PTR -8[rbp]
mov rdi, rax
call pthread_mutex_unlock@PLT
nop
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE111:
.size pthreadMutexLeave, .-pthreadMutexLeave
.type sqlite3DefaultMutex, @function
sqlite3DefaultMutex:
.LFB112:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
lea rax, sMutex.9693[rip]
pop rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE112:
.size sqlite3DefaultMutex, .-sqlite3DefaultMutex
.globl sqlite3_release_memory
.type sqlite3_release_memory, @function
sqlite3_release_memory:
.LFB113:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
mov DWORD PTR -4[rbp], edi
mov eax, 0
pop rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE113:
.size sqlite3_release_memory, .-sqlite3_release_memory
.local mem0
.comm mem0,24,16
.type sqlite3MallocMutex, @function
sqlite3MallocMutex:
.LFB114:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
mov rax, QWORD PTR mem0[rip]
pop rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE114:
.size sqlite3MallocMutex, .-sqlite3MallocMutex
.globl sqlite3_memory_alarm
.type sqlite3_memory_alarm, @function
sqlite3_memory_alarm:
.LFB115:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
mov QWORD PTR -8[rbp], rdi
mov QWORD PTR -16[rbp], rsi
mov QWORD PTR -24[rbp], rdx
mov eax, 0
pop rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE115:
.size sqlite3_memory_alarm, .-sqlite3_memory_alarm
.globl sqlite3_soft_heap_limit64
.type sqlite3_soft_heap_limit64, @function
sqlite3_soft_heap_limit64:
.LFB116:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 48
mov QWORD PTR -40[rbp], rdi
call sqlite3_initialize
mov DWORD PTR -4[rbp], eax
cmp DWORD PTR -4[rbp], 0
je .L525
mov rax, -1
jmp .L526
.L525:
mov rax, QWORD PTR mem0[rip]
mov rdi, rax
call sqlite3_mutex_enter
mov rax, QWORD PTR mem0[rip+8]
mov QWORD PTR -16[rbp], rax
cmp QWORD PTR -40[rbp], 0
jns .L527
mov rax, QWORD PTR mem0[rip]
mov rdi, rax
call sqlite3_mutex_leave
mov rax, QWORD PTR -16[rbp]
jmp .L526
.L527:
mov rax, QWORD PTR -40[rbp]
mov QWORD PTR mem0[rip+8], rax
mov edi, 0
call sqlite3StatusValue
mov QWORD PTR -24[rbp], rax
cmp QWORD PTR -40[rbp], 0
jle .L528
mov rax, QWORD PTR -40[rbp]
cmp rax, QWORD PTR -24[rbp]
jg .L528
mov eax, 1
jmp .L529
.L528:
mov eax, 0
.L529:
mov DWORD PTR mem0[rip+16], eax
mov rax, QWORD PTR mem0[rip]
mov rdi, rax
call sqlite3_mutex_leave
call sqlite3_memory_used
sub rax, QWORD PTR -40[rbp]
mov QWORD PTR -32[rbp], rax
cmp QWORD PTR -32[rbp], 0
jle .L530
mov rax, QWORD PTR -32[rbp]
and eax, 2147483647
mov edi, eax
call sqlite3_release_memory
.L530:
mov rax, QWORD PTR -16[rbp]
.L526:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE116:
.size sqlite3_soft_heap_limit64, .-sqlite3_soft_heap_limit64
.globl sqlite3_soft_heap_limit
.type sqlite3_soft_heap_limit, @function
sqlite3_soft_heap_limit:
.LFB117:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 16
mov DWORD PTR -4[rbp], edi
cmp DWORD PTR -4[rbp], 0
jns .L532
mov DWORD PTR -4[rbp], 0
.L532:
mov eax, DWORD PTR -4[rbp]
cdqe
mov rdi, rax
call sqlite3_soft_heap_limit64
nop
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE117:
.size sqlite3_soft_heap_limit, .-sqlite3_soft_heap_limit
.type sqlite3MallocInit, @function
sqlite3MallocInit:
.LFB118:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 16
mov rax, QWORD PTR sqlite3Config[rip+48]
test rax, rax
jne .L534
call sqlite3MemSetDefault
.L534:
mov edx, 24
mov esi, 0
lea rdi, mem0[rip]
call memset@PLT
mov edi, 3
call sqlite3MutexAlloc
mov QWORD PTR mem0[rip], rax
mov rax, QWORD PTR sqlite3Config[rip+328]
test rax, rax
je .L535
mov eax, DWORD PTR sqlite3Config[rip+336]
cmp eax, 511
jle .L535
mov eax, DWORD PTR sqlite3Config[rip+340]
test eax, eax
jg .L536
.L535:
mov QWORD PTR sqlite3Config[rip+328], 0
mov DWORD PTR sqlite3Config[rip+336], 0
.L536:
mov rax, QWORD PTR sqlite3Config[rip+88]
mov rdx, QWORD PTR sqlite3Config[rip+104]
mov rdi, rdx
call rax
mov DWORD PTR -4[rbp], eax
cmp DWORD PTR -4[rbp], 0
je .L537
mov edx, 24
mov esi, 0
lea rdi, mem0[rip]
call memset@PLT
.L537:
mov eax, DWORD PTR -4[rbp]
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE118:
.size sqlite3MallocInit, .-sqlite3MallocInit
.type sqlite3HeapNearlyFull, @function
sqlite3HeapNearlyFull:
.LFB119:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
mov eax, DWORD PTR mem0[rip+16]
pop rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE119:
.size sqlite3HeapNearlyFull, .-sqlite3HeapNearlyFull
.type sqlite3MallocEnd, @function
sqlite3MallocEnd:
.LFB120:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
mov rax, QWORD PTR sqlite3Config[rip+96]
test rax, rax
je .L542
mov rax, QWORD PTR sqlite3Config[rip+96]
mov rdx, QWORD PTR sqlite3Config[rip+104]
mov rdi, rdx
call rax
.L542:
mov edx, 24
mov esi, 0
lea rdi, mem0[rip]
call memset@PLT
nop
pop rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE120:
.size sqlite3MallocEnd, .-sqlite3MallocEnd
.globl sqlite3_memory_used
.type sqlite3_memory_used, @function
sqlite3_memory_used:
.LFB121:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 16
lea rdx, -16[rbp]
lea rax, -8[rbp]
mov ecx, 0
mov rsi, rax
mov edi, 0
call sqlite3_status64
mov rax, QWORD PTR -8[rbp]
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE121:
.size sqlite3_memory_used, .-sqlite3_memory_used
.globl sqlite3_memory_highwater
.type sqlite3_memory_highwater, @function
sqlite3_memory_highwater:
.LFB122:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 32
mov DWORD PTR -20[rbp], edi
mov ecx, DWORD PTR -20[rbp]
lea rdx, -16[rbp]
lea rax, -8[rbp]
mov rsi, rax
mov edi, 0
call sqlite3_status64
mov rax, QWORD PTR -16[rbp]
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE122:
.size sqlite3_memory_highwater, .-sqlite3_memory_highwater
.type sqlite3MallocAlarm, @function
sqlite3MallocAlarm:
.LFB123:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 16
mov DWORD PTR -4[rbp], edi
mov rax, QWORD PTR mem0[rip+8]
test rax, rax
jle .L550
mov rax, QWORD PTR mem0[rip]
mov rdi, rax
call sqlite3_mutex_leave
mov eax, DWORD PTR -4[rbp]
mov edi, eax
call sqlite3_release_memory
mov rax, QWORD PTR mem0[rip]
mov rdi, rax
call sqlite3_mutex_enter
jmp .L547
.L550:
nop
.L547:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE123:
.size sqlite3MallocAlarm, .-sqlite3MallocAlarm
.type mallocWithAlarm, @function
mallocWithAlarm:
.LFB124:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 48
mov DWORD PTR -36[rbp], edi
mov QWORD PTR -48[rbp], rsi
mov rax, QWORD PTR sqlite3Config[rip+80]
mov edx, DWORD PTR -36[rbp]
mov edi, edx
call rax
mov DWORD PTR -4[rbp], eax
mov eax, DWORD PTR -36[rbp]
mov esi, eax
mov edi, 5
call sqlite3StatusHighwater
mov rax, QWORD PTR mem0[rip+8]
test rax, rax
jle .L552
mov edi, 0
call sqlite3StatusValue
mov QWORD PTR -16[rbp], rax
mov rdx, QWORD PTR mem0[rip+8]
mov eax, DWORD PTR -4[rbp]
cdqe
sub rdx, rax
mov rax, rdx
cmp rax, QWORD PTR -16[rbp]
jg .L553
mov DWORD PTR mem0[rip+16], 1
mov eax, DWORD PTR -4[rbp]
mov edi, eax
call sqlite3MallocAlarm
jmp .L552
.L553:
mov DWORD PTR mem0[rip+16], 0
.L552:
mov rax, QWORD PTR sqlite3Config[rip+48]
mov edx, DWORD PTR -4[rbp]
mov edi, edx
call rax
mov QWORD PTR -24[rbp], rax
cmp QWORD PTR -24[rbp], 0
je .L554
mov rax, QWORD PTR -24[rbp]
mov rdi, rax
call sqlite3MallocSize
mov DWORD PTR -4[rbp], eax
mov eax, DWORD PTR -4[rbp]
mov esi, eax
mov edi, 0
call sqlite3StatusUp
mov esi, 1
mov edi, 9
call sqlite3StatusUp
.L554:
mov rax, QWORD PTR -48[rbp]
mov rdx, QWORD PTR -24[rbp]
mov QWORD PTR [rax], rdx
nop
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE124:
.size mallocWithAlarm, .-mallocWithAlarm
.type sqlite3Malloc, @function
sqlite3Malloc:
.LFB125:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 32
mov QWORD PTR -24[rbp], rdi
cmp QWORD PTR -24[rbp], 0
je .L556
cmp QWORD PTR -24[rbp], 2147483391
jbe .L557
.L556:
mov QWORD PTR -8[rbp], 0
jmp .L558
.L557:
mov eax, DWORD PTR sqlite3Config[rip]
test eax, eax
je .L559
mov rax, QWORD PTR mem0[rip]
mov rdi, rax
call sqlite3_mutex_enter
mov rax, QWORD PTR -24[rbp]
mov edx, eax
lea rax, -8[rbp]
mov rsi, rax
mov edi, edx
call mallocWithAlarm
mov rax, QWORD PTR mem0[rip]
mov rdi, rax
call sqlite3_mutex_leave
jmp .L558
.L559:
mov rax, QWORD PTR sqlite3Config[rip+48]
mov rdx, QWORD PTR -24[rbp]
mov edi, edx
call rax
mov QWORD PTR -8[rbp], rax
.L558:
mov rax, QWORD PTR -8[rbp]
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE125:
.size sqlite3Malloc, .-sqlite3Malloc
.globl sqlite3_malloc
.type sqlite3_malloc, @function
sqlite3_malloc:
.LFB126:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 16
mov DWORD PTR -4[rbp], edi
call sqlite3_initialize
test eax, eax
je .L562
mov eax, 0
jmp .L563
.L562:
cmp DWORD PTR -4[rbp], 0
jle .L564
mov eax, DWORD PTR -4[rbp]
cdqe
mov rdi, rax
call sqlite3Malloc
jmp .L563
.L564:
mov eax, 0
.L563:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE126:
.size sqlite3_malloc, .-sqlite3_malloc
.globl sqlite3_malloc64
.type sqlite3_malloc64, @function
sqlite3_malloc64:
.LFB127:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 16
mov QWORD PTR -8[rbp], rdi
call sqlite3_initialize
test eax, eax
je .L567
mov eax, 0
jmp .L568
.L567:
mov rax, QWORD PTR -8[rbp]
mov rdi, rax
call sqlite3Malloc
.L568:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE127:
.size sqlite3_malloc64, .-sqlite3_malloc64
.type isLookaside, @function
isLookaside:
.LFB128:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
mov QWORD PTR -8[rbp], rdi
mov QWORD PTR -16[rbp], rsi
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR 392[rax]
mov rdx, rax
mov rax, QWORD PTR -16[rbp]
cmp rdx, rax
ja .L570
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR 400[rax]
mov rdx, rax
mov rax, QWORD PTR -16[rbp]
cmp rdx, rax
jbe .L570
mov eax, 1
jmp .L572
.L570:
mov eax, 0
.L572:
pop rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE128:
.size isLookaside, .-isLookaside
.type sqlite3MallocSize, @function
sqlite3MallocSize:
.LFB129:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 16
mov QWORD PTR -8[rbp], rdi
mov rax, QWORD PTR sqlite3Config[rip+72]
mov rdx, QWORD PTR -8[rbp]
mov rdi, rdx
call rax
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE129:
.size sqlite3MallocSize, .-sqlite3MallocSize
.type sqlite3DbMallocSize, @function
sqlite3DbMallocSize:
.LFB130:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 16
mov QWORD PTR -8[rbp], rdi
mov QWORD PTR -16[rbp], rsi
cmp QWORD PTR -8[rbp], 0
je .L576
mov rdx, QWORD PTR -16[rbp]
mov rax, QWORD PTR -8[rbp]
mov rsi, rdx
mov rdi, rax
call isLookaside
test eax, eax
jne .L577
.L576:
mov rax, QWORD PTR sqlite3Config[rip+72]
mov rdx, QWORD PTR -16[rbp]
mov rdi, rdx
call rax
jmp .L578
.L577:
mov rax, QWORD PTR -8[rbp]
movzx eax, WORD PTR 356[rax]
movzx eax, ax
.L578:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE130:
.size sqlite3DbMallocSize, .-sqlite3DbMallocSize
.globl sqlite3_msize
.type sqlite3_msize, @function
sqlite3_msize:
.LFB131:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 16
mov QWORD PTR -8[rbp], rdi
cmp QWORD PTR -8[rbp], 0
je .L580
mov rax, QWORD PTR sqlite3Config[rip+72]
mov rdx, QWORD PTR -8[rbp]
mov rdi, rdx
call rax
cdqe
jmp .L582
.L580:
mov eax, 0
.L582:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE131:
.size sqlite3_msize, .-sqlite3_msize
.globl sqlite3_free
.type sqlite3_free, @function
sqlite3_free:
.LFB132:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 16
mov QWORD PTR -8[rbp], rdi
cmp QWORD PTR -8[rbp], 0
je .L587
mov eax, DWORD PTR sqlite3Config[rip]
test eax, eax
je .L586
mov rax, QWORD PTR mem0[rip]
mov rdi, rax
call sqlite3_mutex_enter
mov rax, QWORD PTR -8[rbp]
mov rdi, rax
call sqlite3MallocSize
mov esi, eax
mov edi, 0
call sqlite3StatusDown
mov esi, 1
mov edi, 9
call sqlite3StatusDown
mov rax, QWORD PTR sqlite3Config[rip+56]
mov rdx, QWORD PTR -8[rbp]
mov rdi, rdx
call rax
mov rax, QWORD PTR mem0[rip]
mov rdi, rax
call sqlite3_mutex_leave
jmp .L583
.L586:
mov rax, QWORD PTR sqlite3Config[rip+56]
mov rdx, QWORD PTR -8[rbp]
mov rdi, rdx
call rax
jmp .L583
.L587:
nop
.L583:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE132:
.size sqlite3_free, .-sqlite3_free
.type measureAllocationSize, @function
measureAllocationSize:
.LFB133:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 16
mov QWORD PTR -8[rbp], rdi
mov QWORD PTR -16[rbp], rsi
mov rdx, QWORD PTR -16[rbp]
mov rax, QWORD PTR -8[rbp]
mov rsi, rdx
mov rdi, rax
call sqlite3DbMallocSize
mov ecx, eax
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR 672[rax]
mov rdx, QWORD PTR -8[rbp]
mov rdx, QWORD PTR 672[rdx]
mov edx, DWORD PTR [rdx]
add edx, ecx
mov DWORD PTR [rax], edx
nop
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE133:
.size measureAllocationSize, .-measureAllocationSize
.type sqlite3DbFreeNN, @function
sqlite3DbFreeNN:
.LFB134:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 32
mov QWORD PTR -24[rbp], rdi
mov QWORD PTR -32[rbp], rsi
cmp QWORD PTR -24[rbp], 0
je .L590
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 672[rax]
test rax, rax
je .L591
mov rdx, QWORD PTR -32[rbp]
mov rax, QWORD PTR -24[rbp]
mov rsi, rdx
mov rdi, rax
call measureAllocationSize
jmp .L589
.L591:
mov rdx, QWORD PTR -32[rbp]
mov rax, QWORD PTR -24[rbp]
mov rsi, rdx
mov rdi, rax
call isLookaside
test eax, eax
je .L590
mov rax, QWORD PTR -32[rbp]
mov QWORD PTR -8[rbp], rax
mov rax, QWORD PTR -24[rbp]
mov rdx, QWORD PTR 384[rax]
mov rax, QWORD PTR -8[rbp]
mov QWORD PTR [rax], rdx
mov rax, QWORD PTR -24[rbp]
mov rdx, QWORD PTR -8[rbp]
mov QWORD PTR 384[rax], rdx
jmp .L589
.L590:
mov rax, QWORD PTR -32[rbp]
mov rdi, rax
call sqlite3_free
.L589:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE134:
.size sqlite3DbFreeNN, .-sqlite3DbFreeNN
.type sqlite3DbFree, @function
sqlite3DbFree:
.LFB135:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 16
mov QWORD PTR -8[rbp], rdi
mov QWORD PTR -16[rbp], rsi
cmp QWORD PTR -16[rbp], 0
je .L595
mov rdx, QWORD PTR -16[rbp]
mov rax, QWORD PTR -8[rbp]
mov rsi, rdx
mov rdi, rax
call sqlite3DbFreeNN
.L595:
nop
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE135:
.size sqlite3DbFree, .-sqlite3DbFree
.type sqlite3Realloc, @function
sqlite3Realloc:
.LFB136:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 48
mov QWORD PTR -40[rbp], rdi
mov QWORD PTR -48[rbp], rsi
cmp QWORD PTR -40[rbp], 0
jne .L597
mov rax, QWORD PTR -48[rbp]
mov rdi, rax
call sqlite3Malloc
jmp .L598
.L597:
cmp QWORD PTR -48[rbp], 0
jne .L599
mov rax, QWORD PTR -40[rbp]
mov rdi, rax
call sqlite3_free
mov eax, 0
jmp .L598
.L599:
cmp QWORD PTR -48[rbp], 2147483391
jbe .L600
mov eax, 0
jmp .L598
.L600:
mov rax, QWORD PTR -40[rbp]
mov rdi, rax
call sqlite3MallocSize
mov DWORD PTR -12[rbp], eax
mov rax, QWORD PTR sqlite3Config[rip+80]
mov rdx, QWORD PTR -48[rbp]
mov edi, edx
call rax
mov DWORD PTR -16[rbp], eax
mov eax, DWORD PTR -12[rbp]
cmp eax, DWORD PTR -16[rbp]
jne .L601
mov rax, QWORD PTR -40[rbp]
mov QWORD PTR -8[rbp], rax
jmp .L602
.L601:
mov eax, DWORD PTR sqlite3Config[rip]
test eax, eax
je .L603
mov rax, QWORD PTR mem0[rip]
mov rdi, rax
call sqlite3_mutex_enter
mov rax, QWORD PTR -48[rbp]
mov esi, eax
mov edi, 5
call sqlite3StatusHighwater
mov eax, DWORD PTR -16[rbp]
sub eax, DWORD PTR -12[rbp]
mov DWORD PTR -20[rbp], eax
cmp DWORD PTR -20[rbp], 0
jle .L604
mov edi, 0
call sqlite3StatusValue
mov rcx, rax
mov rdx, QWORD PTR mem0[rip+8]
mov eax, DWORD PTR -20[rbp]
cdqe
sub rdx, rax
mov rax, rdx
cmp rcx, rax
jl .L604
mov eax, DWORD PTR -20[rbp]
mov edi, eax
call sqlite3MallocAlarm
.L604:
mov rax, QWORD PTR sqlite3Config[rip+64]
mov ecx, DWORD PTR -16[rbp]
mov rdx, QWORD PTR -40[rbp]
mov esi, ecx
mov rdi, rdx
call rax
mov QWORD PTR -8[rbp], rax
cmp QWORD PTR -8[rbp], 0
jne .L605
mov rax, QWORD PTR mem0[rip+8]
test rax, rax
jle .L605
mov rax, QWORD PTR -48[rbp]
mov edi, eax
call sqlite3MallocAlarm
mov rax, QWORD PTR sqlite3Config[rip+64]
mov ecx, DWORD PTR -16[rbp]
mov rdx, QWORD PTR -40[rbp]
mov esi, ecx
mov rdi, rdx
call rax
mov QWORD PTR -8[rbp], rax
.L605:
cmp QWORD PTR -8[rbp], 0
je .L606
mov rax, QWORD PTR -8[rbp]
mov rdi, rax
call sqlite3MallocSize
mov DWORD PTR -16[rbp], eax
mov eax, DWORD PTR -16[rbp]
sub eax, DWORD PTR -12[rbp]
mov esi, eax
mov edi, 0
call sqlite3StatusUp
.L606:
mov rax, QWORD PTR mem0[rip]
mov rdi, rax
call sqlite3_mutex_leave
jmp .L602
.L603:
mov rax, QWORD PTR sqlite3Config[rip+64]
mov ecx, DWORD PTR -16[rbp]
mov rdx, QWORD PTR -40[rbp]
mov esi, ecx
mov rdi, rdx
call rax
mov QWORD PTR -8[rbp], rax
.L602:
mov rax, QWORD PTR -8[rbp]
.L598:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE136:
.size sqlite3Realloc, .-sqlite3Realloc
.globl sqlite3_realloc
.type sqlite3_realloc, @function
sqlite3_realloc:
.LFB137:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 16
mov QWORD PTR -8[rbp], rdi
mov DWORD PTR -12[rbp], esi
call sqlite3_initialize
test eax, eax
je .L608
mov eax, 0
jmp .L609
.L608:
cmp DWORD PTR -12[rbp], 0
jns .L610
mov DWORD PTR -12[rbp], 0
.L610:
mov eax, DWORD PTR -12[rbp]
movsx rdx, eax
mov rax, QWORD PTR -8[rbp]
mov rsi, rdx
mov rdi, rax
call sqlite3Realloc
.L609:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE137:
.size sqlite3_realloc, .-sqlite3_realloc
.globl sqlite3_realloc64
.type sqlite3_realloc64, @function
sqlite3_realloc64:
.LFB138:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 16
mov QWORD PTR -8[rbp], rdi
mov QWORD PTR -16[rbp], rsi
call sqlite3_initialize
test eax, eax
je .L612
mov eax, 0
jmp .L613
.L612:
mov rdx, QWORD PTR -16[rbp]
mov rax, QWORD PTR -8[rbp]
mov rsi, rdx
mov rdi, rax
call sqlite3Realloc
.L613:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE138:
.size sqlite3_realloc64, .-sqlite3_realloc64
.type sqlite3MallocZero, @function
sqlite3MallocZero:
.LFB139:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 32
mov QWORD PTR -24[rbp], rdi
mov rax, QWORD PTR -24[rbp]
mov rdi, rax
call sqlite3Malloc
mov QWORD PTR -8[rbp], rax
cmp QWORD PTR -8[rbp], 0
je .L615
mov rdx, QWORD PTR -24[rbp]
mov rax, QWORD PTR -8[rbp]
mov esi, 0
mov rdi, rax
call memset@PLT
.L615:
mov rax, QWORD PTR -8[rbp]
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE139:
.size sqlite3MallocZero, .-sqlite3MallocZero
.type sqlite3DbMallocZero, @function
sqlite3DbMallocZero:
.LFB140:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 32
mov QWORD PTR -24[rbp], rdi
mov QWORD PTR -32[rbp], rsi
mov rdx, QWORD PTR -32[rbp]
mov rax, QWORD PTR -24[rbp]
mov rsi, rdx
mov rdi, rax
call sqlite3DbMallocRaw
mov QWORD PTR -8[rbp], rax
cmp QWORD PTR -8[rbp], 0
je .L618
mov rdx, QWORD PTR -32[rbp]
mov rax, QWORD PTR -8[rbp]
mov esi, 0
mov rdi, rax
call memset@PLT
.L618:
mov rax, QWORD PTR -8[rbp]
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE140:
.size sqlite3DbMallocZero, .-sqlite3DbMallocZero
.type dbMallocRawFinish, @function
dbMallocRawFinish:
.LFB141:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 32
mov QWORD PTR -24[rbp], rdi
mov QWORD PTR -32[rbp], rsi
mov rax, QWORD PTR -32[rbp]
mov rdi, rax
call sqlite3Malloc
mov QWORD PTR -8[rbp], rax
cmp QWORD PTR -8[rbp], 0
jne .L621
mov rax, QWORD PTR -24[rbp]
mov rdi, rax
call sqlite3OomFault
.L621:
mov rax, QWORD PTR -8[rbp]
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE141:
.size dbMallocRawFinish, .-dbMallocRawFinish
.type sqlite3DbMallocRaw, @function
sqlite3DbMallocRaw:
.LFB142:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 32
mov QWORD PTR -24[rbp], rdi
mov QWORD PTR -32[rbp], rsi
cmp QWORD PTR -24[rbp], 0
je .L624
mov rdx, QWORD PTR -32[rbp]
mov rax, QWORD PTR -24[rbp]
mov rsi, rdx
mov rdi, rax
call sqlite3DbMallocRawNN
jmp .L625
.L624:
mov rax, QWORD PTR -32[rbp]
mov rdi, rax
call sqlite3Malloc
mov QWORD PTR -8[rbp], rax
mov rax, QWORD PTR -8[rbp]
.L625:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE142:
.size sqlite3DbMallocRaw, .-sqlite3DbMallocRaw
.type sqlite3DbMallocRawNN, @function
sqlite3DbMallocRawNN:
.LFB143:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 32
mov QWORD PTR -24[rbp], rdi
mov QWORD PTR -32[rbp], rsi
mov rax, QWORD PTR -24[rbp]
mov eax, DWORD PTR 352[rax]
test eax, eax
jne .L627
mov rax, QWORD PTR -24[rbp]
movzx eax, WORD PTR 356[rax]
movzx eax, ax
cmp rax, QWORD PTR -32[rbp]
jnb .L628
mov rax, QWORD PTR -24[rbp]
mov eax, DWORD PTR 368[rax]
lea edx, 1[rax]
mov rax, QWORD PTR -24[rbp]
mov DWORD PTR 368[rax], edx
jmp .L633
.L628:
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 384[rax]
mov QWORD PTR -8[rbp], rax
cmp QWORD PTR -8[rbp], 0
je .L630
mov rax, QWORD PTR -8[rbp]
mov rdx, QWORD PTR [rax]
mov rax, QWORD PTR -24[rbp]
mov QWORD PTR 384[rax], rdx
mov rax, QWORD PTR -24[rbp]
mov eax, DWORD PTR 364[rax]
lea edx, 1[rax]
mov rax, QWORD PTR -24[rbp]
mov DWORD PTR 364[rax], edx
mov rax, QWORD PTR -8[rbp]
jmp .L631
.L630:
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 376[rax]
mov QWORD PTR -8[rbp], rax
cmp QWORD PTR -8[rbp], 0
je .L632
mov rax, QWORD PTR -8[rbp]
mov rdx, QWORD PTR [rax]
mov rax, QWORD PTR -24[rbp]
mov QWORD PTR 376[rax], rdx
mov rax, QWORD PTR -24[rbp]
mov eax, DWORD PTR 364[rax]
lea edx, 1[rax]
mov rax, QWORD PTR -24[rbp]
mov DWORD PTR 364[rax], edx
mov rax, QWORD PTR -8[rbp]
jmp .L631
.L632:
mov rax, QWORD PTR -24[rbp]
mov eax, DWORD PTR 372[rax]
lea edx, 1[rax]
mov rax, QWORD PTR -24[rbp]
mov DWORD PTR 372[rax], edx
jmp .L633
.L627:
mov rax, QWORD PTR -24[rbp]
movzx eax, BYTE PTR 97[rax]
test al, al
je .L633
mov eax, 0
jmp .L631
.L633:
mov rdx, QWORD PTR -32[rbp]
mov rax, QWORD PTR -24[rbp]
mov rsi, rdx
mov rdi, rax
call dbMallocRawFinish
.L631:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE143:
.size sqlite3DbMallocRawNN, .-sqlite3DbMallocRawNN
.type sqlite3DbRealloc, @function
sqlite3DbRealloc:
.LFB144:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 32
mov QWORD PTR -8[rbp], rdi
mov QWORD PTR -16[rbp], rsi
mov QWORD PTR -24[rbp], rdx
cmp QWORD PTR -16[rbp], 0
jne .L635
mov rdx, QWORD PTR -24[rbp]
mov rax, QWORD PTR -8[rbp]
mov rsi, rdx
mov rdi, rax
call sqlite3DbMallocRawNN
jmp .L636
.L635:
mov rdx, QWORD PTR -16[rbp]
mov rax, QWORD PTR -8[rbp]
mov rsi, rdx
mov rdi, rax
call isLookaside
test eax, eax
je .L637
mov rax, QWORD PTR -8[rbp]
movzx eax, WORD PTR 356[rax]
movzx eax, ax
cmp rax, QWORD PTR -24[rbp]
jb .L637
mov rax, QWORD PTR -16[rbp]
jmp .L636
.L637:
mov rdx, QWORD PTR -24[rbp]
mov rcx, QWORD PTR -16[rbp]
mov rax, QWORD PTR -8[rbp]
mov rsi, rcx
mov rdi, rax
call dbReallocFinish
.L636:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE144:
.size sqlite3DbRealloc, .-sqlite3DbRealloc
.type dbReallocFinish, @function
dbReallocFinish:
.LFB145:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 48
mov QWORD PTR -24[rbp], rdi
mov QWORD PTR -32[rbp], rsi
mov QWORD PTR -40[rbp], rdx
mov QWORD PTR -8[rbp], 0
mov rax, QWORD PTR -24[rbp]
movzx eax, BYTE PTR 97[rax]
test al, al
jne .L639
mov rdx, QWORD PTR -32[rbp]
mov rax, QWORD PTR -24[rbp]
mov rsi, rdx
mov rdi, rax
call isLookaside
test eax, eax
je .L640
mov rdx, QWORD PTR -40[rbp]
mov rax, QWORD PTR -24[rbp]
mov rsi, rdx
mov rdi, rax
call sqlite3DbMallocRawNN
mov QWORD PTR -8[rbp], rax
cmp QWORD PTR -8[rbp], 0
je .L639
mov rax, QWORD PTR -24[rbp]
movzx eax, WORD PTR 356[rax]
movzx edx, ax
mov rcx, QWORD PTR -32[rbp]
mov rax, QWORD PTR -8[rbp]
mov rsi, rcx
mov rdi, rax
call memcpy@PLT
mov rdx, QWORD PTR -32[rbp]
mov rax, QWORD PTR -24[rbp]
mov rsi, rdx
mov rdi, rax
call sqlite3DbFree
jmp .L639
.L640:
mov rdx, QWORD PTR -40[rbp]
mov rax, QWORD PTR -32[rbp]
mov rsi, rdx
mov rdi, rax
call sqlite3_realloc64
mov QWORD PTR -8[rbp], rax
cmp QWORD PTR -8[rbp], 0
jne .L639
mov rax, QWORD PTR -24[rbp]
mov rdi, rax
call sqlite3OomFault
.L639:
mov rax, QWORD PTR -8[rbp]
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE145:
.size dbReallocFinish, .-dbReallocFinish
.type sqlite3DbReallocOrFree, @function
sqlite3DbReallocOrFree:
.LFB146:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 48
mov QWORD PTR -24[rbp], rdi
mov QWORD PTR -32[rbp], rsi
mov QWORD PTR -40[rbp], rdx
mov rdx, QWORD PTR -40[rbp]
mov rcx, QWORD PTR -32[rbp]
mov rax, QWORD PTR -24[rbp]
mov rsi, rcx
mov rdi, rax
call sqlite3DbRealloc
mov QWORD PTR -8[rbp], rax
cmp QWORD PTR -8[rbp], 0
jne .L644
mov rdx, QWORD PTR -32[rbp]
mov rax, QWORD PTR -24[rbp]
mov rsi, rdx
mov rdi, rax
call sqlite3DbFree
.L644:
mov rax, QWORD PTR -8[rbp]
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE146:
.size sqlite3DbReallocOrFree, .-sqlite3DbReallocOrFree
.type sqlite3DbStrDup, @function
sqlite3DbStrDup:
.LFB147:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 32
mov QWORD PTR -24[rbp], rdi
mov QWORD PTR -32[rbp], rsi
cmp QWORD PTR -32[rbp], 0
jne .L647
mov eax, 0
jmp .L648
.L647:
mov rax, QWORD PTR -32[rbp]
mov rdi, rax
call strlen@PLT
add rax, 1
mov QWORD PTR -8[rbp], rax
mov rdx, QWORD PTR -8[rbp]
mov rax, QWORD PTR -24[rbp]
mov rsi, rdx
mov rdi, rax
call sqlite3DbMallocRaw
mov QWORD PTR -16[rbp], rax
cmp QWORD PTR -16[rbp], 0
je .L649
mov rdx, QWORD PTR -8[rbp]
mov rcx, QWORD PTR -32[rbp]
mov rax, QWORD PTR -16[rbp]
mov rsi, rcx
mov rdi, rax
call memcpy@PLT
.L649:
mov rax, QWORD PTR -16[rbp]
.L648:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE147:
.size sqlite3DbStrDup, .-sqlite3DbStrDup
.type sqlite3DbStrNDup, @function
sqlite3DbStrNDup:
.LFB148:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 48
mov QWORD PTR -24[rbp], rdi
mov QWORD PTR -32[rbp], rsi
mov QWORD PTR -40[rbp], rdx
cmp QWORD PTR -32[rbp], 0
jne .L651
mov eax, 0
jmp .L652
.L651:
mov rax, QWORD PTR -40[rbp]
lea rdx, 1[rax]
mov rax, QWORD PTR -24[rbp]
mov rsi, rdx
mov rdi, rax
call sqlite3DbMallocRawNN
mov QWORD PTR -8[rbp], rax
cmp QWORD PTR -8[rbp], 0
je .L653
mov rdx, QWORD PTR -40[rbp]
mov rcx, QWORD PTR -32[rbp]
mov rax, QWORD PTR -8[rbp]
mov rsi, rcx
mov rdi, rax
call memcpy@PLT
mov rdx, QWORD PTR -8[rbp]
mov rax, QWORD PTR -40[rbp]
add rax, rdx
mov BYTE PTR [rax], 0
.L653:
mov rax, QWORD PTR -8[rbp]
.L652:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE148:
.size sqlite3DbStrNDup, .-sqlite3DbStrNDup
.type sqlite3DbSpanDup, @function
sqlite3DbSpanDup:
.LFB149:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 48
mov QWORD PTR -24[rbp], rdi
mov QWORD PTR -32[rbp], rsi
mov QWORD PTR -40[rbp], rdx
jmp .L655
.L656:
add QWORD PTR -32[rbp], 1
.L655:
mov rax, QWORD PTR -32[rbp]
movzx eax, BYTE PTR [rax]
movzx eax, al
movsx rdx, eax
lea rax, sqlite3CtypeMap[rip]
movzx eax, BYTE PTR [rdx+rax]
movzx eax, al
and eax, 1
test eax, eax
jne .L656
mov rdx, QWORD PTR -40[rbp]
mov rax, QWORD PTR -32[rbp]
sub rdx, rax
mov rax, rdx
mov DWORD PTR -4[rbp], eax
jmp .L657
.L659:
sub DWORD PTR -4[rbp], 1
.L657:
cmp DWORD PTR -4[rbp], 0
jle .L658
mov eax, DWORD PTR -4[rbp]
cdqe
lea rdx, -1[rax]
mov rax, QWORD PTR -32[rbp]
add rax, rdx
movzx eax, BYTE PTR [rax]
movzx eax, al
movsx rdx, eax
lea rax, sqlite3CtypeMap[rip]
movzx eax, BYTE PTR [rdx+rax]
movzx eax, al
and eax, 1
test eax, eax
jne .L659
.L658:
mov eax, DWORD PTR -4[rbp]
movsx rdx, eax
mov rcx, QWORD PTR -32[rbp]
mov rax, QWORD PTR -24[rbp]
mov rsi, rcx
mov rdi, rax
call sqlite3DbStrNDup
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE149:
.size sqlite3DbSpanDup, .-sqlite3DbSpanDup
.type sqlite3SetString, @function
sqlite3SetString:
.LFB150:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 32
mov QWORD PTR -8[rbp], rdi
mov QWORD PTR -16[rbp], rsi
mov QWORD PTR -24[rbp], rdx
mov rax, QWORD PTR -8[rbp]
mov rdx, QWORD PTR [rax]
mov rax, QWORD PTR -16[rbp]
mov rsi, rdx
mov rdi, rax
call sqlite3DbFree
mov rdx, QWORD PTR -24[rbp]
mov rax, QWORD PTR -16[rbp]
mov rsi, rdx
mov rdi, rax
call sqlite3DbStrDup
mov rdx, rax
mov rax, QWORD PTR -8[rbp]
mov QWORD PTR [rax], rdx
nop
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE150:
.size sqlite3SetString, .-sqlite3SetString
.type sqlite3OomFault, @function
sqlite3OomFault:
.LFB151:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
mov QWORD PTR -8[rbp], rdi
mov rax, QWORD PTR -8[rbp]
movzx eax, BYTE PTR 97[rax]
test al, al
jne .L665
mov rax, QWORD PTR -8[rbp]
movzx eax, BYTE PTR 98[rax]
test al, al
jne .L665
mov rax, QWORD PTR -8[rbp]
mov BYTE PTR 97[rax], 1
mov rax, QWORD PTR -8[rbp]
mov eax, DWORD PTR 196[rax]
test eax, eax
jle .L664
mov rax, QWORD PTR -8[rbp]
mov DWORD PTR 344[rax], 1
.L664:
mov rax, QWORD PTR -8[rbp]
mov eax, DWORD PTR 352[rax]
lea edx, 1[rax]
mov rax, QWORD PTR -8[rbp]
mov DWORD PTR 352[rax], edx
.L665:
nop
pop rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE151:
.size sqlite3OomFault, .-sqlite3OomFault
.type sqlite3OomClear, @function
sqlite3OomClear:
.LFB152:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
mov QWORD PTR -8[rbp], rdi
mov rax, QWORD PTR -8[rbp]
movzx eax, BYTE PTR 97[rax]
test al, al
je .L668
mov rax, QWORD PTR -8[rbp]
mov eax, DWORD PTR 196[rax]
test eax, eax
jne .L668
mov rax, QWORD PTR -8[rbp]
mov BYTE PTR 97[rax], 0
mov rax, QWORD PTR -8[rbp]
mov DWORD PTR 344[rax], 0
mov rax, QWORD PTR -8[rbp]
mov eax, DWORD PTR 352[rax]
lea edx, -1[rax]
mov rax, QWORD PTR -8[rbp]
mov DWORD PTR 352[rax], edx
.L668:
nop
pop rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE152:
.size sqlite3OomClear, .-sqlite3OomClear
.type apiOomError, @function
apiOomError:
.LFB153:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 16
mov QWORD PTR -8[rbp], rdi
mov rax, QWORD PTR -8[rbp]
mov rdi, rax
call sqlite3OomClear
mov rax, QWORD PTR -8[rbp]
mov esi, 7
mov rdi, rax
call sqlite3Error
mov eax, 7
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE153:
.size apiOomError, .-apiOomError
.type sqlite3ApiExit, @function
sqlite3ApiExit:
.LFB154:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 16
mov QWORD PTR -8[rbp], rdi
mov DWORD PTR -12[rbp], esi
mov rax, QWORD PTR -8[rbp]
movzx eax, BYTE PTR 97[rax]
test al, al
jne .L672
cmp DWORD PTR -12[rbp], 3082
jne .L673
.L672:
mov rax, QWORD PTR -8[rbp]
mov rdi, rax
call apiOomError
jmp .L674
.L673:
mov rax, QWORD PTR -8[rbp]
mov eax, DWORD PTR 84[rax]
and eax, DWORD PTR -12[rbp]
.L674:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE154:
.size sqlite3ApiExit, .-sqlite3ApiExit
.section .rodata
.align 32
.type aDigits, @object
.size aDigits, 33
aDigits:
.string "0123456789ABCDEF0123456789abcdef"
.type aPrefix, @object
.size aPrefix, 7
aPrefix:
.string "-x0"
.string "X0"
.align 32
.type fmtinfo, @object
.size fmtinfo, 138
fmtinfo:
.byte 100
.byte 10
.byte 1
.byte 16
.byte 0
.byte 0
.byte 115
.byte 0
.byte 4
.byte 5
.byte 0
.byte 0
.byte 103
.byte 0
.byte 1
.byte 3
.byte 30
.byte 0
.byte 122
.byte 0
.byte 4
.byte 6
.byte 0
.byte 0
.byte 113
.byte 0
.byte 4
.byte 9
.byte 0
.byte 0
.byte 81
.byte 0
.byte 4
.byte 10
.byte 0
.byte 0
.byte 119
.byte 0
.byte 4
.byte 14
.byte 0
.byte 0
.byte 99
.byte 0
.byte 0
.byte 8
.byte 0
.byte 0
.byte 111
.byte 8
.byte 0
.byte 0
.byte 0
.byte 2
.byte 117
.byte 10
.byte 0
.byte 16
.byte 0
.byte 0
.byte 120
.byte 16
.byte 0
.byte 0
.byte 16
.byte 1
.byte 88
.byte 16
.byte 0
.byte 0
.byte 0
.byte 4
.byte 102
.byte 0
.byte 1
.byte 1
.byte 0
.byte 0
.byte 101
.byte 0
.byte 1
.byte 2
.byte 30
.byte 0
.byte 69
.byte 0
.byte 1
.byte 2
.byte 14
.byte 0
.byte 71
.byte 0
.byte 1
.byte 3
.byte 14
.byte 0
.byte 105
.byte 10
.byte 1
.byte 16
.byte 0
.byte 0
.byte 110
.byte 0
.byte 0
.byte 4
.byte 0
.byte 0
.byte 37
.byte 0
.byte 0
.byte 7
.byte 0
.byte 0
.byte 112
.byte 16
.byte 0
.byte 13
.byte 0
.byte 1
.byte 84
.byte 0
.byte 0
.byte 11
.byte 0
.byte 0
.byte 83
.byte 0
.byte 0
.byte 12
.byte 0
.byte 0
.byte 114
.byte 10
.byte 1
.byte 15
.byte 0
.byte 0
.text
.type et_getdigit, @function
et_getdigit:
.LFB155:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
mov QWORD PTR -40[rbp], rdi
mov QWORD PTR -48[rbp], rsi
mov rax, QWORD PTR -48[rbp]
mov eax, DWORD PTR [rax]
test eax, eax
jg .L676
mov eax, 48
jmp .L677
.L676:
mov rax, QWORD PTR -48[rbp]
mov eax, DWORD PTR [rax]
lea edx, -1[rax]
mov rax, QWORD PTR -48[rbp]
mov DWORD PTR [rax], edx
mov rax, QWORD PTR -40[rbp]
fld TBYTE PTR [rax]
fnstcw WORD PTR -50[rbp]
movzx eax, WORD PTR -50[rbp]
or ah, 12
mov WORD PTR -52[rbp], ax
fldcw WORD PTR -52[rbp]
fistp DWORD PTR -4[rbp]
fldcw WORD PTR -50[rbp]
fild DWORD PTR -4[rbp]
fstp TBYTE PTR -32[rbp]
add DWORD PTR -4[rbp], 48
mov rax, QWORD PTR -40[rbp]
fld TBYTE PTR [rax]
fld TBYTE PTR -32[rbp]
fsubp st(1), st
fld TBYTE PTR .LC52[rip]
fmulp st(1), st
mov rax, QWORD PTR -40[rbp]
fstp TBYTE PTR [rax]
mov eax, DWORD PTR -4[rbp]
.L677:
pop rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE155:
.size et_getdigit, .-et_getdigit
.type setStrAccumError, @function
setStrAccumError:
.LFB156:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
mov QWORD PTR -8[rbp], rdi
mov eax, esi
mov BYTE PTR -12[rbp], al
mov rax, QWORD PTR -8[rbp]
movzx edx, BYTE PTR -12[rbp]
mov BYTE PTR 28[rax], dl
mov rax, QWORD PTR -8[rbp]
mov DWORD PTR 16[rax], 0
nop
pop rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE156:
.size setStrAccumError, .-setStrAccumError
.type getIntArg, @function
getIntArg:
.LFB157:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 16
mov QWORD PTR -8[rbp], rdi
mov rax, QWORD PTR -8[rbp]
mov edx, DWORD PTR [rax]
mov rax, QWORD PTR -8[rbp]
mov eax, DWORD PTR 4[rax]
cmp edx, eax
jg .L680
mov eax, 0
jmp .L681
.L680:
mov rax, QWORD PTR -8[rbp]
mov rsi, QWORD PTR 8[rax]
mov rax, QWORD PTR -8[rbp]
mov eax, DWORD PTR 4[rax]
lea ecx, 1[rax]
mov rdx, QWORD PTR -8[rbp]
mov DWORD PTR 4[rdx], ecx
cdqe
sal rax, 3
add rax, rsi
mov rax, QWORD PTR [rax]
mov rdi, rax
call sqlite3_value_int64
.L681:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE157:
.size getIntArg, .-getIntArg
.type getDoubleArg, @function
getDoubleArg:
.LFB158:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 16
mov QWORD PTR -8[rbp], rdi
mov rax, QWORD PTR -8[rbp]
mov edx, DWORD PTR [rax]
mov rax, QWORD PTR -8[rbp]
mov eax, DWORD PTR 4[rax]
cmp edx, eax
jg .L683
mov rax, QWORD PTR .LC5[rip]
jmp .L684
.L683:
mov rax, QWORD PTR -8[rbp]
mov rsi, QWORD PTR 8[rax]
mov rax, QWORD PTR -8[rbp]
mov eax, DWORD PTR 4[rax]
lea ecx, 1[rax]
mov rdx, QWORD PTR -8[rbp]
mov DWORD PTR 4[rdx], ecx
cdqe
sal rax, 3
add rax, rsi
mov rax, QWORD PTR [rax]
mov rdi, rax
call sqlite3_value_double
movq rax, xmm0
.L684:
mov QWORD PTR -16[rbp], rax
movsd xmm0, QWORD PTR -16[rbp]
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE158:
.size getDoubleArg, .-getDoubleArg
.type getTextArg, @function
getTextArg:
.LFB159:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 16
mov QWORD PTR -8[rbp], rdi
mov rax, QWORD PTR -8[rbp]
mov edx, DWORD PTR [rax]
mov rax, QWORD PTR -8[rbp]
mov eax, DWORD PTR 4[rax]
cmp edx, eax
jg .L686
mov eax, 0
jmp .L687
.L686:
mov rax, QWORD PTR -8[rbp]
mov rsi, QWORD PTR 8[rax]
mov rax, QWORD PTR -8[rbp]
mov eax, DWORD PTR 4[rax]
lea ecx, 1[rax]
mov rdx, QWORD PTR -8[rbp]
mov DWORD PTR 4[rdx], ecx
cdqe
sal rax, 3
add rax, rsi
mov rax, QWORD PTR [rax]
mov rdi, rax
call sqlite3_value_text
.L687:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE159:
.size getTextArg, .-getTextArg
.section .rodata
.LC54:
.string "%"
.LC57:
.string "NaN"
.LC63:
.string "Inf"
.LC65:
.string ""
.LC66:
.string "NULL"
.LC67:
.string "(NULL)"
.LC68:
.string "."
.text
.type sqlite3VXPrintf, @function
sqlite3VXPrintf:
.LFB160:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
push rbx
sub rsp, 424
.cfi_offset 3, -24
mov QWORD PTR -392[rbp], rdi
mov QWORD PTR -400[rbp], rsi
mov QWORD PTR -408[rbp], rdx
mov BYTE PTR -57[rbp], 17
mov QWORD PTR -104[rbp], 0
mov QWORD PTR -136[rbp], 0
mov QWORD PTR -32[rbp], 0
mov rax, QWORD PTR -392[rbp]
movzx eax, BYTE PTR 29[rax]
movzx eax, al
and eax, 2
test eax, eax
je .L689
mov rax, QWORD PTR -408[rbp]
mov eax, DWORD PTR [rax]
cmp eax, 47
ja .L690
mov rax, QWORD PTR -408[rbp]
mov rdx, QWORD PTR 16[rax]
mov rax, QWORD PTR -408[rbp]
mov eax, DWORD PTR [rax]
mov eax, eax
add rax, rdx
mov rdx, QWORD PTR -408[rbp]
mov edx, DWORD PTR [rdx]
lea ecx, 8[rdx]
mov rdx, QWORD PTR -408[rbp]
mov DWORD PTR [rdx], ecx
jmp .L691
.L690:
mov rax, QWORD PTR -408[rbp]
mov rax, QWORD PTR 8[rax]
lea rcx, 8[rax]
mov rdx, QWORD PTR -408[rbp]
mov QWORD PTR 8[rdx], rcx
.L691:
mov rax, QWORD PTR [rax]
mov QWORD PTR -136[rbp], rax
mov BYTE PTR -58[rbp], 1
jmp .L693
.L689:
mov BYTE PTR -58[rbp], 0
jmp .L693
.L930:
cmp DWORD PTR -20[rbp], 37
je .L694
mov rax, QWORD PTR -400[rbp]
mov QWORD PTR -32[rbp], rax
.L696:
add QWORD PTR -400[rbp], 1
mov rax, QWORD PTR -400[rbp]
movzx eax, BYTE PTR [rax]
test al, al
je .L695
mov rax, QWORD PTR -400[rbp]
movzx eax, BYTE PTR [rax]
cmp al, 37
jne .L696
.L695:
mov rdx, QWORD PTR -400[rbp]
mov rax, QWORD PTR -32[rbp]
sub rdx, rax
mov rax, rdx
mov edx, eax
mov rcx, QWORD PTR -32[rbp]
mov rax, QWORD PTR -392[rbp]
mov rsi, rcx
mov rdi, rax
call sqlite3StrAccumAppend
mov rax, QWORD PTR -400[rbp]
movzx eax, BYTE PTR [rax]
test al, al
je .L939
.L694:
add QWORD PTR -400[rbp], 1
mov rax, QWORD PTR -400[rbp]
movzx eax, BYTE PTR [rax]
movsx eax, al
mov DWORD PTR -20[rbp], eax
cmp DWORD PTR -20[rbp], 0
jne .L698
mov rax, QWORD PTR -392[rbp]
mov edx, 1
lea rsi, .LC54[rip]
mov rdi, rax
call sqlite3StrAccumAppend
jmp .L688
.L698:
mov BYTE PTR -53[rbp], 0
movzx eax, BYTE PTR -53[rbp]
mov BYTE PTR -52[rbp], al
movzx eax, BYTE PTR -52[rbp]
mov BYTE PTR -51[rbp], al
movzx eax, BYTE PTR -51[rbp]
mov BYTE PTR -56[rbp], al
movzx eax, BYTE PTR -56[rbp]
mov BYTE PTR -50[rbp], al
movzx eax, BYTE PTR -50[rbp]
mov BYTE PTR -49[rbp], al
mov BYTE PTR -55[rbp], 0
.L710:
mov eax, DWORD PTR -20[rbp]
sub eax, 32
cmp eax, 16
ja .L699
mov eax, eax
lea rdx, 0[0+rax*4]
lea rax, .L701[rip]
mov eax, DWORD PTR [rdx+rax]
movsx rdx, eax
lea rax, .L701[rip]
add rax, rdx
jmp rax
.section .rodata
.align 4
.align 4
.L701:
.long .L700-.L701
.long .L702-.L701
.long .L699-.L701
.long .L703-.L701
.long .L699-.L701
.long .L699-.L701
.long .L699-.L701
.long .L699-.L701
.long .L699-.L701
.long .L699-.L701
.long .L699-.L701
.long .L704-.L701
.long .L705-.L701
.long .L706-.L701
.long .L699-.L701
.long .L699-.L701
.long .L707-.L701
.text
.L706:
mov BYTE PTR -49[rbp], 1
jmp .L708
.L704:
mov BYTE PTR -50[rbp], 43
jmp .L708
.L700:
mov BYTE PTR -50[rbp], 32
jmp .L708
.L703:
mov BYTE PTR -51[rbp], 1
jmp .L708
.L702:
mov BYTE PTR -52[rbp], 1
jmp .L708
.L707:
mov BYTE PTR -53[rbp], 1
jmp .L708
.L705:
mov BYTE PTR -56[rbp], 44
jmp .L708
.L699:
mov BYTE PTR -55[rbp], 1
nop
.L708:
cmp BYTE PTR -55[rbp], 0
jne .L709
add QWORD PTR -400[rbp], 1
mov rax, QWORD PTR -400[rbp]
movzx eax, BYTE PTR [rax]
movsx eax, al
mov DWORD PTR -20[rbp], eax
cmp DWORD PTR -20[rbp], 0
jne .L710
.L709:
cmp DWORD PTR -20[rbp], 42
jne .L711
cmp BYTE PTR -58[rbp], 0
je .L712
mov rax, QWORD PTR -136[rbp]
mov rdi, rax
call getIntArg
mov DWORD PTR -48[rbp], eax
jmp .L713
.L712:
mov rax, QWORD PTR -408[rbp]
mov eax, DWORD PTR [rax]
cmp eax, 47
ja .L714
mov rax, QWORD PTR -408[rbp]
mov rdx, QWORD PTR 16[rax]
mov rax, QWORD PTR -408[rbp]
mov eax, DWORD PTR [rax]
mov eax, eax
add rax, rdx
mov rdx, QWORD PTR -408[rbp]
mov edx, DWORD PTR [rdx]
lea ecx, 8[rdx]
mov rdx, QWORD PTR -408[rbp]
mov DWORD PTR [rdx], ecx
jmp .L715
.L714:
mov rax, QWORD PTR -408[rbp]
mov rax, QWORD PTR 8[rax]
lea rcx, 8[rax]
mov rdx, QWORD PTR -408[rbp]
mov QWORD PTR 8[rdx], rcx
.L715:
mov eax, DWORD PTR [rax]
mov DWORD PTR -48[rbp], eax
.L713:
cmp DWORD PTR -48[rbp], 0
jns .L716
mov BYTE PTR -49[rbp], 1
cmp DWORD PTR -48[rbp], -2147483648
je .L717
mov eax, DWORD PTR -48[rbp]
neg eax
jmp .L718
.L717:
mov eax, 0
.L718:
mov DWORD PTR -48[rbp], eax
.L716:
add QWORD PTR -400[rbp], 1
mov rax, QWORD PTR -400[rbp]
movzx eax, BYTE PTR [rax]
movsx eax, al
mov DWORD PTR -20[rbp], eax
jmp .L719
.L711:
mov DWORD PTR -140[rbp], 0
jmp .L720
.L722:
mov edx, DWORD PTR -140[rbp]
mov eax, edx
sal eax, 2
add eax, edx
add eax, eax
mov edx, eax
mov eax, DWORD PTR -20[rbp]
add eax, edx
sub eax, 48
mov DWORD PTR -140[rbp], eax
add QWORD PTR -400[rbp], 1
mov rax, QWORD PTR -400[rbp]
movzx eax, BYTE PTR [rax]
movsx eax, al
mov DWORD PTR -20[rbp], eax
.L720:
cmp DWORD PTR -20[rbp], 47
jle .L721
cmp DWORD PTR -20[rbp], 57
jle .L722
.L721:
mov eax, DWORD PTR -140[rbp]
and eax, 2147483647
mov DWORD PTR -48[rbp], eax
.L719:
cmp DWORD PTR -20[rbp], 46
jne .L723
add QWORD PTR -400[rbp], 1
mov rax, QWORD PTR -400[rbp]
movzx eax, BYTE PTR [rax]
movsx eax, al
mov DWORD PTR -20[rbp], eax
cmp DWORD PTR -20[rbp], 42
jne .L724
cmp BYTE PTR -58[rbp], 0
je .L725
mov rax, QWORD PTR -136[rbp]
mov rdi, rax
call getIntArg
mov DWORD PTR -36[rbp], eax
jmp .L726
.L725:
mov rax, QWORD PTR -408[rbp]
mov eax, DWORD PTR [rax]
cmp eax, 47
ja .L727
mov rax, QWORD PTR -408[rbp]
mov rdx, QWORD PTR 16[rax]
mov rax, QWORD PTR -408[rbp]
mov eax, DWORD PTR [rax]
mov eax, eax
add rax, rdx
mov rdx, QWORD PTR -408[rbp]
mov edx, DWORD PTR [rdx]
lea ecx, 8[rdx]
mov rdx, QWORD PTR -408[rbp]
mov DWORD PTR [rdx], ecx
jmp .L728
.L727:
mov rax, QWORD PTR -408[rbp]
mov rax, QWORD PTR 8[rax]
lea rcx, 8[rax]
mov rdx, QWORD PTR -408[rbp]
mov QWORD PTR 8[rdx], rcx
.L728:
mov eax, DWORD PTR [rax]
mov DWORD PTR -36[rbp], eax
.L726:
add QWORD PTR -400[rbp], 1
mov rax, QWORD PTR -400[rbp]
movzx eax, BYTE PTR [rax]
movsx eax, al
mov DWORD PTR -20[rbp], eax
cmp DWORD PTR -36[rbp], 0
jns .L736
cmp DWORD PTR -36[rbp], -2147483648
je .L730
mov eax, DWORD PTR -36[rbp]
neg eax
jmp .L731
.L730:
mov eax, -1
.L731:
mov DWORD PTR -36[rbp], eax
jmp .L736
.L724:
mov DWORD PTR -144[rbp], 0
jmp .L733
.L735:
mov edx, DWORD PTR -144[rbp]
mov eax, edx
sal eax, 2
add eax, edx
add eax, eax
mov edx, eax
mov eax, DWORD PTR -20[rbp]
add eax, edx
sub eax, 48
mov DWORD PTR -144[rbp], eax
add QWORD PTR -400[rbp], 1
mov rax, QWORD PTR -400[rbp]
movzx eax, BYTE PTR [rax]
movsx eax, al
mov DWORD PTR -20[rbp], eax
.L733:
cmp DWORD PTR -20[rbp], 47
jle .L734
cmp DWORD PTR -20[rbp], 57
jle .L735
.L734:
mov eax, DWORD PTR -144[rbp]
and eax, 2147483647
mov DWORD PTR -36[rbp], eax
jmp .L736
.L723:
mov DWORD PTR -36[rbp], -1
.L736:
cmp DWORD PTR -20[rbp], 108
jne .L737
mov BYTE PTR -54[rbp], 1
add QWORD PTR -400[rbp], 1
mov rax, QWORD PTR -400[rbp]
movzx eax, BYTE PTR [rax]
movsx eax, al
mov DWORD PTR -20[rbp], eax
cmp DWORD PTR -20[rbp], 108
jne .L739
mov BYTE PTR -54[rbp], 2
add QWORD PTR -400[rbp], 1
mov rax, QWORD PTR -400[rbp]
movzx eax, BYTE PTR [rax]
movsx eax, al
mov DWORD PTR -20[rbp], eax
jmp .L739
.L737:
mov BYTE PTR -54[rbp], 0
.L739:
lea rax, fmtinfo[rip]
mov QWORD PTR -80[rbp], rax
mov BYTE PTR -57[rbp], 17
mov DWORD PTR -44[rbp], 0
jmp .L740
.L743:
mov eax, DWORD PTR -44[rbp]
movsx rdx, eax
mov rax, rdx
add rax, rax
add rax, rdx
add rax, rax
mov rdx, rax
lea rax, fmtinfo[rip]
movzx eax, BYTE PTR [rdx+rax]
movsx eax, al
cmp eax, DWORD PTR -20[rbp]
jne .L741
mov eax, DWORD PTR -44[rbp]
movsx rdx, eax
mov rax, rdx
add rax, rax
add rax, rdx
add rax, rax
lea rdx, fmtinfo[rip]
add rax, rdx
mov QWORD PTR -80[rbp], rax
mov rax, QWORD PTR -80[rbp]
movzx eax, BYTE PTR 3[rax]
mov BYTE PTR -57[rbp], al
jmp .L742
.L741:
add DWORD PTR -44[rbp], 1
.L740:
cmp DWORD PTR -44[rbp], 22
jle .L743
.L742:
movzx eax, BYTE PTR -57[rbp]
cmp eax, 16
ja .L940
mov eax, eax
lea rdx, 0[0+rax*4]
lea rax, .L746[rip]
mov eax, DWORD PTR [rdx+rax]
movsx rdx, eax
lea rax, .L746[rip]
add rax, rdx
jmp rax
.section .rodata
.align 4
.align 4
.L746:
.long .L745-.L746
.long .L747-.L746
.long .L747-.L746
.long .L747-.L746
.long .L748-.L746
.long .L749-.L746
.long .L749-.L746
.long .L750-.L746
.long .L751-.L746
.long .L752-.L746
.long .L752-.L746
.long .L753-.L746
.long .L754-.L746
.long .L755-.L746
.long .L752-.L746
.long .L745-.L746
.long .L756-.L746
.text
.L755:
mov BYTE PTR -54[rbp], 2
.L745:
mov BYTE PTR -56[rbp], 0
.L756:
mov rax, QWORD PTR -80[rbp]
movzx eax, BYTE PTR 2[rax]
movzx eax, al
and eax, 1
test eax, eax
je .L757
cmp BYTE PTR -58[rbp], 0
je .L758
mov rax, QWORD PTR -136[rbp]
mov rdi, rax
call getIntArg
mov QWORD PTR -152[rbp], rax
jmp .L759
.L758:
cmp BYTE PTR -54[rbp], 0
je .L760
cmp BYTE PTR -54[rbp], 2
jne .L761
mov rax, QWORD PTR -408[rbp]
mov eax, DWORD PTR [rax]
cmp eax, 47
ja .L762
mov rax, QWORD PTR -408[rbp]
mov rdx, QWORD PTR 16[rax]
mov rax, QWORD PTR -408[rbp]
mov eax, DWORD PTR [rax]
mov eax, eax
add rax, rdx
mov rdx, QWORD PTR -408[rbp]
mov edx, DWORD PTR [rdx]
lea ecx, 8[rdx]
mov rdx, QWORD PTR -408[rbp]
mov DWORD PTR [rdx], ecx
jmp .L763
.L762:
mov rax, QWORD PTR -408[rbp]
mov rax, QWORD PTR 8[rax]
lea rcx, 8[rax]
mov rdx, QWORD PTR -408[rbp]
mov QWORD PTR 8[rdx], rcx
.L763:
mov rax, QWORD PTR [rax]
mov QWORD PTR -152[rbp], rax
jmp .L759
.L761:
mov rax, QWORD PTR -408[rbp]
mov eax, DWORD PTR [rax]
cmp eax, 47
ja .L765
mov rax, QWORD PTR -408[rbp]
mov rdx, QWORD PTR 16[rax]
mov rax, QWORD PTR -408[rbp]
mov eax, DWORD PTR [rax]
mov eax, eax
add rax, rdx
mov rdx, QWORD PTR -408[rbp]
mov edx, DWORD PTR [rdx]
lea ecx, 8[rdx]
mov rdx, QWORD PTR -408[rbp]
mov DWORD PTR [rdx], ecx
jmp .L766
.L765:
mov rax, QWORD PTR -408[rbp]
mov rax, QWORD PTR 8[rax]
lea rcx, 8[rax]
mov rdx, QWORD PTR -408[rbp]
mov QWORD PTR 8[rdx], rcx
.L766:
mov rax, QWORD PTR [rax]
mov QWORD PTR -152[rbp], rax
jmp .L759
.L760:
mov rax, QWORD PTR -408[rbp]
mov eax, DWORD PTR [rax]
cmp eax, 47
ja .L767
mov rax, QWORD PTR -408[rbp]
mov rdx, QWORD PTR 16[rax]
mov rax, QWORD PTR -408[rbp]
mov eax, DWORD PTR [rax]
mov eax, eax
add rax, rdx
mov rdx, QWORD PTR -408[rbp]
mov edx, DWORD PTR [rdx]
lea ecx, 8[rdx]
mov rdx, QWORD PTR -408[rbp]
mov DWORD PTR [rdx], ecx
jmp .L768
.L767:
mov rax, QWORD PTR -408[rbp]
mov rax, QWORD PTR 8[rax]
lea rcx, 8[rax]
mov rdx, QWORD PTR -408[rbp]
mov QWORD PTR 8[rdx], rcx
.L768:
mov eax, DWORD PTR [rax]
cdqe
mov QWORD PTR -152[rbp], rax
.L759:
cmp QWORD PTR -152[rbp], 0
jns .L769
movabs rax, -9223372036854775808
cmp QWORD PTR -152[rbp], rax
jne .L770
movabs rax, -9223372036854775808
mov QWORD PTR -72[rbp], rax
jmp .L771
.L770:
mov rax, QWORD PTR -152[rbp]
neg rax
mov QWORD PTR -72[rbp], rax
.L771:
mov BYTE PTR -59[rbp], 45
jmp .L773
.L769:
mov rax, QWORD PTR -152[rbp]
mov QWORD PTR -72[rbp], rax
movzx eax, BYTE PTR -50[rbp]
mov BYTE PTR -59[rbp], al
jmp .L773
.L757:
cmp BYTE PTR -58[rbp], 0
je .L774
mov rax, QWORD PTR -136[rbp]
mov rdi, rax
call getIntArg
mov QWORD PTR -72[rbp], rax
jmp .L775
.L774:
cmp BYTE PTR -54[rbp], 0
je .L776
cmp BYTE PTR -54[rbp], 2
jne .L777
mov rax, QWORD PTR -408[rbp]
mov eax, DWORD PTR [rax]
cmp eax, 47
ja .L778
mov rax, QWORD PTR -408[rbp]
mov rdx, QWORD PTR 16[rax]
mov rax, QWORD PTR -408[rbp]
mov eax, DWORD PTR [rax]
mov eax, eax
add rax, rdx
mov rdx, QWORD PTR -408[rbp]
mov edx, DWORD PTR [rdx]
lea ecx, 8[rdx]
mov rdx, QWORD PTR -408[rbp]
mov DWORD PTR [rdx], ecx
jmp .L779
.L778:
mov rax, QWORD PTR -408[rbp]
mov rax, QWORD PTR 8[rax]
lea rcx, 8[rax]
mov rdx, QWORD PTR -408[rbp]
mov QWORD PTR 8[rdx], rcx
.L779:
mov rax, QWORD PTR [rax]
mov QWORD PTR -72[rbp], rax
jmp .L775
.L777:
mov rax, QWORD PTR -408[rbp]
mov eax, DWORD PTR [rax]
cmp eax, 47
ja .L781
mov rax, QWORD PTR -408[rbp]
mov rdx, QWORD PTR 16[rax]
mov rax, QWORD PTR -408[rbp]
mov eax, DWORD PTR [rax]
mov eax, eax
add rax, rdx
mov rdx, QWORD PTR -408[rbp]
mov edx, DWORD PTR [rdx]
lea ecx, 8[rdx]
mov rdx, QWORD PTR -408[rbp]
mov DWORD PTR [rdx], ecx
jmp .L782
.L781:
mov rax, QWORD PTR -408[rbp]
mov rax, QWORD PTR 8[rax]
lea rcx, 8[rax]
mov rdx, QWORD PTR -408[rbp]
mov QWORD PTR 8[rdx], rcx
.L782:
mov rax, QWORD PTR [rax]
mov QWORD PTR -72[rbp], rax
jmp .L775
.L776:
mov rax, QWORD PTR -408[rbp]
mov eax, DWORD PTR [rax]
cmp eax, 47
ja .L783
mov rax, QWORD PTR -408[rbp]
mov rdx, QWORD PTR 16[rax]
mov rax, QWORD PTR -408[rbp]
mov eax, DWORD PTR [rax]
mov eax, eax
add rax, rdx
mov rdx, QWORD PTR -408[rbp]
mov edx, DWORD PTR [rdx]
lea ecx, 8[rdx]
mov rdx, QWORD PTR -408[rbp]
mov DWORD PTR [rdx], ecx
jmp .L784
.L783:
mov rax, QWORD PTR -408[rbp]
mov rax, QWORD PTR 8[rax]
lea rcx, 8[rax]
mov rdx, QWORD PTR -408[rbp]
mov QWORD PTR 8[rdx], rcx
.L784:
mov eax, DWORD PTR [rax]
mov eax, eax
mov QWORD PTR -72[rbp], rax
.L775:
mov BYTE PTR -59[rbp], 0
.L773:
cmp QWORD PTR -72[rbp], 0
jne .L785
mov BYTE PTR -51[rbp], 0
.L785:
cmp BYTE PTR -53[rbp], 0
je .L786
cmp BYTE PTR -59[rbp], 0
setne al
movzx eax, al
mov edx, DWORD PTR -48[rbp]
sub edx, eax
mov eax, edx
cmp eax, DWORD PTR -36[rbp]
jle .L786
cmp BYTE PTR -59[rbp], 0
setne al
movzx eax, al
mov edx, DWORD PTR -48[rbp]
sub edx, eax
mov eax, edx
mov DWORD PTR -36[rbp], eax
.L786:
cmp DWORD PTR -36[rbp], 36
jg .L787
mov DWORD PTR -92[rbp], 70
lea rax, -384[rbp]
mov QWORD PTR -88[rbp], rax
jmp .L788
.L787:
mov eax, DWORD PTR -36[rbp]
movsx rsi, eax
mov ecx, DWORD PTR -36[rbp]
mov edx, 1431655766
mov eax, ecx
imul edx
mov eax, ecx
sar eax, 31
sub edx, eax
mov eax, edx
cdqe
add rax, rsi
add rax, 10
mov QWORD PTR -232[rbp], rax
mov rax, QWORD PTR -232[rbp]
mov rdi, rax
call sqlite3Malloc
mov QWORD PTR -104[rbp], rax
mov rax, QWORD PTR -104[rbp]
mov QWORD PTR -88[rbp], rax
cmp QWORD PTR -88[rbp], 0
jne .L789
mov rax, QWORD PTR -392[rbp]
mov esi, 1
mov rdi, rax
call setStrAccumError
jmp .L688
.L789:
mov rax, QWORD PTR -232[rbp]
mov DWORD PTR -92[rbp], eax
.L788:
mov eax, DWORD PTR -92[rbp]
cdqe
lea rdx, -1[rax]
mov rax, QWORD PTR -88[rbp]
add rax, rdx
mov QWORD PTR -32[rbp], rax
cmp BYTE PTR -57[rbp], 15
jne .L791
mov rcx, QWORD PTR -72[rbp]
movabs rdx, -3689348814741910323
mov rax, rcx
mul rdx
shr rdx, 3
mov rax, rdx
sal rax, 2
add rax, rdx
add rax, rax
sub rcx, rax
mov rdx, rcx
mov DWORD PTR -156[rbp], edx
cmp DWORD PTR -156[rbp], 3
jg .L792
mov rax, QWORD PTR -72[rbp]
movabs rdx, -3689348814741910323
mul rdx
mov rcx, rdx
shr rcx, 3
movabs rdx, -3689348814741910323
mov rax, rcx
mul rdx
shr rdx, 3
mov rax, rdx
sal rax, 2
add rax, rdx
add rax, rax
sub rcx, rax
mov rdx, rcx
cmp rdx, 1
jne .L793
.L792:
mov DWORD PTR -156[rbp], 0
.L793:
sub QWORD PTR -32[rbp], 1
mov eax, DWORD PTR -156[rbp]
add eax, eax
add eax, 1
movsx rdx, eax
lea rax, zOrd.9994[rip]
movzx edx, BYTE PTR [rdx+rax]
mov rax, QWORD PTR -32[rbp]
mov BYTE PTR [rax], dl
sub QWORD PTR -32[rbp], 1
mov eax, DWORD PTR -156[rbp]
add eax, eax
movsx rdx, eax
lea rax, zOrd.9994[rip]
movzx edx, BYTE PTR [rdx+rax]
mov rax, QWORD PTR -32[rbp]
mov BYTE PTR [rax], dl
.L791:
mov rax, QWORD PTR -80[rbp]
movzx eax, BYTE PTR 4[rax]
movzx eax, al
movsx rdx, eax
lea rax, aDigits[rip]
add rax, rdx
mov QWORD PTR -240[rbp], rax
mov rax, QWORD PTR -80[rbp]
movzx eax, BYTE PTR 1[rax]
mov BYTE PTR -241[rbp], al
.L794:
sub QWORD PTR -32[rbp], 1
movzx ecx, BYTE PTR -241[rbp]
mov rax, QWORD PTR -72[rbp]
mov edx, 0
div rcx
mov rax, QWORD PTR -240[rbp]
add rax, rdx
movzx edx, BYTE PTR [rax]
mov rax, QWORD PTR -32[rbp]
mov BYTE PTR [rax], dl
movzx ebx, BYTE PTR -241[rbp]
mov rax, QWORD PTR -72[rbp]
mov edx, 0
div rbx
mov QWORD PTR -72[rbp], rax
cmp QWORD PTR -72[rbp], 0
jne .L794
mov eax, DWORD PTR -92[rbp]
cdqe
lea rdx, -1[rax]
mov rax, QWORD PTR -88[rbp]
add rax, rdx
mov rdx, rax
mov rax, QWORD PTR -32[rbp]
sub rdx, rax
mov rax, rdx
mov DWORD PTR -40[rbp], eax
jmp .L795
.L796:
sub QWORD PTR -32[rbp], 1
mov rax, QWORD PTR -32[rbp]
mov BYTE PTR [rax], 48
add DWORD PTR -40[rbp], 1
.L795:
mov eax, DWORD PTR -36[rbp]
cmp eax, DWORD PTR -40[rbp]
jg .L796
cmp BYTE PTR -56[rbp], 0
je .L797
mov eax, DWORD PTR -40[rbp]
lea ecx, -1[rax]
mov edx, 1431655766
mov eax, ecx
imul edx
mov eax, ecx
sar eax, 31
sub edx, eax
mov eax, edx
mov DWORD PTR -160[rbp], eax
mov eax, DWORD PTR -40[rbp]
lea ecx, -1[rax]
mov edx, 1431655766
mov eax, ecx
imul edx
mov eax, ecx
sar eax, 31
sub edx, eax
mov eax, edx
add eax, eax
add eax, edx
sub ecx, eax
mov edx, ecx
lea eax, 1[rdx]
mov DWORD PTR -164[rbp], eax
mov eax, DWORD PTR -160[rbp]
cdqe
neg rax
add QWORD PTR -32[rbp], rax
mov DWORD PTR -44[rbp], 0
jmp .L798
.L800:
mov eax, DWORD PTR -44[rbp]
movsx rdx, eax
mov rax, QWORD PTR -32[rbp]
add rdx, rax
mov ecx, DWORD PTR -44[rbp]
mov eax, DWORD PTR -160[rbp]
add eax, ecx
movsx rcx, eax
mov rax, QWORD PTR -32[rbp]
add rax, rcx
movzx eax, BYTE PTR [rax]
mov BYTE PTR [rdx], al
sub DWORD PTR -164[rbp], 1
cmp DWORD PTR -164[rbp], 0
jne .L799
add DWORD PTR -44[rbp], 1
mov eax, DWORD PTR -44[rbp]
movsx rdx, eax
mov rax, QWORD PTR -32[rbp]
add rdx, rax
movzx eax, BYTE PTR -56[rbp]
mov BYTE PTR [rdx], al
sub DWORD PTR -160[rbp], 1
mov DWORD PTR -164[rbp], 3
.L799:
add DWORD PTR -44[rbp], 1
.L798:
cmp DWORD PTR -160[rbp], 0
jg .L800
.L797:
cmp BYTE PTR -59[rbp], 0
je .L801
sub QWORD PTR -32[rbp], 1
mov rax, QWORD PTR -32[rbp]
movzx edx, BYTE PTR -59[rbp]
mov BYTE PTR [rax], dl
.L801:
cmp BYTE PTR -51[rbp], 0
je .L802
mov rax, QWORD PTR -80[rbp]
movzx eax, BYTE PTR 5[rax]
test al, al
je .L802
mov rax, QWORD PTR -80[rbp]
movzx eax, BYTE PTR 5[rax]
movzx eax, al
movsx rdx, eax
lea rax, aPrefix[rip]
add rax, rdx
mov QWORD PTR -176[rbp], rax
jmp .L803
.L804:
sub QWORD PTR -32[rbp], 1
mov rax, QWORD PTR -32[rbp]
movzx edx, BYTE PTR -242[rbp]
mov BYTE PTR [rax], dl
add QWORD PTR -176[rbp], 1
.L803:
mov rax, QWORD PTR -176[rbp]
movzx eax, BYTE PTR [rax]
mov BYTE PTR -242[rbp], al
cmp BYTE PTR -242[rbp], 0
jne .L804
.L802:
mov eax, DWORD PTR -92[rbp]
cdqe
lea rdx, -1[rax]
mov rax, QWORD PTR -88[rbp]
add rax, rdx
mov rdx, rax
mov rax, QWORD PTR -32[rbp]
sub rdx, rax
mov rax, rdx
mov DWORD PTR -40[rbp], eax
jmp .L805
.L747:
cmp BYTE PTR -58[rbp], 0
je .L806
mov rax, QWORD PTR -136[rbp]
mov rdi, rax
call getDoubleArg
movsd QWORD PTR -424[rbp], xmm0
fld QWORD PTR -424[rbp]
fstp TBYTE PTR -304[rbp]
jmp .L807
.L806:
mov rax, QWORD PTR -408[rbp]
mov eax, DWORD PTR 4[rax]
cmp eax, 175
ja .L808
mov rax, QWORD PTR -408[rbp]
mov rdx, QWORD PTR 16[rax]
mov rax, QWORD PTR -408[rbp]
mov eax, DWORD PTR 4[rax]
mov eax, eax
add rax, rdx
mov rdx, QWORD PTR -408[rbp]
mov edx, DWORD PTR 4[rdx]
lea ecx, 16[rdx]
mov rdx, QWORD PTR -408[rbp]
mov DWORD PTR 4[rdx], ecx
jmp .L809
.L808:
mov rax, QWORD PTR -408[rbp]
mov rax, QWORD PTR 8[rax]
lea rcx, 8[rax]
mov rdx, QWORD PTR -408[rbp]
mov QWORD PTR 8[rdx], rcx
.L809:
fld QWORD PTR [rax]
fstp TBYTE PTR -304[rbp]
.L807:
cmp DWORD PTR -36[rbp], 0
jns .L810
mov DWORD PTR -36[rbp], 6
.L810:
fld TBYTE PTR -304[rbp]
fldz
fucomip st, st(1)
fstp st(0)
jbe .L938
fld TBYTE PTR -304[rbp]
fchs
fstp TBYTE PTR -304[rbp]
mov BYTE PTR -59[rbp], 45
jmp .L813
.L938:
movzx eax, BYTE PTR -50[rbp]
mov BYTE PTR -59[rbp], al
.L813:
cmp BYTE PTR -57[rbp], 3
jne .L814
cmp DWORD PTR -36[rbp], 0
jle .L814
sub DWORD PTR -36[rbp], 1
.L814:
mov eax, DWORD PTR -36[rbp]
and eax, 4095
mov DWORD PTR -44[rbp], eax
movsd xmm0, QWORD PTR .LC16[rip]
movsd QWORD PTR -120[rbp], xmm0
jmp .L815
.L816:
sub DWORD PTR -44[rbp], 1
movsd xmm1, QWORD PTR -120[rbp]
movsd xmm0, QWORD PTR .LC56[rip]
mulsd xmm0, xmm1
movsd QWORD PTR -120[rbp], xmm0
.L815:
cmp DWORD PTR -44[rbp], 0
jg .L816
cmp BYTE PTR -57[rbp], 1
jne .L817
fld QWORD PTR -120[rbp]
fld TBYTE PTR -304[rbp]
faddp st(1), st
fstp TBYTE PTR -304[rbp]
.L817:
mov DWORD PTR -108[rbp], 0
fld TBYTE PTR -304[rbp]
fstp QWORD PTR -416[rbp]
movsd xmm0, QWORD PTR -416[rbp]
call sqlite3IsNaN
test eax, eax
je .L818
lea rax, .LC57[rip]
mov QWORD PTR -32[rbp], rax
mov DWORD PTR -40[rbp], 3
jmp .L805
.L818:
fld TBYTE PTR -304[rbp]
fldz
fxch st(1)
fucomip st, st(1)
fstp st(0)
jbe .L819
fld1
fstp TBYTE PTR -192[rbp]
jmp .L821
.L824:
fld TBYTE PTR -192[rbp]
fld TBYTE PTR .LC59[rip]
fmulp st(1), st
fstp TBYTE PTR -192[rbp]
add DWORD PTR -108[rbp], 100
.L821:
fld TBYTE PTR -192[rbp]
fld TBYTE PTR .LC59[rip]
fmulp st(1), st
fld TBYTE PTR -304[rbp]
fucomip st, st(1)
fstp st(0)
jb .L822
cmp DWORD PTR -108[rbp], 350
jle .L824
.L822:
jmp .L825
.L828:
fld TBYTE PTR -192[rbp]
fld TBYTE PTR .LC60[rip]
fmulp st(1), st
fstp TBYTE PTR -192[rbp]
add DWORD PTR -108[rbp], 10
.L825:
fld TBYTE PTR -192[rbp]
fld TBYTE PTR .LC60[rip]
fmulp st(1), st
fld TBYTE PTR -304[rbp]
fucomip st, st(1)
fstp st(0)
jb .L826
cmp DWORD PTR -108[rbp], 350
jle .L828
.L826:
jmp .L829
.L832:
fld TBYTE PTR -192[rbp]
fld TBYTE PTR .LC52[rip]
fmulp st(1), st
fstp TBYTE PTR -192[rbp]
add DWORD PTR -108[rbp], 1
.L829:
fld TBYTE PTR -192[rbp]
fld TBYTE PTR .LC52[rip]
fmulp st(1), st
fld TBYTE PTR -304[rbp]
fucomip st, st(1)
fstp st(0)
jb .L830
cmp DWORD PTR -108[rbp], 350
jle .L832
.L830:
fld TBYTE PTR -304[rbp]
fld TBYTE PTR -192[rbp]
fdivp st(1), st
fstp TBYTE PTR -304[rbp]
jmp .L833
.L834:
fld TBYTE PTR -304[rbp]
fld TBYTE PTR .LC61[rip]
fmulp st(1), st
fstp TBYTE PTR -304[rbp]
sub DWORD PTR -108[rbp], 8
.L833:
fld TBYTE PTR -304[rbp]
fld TBYTE PTR .LC62[rip]
fucomip st, st(1)
fstp st(0)
ja .L834
jmp .L835
.L836:
fld TBYTE PTR -304[rbp]
fld TBYTE PTR .LC52[rip]
fmulp st(1), st
fstp TBYTE PTR -304[rbp]
sub DWORD PTR -108[rbp], 1
.L835:
fld TBYTE PTR -304[rbp]
fld1
fucomip st, st(1)
fstp st(0)
ja .L836
cmp DWORD PTR -108[rbp], 350
jle .L819
lea rax, -384[rbp]
mov QWORD PTR -32[rbp], rax
movzx eax, BYTE PTR -59[rbp]
mov BYTE PTR -384[rbp], al
cmp BYTE PTR -59[rbp], 0
setne al
movzx eax, al
lea rdx, -384[rbp]
add rax, rdx
mov edx, 4
lea rsi, .LC63[rip]
mov rdi, rax
call memcpy@PLT
cmp BYTE PTR -59[rbp], 0
je .L837
mov eax, 4
jmp .L838
.L837:
mov eax, 3
.L838:
mov DWORD PTR -40[rbp], eax
jmp .L805
.L819:
lea rax, -384[rbp]
mov QWORD PTR -32[rbp], rax
cmp BYTE PTR -57[rbp], 1
je .L839
fld QWORD PTR -120[rbp]
fld TBYTE PTR -304[rbp]
faddp st(1), st
fstp TBYTE PTR -304[rbp]
fld TBYTE PTR -304[rbp]
fld TBYTE PTR .LC52[rip]
fxch st(1)
fucomip st, st(1)
fstp st(0)
jb .L839
fld TBYTE PTR -304[rbp]
fld TBYTE PTR .LC64[rip]
fmulp st(1), st
fstp TBYTE PTR -304[rbp]
add DWORD PTR -108[rbp], 1
.L839:
cmp BYTE PTR -57[rbp], 3
jne .L841
cmp BYTE PTR -51[rbp], 0
sete al
mov BYTE PTR -121[rbp], al
cmp DWORD PTR -108[rbp], -4
jl .L842
mov eax, DWORD PTR -108[rbp]
cmp eax, DWORD PTR -36[rbp]
jle .L843
.L842:
mov BYTE PTR -57[rbp], 2
jmp .L845
.L843:
mov eax, DWORD PTR -108[rbp]
sub DWORD PTR -36[rbp], eax
mov BYTE PTR -57[rbp], 1
jmp .L845
.L841:
movzx eax, BYTE PTR -52[rbp]
mov BYTE PTR -121[rbp], al
.L845:
cmp BYTE PTR -57[rbp], 2
jne .L846
mov DWORD PTR -112[rbp], 0
jmp .L847
.L846:
mov eax, DWORD PTR -108[rbp]
mov DWORD PTR -112[rbp], eax
.L847:
mov eax, 0
cmp DWORD PTR -112[rbp], 0
cmovns eax, DWORD PTR -112[rbp]
movsx rdx, eax
mov eax, DWORD PTR -36[rbp]
cdqe
add rdx, rax
mov eax, DWORD PTR -48[rbp]
cdqe
add rax, rdx
cmp rax, 55
jle .L848
mov eax, 0
cmp DWORD PTR -112[rbp], 0
cmovns eax, DWORD PTR -112[rbp]
movsx rdx, eax
mov eax, DWORD PTR -36[rbp]
cdqe
add rdx, rax
mov eax, DWORD PTR -48[rbp]
cdqe
add rax, rdx
add rax, 15
mov rdi, rax
call sqlite3Malloc
mov QWORD PTR -104[rbp], rax
mov rax, QWORD PTR -104[rbp]
mov QWORD PTR -32[rbp], rax
cmp QWORD PTR -32[rbp], 0
jne .L848
mov rax, QWORD PTR -392[rbp]
mov esi, 1
mov rdi, rax
call setStrAccumError
jmp .L688
.L848:
mov rax, QWORD PTR -32[rbp]
mov QWORD PTR -88[rbp], rax
movzx edx, BYTE PTR -52[rbp]
mov eax, edx
sal eax, 2
add eax, edx
add eax, eax
add eax, 16
mov DWORD PTR -308[rbp], eax
cmp DWORD PTR -36[rbp], 0
setg al
mov edx, eax
movzx eax, BYTE PTR -51[rbp]
or edx, eax
movzx eax, BYTE PTR -52[rbp]
or eax, edx
mov BYTE PTR -243[rbp], al
cmp BYTE PTR -59[rbp], 0
je .L849
mov rax, QWORD PTR -32[rbp]
lea rdx, 1[rax]
mov QWORD PTR -32[rbp], rdx
movzx edx, BYTE PTR -59[rbp]
mov BYTE PTR [rax], dl
.L849:
cmp DWORD PTR -112[rbp], 0
jns .L852
mov rax, QWORD PTR -32[rbp]
lea rdx, 1[rax]
mov QWORD PTR -32[rbp], rdx
mov BYTE PTR [rax], 48
jmp .L851
.L853:
mov rbx, QWORD PTR -32[rbp]
lea rax, 1[rbx]
mov QWORD PTR -32[rbp], rax
lea rdx, -308[rbp]
lea rax, -304[rbp]
mov rsi, rdx
mov rdi, rax
call et_getdigit
mov BYTE PTR [rbx], al
sub DWORD PTR -112[rbp], 1
.L852:
cmp DWORD PTR -112[rbp], 0
jns .L853
.L851:
cmp BYTE PTR -243[rbp], 0
je .L854
mov rax, QWORD PTR -32[rbp]
lea rdx, 1[rax]
mov QWORD PTR -32[rbp], rdx
mov BYTE PTR [rax], 46
.L854:
add DWORD PTR -112[rbp], 1
jmp .L855
.L856:
mov rax, QWORD PTR -32[rbp]
lea rdx, 1[rax]
mov QWORD PTR -32[rbp], rdx
mov BYTE PTR [rax], 48
sub DWORD PTR -36[rbp], 1
add DWORD PTR -112[rbp], 1
.L855:
cmp DWORD PTR -112[rbp], 0
js .L856
jmp .L857
.L858:
mov rbx, QWORD PTR -32[rbp]
lea rax, 1[rbx]
mov QWORD PTR -32[rbp], rax
lea rdx, -308[rbp]
lea rax, -304[rbp]
mov rsi, rdx
mov rdi, rax
call et_getdigit
mov BYTE PTR [rbx], al
.L857:
mov eax, DWORD PTR -36[rbp]
lea edx, -1[rax]
mov DWORD PTR -36[rbp], edx
test eax, eax
jg .L858
cmp BYTE PTR -121[rbp], 0
je .L859
cmp BYTE PTR -243[rbp], 0
je .L859
jmp .L860
.L861:
sub QWORD PTR -32[rbp], 1
mov rax, QWORD PTR -32[rbp]
mov BYTE PTR [rax], 0
.L860:
mov rax, QWORD PTR -32[rbp]
sub rax, 1
movzx eax, BYTE PTR [rax]
cmp al, 48
je .L861
mov rax, QWORD PTR -32[rbp]
sub rax, 1
movzx eax, BYTE PTR [rax]
cmp al, 46
jne .L859
cmp BYTE PTR -52[rbp], 0
je .L862
mov rax, QWORD PTR -32[rbp]
lea rdx, 1[rax]
mov QWORD PTR -32[rbp], rdx
mov BYTE PTR [rax], 48
jmp .L859
.L862:
sub QWORD PTR -32[rbp], 1
mov rax, QWORD PTR -32[rbp]
mov BYTE PTR [rax], 0
.L859:
cmp BYTE PTR -57[rbp], 2
jne .L863
mov rax, QWORD PTR -32[rbp]
lea rdx, 1[rax]
mov QWORD PTR -32[rbp], rdx
mov rdx, QWORD PTR -80[rbp]
movzx edx, BYTE PTR 4[rdx]
movzx edx, dl
movsx rcx, edx
lea rdx, aDigits[rip]
movzx edx, BYTE PTR [rcx+rdx]
mov BYTE PTR [rax], dl
cmp DWORD PTR -108[rbp], 0
jns .L864
mov rax, QWORD PTR -32[rbp]
lea rdx, 1[rax]
mov QWORD PTR -32[rbp], rdx
mov BYTE PTR [rax], 45
neg DWORD PTR -108[rbp]
jmp .L865
.L864:
mov rax, QWORD PTR -32[rbp]
lea rdx, 1[rax]
mov QWORD PTR -32[rbp], rdx
mov BYTE PTR [rax], 43
.L865:
cmp DWORD PTR -108[rbp], 99
jle .L866
mov rcx, QWORD PTR -32[rbp]
lea rax, 1[rcx]
mov QWORD PTR -32[rbp], rax
mov esi, DWORD PTR -108[rbp]
mov edx, 1374389535
mov eax, esi
imul edx
sar edx, 5
mov eax, esi
sar eax, 31
sub edx, eax
mov eax, edx
add eax, 48
mov BYTE PTR [rcx], al
mov ecx, DWORD PTR -108[rbp]
mov edx, 1374389535
mov eax, ecx
imul edx
sar edx, 5
mov eax, ecx
sar eax, 31
sub edx, eax
mov eax, edx
imul eax, eax, 100
sub ecx, eax
mov eax, ecx
mov DWORD PTR -108[rbp], eax
.L866:
mov rcx, QWORD PTR -32[rbp]
lea rax, 1[rcx]
mov QWORD PTR -32[rbp], rax
mov esi, DWORD PTR -108[rbp]
mov edx, 1717986919
mov eax, esi
imul edx
sar edx, 2
mov eax, esi
sar eax, 31
sub edx, eax
mov eax, edx
add eax, 48
mov BYTE PTR [rcx], al
mov rsi, QWORD PTR -32[rbp]
lea rax, 1[rsi]
mov QWORD PTR -32[rbp], rax
mov ecx, DWORD PTR -108[rbp]
mov edx, 1717986919
mov eax, ecx
imul edx
sar edx, 2
mov eax, ecx
sar eax, 31
sub edx, eax
mov eax, edx
sal eax, 2
add eax, edx
add eax, eax
sub ecx, eax
mov edx, ecx
mov eax, edx
add eax, 48
mov BYTE PTR [rsi], al
.L863:
mov rax, QWORD PTR -32[rbp]
mov BYTE PTR [rax], 0
mov rdx, QWORD PTR -32[rbp]
mov rax, QWORD PTR -88[rbp]
sub rdx, rax
mov rax, rdx
mov DWORD PTR -40[rbp], eax
mov rax, QWORD PTR -88[rbp]
mov QWORD PTR -32[rbp], rax
cmp BYTE PTR -53[rbp], 0
je .L941
cmp BYTE PTR -49[rbp], 0
jne .L941
mov eax, DWORD PTR -40[rbp]
cmp eax, DWORD PTR -48[rbp]
jge .L941
mov eax, DWORD PTR -48[rbp]
sub eax, DWORD PTR -40[rbp]
mov DWORD PTR -200[rbp], eax
mov eax, DWORD PTR -48[rbp]
mov DWORD PTR -196[rbp], eax
jmp .L868
.L869:
mov eax, DWORD PTR -196[rbp]
movsx rdx, eax
mov rax, QWORD PTR -32[rbp]
add rdx, rax
mov eax, DWORD PTR -196[rbp]
sub eax, DWORD PTR -200[rbp]
movsx rcx, eax
mov rax, QWORD PTR -32[rbp]
add rax, rcx
movzx eax, BYTE PTR [rax]
mov BYTE PTR [rdx], al
sub DWORD PTR -196[rbp], 1
.L868:
mov eax, DWORD PTR -196[rbp]
cmp eax, DWORD PTR -200[rbp]
jge .L869
cmp BYTE PTR -59[rbp], 0
setne al
movzx eax, al
mov DWORD PTR -196[rbp], eax
jmp .L870
.L871:
mov eax, DWORD PTR -196[rbp]
lea edx, 1[rax]
mov DWORD PTR -196[rbp], edx
movsx rdx, eax
mov rax, QWORD PTR -32[rbp]
add rax, rdx
mov BYTE PTR [rax], 48
.L870:
mov eax, DWORD PTR -200[rbp]
lea edx, -1[rax]
mov DWORD PTR -200[rbp], edx
test eax, eax
jne .L871
mov eax, DWORD PTR -48[rbp]
mov DWORD PTR -40[rbp], eax
jmp .L941
.L748:
cmp BYTE PTR -58[rbp], 0
jne .L872
mov rax, QWORD PTR -408[rbp]
mov eax, DWORD PTR [rax]
cmp eax, 47
ja .L873
mov rax, QWORD PTR -408[rbp]
mov rdx, QWORD PTR 16[rax]
mov rax, QWORD PTR -408[rbp]
mov eax, DWORD PTR [rax]
mov eax, eax
add rax, rdx
mov rdx, QWORD PTR -408[rbp]
mov edx, DWORD PTR [rdx]
lea ecx, 8[rdx]
mov rdx, QWORD PTR -408[rbp]
mov DWORD PTR [rdx], ecx
jmp .L874
.L873:
mov rax, QWORD PTR -408[rbp]
mov rax, QWORD PTR 8[rax]
lea rcx, 8[rax]
mov rdx, QWORD PTR -408[rbp]
mov QWORD PTR 8[rdx], rcx
.L874:
mov rax, QWORD PTR [rax]
mov rdx, QWORD PTR -392[rbp]
mov edx, DWORD PTR 24[rdx]
mov DWORD PTR [rax], edx
.L872:
mov DWORD PTR -48[rbp], 0
mov eax, DWORD PTR -48[rbp]
mov DWORD PTR -40[rbp], eax
jmp .L805
.L750:
mov BYTE PTR -384[rbp], 37
lea rax, -384[rbp]
mov QWORD PTR -32[rbp], rax
mov DWORD PTR -40[rbp], 1
jmp .L805
.L751:
cmp BYTE PTR -58[rbp], 0
je .L875
mov rax, QWORD PTR -136[rbp]
mov rdi, rax
call getTextArg
mov QWORD PTR -32[rbp], rax
cmp QWORD PTR -32[rbp], 0
je .L876
mov rax, QWORD PTR -32[rbp]
movzx eax, BYTE PTR [rax]
movsx eax, al
jmp .L877
.L876:
mov eax, 0
.L877:
mov DWORD PTR -20[rbp], eax
jmp .L878
.L875:
mov rax, QWORD PTR -408[rbp]
mov eax, DWORD PTR [rax]
cmp eax, 47
ja .L879
mov rax, QWORD PTR -408[rbp]
mov rdx, QWORD PTR 16[rax]
mov rax, QWORD PTR -408[rbp]
mov eax, DWORD PTR [rax]
mov eax, eax
add rax, rdx
mov rdx, QWORD PTR -408[rbp]
mov edx, DWORD PTR [rdx]
lea ecx, 8[rdx]
mov rdx, QWORD PTR -408[rbp]
mov DWORD PTR [rdx], ecx
jmp .L880
.L879:
mov rax, QWORD PTR -408[rbp]
mov rax, QWORD PTR 8[rax]
lea rcx, 8[rax]
mov rdx, QWORD PTR -408[rbp]
mov QWORD PTR 8[rdx], rcx
.L880:
mov eax, DWORD PTR [rax]
mov DWORD PTR -20[rbp], eax
.L878:
cmp DWORD PTR -36[rbp], 1
jle .L881
mov eax, DWORD PTR -36[rbp]
sub eax, 1
sub DWORD PTR -48[rbp], eax
cmp DWORD PTR -48[rbp], 1
jle .L882
cmp BYTE PTR -49[rbp], 0
jne .L882
mov eax, DWORD PTR -48[rbp]
lea ecx, -1[rax]
mov rax, QWORD PTR -392[rbp]
mov edx, 32
mov esi, ecx
mov rdi, rax
call sqlite3AppendChar
mov DWORD PTR -48[rbp], 0
.L882:
mov eax, DWORD PTR -20[rbp]
movsx edx, al
mov eax, DWORD PTR -36[rbp]
lea ecx, -1[rax]
mov rax, QWORD PTR -392[rbp]
mov esi, ecx
mov rdi, rax
call sqlite3AppendChar
.L881:
mov DWORD PTR -40[rbp], 1
mov eax, DWORD PTR -20[rbp]
mov BYTE PTR -384[rbp], al
lea rax, -384[rbp]
mov QWORD PTR -32[rbp], rax
jmp .L805
.L749:
cmp BYTE PTR -58[rbp], 0
je .L883
mov rax, QWORD PTR -136[rbp]
mov rdi, rax
call getTextArg
mov QWORD PTR -32[rbp], rax
mov BYTE PTR -57[rbp], 5
jmp .L884
.L883:
mov rax, QWORD PTR -408[rbp]
mov eax, DWORD PTR [rax]
cmp eax, 47
ja .L885
mov rax, QWORD PTR -408[rbp]
mov rdx, QWORD PTR 16[rax]
mov rax, QWORD PTR -408[rbp]
mov eax, DWORD PTR [rax]
mov eax, eax
add rax, rdx
mov rdx, QWORD PTR -408[rbp]
mov edx, DWORD PTR [rdx]
lea ecx, 8[rdx]
mov rdx, QWORD PTR -408[rbp]
mov DWORD PTR [rdx], ecx
jmp .L886
.L885:
mov rax, QWORD PTR -408[rbp]
mov rax, QWORD PTR 8[rax]
lea rcx, 8[rax]
mov rdx, QWORD PTR -408[rbp]
mov QWORD PTR 8[rdx], rcx
.L886:
mov rax, QWORD PTR [rax]
mov QWORD PTR -32[rbp], rax
.L884:
cmp QWORD PTR -32[rbp], 0
jne .L887
lea rax, .LC65[rip]
mov QWORD PTR -32[rbp], rax
jmp .L888
.L887:
cmp BYTE PTR -57[rbp], 6
jne .L888
mov rax, QWORD PTR -32[rbp]
mov QWORD PTR -104[rbp], rax
.L888:
cmp DWORD PTR -36[rbp], 0
js .L889
mov DWORD PTR -40[rbp], 0
jmp .L890
.L892:
add DWORD PTR -40[rbp], 1
.L890:
mov eax, DWORD PTR -40[rbp]
cmp eax, DWORD PTR -36[rbp]
jge .L942
mov eax, DWORD PTR -40[rbp]
movsx rdx, eax
mov rax, QWORD PTR -32[rbp]
add rax, rdx
movzx eax, BYTE PTR [rax]
test al, al
jne .L892
jmp .L942
.L889:
mov rax, QWORD PTR -32[rbp]
mov rdi, rax
call strlen@PLT
and eax, 2147483647
mov DWORD PTR -40[rbp], eax
jmp .L942
.L752:
cmp BYTE PTR -57[rbp], 14
jne .L893
mov eax, 34
jmp .L894
.L893:
mov eax, 39
.L894:
mov BYTE PTR -244[rbp], al
cmp BYTE PTR -58[rbp], 0
je .L895
mov rax, QWORD PTR -136[rbp]
mov rdi, rax
call getTextArg
mov QWORD PTR -224[rbp], rax
jmp .L896
.L895:
mov rax, QWORD PTR -408[rbp]
mov eax, DWORD PTR [rax]
cmp eax, 47
ja .L897
mov rax, QWORD PTR -408[rbp]
mov rdx, QWORD PTR 16[rax]
mov rax, QWORD PTR -408[rbp]
mov eax, DWORD PTR [rax]
mov eax, eax
add rax, rdx
mov rdx, QWORD PTR -408[rbp]
mov edx, DWORD PTR [rdx]
lea ecx, 8[rdx]
mov rdx, QWORD PTR -408[rbp]
mov DWORD PTR [rdx], ecx
jmp .L898
.L897:
mov rax, QWORD PTR -408[rbp]
mov rax, QWORD PTR 8[rax]
lea rcx, 8[rax]
mov rdx, QWORD PTR -408[rbp]
mov QWORD PTR 8[rdx], rcx
.L898:
mov rax, QWORD PTR [rax]
mov QWORD PTR -224[rbp], rax
.L896:
cmp QWORD PTR -224[rbp], 0
sete al
movzx eax, al
mov DWORD PTR -248[rbp], eax
cmp DWORD PTR -248[rbp], 0
je .L899
cmp BYTE PTR -57[rbp], 10
jne .L900
lea rax, .LC66[rip]
jmp .L901
.L900:
lea rax, .LC67[rip]
.L901:
mov QWORD PTR -224[rbp], rax
.L899:
mov eax, DWORD PTR -36[rbp]
mov DWORD PTR -212[rbp], eax
mov DWORD PTR -216[rbp], 0
mov eax, DWORD PTR -216[rbp]
mov DWORD PTR -204[rbp], eax
jmp .L902
.L905:
movzx eax, BYTE PTR -249[rbp]
cmp al, BYTE PTR -244[rbp]
jne .L903
add DWORD PTR -216[rbp], 1
.L903:
add DWORD PTR -204[rbp], 1
sub DWORD PTR -212[rbp], 1
.L902:
cmp DWORD PTR -212[rbp], 0
je .L904
mov eax, DWORD PTR -204[rbp]
movsx rdx, eax
mov rax, QWORD PTR -224[rbp]
add rax, rdx
movzx eax, BYTE PTR [rax]
mov BYTE PTR -249[rbp], al
cmp BYTE PTR -249[rbp], 0
jne .L905
.L904:
cmp DWORD PTR -248[rbp], 0
jne .L906
cmp BYTE PTR -57[rbp], 10
jne .L906
mov eax, 1
jmp .L907
.L906:
mov eax, 0
.L907:
mov DWORD PTR -256[rbp], eax
mov eax, DWORD PTR -204[rbp]
add eax, 3
add DWORD PTR -216[rbp], eax
cmp DWORD PTR -216[rbp], 70
jle .L908
mov eax, DWORD PTR -216[rbp]
cdqe
mov rdi, rax
call sqlite3Malloc
mov QWORD PTR -104[rbp], rax
mov rax, QWORD PTR -104[rbp]
mov QWORD PTR -32[rbp], rax
cmp QWORD PTR -32[rbp], 0
jne .L909
mov rax, QWORD PTR -392[rbp]
mov esi, 1
mov rdi, rax
call setStrAccumError
jmp .L688
.L908:
lea rax, -384[rbp]
mov QWORD PTR -32[rbp], rax
.L909:
mov DWORD PTR -208[rbp], 0
cmp DWORD PTR -256[rbp], 0
je .L910
mov eax, DWORD PTR -208[rbp]
lea edx, 1[rax]
mov DWORD PTR -208[rbp], edx
movsx rdx, eax
mov rax, QWORD PTR -32[rbp]
add rdx, rax
movzx eax, BYTE PTR -244[rbp]
mov BYTE PTR [rdx], al
.L910:
mov eax, DWORD PTR -204[rbp]
mov DWORD PTR -212[rbp], eax
mov DWORD PTR -204[rbp], 0
jmp .L911
.L913:
mov eax, DWORD PTR -208[rbp]
lea edx, 1[rax]
mov DWORD PTR -208[rbp], edx
movsx rdx, eax
mov rax, QWORD PTR -32[rbp]
add rdx, rax
mov eax, DWORD PTR -204[rbp]
movsx rcx, eax
mov rax, QWORD PTR -224[rbp]
add rax, rcx
movzx eax, BYTE PTR [rax]
mov BYTE PTR -249[rbp], al
movzx eax, BYTE PTR -249[rbp]
mov BYTE PTR [rdx], al
movzx eax, BYTE PTR -249[rbp]
cmp al, BYTE PTR -244[rbp]
jne .L912
mov eax, DWORD PTR -208[rbp]
lea edx, 1[rax]
mov DWORD PTR -208[rbp], edx
movsx rdx, eax
mov rax, QWORD PTR -32[rbp]
add rdx, rax
movzx eax, BYTE PTR -249[rbp]
mov BYTE PTR [rdx], al
.L912:
add DWORD PTR -204[rbp], 1
.L911:
mov eax, DWORD PTR -204[rbp]
cmp eax, DWORD PTR -212[rbp]
jl .L913
cmp DWORD PTR -256[rbp], 0
je .L914
mov eax, DWORD PTR -208[rbp]
lea edx, 1[rax]
mov DWORD PTR -208[rbp], edx
movsx rdx, eax
mov rax, QWORD PTR -32[rbp]
add rdx, rax
movzx eax, BYTE PTR -244[rbp]
mov BYTE PTR [rdx], al
.L914:
mov eax, DWORD PTR -208[rbp]
movsx rdx, eax
mov rax, QWORD PTR -32[rbp]
add rax, rdx
mov BYTE PTR [rax], 0
mov eax, DWORD PTR -208[rbp]
mov DWORD PTR -40[rbp], eax
jmp .L805
.L753:
mov rax, QWORD PTR -392[rbp]
movzx eax, BYTE PTR 29[rax]
movzx eax, al
and eax, 1
test eax, eax
je .L943
mov rax, QWORD PTR -408[rbp]
mov eax, DWORD PTR [rax]
cmp eax, 47
ja .L916
mov rax, QWORD PTR -408[rbp]
mov rdx, QWORD PTR 16[rax]
mov rax, QWORD PTR -408[rbp]
mov eax, DWORD PTR [rax]
mov eax, eax
add rax, rdx
mov rdx, QWORD PTR -408[rbp]
mov edx, DWORD PTR [rdx]
lea ecx, 8[rdx]
mov rdx, QWORD PTR -408[rbp]
mov DWORD PTR [rdx], ecx
jmp .L917
.L916:
mov rax, QWORD PTR -408[rbp]
mov rax, QWORD PTR 8[rax]
lea rcx, 8[rax]
mov rdx, QWORD PTR -408[rbp]
mov QWORD PTR 8[rdx], rcx
.L917:
mov rax, QWORD PTR [rax]
mov QWORD PTR -264[rbp], rax
cmp QWORD PTR -264[rbp], 0
je .L918
mov rax, QWORD PTR -264[rbp]
mov eax, DWORD PTR 8[rax]
test eax, eax
je .L918
mov rax, QWORD PTR -264[rbp]
mov eax, DWORD PTR 8[rax]
mov edx, eax
mov rax, QWORD PTR -264[rbp]
mov rcx, QWORD PTR [rax]
mov rax, QWORD PTR -392[rbp]
mov rsi, rcx
mov rdi, rax
call sqlite3StrAccumAppend
.L918:
mov DWORD PTR -48[rbp], 0
mov eax, DWORD PTR -48[rbp]
mov DWORD PTR -40[rbp], eax
jmp .L805
.L754:
mov rax, QWORD PTR -392[rbp]
movzx eax, BYTE PTR 29[rax]
movzx eax, al
and eax, 1
test eax, eax
je .L944
mov rax, QWORD PTR -408[rbp]
mov eax, DWORD PTR [rax]
cmp eax, 47
ja .L920
mov rax, QWORD PTR -408[rbp]
mov rdx, QWORD PTR 16[rax]
mov rax, QWORD PTR -408[rbp]
mov eax, DWORD PTR [rax]
mov eax, eax
add rax, rdx
mov rdx, QWORD PTR -408[rbp]
mov edx, DWORD PTR [rdx]
lea ecx, 8[rdx]
mov rdx, QWORD PTR -408[rbp]
mov DWORD PTR [rdx], ecx
jmp .L921
.L920:
mov rax, QWORD PTR -408[rbp]
mov rax, QWORD PTR 8[rax]
lea rcx, 8[rax]
mov rdx, QWORD PTR -408[rbp]
mov QWORD PTR 8[rdx], rcx
.L921:
mov rax, QWORD PTR [rax]
mov QWORD PTR -272[rbp], rax
mov rax, QWORD PTR -408[rbp]
mov eax, DWORD PTR [rax]
cmp eax, 47
ja .L922
mov rax, QWORD PTR -408[rbp]
mov rdx, QWORD PTR 16[rax]
mov rax, QWORD PTR -408[rbp]
mov eax, DWORD PTR [rax]
mov eax, eax
add rax, rdx
mov rdx, QWORD PTR -408[rbp]
mov edx, DWORD PTR [rdx]
lea ecx, 8[rdx]
mov rdx, QWORD PTR -408[rbp]
mov DWORD PTR [rdx], ecx
jmp .L923
.L922:
mov rax, QWORD PTR -408[rbp]
mov rax, QWORD PTR 8[rax]
lea rcx, 8[rax]
mov rdx, QWORD PTR -408[rbp]
mov QWORD PTR 8[rdx], rcx
.L923:
mov eax, DWORD PTR [rax]
mov DWORD PTR -276[rbp], eax
mov eax, DWORD PTR -276[rbp]
movsx rdx, eax
mov rax, rdx
sal rax, 3
sub rax, rdx
sal rax, 4
mov rdx, QWORD PTR -272[rbp]
add rax, rdx
add rax, 8
mov QWORD PTR -288[rbp], rax
mov rax, QWORD PTR -288[rbp]
mov rax, QWORD PTR 8[rax]
test rax, rax
je .L924
mov rax, QWORD PTR -288[rbp]
mov rdx, QWORD PTR 8[rax]
mov rax, QWORD PTR -392[rbp]
mov rsi, rdx
mov rdi, rax
call sqlite3StrAccumAppendAll
mov rax, QWORD PTR -392[rbp]
mov edx, 1
lea rsi, .LC68[rip]
mov rdi, rax
call sqlite3StrAccumAppend
.L924:
mov rax, QWORD PTR -288[rbp]
mov rdx, QWORD PTR 16[rax]
mov rax, QWORD PTR -392[rbp]
mov rsi, rdx
mov rdi, rax
call sqlite3StrAccumAppendAll
mov DWORD PTR -48[rbp], 0
mov eax, DWORD PTR -48[rbp]
mov DWORD PTR -40[rbp], eax
jmp .L805
.L941:
nop
jmp .L805
.L942:
nop
.L805:
mov eax, DWORD PTR -40[rbp]
sub DWORD PTR -48[rbp], eax
cmp DWORD PTR -48[rbp], 0
jle .L925
cmp BYTE PTR -49[rbp], 0
jne .L926
mov ecx, DWORD PTR -48[rbp]
mov rax, QWORD PTR -392[rbp]
mov edx, 32
mov esi, ecx
mov rdi, rax
call sqlite3AppendChar
.L926:
mov edx, DWORD PTR -40[rbp]
mov rcx, QWORD PTR -32[rbp]
mov rax, QWORD PTR -392[rbp]
mov rsi, rcx
mov rdi, rax
call sqlite3StrAccumAppend
cmp BYTE PTR -49[rbp], 0
je .L928
mov ecx, DWORD PTR -48[rbp]
mov rax, QWORD PTR -392[rbp]
mov edx, 32
mov esi, ecx
mov rdi, rax
call sqlite3AppendChar
jmp .L928
.L925:
mov edx, DWORD PTR -40[rbp]
mov rcx, QWORD PTR -32[rbp]
mov rax, QWORD PTR -392[rbp]
mov rsi, rcx
mov rdi, rax
call sqlite3StrAccumAppend
.L928:
cmp QWORD PTR -104[rbp], 0
je .L929
mov rax, QWORD PTR -392[rbp]
mov rax, QWORD PTR [rax]
mov rdx, QWORD PTR -104[rbp]
mov rsi, rdx
mov rdi, rax
call sqlite3DbFree
mov QWORD PTR -104[rbp], 0
.L929:
add QWORD PTR -400[rbp], 1
.L693:
mov rax, QWORD PTR -400[rbp]
movzx eax, BYTE PTR [rax]
movsx eax, al
mov DWORD PTR -20[rbp], eax
cmp DWORD PTR -20[rbp], 0
jne .L930
jmp .L688
.L939:
nop
jmp .L688
.L940:
nop
jmp .L688
.L943:
nop
jmp .L688
.L944:
nop
.L688:
add rsp, 424
pop rbx
pop rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE160:
.size sqlite3VXPrintf, .-sqlite3VXPrintf
.type sqlite3StrAccumEnlarge, @function
sqlite3StrAccumEnlarge:
.LFB161:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 48
mov QWORD PTR -40[rbp], rdi
mov DWORD PTR -44[rbp], esi
mov rax, QWORD PTR -40[rbp]
movzx eax, BYTE PTR 28[rax]
test al, al
je .L946
mov eax, 0
jmp .L947
.L946:
mov rax, QWORD PTR -40[rbp]
mov eax, DWORD PTR 20[rax]
test eax, eax
jne .L948
mov rax, QWORD PTR -40[rbp]
mov edx, DWORD PTR 16[rax]
mov rax, QWORD PTR -40[rbp]
mov eax, DWORD PTR 24[rax]
sub edx, eax
mov eax, edx
sub eax, 1
mov DWORD PTR -44[rbp], eax
mov rax, QWORD PTR -40[rbp]
mov esi, 2
mov rdi, rax
call setStrAccumError
mov eax, DWORD PTR -44[rbp]
jmp .L947
.L948:
mov rax, QWORD PTR -40[rbp]
movzx eax, BYTE PTR 29[rax]
movzx eax, al
and eax, 4
test eax, eax
je .L949
mov rax, QWORD PTR -40[rbp]
mov rax, QWORD PTR 8[rax]
jmp .L950
.L949:
mov eax, 0
.L950:
mov QWORD PTR -24[rbp], rax
mov rax, QWORD PTR -40[rbp]
mov eax, DWORD PTR 24[rax]
mov eax, eax
mov QWORD PTR -16[rbp], rax
mov eax, DWORD PTR -44[rbp]
add eax, 1
cdqe
add QWORD PTR -16[rbp], rax
mov rax, QWORD PTR -40[rbp]
mov eax, DWORD PTR 24[rax]
mov edx, eax
mov rax, QWORD PTR -16[rbp]
add rdx, rax
mov rax, QWORD PTR -40[rbp]
mov eax, DWORD PTR 20[rax]
mov eax, eax
cmp rdx, rax
jg .L951
mov rax, QWORD PTR -40[rbp]
mov eax, DWORD PTR 24[rax]
mov eax, eax
add QWORD PTR -16[rbp], rax
.L951:
mov rax, QWORD PTR -40[rbp]
mov eax, DWORD PTR 20[rax]
mov eax, eax
cmp rax, QWORD PTR -16[rbp]
jge .L952
mov rax, QWORD PTR -40[rbp]
mov rdi, rax
call sqlite3StrAccumReset
mov rax, QWORD PTR -40[rbp]
mov esi, 2
mov rdi, rax
call setStrAccumError
mov eax, 0
jmp .L947
.L952:
mov rax, QWORD PTR -16[rbp]
mov edx, eax
mov rax, QWORD PTR -40[rbp]
mov DWORD PTR 16[rax], edx
mov rax, QWORD PTR -40[rbp]
mov rax, QWORD PTR [rax]
test rax, rax
je .L953
mov rax, QWORD PTR -40[rbp]
mov eax, DWORD PTR 16[rax]
mov edx, eax
mov rax, QWORD PTR -40[rbp]
mov rax, QWORD PTR [rax]
mov rcx, QWORD PTR -24[rbp]
mov rsi, rcx
mov rdi, rax
call sqlite3DbRealloc
mov QWORD PTR -8[rbp], rax
jmp .L954
.L953:
mov rax, QWORD PTR -40[rbp]
mov eax, DWORD PTR 16[rax]
mov edx, eax
mov rax, QWORD PTR -24[rbp]
mov rsi, rdx
mov rdi, rax
call sqlite3_realloc64
mov QWORD PTR -8[rbp], rax
.L954:
cmp QWORD PTR -8[rbp], 0
je .L955
mov rax, QWORD PTR -40[rbp]
movzx eax, BYTE PTR 29[rax]
movzx eax, al
and eax, 4
test eax, eax
jne .L956
mov rax, QWORD PTR -40[rbp]
mov eax, DWORD PTR 24[rax]
test eax, eax
je .L956
mov rax, QWORD PTR -40[rbp]
mov eax, DWORD PTR 24[rax]
mov edx, eax
mov rax, QWORD PTR -40[rbp]
mov rcx, QWORD PTR 8[rax]
mov rax, QWORD PTR -8[rbp]
mov rsi, rcx
mov rdi, rax
call memcpy@PLT
.L956:
mov rax, QWORD PTR -40[rbp]
mov rdx, QWORD PTR -8[rbp]
mov QWORD PTR 8[rax], rdx
mov rax, QWORD PTR -40[rbp]
mov rax, QWORD PTR [rax]
mov rdx, QWORD PTR -8[rbp]
mov rsi, rdx
mov rdi, rax
call sqlite3DbMallocSize
mov edx, eax
mov rax, QWORD PTR -40[rbp]
mov DWORD PTR 16[rax], edx
mov rax, QWORD PTR -40[rbp]
movzx eax, BYTE PTR 29[rax]
or eax, 4
mov edx, eax
mov rax, QWORD PTR -40[rbp]
mov BYTE PTR 29[rax], dl
mov eax, DWORD PTR -44[rbp]
jmp .L947
.L955:
mov rax, QWORD PTR -40[rbp]
mov rdi, rax
call sqlite3StrAccumReset
mov rax, QWORD PTR -40[rbp]
mov esi, 1
mov rdi, rax
call setStrAccumError
mov eax, 0
.L947:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE161:
.size sqlite3StrAccumEnlarge, .-sqlite3StrAccumEnlarge
.type sqlite3AppendChar, @function
sqlite3AppendChar:
.LFB162:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 16
mov QWORD PTR -8[rbp], rdi
mov DWORD PTR -12[rbp], esi
mov eax, edx
mov BYTE PTR -16[rbp], al
mov rax, QWORD PTR -8[rbp]
mov eax, DWORD PTR 24[rax]
mov edx, eax
mov eax, DWORD PTR -12[rbp]
cdqe
add rdx, rax
mov rax, QWORD PTR -8[rbp]
mov eax, DWORD PTR 16[rax]
mov eax, eax
cmp rdx, rax
jl .L961
mov edx, DWORD PTR -12[rbp]
mov rax, QWORD PTR -8[rbp]
mov esi, edx
mov rdi, rax
call sqlite3StrAccumEnlarge
mov DWORD PTR -12[rbp], eax
cmp DWORD PTR -12[rbp], 0
jle .L963
jmp .L961
.L962:
mov rax, QWORD PTR -8[rbp]
mov rsi, QWORD PTR 8[rax]
mov rax, QWORD PTR -8[rbp]
mov eax, DWORD PTR 24[rax]
lea ecx, 1[rax]
mov rdx, QWORD PTR -8[rbp]
mov DWORD PTR 24[rdx], ecx
mov eax, eax
lea rdx, [rsi+rax]
movzx eax, BYTE PTR -16[rbp]
mov BYTE PTR [rdx], al
.L961:
mov eax, DWORD PTR -12[rbp]
lea edx, -1[rax]
mov DWORD PTR -12[rbp], edx
test eax, eax
jg .L962
jmp .L958
.L963:
nop
.L958:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE162:
.size sqlite3AppendChar, .-sqlite3AppendChar
.type enlargeAndAppend, @function
enlargeAndAppend:
.LFB163:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 32
mov QWORD PTR -8[rbp], rdi
mov QWORD PTR -16[rbp], rsi
mov DWORD PTR -20[rbp], edx
mov edx, DWORD PTR -20[rbp]
mov rax, QWORD PTR -8[rbp]
mov esi, edx
mov rdi, rax
call sqlite3StrAccumEnlarge
mov DWORD PTR -20[rbp], eax
cmp DWORD PTR -20[rbp], 0
jle .L966
mov eax, DWORD PTR -20[rbp]
movsx rdx, eax
mov rax, QWORD PTR -8[rbp]
mov rcx, QWORD PTR 8[rax]
mov rax, QWORD PTR -8[rbp]
mov eax, DWORD PTR 24[rax]
mov eax, eax
add rcx, rax
mov rax, QWORD PTR -16[rbp]
mov rsi, rax
mov rdi, rcx
call memcpy@PLT
mov rax, QWORD PTR -8[rbp]
mov edx, DWORD PTR 24[rax]
mov eax, DWORD PTR -20[rbp]
add edx, eax
mov rax, QWORD PTR -8[rbp]
mov DWORD PTR 24[rax], edx
.L966:
nop
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE163:
.size enlargeAndAppend, .-enlargeAndAppend
.type sqlite3StrAccumAppend, @function
sqlite3StrAccumAppend:
.LFB164:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 32
mov QWORD PTR -8[rbp], rdi
mov QWORD PTR -16[rbp], rsi
mov DWORD PTR -20[rbp], edx
mov rax, QWORD PTR -8[rbp]
mov edx, DWORD PTR 24[rax]
mov eax, DWORD PTR -20[rbp]
add edx, eax
mov rax, QWORD PTR -8[rbp]
mov eax, DWORD PTR 16[rax]
cmp edx, eax
jb .L968
mov edx, DWORD PTR -20[rbp]
mov rcx, QWORD PTR -16[rbp]
mov rax, QWORD PTR -8[rbp]
mov rsi, rcx
mov rdi, rax
call enlargeAndAppend
jmp .L970
.L968:
cmp DWORD PTR -20[rbp], 0
je .L970
mov rax, QWORD PTR -8[rbp]
mov edx, DWORD PTR 24[rax]
mov eax, DWORD PTR -20[rbp]
add edx, eax
mov rax, QWORD PTR -8[rbp]
mov DWORD PTR 24[rax], edx
mov eax, DWORD PTR -20[rbp]
movsx rdx, eax
mov rax, QWORD PTR -8[rbp]
mov rcx, QWORD PTR 8[rax]
mov rax, QWORD PTR -8[rbp]
mov esi, DWORD PTR 24[rax]
mov eax, DWORD PTR -20[rbp]
sub esi, eax
mov eax, esi
mov eax, eax
add rcx, rax
mov rax, QWORD PTR -16[rbp]
mov rsi, rax
mov rdi, rcx
call memcpy@PLT
.L970:
nop
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE164:
.size sqlite3StrAccumAppend, .-sqlite3StrAccumAppend
.type sqlite3StrAccumAppendAll, @function
sqlite3StrAccumAppendAll:
.LFB165:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 16
mov QWORD PTR -8[rbp], rdi
mov QWORD PTR -16[rbp], rsi
mov rax, QWORD PTR -16[rbp]
mov rdi, rax
call sqlite3Strlen30
mov edx, eax
mov rcx, QWORD PTR -16[rbp]
mov rax, QWORD PTR -8[rbp]
mov rsi, rcx
mov rdi, rax
call sqlite3StrAccumAppend
nop
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE165:
.size sqlite3StrAccumAppendAll, .-sqlite3StrAccumAppendAll
.type strAccumFinishRealloc, @function
strAccumFinishRealloc:
.LFB166:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 32
mov QWORD PTR -24[rbp], rdi
mov rax, QWORD PTR -24[rbp]
mov eax, DWORD PTR 24[rax]
add eax, 1
mov edx, eax
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR [rax]
mov rsi, rdx
mov rdi, rax
call sqlite3DbMallocRaw
mov QWORD PTR -8[rbp], rax
cmp QWORD PTR -8[rbp], 0
je .L973
mov rax, QWORD PTR -24[rbp]
mov eax, DWORD PTR 24[rax]
add eax, 1
mov edx, eax
mov rax, QWORD PTR -24[rbp]
mov rcx, QWORD PTR 8[rax]
mov rax, QWORD PTR -8[rbp]
mov rsi, rcx
mov rdi, rax
call memcpy@PLT
mov rax, QWORD PTR -24[rbp]
movzx eax, BYTE PTR 29[rax]
or eax, 4
mov edx, eax
mov rax, QWORD PTR -24[rbp]
mov BYTE PTR 29[rax], dl
jmp .L974
.L973:
mov rax, QWORD PTR -24[rbp]
mov esi, 1
mov rdi, rax
call setStrAccumError
.L974:
mov rax, QWORD PTR -24[rbp]
mov rdx, QWORD PTR -8[rbp]
mov QWORD PTR 8[rax], rdx
mov rax, QWORD PTR -8[rbp]
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE166:
.size strAccumFinishRealloc, .-strAccumFinishRealloc
.type sqlite3StrAccumFinish, @function
sqlite3StrAccumFinish:
.LFB167:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 16
mov QWORD PTR -8[rbp], rdi
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR 8[rax]
test rax, rax
je .L977
mov rax, QWORD PTR -8[rbp]
mov rdx, QWORD PTR 8[rax]
mov rax, QWORD PTR -8[rbp]
mov eax, DWORD PTR 24[rax]
mov eax, eax
add rax, rdx
mov BYTE PTR [rax], 0
mov rax, QWORD PTR -8[rbp]
mov eax, DWORD PTR 20[rax]
test eax, eax
je .L977
mov rax, QWORD PTR -8[rbp]
movzx eax, BYTE PTR 29[rax]
movzx eax, al
and eax, 4
test eax, eax
jne .L977
mov rax, QWORD PTR -8[rbp]
mov rdi, rax
call strAccumFinishRealloc
jmp .L978
.L977:
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR 8[rax]
.L978:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE167:
.size sqlite3StrAccumFinish, .-sqlite3StrAccumFinish
.type sqlite3StrAccumReset, @function
sqlite3StrAccumReset:
.LFB168:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 16
mov QWORD PTR -8[rbp], rdi
mov rax, QWORD PTR -8[rbp]
movzx eax, BYTE PTR 29[rax]
movzx eax, al
and eax, 4
test eax, eax
je .L980
mov rax, QWORD PTR -8[rbp]
mov rdx, QWORD PTR 8[rax]
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR [rax]
mov rsi, rdx
mov rdi, rax
call sqlite3DbFree
mov rax, QWORD PTR -8[rbp]
movzx eax, BYTE PTR 29[rax]
and eax, -5
mov edx, eax
mov rax, QWORD PTR -8[rbp]
mov BYTE PTR 29[rax], dl
.L980:
mov rax, QWORD PTR -8[rbp]
mov QWORD PTR 8[rax], 0
nop
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE168:
.size sqlite3StrAccumReset, .-sqlite3StrAccumReset
.type sqlite3StrAccumInit, @function
sqlite3StrAccumInit:
.LFB169:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
mov QWORD PTR -8[rbp], rdi
mov QWORD PTR -16[rbp], rsi
mov QWORD PTR -24[rbp], rdx
mov DWORD PTR -28[rbp], ecx
mov DWORD PTR -32[rbp], r8d
mov rax, QWORD PTR -8[rbp]
mov rdx, QWORD PTR -24[rbp]
mov QWORD PTR 8[rax], rdx
mov rax, QWORD PTR -8[rbp]
mov rdx, QWORD PTR -16[rbp]
mov QWORD PTR [rax], rdx
mov edx, DWORD PTR -28[rbp]
mov rax, QWORD PTR -8[rbp]
mov DWORD PTR 16[rax], edx
mov edx, DWORD PTR -32[rbp]
mov rax, QWORD PTR -8[rbp]
mov DWORD PTR 20[rax], edx
mov rax, QWORD PTR -8[rbp]
mov DWORD PTR 24[rax], 0
mov rax, QWORD PTR -8[rbp]
mov BYTE PTR 28[rax], 0
mov rax, QWORD PTR -8[rbp]
mov BYTE PTR 29[rax], 0
nop
pop rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE169:
.size sqlite3StrAccumInit, .-sqlite3StrAccumInit
.type sqlite3VMPrintf, @function
sqlite3VMPrintf:
.LFB170:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 144
mov QWORD PTR -120[rbp], rdi
mov QWORD PTR -128[rbp], rsi
mov QWORD PTR -136[rbp], rdx
mov rax, QWORD PTR -120[rbp]
mov ecx, DWORD PTR 124[rax]
lea rdx, -80[rbp]
mov rsi, QWORD PTR -120[rbp]
lea rax, -112[rbp]
mov r8d, ecx
mov ecx, 70
mov rdi, rax
call sqlite3StrAccumInit
mov BYTE PTR -83[rbp], 1
mov rdx, QWORD PTR -136[rbp]
mov rcx, QWORD PTR -128[rbp]
lea rax, -112[rbp]
mov rsi, rcx
mov rdi, rax
call sqlite3VXPrintf
lea rax, -112[rbp]
mov rdi, rax
call sqlite3StrAccumFinish
mov QWORD PTR -8[rbp], rax
movzx eax, BYTE PTR -84[rbp]
cmp al, 1
jne .L983
mov rax, QWORD PTR -120[rbp]
mov rdi, rax
call sqlite3OomFault
.L983:
mov rax, QWORD PTR -8[rbp]
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE170:
.size sqlite3VMPrintf, .-sqlite3VMPrintf
.type sqlite3MPrintf, @function
sqlite3MPrintf:
.LFB171:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 224
mov QWORD PTR -216[rbp], rdi
mov QWORD PTR -224[rbp], rsi
mov QWORD PTR -160[rbp], rdx
mov QWORD PTR -152[rbp], rcx
mov QWORD PTR -144[rbp], r8
mov QWORD PTR -136[rbp], r9
test al, al
je .L988
movaps XMMWORD PTR -128[rbp], xmm0
movaps XMMWORD PTR -112[rbp], xmm1
movaps XMMWORD PTR -96[rbp], xmm2
movaps XMMWORD PTR -80[rbp], xmm3
movaps XMMWORD PTR -64[rbp], xmm4
movaps XMMWORD PTR -48[rbp], xmm5
movaps XMMWORD PTR -32[rbp], xmm6
movaps XMMWORD PTR -16[rbp], xmm7
.L988:
mov DWORD PTR -208[rbp], 16
mov DWORD PTR -204[rbp], 48
lea rax, 16[rbp]
mov QWORD PTR -200[rbp], rax
lea rax, -176[rbp]
mov QWORD PTR -192[rbp], rax
lea rdx, -208[rbp]
mov rcx, QWORD PTR -224[rbp]
mov rax, QWORD PTR -216[rbp]
mov rsi, rcx
mov rdi, rax
call sqlite3VMPrintf
mov QWORD PTR -184[rbp], rax
mov rax, QWORD PTR -184[rbp]
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE171:
.size sqlite3MPrintf, .-sqlite3MPrintf
.globl sqlite3_vmprintf
.type sqlite3_vmprintf, @function
sqlite3_vmprintf:
.LFB172:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
add rsp, -128
mov QWORD PTR -120[rbp], rdi
mov QWORD PTR -128[rbp], rsi
call sqlite3_initialize
test eax, eax
je .L990
mov eax, 0
jmp .L992
.L990:
lea rdx, -80[rbp]
lea rax, -112[rbp]
mov r8d, 1000000000
mov ecx, 70
mov esi, 0
mov rdi, rax
call sqlite3StrAccumInit
mov rdx, QWORD PTR -128[rbp]
mov rcx, QWORD PTR -120[rbp]
lea rax, -112[rbp]
mov rsi, rcx
mov rdi, rax
call sqlite3VXPrintf
lea rax, -112[rbp]
mov rdi, rax
call sqlite3StrAccumFinish
mov QWORD PTR -8[rbp], rax
mov rax, QWORD PTR -8[rbp]
.L992:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE172:
.size sqlite3_vmprintf, .-sqlite3_vmprintf
.globl sqlite3_mprintf
.type sqlite3_mprintf, @function
sqlite3_mprintf:
.LFB173:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 224
mov QWORD PTR -216[rbp], rdi
mov QWORD PTR -168[rbp], rsi
mov QWORD PTR -160[rbp], rdx
mov QWORD PTR -152[rbp], rcx
mov QWORD PTR -144[rbp], r8
mov QWORD PTR -136[rbp], r9
test al, al
je .L998
movaps XMMWORD PTR -128[rbp], xmm0
movaps XMMWORD PTR -112[rbp], xmm1
movaps XMMWORD PTR -96[rbp], xmm2
movaps XMMWORD PTR -80[rbp], xmm3
movaps XMMWORD PTR -64[rbp], xmm4
movaps XMMWORD PTR -48[rbp], xmm5
movaps XMMWORD PTR -32[rbp], xmm6
movaps XMMWORD PTR -16[rbp], xmm7
.L998:
call sqlite3_initialize
test eax, eax
je .L995
mov eax, 0
jmp .L997
.L995:
mov DWORD PTR -208[rbp], 8
mov DWORD PTR -204[rbp], 48
lea rax, 16[rbp]
mov QWORD PTR -200[rbp], rax
lea rax, -176[rbp]
mov QWORD PTR -192[rbp], rax
lea rdx, -208[rbp]
mov rax, QWORD PTR -216[rbp]
mov rsi, rdx
mov rdi, rax
call sqlite3_vmprintf
mov QWORD PTR -184[rbp], rax
mov rax, QWORD PTR -184[rbp]
.L997:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE173:
.size sqlite3_mprintf, .-sqlite3_mprintf
.globl sqlite3_vsnprintf
.type sqlite3_vsnprintf, @function
sqlite3_vsnprintf:
.LFB174:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 64
mov DWORD PTR -36[rbp], edi
mov QWORD PTR -48[rbp], rsi
mov QWORD PTR -56[rbp], rdx
mov QWORD PTR -64[rbp], rcx
cmp DWORD PTR -36[rbp], 0
jg .L1000
mov rax, QWORD PTR -48[rbp]
jmp .L1002
.L1000:
mov ecx, DWORD PTR -36[rbp]
mov rdx, QWORD PTR -48[rbp]
lea rax, -32[rbp]
mov r8d, 0
mov esi, 0
mov rdi, rax
call sqlite3StrAccumInit
mov rdx, QWORD PTR -64[rbp]
mov rcx, QWORD PTR -56[rbp]
lea rax, -32[rbp]
mov rsi, rcx
mov rdi, rax
call sqlite3VXPrintf
mov eax, DWORD PTR -8[rbp]
mov edx, eax
mov rax, QWORD PTR -48[rbp]
add rax, rdx
mov BYTE PTR [rax], 0
mov rax, QWORD PTR -48[rbp]
.L1002:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE174:
.size sqlite3_vsnprintf, .-sqlite3_vsnprintf
.globl sqlite3_snprintf
.type sqlite3_snprintf, @function
sqlite3_snprintf:
.LFB175:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 240
mov DWORD PTR -212[rbp], edi
mov QWORD PTR -224[rbp], rsi
mov QWORD PTR -232[rbp], rdx
mov QWORD PTR -152[rbp], rcx
mov QWORD PTR -144[rbp], r8
mov QWORD PTR -136[rbp], r9
test al, al
je .L1006
movaps XMMWORD PTR -128[rbp], xmm0
movaps XMMWORD PTR -112[rbp], xmm1
movaps XMMWORD PTR -96[rbp], xmm2
movaps XMMWORD PTR -80[rbp], xmm3
movaps XMMWORD PTR -64[rbp], xmm4
movaps XMMWORD PTR -48[rbp], xmm5
movaps XMMWORD PTR -32[rbp], xmm6
movaps XMMWORD PTR -16[rbp], xmm7
.L1006:
mov DWORD PTR -208[rbp], 24
mov DWORD PTR -204[rbp], 48
lea rax, 16[rbp]
mov QWORD PTR -200[rbp], rax
lea rax, -176[rbp]
mov QWORD PTR -192[rbp], rax
lea rcx, -208[rbp]
mov rdx, QWORD PTR -232[rbp]
mov rsi, QWORD PTR -224[rbp]
mov eax, DWORD PTR -212[rbp]
mov edi, eax
call sqlite3_vsnprintf
mov QWORD PTR -184[rbp], rax
mov rax, QWORD PTR -184[rbp]
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE175:
.size sqlite3_snprintf, .-sqlite3_snprintf
.type renderLogMsg, @function
renderLogMsg:
.LFB176:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
push rbx
sub rsp, 296
.cfi_offset 3, -24
mov DWORD PTR -276[rbp], edi
mov QWORD PTR -288[rbp], rsi
mov QWORD PTR -296[rbp], rdx
lea rdx, -272[rbp]
lea rax, -48[rbp]
mov r8d, 0
mov ecx, 210
mov esi, 0
mov rdi, rax
call sqlite3StrAccumInit
mov rdx, QWORD PTR -296[rbp]
mov rcx, QWORD PTR -288[rbp]
lea rax, -48[rbp]
mov rsi, rcx
mov rdi, rax
call sqlite3VXPrintf
mov rbx, QWORD PTR sqlite3Config[rip+392]
lea rax, -48[rbp]
mov rdi, rax
call sqlite3StrAccumFinish
mov rdx, rax
mov rax, QWORD PTR sqlite3Config[rip+400]
mov ecx, DWORD PTR -276[rbp]
mov esi, ecx
mov rdi, rax
call rbx
nop
add rsp, 296
pop rbx
pop rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE176:
.size renderLogMsg, .-renderLogMsg
.globl sqlite3_log
.type sqlite3_log, @function
sqlite3_log:
.LFB177:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 224
mov DWORD PTR -212[rbp], edi
mov QWORD PTR -224[rbp], rsi
mov QWORD PTR -160[rbp], rdx
mov QWORD PTR -152[rbp], rcx
mov QWORD PTR -144[rbp], r8
mov QWORD PTR -136[rbp], r9
test al, al
je .L1011
movaps XMMWORD PTR -128[rbp], xmm0
movaps XMMWORD PTR -112[rbp], xmm1
movaps XMMWORD PTR -96[rbp], xmm2
movaps XMMWORD PTR -80[rbp], xmm3
movaps XMMWORD PTR -64[rbp], xmm4
movaps XMMWORD PTR -48[rbp], xmm5
movaps XMMWORD PTR -32[rbp], xmm6
movaps XMMWORD PTR -16[rbp], xmm7
.L1011:
mov rax, QWORD PTR sqlite3Config[rip+392]
test rax, rax
je .L1012
mov DWORD PTR -200[rbp], 16
mov DWORD PTR -196[rbp], 48
lea rax, 16[rbp]
mov QWORD PTR -192[rbp], rax
lea rax, -176[rbp]
mov QWORD PTR -184[rbp], rax
lea rdx, -200[rbp]
mov rcx, QWORD PTR -224[rbp]
mov eax, DWORD PTR -212[rbp]
mov rsi, rcx
mov edi, eax
call renderLogMsg
.L1012:
nop
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE177:
.size sqlite3_log, .-sqlite3_log
.type sqlite3XPrintf, @function
sqlite3XPrintf:
.LFB178:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 224
mov QWORD PTR -216[rbp], rdi
mov QWORD PTR -224[rbp], rsi
mov QWORD PTR -160[rbp], rdx
mov QWORD PTR -152[rbp], rcx
mov QWORD PTR -144[rbp], r8
mov QWORD PTR -136[rbp], r9
test al, al
je .L1015
movaps XMMWORD PTR -128[rbp], xmm0
movaps XMMWORD PTR -112[rbp], xmm1
movaps XMMWORD PTR -96[rbp], xmm2
movaps XMMWORD PTR -80[rbp], xmm3
movaps XMMWORD PTR -64[rbp], xmm4
movaps XMMWORD PTR -48[rbp], xmm5
movaps XMMWORD PTR -32[rbp], xmm6
movaps XMMWORD PTR -16[rbp], xmm7
.L1015:
mov DWORD PTR -200[rbp], 16
mov DWORD PTR -196[rbp], 48
lea rax, 16[rbp]
mov QWORD PTR -192[rbp], rax
lea rax, -176[rbp]
mov QWORD PTR -184[rbp], rax
lea rdx, -200[rbp]
mov rcx, QWORD PTR -224[rbp]
mov rax, QWORD PTR -216[rbp]
mov rsi, rcx
mov rdi, rax
call sqlite3VXPrintf
nop
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE178:
.size sqlite3XPrintf, .-sqlite3XPrintf
.local sqlite3Prng
.comm sqlite3Prng,259,32
.globl sqlite3_randomness
.type sqlite3_randomness, @function
sqlite3_randomness:
.LFB179:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 304
mov DWORD PTR -292[rbp], edi
mov QWORD PTR -304[rbp], rsi
mov rax, QWORD PTR -304[rbp]
mov QWORD PTR -8[rbp], rax
call sqlite3_initialize
test eax, eax
jne .L1026
mov edi, 5
call sqlite3MutexAlloc
mov QWORD PTR -24[rbp], rax
mov rax, QWORD PTR -24[rbp]
mov rdi, rax
call sqlite3_mutex_enter
cmp DWORD PTR -292[rbp], 0
jle .L1019
cmp QWORD PTR -304[rbp], 0
jne .L1020
.L1019:
mov BYTE PTR sqlite3Prng[rip], 0
mov rax, QWORD PTR -24[rbp]
mov rdi, rax
call sqlite3_mutex_leave
jmp .L1016
.L1020:
movzx eax, BYTE PTR sqlite3Prng[rip]
test al, al
jne .L1021
mov BYTE PTR sqlite3Prng[rip+2], 0
mov BYTE PTR sqlite3Prng[rip+1], 0
mov edi, 0
call sqlite3_vfs_find
mov rcx, rax
lea rax, -288[rbp]
mov rdx, rax
mov esi, 256
mov rdi, rcx
call sqlite3OsRandomness
mov DWORD PTR -12[rbp], 0
jmp .L1022
.L1023:
mov eax, DWORD PTR -12[rbp]
mov ecx, eax
mov eax, DWORD PTR -12[rbp]
movsx rdx, eax
lea rax, sqlite3Prng[rip+3]
mov BYTE PTR [rdx+rax], cl
add DWORD PTR -12[rbp], 1
.L1022:
cmp DWORD PTR -12[rbp], 255
jle .L1023
mov DWORD PTR -12[rbp], 0
jmp .L1024
.L1025:
movzx ecx, BYTE PTR sqlite3Prng[rip+2]
mov eax, DWORD PTR -12[rbp]
movsx rdx, eax
lea rax, sqlite3Prng[rip+3]
movzx edx, BYTE PTR [rdx+rax]
mov eax, DWORD PTR -12[rbp]
cdqe
movzx eax, BYTE PTR -288[rbp+rax]
add eax, edx
add eax, ecx
mov BYTE PTR sqlite3Prng[rip+2], al
movzx eax, BYTE PTR sqlite3Prng[rip+2]
movzx eax, al
movsx rdx, eax
lea rax, sqlite3Prng[rip+3]
movzx eax, BYTE PTR [rdx+rax]
mov BYTE PTR -25[rbp], al
movzx eax, BYTE PTR sqlite3Prng[rip+2]
movzx esi, al
mov eax, DWORD PTR -12[rbp]
movsx rdx, eax
lea rax, sqlite3Prng[rip+3]
movzx ecx, BYTE PTR [rdx+rax]
movsx rdx, esi
lea rax, sqlite3Prng[rip+3]
mov BYTE PTR [rdx+rax], cl
mov eax, DWORD PTR -12[rbp]
movsx rdx, eax
lea rax, sqlite3Prng[rip+3]
movzx ecx, BYTE PTR -25[rbp]
mov BYTE PTR [rdx+rax], cl
add DWORD PTR -12[rbp], 1
.L1024:
cmp DWORD PTR -12[rbp], 255
jle .L1025
mov BYTE PTR sqlite3Prng[rip], 1
.L1021:
movzx eax, BYTE PTR sqlite3Prng[rip+1]
add eax, 1
mov BYTE PTR sqlite3Prng[rip+1], al
movzx eax, BYTE PTR sqlite3Prng[rip+1]
movzx eax, al
movsx rdx, eax
lea rax, sqlite3Prng[rip+3]
movzx eax, BYTE PTR [rdx+rax]
mov BYTE PTR -25[rbp], al
movzx edx, BYTE PTR sqlite3Prng[rip+2]
movzx eax, BYTE PTR -25[rbp]
add eax, edx
mov BYTE PTR sqlite3Prng[rip+2], al
movzx eax, BYTE PTR sqlite3Prng[rip+1]
movzx esi, al
movzx eax, BYTE PTR sqlite3Prng[rip+2]
movzx eax, al
movsx rdx, eax
lea rax, sqlite3Prng[rip+3]
movzx ecx, BYTE PTR [rdx+rax]
movsx rdx, esi
lea rax, sqlite3Prng[rip+3]
mov BYTE PTR [rdx+rax], cl
movzx eax, BYTE PTR sqlite3Prng[rip+2]
movzx eax, al
movsx rdx, eax
lea rax, sqlite3Prng[rip+3]
movzx ecx, BYTE PTR -25[rbp]
mov BYTE PTR [rdx+rax], cl
movzx eax, BYTE PTR sqlite3Prng[rip+1]
movzx eax, al
movsx rdx, eax
lea rax, sqlite3Prng[rip+3]
movzx eax, BYTE PTR [rdx+rax]
add BYTE PTR -25[rbp], al
mov rax, QWORD PTR -8[rbp]
lea rdx, 1[rax]
mov QWORD PTR -8[rbp], rdx
movzx edx, BYTE PTR -25[rbp]
movsx rcx, edx
lea rdx, sqlite3Prng[rip+3]
movzx edx, BYTE PTR [rcx+rdx]
mov BYTE PTR [rax], dl
sub DWORD PTR -292[rbp], 1
cmp DWORD PTR -292[rbp], 0
jne .L1021
mov rax, QWORD PTR -24[rbp]
mov rdi, rax
call sqlite3_mutex_leave
jmp .L1016
.L1026:
nop
.L1016:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE179:
.size sqlite3_randomness, .-sqlite3_randomness
.local sqlite3SavedPrng
.comm sqlite3SavedPrng,259,32
.type sqlite3PrngSaveState, @function
sqlite3PrngSaveState:
.LFB180:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
lea rdx, sqlite3SavedPrng[rip]
lea rax, sqlite3Prng[rip]
mov ecx, 32
mov rdi, rdx
mov rsi, rax
rep movsq
mov rax, rsi
mov rdx, rdi
movzx ecx, WORD PTR [rax]
mov WORD PTR [rdx], cx
lea rdx, 2[rdx]
lea rax, 2[rax]
movzx ecx, BYTE PTR [rax]
mov BYTE PTR [rdx], cl
lea rdx, 1[rdx]
lea rax, 1[rax]
nop
pop rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE180:
.size sqlite3PrngSaveState, .-sqlite3PrngSaveState
.type sqlite3PrngRestoreState, @function
sqlite3PrngRestoreState:
.LFB181:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
lea rdx, sqlite3Prng[rip]
lea rax, sqlite3SavedPrng[rip]
mov ecx, 32
mov rdi, rdx
mov rsi, rax
rep movsq
mov rax, rsi
mov rdx, rdi
movzx ecx, WORD PTR [rax]
mov WORD PTR [rdx], cx
lea rdx, 2[rdx]
lea rax, 2[rax]
movzx ecx, BYTE PTR [rax]
mov BYTE PTR [rdx], cl
lea rdx, 1[rdx]
lea rax, 1[rax]
nop
pop rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE181:
.size sqlite3PrngRestoreState, .-sqlite3PrngRestoreState
.type sqlite3ThreadCreate, @function
sqlite3ThreadCreate:
.LFB182:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 48
mov QWORD PTR -24[rbp], rdi
mov QWORD PTR -32[rbp], rsi
mov QWORD PTR -40[rbp], rdx
mov rax, QWORD PTR -24[rbp]
mov QWORD PTR [rax], 0
mov edi, 40
call sqlite3Malloc
mov QWORD PTR -16[rbp], rax
cmp QWORD PTR -16[rbp], 0
jne .L1030
mov eax, 7
jmp .L1031
.L1030:
mov rax, QWORD PTR -16[rbp]
mov edx, 40
mov esi, 0
mov rdi, rax
call memset@PLT
mov rax, QWORD PTR -16[rbp]
mov rdx, QWORD PTR -32[rbp]
mov QWORD PTR 24[rax], rdx
mov rax, QWORD PTR -16[rbp]
mov rdx, QWORD PTR -40[rbp]
mov QWORD PTR 32[rax], rdx
mov edi, 200
call sqlite3FaultSim
test eax, eax
je .L1032
mov DWORD PTR -4[rbp], 1
jmp .L1033
.L1032:
mov rax, QWORD PTR -16[rbp]
mov rcx, QWORD PTR -40[rbp]
mov rdx, QWORD PTR -32[rbp]
mov esi, 0
mov rdi, rax
call pthread_create@PLT
mov DWORD PTR -4[rbp], eax
.L1033:
cmp DWORD PTR -4[rbp], 0
je .L1034
mov rax, QWORD PTR -16[rbp]
mov DWORD PTR 8[rax], 1
mov rdx, QWORD PTR -40[rbp]
mov rax, QWORD PTR -32[rbp]
mov rdi, rdx
call rax
mov rdx, rax
mov rax, QWORD PTR -16[rbp]
mov QWORD PTR 16[rax], rdx
.L1034:
mov rax, QWORD PTR -24[rbp]
mov rdx, QWORD PTR -16[rbp]
mov QWORD PTR [rax], rdx
mov eax, 0
.L1031:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE182:
.size sqlite3ThreadCreate, .-sqlite3ThreadCreate
.type sqlite3ThreadJoin, @function
sqlite3ThreadJoin:
.LFB183:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 32
mov QWORD PTR -24[rbp], rdi
mov QWORD PTR -32[rbp], rsi
cmp QWORD PTR -24[rbp], 0
jne .L1036
mov eax, 7
jmp .L1037
.L1036:
mov rax, QWORD PTR -24[rbp]
mov eax, DWORD PTR 8[rax]
test eax, eax
je .L1038
mov rax, QWORD PTR -24[rbp]
mov rdx, QWORD PTR 16[rax]
mov rax, QWORD PTR -32[rbp]
mov QWORD PTR [rax], rdx
mov DWORD PTR -4[rbp], 0
jmp .L1039
.L1038:
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR [rax]
mov rdx, QWORD PTR -32[rbp]
mov rsi, rdx
mov rdi, rax
call pthread_join@PLT
test eax, eax
setne al
movzx eax, al
mov DWORD PTR -4[rbp], eax
.L1039:
mov rax, QWORD PTR -24[rbp]
mov rdi, rax
call sqlite3_free
mov eax, DWORD PTR -4[rbp]
.L1037:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE183:
.size sqlite3ThreadJoin, .-sqlite3ThreadJoin
.section .rodata
.align 32
.type sqlite3Utf8Trans1, @object
.size sqlite3Utf8Trans1, 64
sqlite3Utf8Trans1:
.byte 0
.byte 1
.byte 2
.byte 3
.byte 4
.byte 5
.byte 6
.byte 7
.byte 8
.byte 9
.byte 10
.byte 11
.byte 12
.byte 13
.byte 14
.byte 15
.byte 16
.byte 17
.byte 18
.byte 19
.byte 20
.byte 21
.byte 22
.byte 23
.byte 24
.byte 25
.byte 26
.byte 27
.byte 28
.byte 29
.byte 30
.byte 31
.byte 0
.byte 1
.byte 2
.byte 3
.byte 4
.byte 5
.byte 6
.byte 7
.byte 8
.byte 9
.byte 10
.byte 11
.byte 12
.byte 13
.byte 14
.byte 15
.byte 0
.byte 1
.byte 2
.byte 3
.byte 4
.byte 5
.byte 6
.byte 7
.byte 0
.byte 1
.byte 2
.byte 3
.byte 0
.byte 1
.byte 0
.byte 0
.text
.type sqlite3Utf8Read, @function
sqlite3Utf8Read:
.LFB184:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
mov QWORD PTR -24[rbp], rdi
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR [rax]
lea rcx, 1[rax]
mov rdx, QWORD PTR -24[rbp]
mov QWORD PTR [rdx], rcx
movzx eax, BYTE PTR [rax]
movzx eax, al
mov DWORD PTR -4[rbp], eax
cmp DWORD PTR -4[rbp], 191
jbe .L1041
mov eax, DWORD PTR -4[rbp]
sub eax, 192
mov edx, eax
lea rax, sqlite3Utf8Trans1[rip]
movzx eax, BYTE PTR [rdx+rax]
movzx eax, al
mov DWORD PTR -4[rbp], eax
jmp .L1042
.L1043:
mov eax, DWORD PTR -4[rbp]
sal eax, 6
mov esi, eax
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR [rax]
lea rcx, 1[rax]
mov rdx, QWORD PTR -24[rbp]
mov QWORD PTR [rdx], rcx
movzx eax, BYTE PTR [rax]
movzx eax, al
and eax, 63
add eax, esi
mov DWORD PTR -4[rbp], eax
.L1042:
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR [rax]
movzx eax, BYTE PTR [rax]
movzx eax, al
and eax, 192
cmp eax, 128
je .L1043
cmp DWORD PTR -4[rbp], 127
jbe .L1044
mov eax, DWORD PTR -4[rbp]
and eax, -2048
cmp eax, 55296
je .L1044
mov eax, DWORD PTR -4[rbp]
and eax, -2
cmp eax, 65534
jne .L1041
.L1044:
mov DWORD PTR -4[rbp], 65533
.L1041:
mov eax, DWORD PTR -4[rbp]
pop rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE184:
.size sqlite3Utf8Read, .-sqlite3Utf8Read
.type sqlite3VdbeMemTranslate, @function
sqlite3VdbeMemTranslate:
.LFB185:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 80
mov QWORD PTR -72[rbp], rdi
mov eax, esi
mov BYTE PTR -76[rbp], al
mov rax, QWORD PTR -72[rbp]
movzx eax, BYTE PTR 10[rax]
cmp al, 1
je .L1047
cmp BYTE PTR -76[rbp], 1
je .L1047
mov rax, QWORD PTR -72[rbp]
mov rdi, rax
call sqlite3VdbeMemMakeWriteable
mov DWORD PTR -32[rbp], eax
cmp DWORD PTR -32[rbp], 0
je .L1048
mov eax, 7
jmp .L1049
.L1048:
mov rax, QWORD PTR -72[rbp]
mov rax, QWORD PTR 16[rax]
mov QWORD PTR -16[rbp], rax
mov rax, QWORD PTR -72[rbp]
mov eax, DWORD PTR 12[rax]
and eax, -2
movsx rdx, eax
mov rax, QWORD PTR -16[rbp]
add rax, rdx
mov QWORD PTR -40[rbp], rax
jmp .L1050
.L1051:
mov rax, QWORD PTR -16[rbp]
movzx eax, BYTE PTR [rax]
mov BYTE PTR -41[rbp], al
mov rax, QWORD PTR -16[rbp]
movzx edx, BYTE PTR 1[rax]
mov rax, QWORD PTR -16[rbp]
mov BYTE PTR [rax], dl
add QWORD PTR -16[rbp], 1
mov rax, QWORD PTR -16[rbp]
lea rdx, 1[rax]
mov QWORD PTR -16[rbp], rdx
movzx edx, BYTE PTR -41[rbp]
mov BYTE PTR [rax], dl
.L1050:
mov rax, QWORD PTR -16[rbp]
cmp rax, QWORD PTR -40[rbp]
jb .L1051
mov rax, QWORD PTR -72[rbp]
movzx edx, BYTE PTR -76[rbp]
mov BYTE PTR 10[rax], dl
jmp .L1052
.L1047:
cmp BYTE PTR -76[rbp], 1
jne .L1053
mov rax, QWORD PTR -72[rbp]
mov eax, DWORD PTR 12[rax]
and eax, -2
mov edx, eax
mov rax, QWORD PTR -72[rbp]
mov DWORD PTR 12[rax], edx
mov rax, QWORD PTR -72[rbp]
mov eax, DWORD PTR 12[rax]
add eax, eax
add eax, 1
mov DWORD PTR -4[rbp], eax
jmp .L1054
.L1053:
mov rax, QWORD PTR -72[rbp]
mov eax, DWORD PTR 12[rax]
add eax, 1
add eax, eax
mov DWORD PTR -4[rbp], eax
.L1054:
mov rax, QWORD PTR -72[rbp]
mov rax, QWORD PTR 16[rax]
mov QWORD PTR -16[rbp], rax
mov rax, QWORD PTR -72[rbp]
mov eax, DWORD PTR 12[rax]
movsx rdx, eax
mov rax, QWORD PTR -16[rbp]
add rax, rdx
mov QWORD PTR -40[rbp], rax
mov eax, DWORD PTR -4[rbp]
movsx rdx, eax
mov rax, QWORD PTR -72[rbp]
mov rax, QWORD PTR 40[rax]
mov rsi, rdx
mov rdi, rax
call sqlite3DbMallocRaw
mov QWORD PTR -56[rbp], rax
cmp QWORD PTR -56[rbp], 0
jne .L1055
mov eax, 7
jmp .L1049
.L1055:
mov rax, QWORD PTR -56[rbp]
mov QWORD PTR -24[rbp], rax
mov rax, QWORD PTR -72[rbp]
movzx eax, BYTE PTR 10[rax]
cmp al, 1
jne .L1056
cmp BYTE PTR -76[rbp], 2
jne .L1067
jmp .L1058
.L1065:
mov rax, QWORD PTR -16[rbp]
lea rdx, 1[rax]
mov QWORD PTR -16[rbp], rdx
movzx eax, BYTE PTR [rax]
movzx eax, al
mov DWORD PTR -28[rbp], eax
cmp DWORD PTR -28[rbp], 191
jbe .L1059
mov eax, DWORD PTR -28[rbp]
sub eax, 192
mov edx, eax
lea rax, sqlite3Utf8Trans1[rip]
movzx eax, BYTE PTR [rdx+rax]
movzx eax, al
mov DWORD PTR -28[rbp], eax
jmp .L1060
.L1062:
mov eax, DWORD PTR -28[rbp]
sal eax, 6
mov ecx, eax
mov rax, QWORD PTR -16[rbp]
lea rdx, 1[rax]
mov QWORD PTR -16[rbp], rdx
movzx eax, BYTE PTR [rax]
movzx eax, al
and eax, 63
add eax, ecx
mov DWORD PTR -28[rbp], eax
.L1060:
mov rax, QWORD PTR -16[rbp]
cmp rax, QWORD PTR -40[rbp]
je .L1061
mov rax, QWORD PTR -16[rbp]
movzx eax, BYTE PTR [rax]
movzx eax, al
and eax, 192
cmp eax, 128
je .L1062
.L1061:
cmp DWORD PTR -28[rbp], 127
jbe .L1063
mov eax, DWORD PTR -28[rbp]
and eax, -2048
cmp eax, 55296
je .L1063
mov eax, DWORD PTR -28[rbp]
and eax, -2
cmp eax, 65534
jne .L1059
.L1063:
mov DWORD PTR -28[rbp], 65533
.L1059:
cmp DWORD PTR -28[rbp], 65535
ja .L1064
mov rax, QWORD PTR -24[rbp]
lea rdx, 1[rax]
mov QWORD PTR -24[rbp], rdx
mov edx, DWORD PTR -28[rbp]
mov BYTE PTR [rax], dl
mov rax, QWORD PTR -24[rbp]
lea rdx, 1[rax]
mov QWORD PTR -24[rbp], rdx
mov edx, DWORD PTR -28[rbp]
shr edx, 8
mov BYTE PTR [rax], dl
jmp .L1058
.L1064:
mov rax, QWORD PTR -24[rbp]
lea rdx, 1[rax]
mov QWORD PTR -24[rbp], rdx
mov edx, DWORD PTR -28[rbp]
shr edx, 10
mov ecx, edx
and ecx, 63
mov edx, DWORD PTR -28[rbp]
sub edx, 65536
shr edx, 10
and edx, -64
or edx, ecx
mov BYTE PTR [rax], dl
mov rax, QWORD PTR -24[rbp]
lea rdx, 1[rax]
mov QWORD PTR -24[rbp], rdx
mov edx, DWORD PTR -28[rbp]
sub edx, 65536
shr edx, 18
and edx, 3
sub edx, 40
mov BYTE PTR [rax], dl
mov rax, QWORD PTR -24[rbp]
lea rdx, 1[rax]
mov QWORD PTR -24[rbp], rdx
mov edx, DWORD PTR -28[rbp]
mov BYTE PTR [rax], dl
mov rax, QWORD PTR -24[rbp]
lea rdx, 1[rax]
mov QWORD PTR -24[rbp], rdx
mov edx, DWORD PTR -28[rbp]
shr edx, 8
and edx, 3
sub edx, 36
mov BYTE PTR [rax], dl
.L1058:
mov rax, QWORD PTR -16[rbp]
cmp rax, QWORD PTR -40[rbp]
jb .L1065
jmp .L1066
.L1074:
mov rax, QWORD PTR -16[rbp]
lea rdx, 1[rax]
mov QWORD PTR -16[rbp], rdx
movzx eax, BYTE PTR [rax]
movzx eax, al
mov DWORD PTR -28[rbp], eax
cmp DWORD PTR -28[rbp], 191
jbe .L1068
mov eax, DWORD PTR -28[rbp]
sub eax, 192
mov edx, eax
lea rax, sqlite3Utf8Trans1[rip]
movzx eax, BYTE PTR [rdx+rax]
movzx eax, al
mov DWORD PTR -28[rbp], eax
jmp .L1069
.L1071:
mov eax, DWORD PTR -28[rbp]
sal eax, 6
mov ecx, eax
mov rax, QWORD PTR -16[rbp]
lea rdx, 1[rax]
mov QWORD PTR -16[rbp], rdx
movzx eax, BYTE PTR [rax]
movzx eax, al
and eax, 63
add eax, ecx
mov DWORD PTR -28[rbp], eax
.L1069:
mov rax, QWORD PTR -16[rbp]
cmp rax, QWORD PTR -40[rbp]
je .L1070
mov rax, QWORD PTR -16[rbp]
movzx eax, BYTE PTR [rax]
movzx eax, al
and eax, 192
cmp eax, 128
je .L1071
.L1070:
cmp DWORD PTR -28[rbp], 127
jbe .L1072
mov eax, DWORD PTR -28[rbp]
and eax, -2048
cmp eax, 55296
je .L1072
mov eax, DWORD PTR -28[rbp]
and eax, -2
cmp eax, 65534
jne .L1068
.L1072:
mov DWORD PTR -28[rbp], 65533
.L1068:
cmp DWORD PTR -28[rbp], 65535
ja .L1073
mov rax, QWORD PTR -24[rbp]
lea rdx, 1[rax]
mov QWORD PTR -24[rbp], rdx
mov edx, DWORD PTR -28[rbp]
shr edx, 8
mov BYTE PTR [rax], dl
mov rax, QWORD PTR -24[rbp]
lea rdx, 1[rax]
mov QWORD PTR -24[rbp], rdx
mov edx, DWORD PTR -28[rbp]
mov BYTE PTR [rax], dl
jmp .L1067
.L1073:
mov rax, QWORD PTR -24[rbp]
lea rdx, 1[rax]
mov QWORD PTR -24[rbp], rdx
mov edx, DWORD PTR -28[rbp]
sub edx, 65536
shr edx, 18
and edx, 3
sub edx, 40
mov BYTE PTR [rax], dl
mov rax, QWORD PTR -24[rbp]
lea rdx, 1[rax]
mov QWORD PTR -24[rbp], rdx
mov edx, DWORD PTR -28[rbp]
shr edx, 10
mov ecx, edx
and ecx, 63
mov edx, DWORD PTR -28[rbp]
sub edx, 65536
shr edx, 10
and edx, -64
or edx, ecx
mov BYTE PTR [rax], dl
mov rax, QWORD PTR -24[rbp]
lea rdx, 1[rax]
mov QWORD PTR -24[rbp], rdx
mov edx, DWORD PTR -28[rbp]
shr edx, 8
and edx, 3
sub edx, 36
mov BYTE PTR [rax], dl
mov rax, QWORD PTR -24[rbp]
lea rdx, 1[rax]
mov QWORD PTR -24[rbp], rdx
mov edx, DWORD PTR -28[rbp]
mov BYTE PTR [rax], dl
.L1067:
mov rax, QWORD PTR -16[rbp]
cmp rax, QWORD PTR -40[rbp]
jb .L1074
.L1066:
mov rdx, QWORD PTR -24[rbp]
mov rax, QWORD PTR -56[rbp]
sub rdx, rax
mov rax, rdx
mov edx, eax
mov rax, QWORD PTR -72[rbp]
mov DWORD PTR 12[rax], edx
mov rax, QWORD PTR -24[rbp]
lea rdx, 1[rax]
mov QWORD PTR -24[rbp], rdx
mov BYTE PTR [rax], 0
jmp .L1075
.L1056:
mov rax, QWORD PTR -72[rbp]
movzx eax, BYTE PTR 10[rax]
cmp al, 2
jne .L1084
jmp .L1077
.L1082:
mov rax, QWORD PTR -16[rbp]
lea rdx, 1[rax]
mov QWORD PTR -16[rbp], rdx
movzx eax, BYTE PTR [rax]
movzx eax, al
mov DWORD PTR -28[rbp], eax
mov rax, QWORD PTR -16[rbp]
lea rdx, 1[rax]
mov QWORD PTR -16[rbp], rdx
movzx eax, BYTE PTR [rax]
movzx eax, al
sal eax, 8
add DWORD PTR -28[rbp], eax
cmp DWORD PTR -28[rbp], 55295
jbe .L1078
cmp DWORD PTR -28[rbp], 57343
ja .L1078
mov rax, QWORD PTR -16[rbp]
cmp rax, QWORD PTR -40[rbp]
jnb .L1078
mov rax, QWORD PTR -16[rbp]
lea rdx, 1[rax]
mov QWORD PTR -16[rbp], rdx
movzx eax, BYTE PTR [rax]
movzx eax, al
mov DWORD PTR -60[rbp], eax
mov rax, QWORD PTR -16[rbp]
lea rdx, 1[rax]
mov QWORD PTR -16[rbp], rdx
movzx eax, BYTE PTR [rax]
movzx eax, al
sal eax, 8
add DWORD PTR -60[rbp], eax
mov eax, DWORD PTR -60[rbp]
and eax, 1023
mov edx, eax
mov eax, DWORD PTR -28[rbp]
sal eax, 10
movzx eax, ax
add edx, eax
mov eax, DWORD PTR -28[rbp]
and eax, 960
add eax, 64
sal eax, 10
add eax, edx
mov DWORD PTR -28[rbp], eax
.L1078:
cmp DWORD PTR -28[rbp], 127
ja .L1079
mov rax, QWORD PTR -24[rbp]
lea rdx, 1[rax]
mov QWORD PTR -24[rbp], rdx
mov edx, DWORD PTR -28[rbp]
mov BYTE PTR [rax], dl
jmp .L1077
.L1079:
cmp DWORD PTR -28[rbp], 2047
ja .L1080
mov rax, QWORD PTR -24[rbp]
lea rdx, 1[rax]
mov QWORD PTR -24[rbp], rdx
mov edx, DWORD PTR -28[rbp]
shr edx, 6
and edx, 31
sub edx, 64
mov BYTE PTR [rax], dl
mov rax, QWORD PTR -24[rbp]
lea rdx, 1[rax]
mov QWORD PTR -24[rbp], rdx
mov edx, DWORD PTR -28[rbp]
and edx, 63
add edx, -128
mov BYTE PTR [rax], dl
jmp .L1077
.L1080:
cmp DWORD PTR -28[rbp], 65535
ja .L1081
mov rax, QWORD PTR -24[rbp]
lea rdx, 1[rax]
mov QWORD PTR -24[rbp], rdx
mov edx, DWORD PTR -28[rbp]
shr edx, 12
and edx, 15
sub edx, 32
mov BYTE PTR [rax], dl
mov rax, QWORD PTR -24[rbp]
lea rdx, 1[rax]
mov QWORD PTR -24[rbp], rdx
mov edx, DWORD PTR -28[rbp]
shr edx, 6
and edx, 63
add edx, -128
mov BYTE PTR [rax], dl
mov rax, QWORD PTR -24[rbp]
lea rdx, 1[rax]
mov QWORD PTR -24[rbp], rdx
mov edx, DWORD PTR -28[rbp]
and edx, 63
add edx, -128
mov BYTE PTR [rax], dl
jmp .L1077
.L1081:
mov rax, QWORD PTR -24[rbp]
lea rdx, 1[rax]
mov QWORD PTR -24[rbp], rdx
mov edx, DWORD PTR -28[rbp]
shr edx, 18
and edx, 7
sub edx, 16
mov BYTE PTR [rax], dl
mov rax, QWORD PTR -24[rbp]
lea rdx, 1[rax]
mov QWORD PTR -24[rbp], rdx
mov edx, DWORD PTR -28[rbp]
shr edx, 12
and edx, 63
add edx, -128
mov BYTE PTR [rax], dl
mov rax, QWORD PTR -24[rbp]
lea rdx, 1[rax]
mov QWORD PTR -24[rbp], rdx
mov edx, DWORD PTR -28[rbp]
shr edx, 6
and edx, 63
add edx, -128
mov BYTE PTR [rax], dl
mov rax, QWORD PTR -24[rbp]
lea rdx, 1[rax]
mov QWORD PTR -24[rbp], rdx
mov edx, DWORD PTR -28[rbp]
and edx, 63
add edx, -128
mov BYTE PTR [rax], dl
.L1077:
mov rax, QWORD PTR -16[rbp]
cmp rax, QWORD PTR -40[rbp]
jb .L1082
jmp .L1083
.L1089:
mov rax, QWORD PTR -16[rbp]
lea rdx, 1[rax]
mov QWORD PTR -16[rbp], rdx
movzx eax, BYTE PTR [rax]
movzx eax, al
sal eax, 8
mov DWORD PTR -28[rbp], eax
mov rax, QWORD PTR -16[rbp]
lea rdx, 1[rax]
mov QWORD PTR -16[rbp], rdx
movzx eax, BYTE PTR [rax]
movzx eax, al
add DWORD PTR -28[rbp], eax
cmp DWORD PTR -28[rbp], 55295
jbe .L1085
cmp DWORD PTR -28[rbp], 57343
ja .L1085
mov rax, QWORD PTR -16[rbp]
cmp rax, QWORD PTR -40[rbp]
jnb .L1085
mov rax, QWORD PTR -16[rbp]
lea rdx, 1[rax]
mov QWORD PTR -16[rbp], rdx
movzx eax, BYTE PTR [rax]
movzx eax, al
sal eax, 8
mov DWORD PTR -64[rbp], eax
mov rax, QWORD PTR -16[rbp]
lea rdx, 1[rax]
mov QWORD PTR -16[rbp], rdx
movzx eax, BYTE PTR [rax]
movzx eax, al
add DWORD PTR -64[rbp], eax
mov eax, DWORD PTR -64[rbp]
and eax, 1023
mov edx, eax
mov eax, DWORD PTR -28[rbp]
sal eax, 10
movzx eax, ax
add edx, eax
mov eax, DWORD PTR -28[rbp]
and eax, 960
add eax, 64
sal eax, 10
add eax, edx
mov DWORD PTR -28[rbp], eax
.L1085:
cmp DWORD PTR -28[rbp], 127
ja .L1086
mov rax, QWORD PTR -24[rbp]
lea rdx, 1[rax]
mov QWORD PTR -24[rbp], rdx
mov edx, DWORD PTR -28[rbp]
mov BYTE PTR [rax], dl
jmp .L1084
.L1086:
cmp DWORD PTR -28[rbp], 2047
ja .L1087
mov rax, QWORD PTR -24[rbp]
lea rdx, 1[rax]
mov QWORD PTR -24[rbp], rdx
mov edx, DWORD PTR -28[rbp]
shr edx, 6
and edx, 31
sub edx, 64
mov BYTE PTR [rax], dl
mov rax, QWORD PTR -24[rbp]
lea rdx, 1[rax]
mov QWORD PTR -24[rbp], rdx
mov edx, DWORD PTR -28[rbp]
and edx, 63
add edx, -128
mov BYTE PTR [rax], dl
jmp .L1084
.L1087:
cmp DWORD PTR -28[rbp], 65535
ja .L1088
mov rax, QWORD PTR -24[rbp]
lea rdx, 1[rax]
mov QWORD PTR -24[rbp], rdx
mov edx, DWORD PTR -28[rbp]
shr edx, 12
and edx, 15
sub edx, 32
mov BYTE PTR [rax], dl
mov rax, QWORD PTR -24[rbp]
lea rdx, 1[rax]
mov QWORD PTR -24[rbp], rdx
mov edx, DWORD PTR -28[rbp]
shr edx, 6
and edx, 63
add edx, -128
mov BYTE PTR [rax], dl
mov rax, QWORD PTR -24[rbp]
lea rdx, 1[rax]
mov QWORD PTR -24[rbp], rdx
mov edx, DWORD PTR -28[rbp]
and edx, 63
add edx, -128
mov BYTE PTR [rax], dl
jmp .L1084
.L1088:
mov rax, QWORD PTR -24[rbp]
lea rdx, 1[rax]
mov QWORD PTR -24[rbp], rdx
mov edx, DWORD PTR -28[rbp]
shr edx, 18
and edx, 7
sub edx, 16
mov BYTE PTR [rax], dl
mov rax, QWORD PTR -24[rbp]
lea rdx, 1[rax]
mov QWORD PTR -24[rbp], rdx
mov edx, DWORD PTR -28[rbp]
shr edx, 12
and edx, 63
add edx, -128
mov BYTE PTR [rax], dl
mov rax, QWORD PTR -24[rbp]
lea rdx, 1[rax]
mov QWORD PTR -24[rbp], rdx
mov edx, DWORD PTR -28[rbp]
shr edx, 6
and edx, 63
add edx, -128
mov BYTE PTR [rax], dl
mov rax, QWORD PTR -24[rbp]
lea rdx, 1[rax]
mov QWORD PTR -24[rbp], rdx
mov edx, DWORD PTR -28[rbp]
and edx, 63
add edx, -128
mov BYTE PTR [rax], dl
.L1084:
mov rax, QWORD PTR -16[rbp]
cmp rax, QWORD PTR -40[rbp]
jb .L1089
.L1083:
mov rdx, QWORD PTR -24[rbp]
mov rax, QWORD PTR -56[rbp]
sub rdx, rax
mov rax, rdx
mov edx, eax
mov rax, QWORD PTR -72[rbp]
mov DWORD PTR 12[rax], edx
.L1075:
mov rax, QWORD PTR -24[rbp]
mov BYTE PTR [rax], 0
mov rax, QWORD PTR -72[rbp]
movzx eax, WORD PTR 8[rax]
movzx eax, ax
mov DWORD PTR -28[rbp], eax
mov rax, QWORD PTR -72[rbp]
mov rdi, rax
call sqlite3VdbeMemRelease
mov eax, DWORD PTR -28[rbp]
and ax, -32739
or ax, 514
mov edx, eax
mov rax, QWORD PTR -72[rbp]
mov WORD PTR 8[rax], dx
mov rax, QWORD PTR -72[rbp]
movzx edx, BYTE PTR -76[rbp]
mov BYTE PTR 10[rax], dl
mov rax, QWORD PTR -72[rbp]
mov rdx, QWORD PTR -56[rbp]
mov QWORD PTR 16[rax], rdx
mov rax, QWORD PTR -72[rbp]
mov rdx, QWORD PTR 16[rax]
mov rax, QWORD PTR -72[rbp]
mov QWORD PTR 24[rax], rdx
mov rax, QWORD PTR -72[rbp]
mov rdx, QWORD PTR 16[rax]
mov rax, QWORD PTR -72[rbp]
mov rax, QWORD PTR 40[rax]
mov rsi, rdx
mov rdi, rax
call sqlite3DbMallocSize
mov edx, eax
mov rax, QWORD PTR -72[rbp]
mov DWORD PTR 32[rax], edx
.L1052:
mov eax, 0
.L1049:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE185:
.size sqlite3VdbeMemTranslate, .-sqlite3VdbeMemTranslate
.type sqlite3VdbeMemHandleBom, @function
sqlite3VdbeMemHandleBom:
.LFB186:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 32
mov QWORD PTR -24[rbp], rdi
mov DWORD PTR -4[rbp], 0
mov BYTE PTR -5[rbp], 0
mov rax, QWORD PTR -24[rbp]
mov eax, DWORD PTR 12[rax]
cmp eax, 1
jle .L1091
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 16[rax]
movzx eax, BYTE PTR [rax]
mov BYTE PTR -6[rbp], al
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 16[rax]
movzx eax, BYTE PTR 1[rax]
mov BYTE PTR -7[rbp], al
cmp BYTE PTR -6[rbp], -2
jne .L1092
cmp BYTE PTR -7[rbp], -1
jne .L1092
mov BYTE PTR -5[rbp], 3
.L1092:
cmp BYTE PTR -6[rbp], -1
jne .L1091
cmp BYTE PTR -7[rbp], -2
jne .L1091
mov BYTE PTR -5[rbp], 2
.L1091:
cmp BYTE PTR -5[rbp], 0
je .L1093
mov rax, QWORD PTR -24[rbp]
mov rdi, rax
call sqlite3VdbeMemMakeWriteable
mov DWORD PTR -4[rbp], eax
cmp DWORD PTR -4[rbp], 0
jne .L1093
mov rax, QWORD PTR -24[rbp]
mov eax, DWORD PTR 12[rax]
lea edx, -2[rax]
mov rax, QWORD PTR -24[rbp]
mov DWORD PTR 12[rax], edx
mov rax, QWORD PTR -24[rbp]
mov eax, DWORD PTR 12[rax]
movsx rdx, eax
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 16[rax]
lea rcx, 2[rax]
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 16[rax]
mov rsi, rcx
mov rdi, rax
call memmove@PLT
mov rax, QWORD PTR -24[rbp]
mov rdx, QWORD PTR 16[rax]
mov rax, QWORD PTR -24[rbp]
mov eax, DWORD PTR 12[rax]
cdqe
add rax, rdx
mov BYTE PTR [rax], 0
mov rax, QWORD PTR -24[rbp]
mov rdx, QWORD PTR 16[rax]
mov rax, QWORD PTR -24[rbp]
mov eax, DWORD PTR 12[rax]
cdqe
add rax, 1
add rax, rdx
mov BYTE PTR [rax], 0
mov rax, QWORD PTR -24[rbp]
movzx eax, WORD PTR 8[rax]
or ah, 2
mov edx, eax
mov rax, QWORD PTR -24[rbp]
mov WORD PTR 8[rax], dx
mov rax, QWORD PTR -24[rbp]
movzx edx, BYTE PTR -5[rbp]
mov BYTE PTR 10[rax], dl
.L1093:
mov eax, DWORD PTR -4[rbp]
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE186:
.size sqlite3VdbeMemHandleBom, .-sqlite3VdbeMemHandleBom
.type sqlite3Utf8CharLen, @function
sqlite3Utf8CharLen:
.LFB187:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
mov QWORD PTR -40[rbp], rdi
mov DWORD PTR -44[rbp], esi
mov DWORD PTR -4[rbp], 0
mov rax, QWORD PTR -40[rbp]
mov QWORD PTR -16[rbp], rax
cmp DWORD PTR -44[rbp], 0
js .L1096
mov eax, DWORD PTR -44[rbp]
movsx rdx, eax
mov rax, QWORD PTR -16[rbp]
add rax, rdx
mov QWORD PTR -24[rbp], rax
jmp .L1098
.L1096:
mov QWORD PTR -24[rbp], -1
jmp .L1098
.L1103:
mov rax, QWORD PTR -16[rbp]
lea rdx, 1[rax]
mov QWORD PTR -16[rbp], rdx
movzx eax, BYTE PTR [rax]
cmp al, -65
jbe .L1099
jmp .L1100
.L1101:
add QWORD PTR -16[rbp], 1
.L1100:
mov rax, QWORD PTR -16[rbp]
movzx eax, BYTE PTR [rax]
movzx eax, al
and eax, 192
cmp eax, 128
je .L1101
.L1099:
add DWORD PTR -4[rbp], 1
.L1098:
mov rax, QWORD PTR -16[rbp]
movzx eax, BYTE PTR [rax]
test al, al
je .L1102
mov rax, QWORD PTR -16[rbp]
cmp rax, QWORD PTR -24[rbp]
jb .L1103
.L1102:
mov eax, DWORD PTR -4[rbp]
pop rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE187:
.size sqlite3Utf8CharLen, .-sqlite3Utf8CharLen
.type sqlite3Utf16to8, @function
sqlite3Utf16to8:
.LFB188:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 96
mov QWORD PTR -72[rbp], rdi
mov QWORD PTR -80[rbp], rsi
mov DWORD PTR -84[rbp], edx
mov eax, ecx
mov BYTE PTR -88[rbp], al
lea rax, -64[rbp]
mov edx, 56
mov esi, 0
mov rdi, rax
call memset@PLT
mov rax, QWORD PTR -72[rbp]
mov QWORD PTR -24[rbp], rax
movzx ecx, BYTE PTR -88[rbp]
mov edx, DWORD PTR -84[rbp]
mov rsi, QWORD PTR -80[rbp]
lea rax, -64[rbp]
mov r8d, 0
mov rdi, rax
call sqlite3VdbeMemSetStr
lea rax, -64[rbp]
mov esi, 1
mov rdi, rax
call sqlite3VdbeChangeEncoding
mov rax, QWORD PTR -72[rbp]
movzx eax, BYTE PTR 97[rax]
test al, al
je .L1106
lea rax, -64[rbp]
mov rdi, rax
call sqlite3VdbeMemRelease
mov QWORD PTR -48[rbp], 0
.L1106:
mov rax, QWORD PTR -48[rbp]
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE188:
.size sqlite3Utf16to8, .-sqlite3Utf16to8
.type sqlite3Utf16ByteLen, @function
sqlite3Utf16ByteLen:
.LFB189:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
mov QWORD PTR -40[rbp], rdi
mov DWORD PTR -44[rbp], esi
mov rax, QWORD PTR -40[rbp]
mov QWORD PTR -8[rbp], rax
mov DWORD PTR -12[rbp], 0
jmp .L1109
.L1111:
mov rax, QWORD PTR -8[rbp]
lea rdx, 1[rax]
mov QWORD PTR -8[rbp], rdx
movzx eax, BYTE PTR [rax]
movzx eax, al
mov DWORD PTR -16[rbp], eax
mov rax, QWORD PTR -8[rbp]
lea rdx, 1[rax]
mov QWORD PTR -8[rbp], rdx
movzx eax, BYTE PTR [rax]
movzx eax, al
sal eax, 8
add DWORD PTR -16[rbp], eax
cmp DWORD PTR -16[rbp], 55295
jle .L1110
cmp DWORD PTR -16[rbp], 57343
jg .L1110
mov rax, QWORD PTR -8[rbp]
lea rdx, 1[rax]
mov QWORD PTR -8[rbp], rdx
movzx eax, BYTE PTR [rax]
movzx eax, al
mov DWORD PTR -20[rbp], eax
mov rax, QWORD PTR -8[rbp]
lea rdx, 1[rax]
mov QWORD PTR -8[rbp], rdx
movzx eax, BYTE PTR [rax]
movzx eax, al
sal eax, 8
add DWORD PTR -20[rbp], eax
mov eax, DWORD PTR -20[rbp]
and eax, 1023
mov edx, eax
mov eax, DWORD PTR -16[rbp]
sal eax, 10
movzx eax, ax
add edx, eax
mov eax, DWORD PTR -16[rbp]
and eax, 960
add eax, 64
sal eax, 10
add eax, edx
mov DWORD PTR -16[rbp], eax
.L1110:
add DWORD PTR -12[rbp], 1
.L1109:
mov eax, DWORD PTR -12[rbp]
cmp eax, DWORD PTR -44[rbp]
jl .L1111
mov rdx, QWORD PTR -8[rbp]
mov rax, QWORD PTR -40[rbp]
sub rdx, rax
mov rax, rdx
pop rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE189:
.size sqlite3Utf16ByteLen, .-sqlite3Utf16ByteLen
.type sqlite3FaultSim, @function
sqlite3FaultSim:
.LFB190:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 32
mov DWORD PTR -20[rbp], edi
mov rax, QWORD PTR sqlite3Config[rip+408]
mov QWORD PTR -8[rbp], rax
cmp QWORD PTR -8[rbp], 0
je .L1114
mov edx, DWORD PTR -20[rbp]
mov rax, QWORD PTR -8[rbp]
mov edi, edx
call rax
jmp .L1116
.L1114:
mov eax, 0
.L1116:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE190:
.size sqlite3FaultSim, .-sqlite3FaultSim
.type sqlite3IsNaN, @function
sqlite3IsNaN:
.LFB191:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
movsd QWORD PTR -40[rbp], xmm0
movsd xmm0, QWORD PTR -40[rbp]
movsd QWORD PTR -16[rbp], xmm0
movsd xmm0, QWORD PTR -16[rbp]
movsd QWORD PTR -24[rbp], xmm0
movsd xmm0, QWORD PTR -16[rbp]
movsd xmm1, QWORD PTR -24[rbp]
ucomisd xmm0, xmm1
setp al
mov edx, 1
ucomisd xmm0, xmm1
cmovne eax, edx
movzx eax, al
mov DWORD PTR -4[rbp], eax
mov eax, DWORD PTR -4[rbp]
pop rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE191:
.size sqlite3IsNaN, .-sqlite3IsNaN
.type sqlite3Strlen30, @function
sqlite3Strlen30:
.LFB192:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 16
mov QWORD PTR -8[rbp], rdi
cmp QWORD PTR -8[rbp], 0
jne .L1120
mov eax, 0
jmp .L1121
.L1120:
mov rax, QWORD PTR -8[rbp]
mov rdi, rax
call strlen@PLT
and eax, 1073741823
.L1121:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE192:
.size sqlite3Strlen30, .-sqlite3Strlen30
.type sqlite3ColumnType, @function
sqlite3ColumnType:
.LFB193:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
push rbx
sub rsp, 24
.cfi_offset 3, -24
mov QWORD PTR -24[rbp], rdi
mov QWORD PTR -32[rbp], rsi
mov rax, QWORD PTR -24[rbp]
movzx eax, BYTE PTR 27[rax]
movzx eax, al
and eax, 4
test eax, eax
jne .L1123
mov rax, QWORD PTR -32[rbp]
jmp .L1124
.L1123:
mov rax, QWORD PTR -24[rbp]
mov rbx, QWORD PTR [rax]
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR [rax]
mov rdi, rax
call strlen@PLT
add rax, 1
add rax, rbx
.L1124:
add rsp, 24
pop rbx
pop rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE193:
.size sqlite3ColumnType, .-sqlite3ColumnType
.type sqlite3ErrorFinish, @function
sqlite3ErrorFinish:
.LFB194:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 16
mov QWORD PTR -8[rbp], rdi
mov DWORD PTR -12[rbp], esi
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR 336[rax]
test rax, rax
je .L1126
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR 336[rax]
mov rdi, rax
call sqlite3ValueSetNull
.L1126:
mov edx, DWORD PTR -12[rbp]
mov rax, QWORD PTR -8[rbp]
mov esi, edx
mov rdi, rax
call sqlite3SystemError
nop
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE194:
.size sqlite3ErrorFinish, .-sqlite3ErrorFinish
.type sqlite3Error, @function
sqlite3Error:
.LFB195:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 16
mov QWORD PTR -8[rbp], rdi
mov DWORD PTR -12[rbp], esi
mov rax, QWORD PTR -8[rbp]
mov edx, DWORD PTR -12[rbp]
mov DWORD PTR 80[rax], edx
cmp DWORD PTR -12[rbp], 0
jne .L1128
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR 336[rax]
test rax, rax
je .L1130
.L1128:
mov edx, DWORD PTR -12[rbp]
mov rax, QWORD PTR -8[rbp]
mov esi, edx
mov rdi, rax
call sqlite3ErrorFinish
.L1130:
nop
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE195:
.size sqlite3Error, .-sqlite3Error
.type sqlite3SystemError, @function
sqlite3SystemError:
.LFB196:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 16
mov QWORD PTR -8[rbp], rdi
mov DWORD PTR -12[rbp], esi
cmp DWORD PTR -12[rbp], 3082
je .L1135
and DWORD PTR -12[rbp], 255
cmp DWORD PTR -12[rbp], 14
je .L1134
cmp DWORD PTR -12[rbp], 10
jne .L1131
.L1134:
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR [rax]
mov rdi, rax
call sqlite3OsGetLastError
mov edx, eax
mov rax, QWORD PTR -8[rbp]
mov DWORD PTR 88[rax], edx
jmp .L1131
.L1135:
nop
.L1131:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE196:
.size sqlite3SystemError, .-sqlite3SystemError
.type sqlite3ErrorWithMsg, @function
sqlite3ErrorWithMsg:
.LFB197:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 240
mov QWORD PTR -216[rbp], rdi
mov DWORD PTR -220[rbp], esi
mov QWORD PTR -232[rbp], rdx
mov QWORD PTR -152[rbp], rcx
mov QWORD PTR -144[rbp], r8
mov QWORD PTR -136[rbp], r9
test al, al
je .L1141
movaps XMMWORD PTR -128[rbp], xmm0
movaps XMMWORD PTR -112[rbp], xmm1
movaps XMMWORD PTR -96[rbp], xmm2
movaps XMMWORD PTR -80[rbp], xmm3
movaps XMMWORD PTR -64[rbp], xmm4
movaps XMMWORD PTR -48[rbp], xmm5
movaps XMMWORD PTR -32[rbp], xmm6
movaps XMMWORD PTR -16[rbp], xmm7
.L1141:
mov rax, QWORD PTR -216[rbp]
mov edx, DWORD PTR -220[rbp]
mov DWORD PTR 80[rax], edx
mov edx, DWORD PTR -220[rbp]
mov rax, QWORD PTR -216[rbp]
mov esi, edx
mov rdi, rax
call sqlite3SystemError
cmp QWORD PTR -232[rbp], 0
jne .L1138
mov edx, DWORD PTR -220[rbp]
mov rax, QWORD PTR -216[rbp]
mov esi, edx
mov rdi, rax
call sqlite3Error
jmp .L1142
.L1138:
mov rax, QWORD PTR -216[rbp]
mov rax, QWORD PTR 336[rax]
test rax, rax
jne .L1140
mov rax, QWORD PTR -216[rbp]
mov rdi, rax
call sqlite3ValueNew
mov rdx, rax
mov rax, QWORD PTR -216[rbp]
mov QWORD PTR 336[rax], rdx
mov rax, QWORD PTR -216[rbp]
mov rax, QWORD PTR 336[rax]
test rax, rax
je .L1142
.L1140:
mov DWORD PTR -208[rbp], 24
mov DWORD PTR -204[rbp], 48
lea rax, 16[rbp]
mov QWORD PTR -200[rbp], rax
lea rax, -176[rbp]
mov QWORD PTR -192[rbp], rax
lea rdx, -208[rbp]
mov rcx, QWORD PTR -232[rbp]
mov rax, QWORD PTR -216[rbp]
mov rsi, rcx
mov rdi, rax
call sqlite3VMPrintf
mov QWORD PTR -184[rbp], rax
mov rax, QWORD PTR -216[rbp]
mov rax, QWORD PTR 336[rax]
mov rdx, QWORD PTR -184[rbp]
lea r8, sqlite3MallocSize[rip]
mov ecx, 1
mov esi, -1
mov rdi, rax
call sqlite3ValueSetStr
.L1142:
nop
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE197:
.size sqlite3ErrorWithMsg, .-sqlite3ErrorWithMsg
.type sqlite3ErrorMsg, @function
sqlite3ErrorMsg:
.LFB198:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 240
mov QWORD PTR -232[rbp], rdi
mov QWORD PTR -240[rbp], rsi
mov QWORD PTR -160[rbp], rdx
mov QWORD PTR -152[rbp], rcx
mov QWORD PTR -144[rbp], r8
mov QWORD PTR -136[rbp], r9
test al, al
je .L1147
movaps XMMWORD PTR -128[rbp], xmm0
movaps XMMWORD PTR -112[rbp], xmm1
movaps XMMWORD PTR -96[rbp], xmm2
movaps XMMWORD PTR -80[rbp], xmm3
movaps XMMWORD PTR -64[rbp], xmm4
movaps XMMWORD PTR -48[rbp], xmm5
movaps XMMWORD PTR -32[rbp], xmm6
movaps XMMWORD PTR -16[rbp], xmm7
.L1147:
mov rax, QWORD PTR -232[rbp]
mov rax, QWORD PTR [rax]
mov QWORD PTR -184[rbp], rax
mov DWORD PTR -216[rbp], 16
mov DWORD PTR -212[rbp], 48
lea rax, 16[rbp]
mov QWORD PTR -208[rbp], rax
lea rax, -176[rbp]
mov QWORD PTR -200[rbp], rax
lea rdx, -216[rbp]
mov rcx, QWORD PTR -240[rbp]
mov rax, QWORD PTR -184[rbp]
mov rsi, rcx
mov rdi, rax
call sqlite3VMPrintf
mov QWORD PTR -192[rbp], rax
mov rax, QWORD PTR -184[rbp]
movzx eax, BYTE PTR 101[rax]
test al, al
je .L1145
mov rdx, QWORD PTR -192[rbp]
mov rax, QWORD PTR -184[rbp]
mov rsi, rdx
mov rdi, rax
call sqlite3DbFree
jmp .L1148
.L1145:
mov rax, QWORD PTR -232[rbp]
mov eax, DWORD PTR 48[rax]
lea edx, 1[rax]
mov rax, QWORD PTR -232[rbp]
mov DWORD PTR 48[rax], edx
mov rax, QWORD PTR -232[rbp]
mov rdx, QWORD PTR 8[rax]
mov rax, QWORD PTR -184[rbp]
mov rsi, rdx
mov rdi, rax
call sqlite3DbFree
mov rax, QWORD PTR -232[rbp]
mov rdx, QWORD PTR -192[rbp]
mov QWORD PTR 8[rax], rdx
mov rax, QWORD PTR -232[rbp]
mov DWORD PTR 24[rax], 1
.L1148:
nop
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE198:
.size sqlite3ErrorMsg, .-sqlite3ErrorMsg
.type sqlite3Dequote, @function
sqlite3Dequote:
.LFB199:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
mov QWORD PTR -24[rbp], rdi
cmp QWORD PTR -24[rbp], 0
je .L1159
mov rax, QWORD PTR -24[rbp]
movzx eax, BYTE PTR [rax]
mov BYTE PTR -1[rbp], al
movzx eax, BYTE PTR -1[rbp]
movzx eax, al
movsx rdx, eax
lea rax, sqlite3CtypeMap[rip]
movzx eax, BYTE PTR [rdx+rax]
test al, al
jns .L1160
cmp BYTE PTR -1[rbp], 91
jne .L1153
mov BYTE PTR -1[rbp], 93
.L1153:
mov DWORD PTR -8[rbp], 1
mov DWORD PTR -12[rbp], 0
.L1158:
mov eax, DWORD PTR -8[rbp]
movsx rdx, eax
mov rax, QWORD PTR -24[rbp]
add rax, rdx
movzx eax, BYTE PTR [rax]
cmp al, BYTE PTR -1[rbp]
jne .L1154
mov eax, DWORD PTR -8[rbp]
cdqe
lea rdx, 1[rax]
mov rax, QWORD PTR -24[rbp]
add rax, rdx
movzx eax, BYTE PTR [rax]
cmp al, BYTE PTR -1[rbp]
jne .L1161
mov eax, DWORD PTR -12[rbp]
lea edx, 1[rax]
mov DWORD PTR -12[rbp], edx
movsx rdx, eax
mov rax, QWORD PTR -24[rbp]
add rdx, rax
movzx eax, BYTE PTR -1[rbp]
mov BYTE PTR [rdx], al
add DWORD PTR -8[rbp], 1
jmp .L1156
.L1154:
mov eax, DWORD PTR -12[rbp]
lea edx, 1[rax]
mov DWORD PTR -12[rbp], edx
movsx rdx, eax
mov rax, QWORD PTR -24[rbp]
add rdx, rax
mov eax, DWORD PTR -8[rbp]
movsx rcx, eax
mov rax, QWORD PTR -24[rbp]
add rax, rcx
movzx eax, BYTE PTR [rax]
mov BYTE PTR [rdx], al
.L1156:
add DWORD PTR -8[rbp], 1
jmp .L1158
.L1161:
nop
mov eax, DWORD PTR -12[rbp]
movsx rdx, eax
mov rax, QWORD PTR -24[rbp]
add rax, rdx
mov BYTE PTR [rax], 0
jmp .L1149
.L1159:
nop
jmp .L1149
.L1160:
nop
.L1149:
pop rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE199:
.size sqlite3Dequote, .-sqlite3Dequote
.type sqlite3TokenInit, @function
sqlite3TokenInit:
.LFB200:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 16
mov QWORD PTR -8[rbp], rdi
mov QWORD PTR -16[rbp], rsi
mov rax, QWORD PTR -8[rbp]
mov rdx, QWORD PTR -16[rbp]
mov QWORD PTR [rax], rdx
mov rax, QWORD PTR -16[rbp]
mov rdi, rax
call sqlite3Strlen30
mov edx, eax
mov rax, QWORD PTR -8[rbp]
mov DWORD PTR 8[rax], edx
nop
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE200:
.size sqlite3TokenInit, .-sqlite3TokenInit
.globl sqlite3_stricmp
.type sqlite3_stricmp, @function
sqlite3_stricmp:
.LFB201:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 16
mov QWORD PTR -8[rbp], rdi
mov QWORD PTR -16[rbp], rsi
cmp QWORD PTR -8[rbp], 0
jne .L1164
cmp QWORD PTR -16[rbp], 0
je .L1165
mov eax, -1
jmp .L1167
.L1165:
mov eax, 0
jmp .L1167
.L1164:
cmp QWORD PTR -16[rbp], 0
jne .L1168
mov eax, 1
jmp .L1167
.L1168:
mov rdx, QWORD PTR -16[rbp]
mov rax, QWORD PTR -8[rbp]
mov rsi, rdx
mov rdi, rax
call sqlite3StrICmp
.L1167:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE201:
.size sqlite3_stricmp, .-sqlite3_stricmp
.type sqlite3StrICmp, @function
sqlite3StrICmp:
.LFB202:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
mov QWORD PTR -40[rbp], rdi
mov QWORD PTR -48[rbp], rsi
mov rax, QWORD PTR -40[rbp]
mov QWORD PTR -8[rbp], rax
mov rax, QWORD PTR -48[rbp]
mov QWORD PTR -16[rbp], rax
.L1171:
mov rax, QWORD PTR -8[rbp]
movzx eax, BYTE PTR [rax]
movzx eax, al
movsx rdx, eax
lea rax, sqlite3UpperToLower[rip]
movzx eax, BYTE PTR [rdx+rax]
movzx ecx, al
mov rax, QWORD PTR -16[rbp]
movzx eax, BYTE PTR [rax]
movzx eax, al
movsx rdx, eax
lea rax, sqlite3UpperToLower[rip]
movzx eax, BYTE PTR [rdx+rax]
movzx eax, al
sub ecx, eax
mov eax, ecx
mov DWORD PTR -20[rbp], eax
cmp DWORD PTR -20[rbp], 0
jne .L1170
mov rax, QWORD PTR -8[rbp]
movzx eax, BYTE PTR [rax]
test al, al
je .L1170
add QWORD PTR -8[rbp], 1
add QWORD PTR -16[rbp], 1
jmp .L1171
.L1170:
mov eax, DWORD PTR -20[rbp]
pop rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE202:
.size sqlite3StrICmp, .-sqlite3StrICmp
.globl sqlite3_strnicmp
.type sqlite3_strnicmp, @function
sqlite3_strnicmp:
.LFB203:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
push r12
push rbx
.cfi_offset 12, -24
.cfi_offset 3, -32
mov QWORD PTR -24[rbp], rdi
mov QWORD PTR -32[rbp], rsi
mov DWORD PTR -36[rbp], edx
cmp QWORD PTR -24[rbp], 0
jne .L1174
cmp QWORD PTR -32[rbp], 0
je .L1175
mov eax, -1
jmp .L1177
.L1175:
mov eax, 0
jmp .L1177
.L1174:
cmp QWORD PTR -32[rbp], 0
jne .L1178
mov eax, 1
jmp .L1177
.L1178:
mov rbx, QWORD PTR -24[rbp]
mov r12, QWORD PTR -32[rbp]
jmp .L1179
.L1181:
add rbx, 1
add r12, 1
.L1179:
mov eax, DWORD PTR -36[rbp]
lea edx, -1[rax]
mov DWORD PTR -36[rbp], edx
test eax, eax
jle .L1180
movzx eax, BYTE PTR [rbx]
test al, al
je .L1180
movzx eax, BYTE PTR [rbx]
movzx eax, al
movsx rdx, eax
lea rax, sqlite3UpperToLower[rip]
movzx ecx, BYTE PTR [rdx+rax]
movzx eax, BYTE PTR [r12]
movzx eax, al
movsx rdx, eax
lea rax, sqlite3UpperToLower[rip]
movzx eax, BYTE PTR [rdx+rax]
cmp cl, al
je .L1181
.L1180:
cmp DWORD PTR -36[rbp], 0
js .L1182
movzx eax, BYTE PTR [rbx]
movzx eax, al
movsx rdx, eax
lea rax, sqlite3UpperToLower[rip]
movzx eax, BYTE PTR [rdx+rax]
movzx ecx, al
movzx eax, BYTE PTR [r12]
movzx eax, al
movsx rdx, eax
lea rax, sqlite3UpperToLower[rip]
movzx eax, BYTE PTR [rdx+rax]
movzx eax, al
sub ecx, eax
mov eax, ecx
jmp .L1177
.L1182:
mov eax, 0
.L1177:
pop rbx
pop r12
pop rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE203:
.size sqlite3_strnicmp, .-sqlite3_strnicmp
.type sqlite3Pow10, @function
sqlite3Pow10:
.LFB204:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
mov DWORD PTR -36[rbp], edi
fld TBYTE PTR .LC52[rip]
fstp TBYTE PTR -16[rbp]
fld1
fstp TBYTE PTR -32[rbp]
.L1188:
mov eax, DWORD PTR -36[rbp]
and eax, 1
test eax, eax
je .L1185
fld TBYTE PTR -32[rbp]
fld TBYTE PTR -16[rbp]
fmulp st(1), st
fstp TBYTE PTR -32[rbp]
.L1185:
sar DWORD PTR -36[rbp]
cmp DWORD PTR -36[rbp], 0
je .L1191
fld TBYTE PTR -16[rbp]
fld TBYTE PTR -16[rbp]
fmulp st(1), st
fstp TBYTE PTR -16[rbp]
jmp .L1188
.L1191:
nop
fld TBYTE PTR -32[rbp]
pop rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE204:
.size sqlite3Pow10, .-sqlite3Pow10
.type sqlite3AtoF, @function
sqlite3AtoF:
.LFB205:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 160
mov QWORD PTR -120[rbp], rdi
mov QWORD PTR -128[rbp], rsi
mov DWORD PTR -132[rbp], edx
mov eax, ecx
mov BYTE PTR -136[rbp], al
mov eax, DWORD PTR -132[rbp]
movsx rdx, eax
mov rax, QWORD PTR -120[rbp]
add rax, rdx
mov QWORD PTR -16[rbp], rax
mov DWORD PTR -20[rbp], 1
mov QWORD PTR -32[rbp], 0
mov DWORD PTR -36[rbp], 0
mov DWORD PTR -40[rbp], 1
mov DWORD PTR -44[rbp], 0
mov DWORD PTR -48[rbp], 1
mov DWORD PTR -60[rbp], 0
mov DWORD PTR -64[rbp], 0
mov rax, QWORD PTR -128[rbp]
pxor xmm0, xmm0
movsd QWORD PTR [rax], xmm0
cmp BYTE PTR -136[rbp], 1
jne .L1193
mov DWORD PTR -4[rbp], 1
jmp .L1198
.L1193:
mov DWORD PTR -4[rbp], 2
movzx eax, BYTE PTR -136[rbp]
mov edx, 3
sub edx, eax
mov eax, edx
mov DWORD PTR -68[rbp], eax
jmp .L1195
.L1197:
add DWORD PTR -68[rbp], 2
.L1195:
mov eax, DWORD PTR -68[rbp]
cmp eax, DWORD PTR -132[rbp]
jge .L1196
mov eax, DWORD PTR -68[rbp]
movsx rdx, eax
mov rax, QWORD PTR -120[rbp]
add rax, rdx
movzx eax, BYTE PTR [rax]
test al, al
je .L1197
.L1196:
mov eax, DWORD PTR -68[rbp]
cmp eax, DWORD PTR -132[rbp]
setl al
movzx eax, al
mov DWORD PTR -64[rbp], eax
mov eax, DWORD PTR -68[rbp]
xor eax, 1
movsx rdx, eax
mov rax, QWORD PTR -120[rbp]
add rax, rdx
mov QWORD PTR -16[rbp], rax
movzx eax, BYTE PTR -136[rbp]
and eax, 1
add QWORD PTR -120[rbp], rax
jmp .L1198
.L1200:
mov eax, DWORD PTR -4[rbp]
cdqe
add QWORD PTR -120[rbp], rax
.L1198:
mov rax, QWORD PTR -120[rbp]
cmp rax, QWORD PTR -16[rbp]
jnb .L1199
mov rax, QWORD PTR -120[rbp]
movzx eax, BYTE PTR [rax]
movzx eax, al
movsx rdx, eax
lea rax, sqlite3CtypeMap[rip]
movzx eax, BYTE PTR [rdx+rax]
movzx eax, al
and eax, 1
test eax, eax
jne .L1200
.L1199:
mov rax, QWORD PTR -120[rbp]
cmp rax, QWORD PTR -16[rbp]
jb .L1201
mov eax, 0
jmp .L1202
.L1201:
mov rax, QWORD PTR -120[rbp]
movzx eax, BYTE PTR [rax]
cmp al, 45
jne .L1203
mov DWORD PTR -20[rbp], -1
mov eax, DWORD PTR -4[rbp]
cdqe
add QWORD PTR -120[rbp], rax
jmp .L1205
.L1203:
mov rax, QWORD PTR -120[rbp]
movzx eax, BYTE PTR [rax]
cmp al, 43
jne .L1205
mov eax, DWORD PTR -4[rbp]
cdqe
add QWORD PTR -120[rbp], rax
jmp .L1205
.L1207:
mov rdx, QWORD PTR -32[rbp]
mov rax, rdx
sal rax, 2
add rax, rdx
add rax, rax
mov rdx, rax
mov rax, QWORD PTR -120[rbp]
movzx eax, BYTE PTR [rax]
movsx eax, al
sub eax, 48
cdqe
add rax, rdx
mov QWORD PTR -32[rbp], rax
mov eax, DWORD PTR -4[rbp]
cdqe
add QWORD PTR -120[rbp], rax
add DWORD PTR -60[rbp], 1
.L1205:
mov rax, QWORD PTR -120[rbp]
cmp rax, QWORD PTR -16[rbp]
jnb .L1208
mov rax, QWORD PTR -120[rbp]
movzx eax, BYTE PTR [rax]
movzx eax, al
movsx rdx, eax
lea rax, sqlite3CtypeMap[rip]
movzx eax, BYTE PTR [rdx+rax]
movzx eax, al
and eax, 4
test eax, eax
je .L1208
movabs rax, 922337203685477578
cmp QWORD PTR -32[rbp], rax
jle .L1207
jmp .L1208
.L1210:
mov eax, DWORD PTR -4[rbp]
cdqe
add QWORD PTR -120[rbp], rax
add DWORD PTR -60[rbp], 1
add DWORD PTR -36[rbp], 1
.L1208:
mov rax, QWORD PTR -120[rbp]
cmp rax, QWORD PTR -16[rbp]
jnb .L1209
mov rax, QWORD PTR -120[rbp]
movzx eax, BYTE PTR [rax]
movzx eax, al
movsx rdx, eax
lea rax, sqlite3CtypeMap[rip]
movzx eax, BYTE PTR [rdx+rax]
movzx eax, al
and eax, 4
test eax, eax
jne .L1210
.L1209:
mov rax, QWORD PTR -120[rbp]
cmp rax, QWORD PTR -16[rbp]
jnb .L1254
mov rax, QWORD PTR -120[rbp]
movzx eax, BYTE PTR [rax]
cmp al, 46
jne .L1213
mov eax, DWORD PTR -4[rbp]
cdqe
add QWORD PTR -120[rbp], rax
jmp .L1214
.L1216:
movabs rax, 922337203685477578
cmp QWORD PTR -32[rbp], rax
jg .L1215
mov rdx, QWORD PTR -32[rbp]
mov rax, rdx
sal rax, 2
add rax, rdx
add rax, rax
mov rdx, rax
mov rax, QWORD PTR -120[rbp]
movzx eax, BYTE PTR [rax]
movsx eax, al
sub eax, 48
cdqe
add rax, rdx
mov QWORD PTR -32[rbp], rax
sub DWORD PTR -36[rbp], 1
.L1215:
mov eax, DWORD PTR -4[rbp]
cdqe
add QWORD PTR -120[rbp], rax
add DWORD PTR -60[rbp], 1
.L1214:
mov rax, QWORD PTR -120[rbp]
cmp rax, QWORD PTR -16[rbp]
jnb .L1213
mov rax, QWORD PTR -120[rbp]
movzx eax, BYTE PTR [rax]
movzx eax, al
movsx rdx, eax
lea rax, sqlite3CtypeMap[rip]
movzx eax, BYTE PTR [rdx+rax]
movzx eax, al
and eax, 4
test eax, eax
jne .L1216
.L1213:
mov rax, QWORD PTR -120[rbp]
cmp rax, QWORD PTR -16[rbp]
jnb .L1255
mov rax, QWORD PTR -120[rbp]
movzx eax, BYTE PTR [rax]
cmp al, 101
je .L1218
mov rax, QWORD PTR -120[rbp]
movzx eax, BYTE PTR [rax]
cmp al, 69
jne .L1227
.L1218:
mov eax, DWORD PTR -4[rbp]
cdqe
add QWORD PTR -120[rbp], rax
mov DWORD PTR -48[rbp], 0
mov rax, QWORD PTR -120[rbp]
cmp rax, QWORD PTR -16[rbp]
jnb .L1256
mov rax, QWORD PTR -120[rbp]
movzx eax, BYTE PTR [rax]
cmp al, 45
jne .L1221
mov DWORD PTR -40[rbp], -1
mov eax, DWORD PTR -4[rbp]
cdqe
add QWORD PTR -120[rbp], rax
jmp .L1223
.L1221:
mov rax, QWORD PTR -120[rbp]
movzx eax, BYTE PTR [rax]
cmp al, 43
jne .L1223
mov eax, DWORD PTR -4[rbp]
cdqe
add QWORD PTR -120[rbp], rax
jmp .L1223
.L1226:
cmp DWORD PTR -44[rbp], 9999
jg .L1224
mov edx, DWORD PTR -44[rbp]
mov eax, edx
sal eax, 2
add eax, edx
add eax, eax
mov edx, eax
mov rax, QWORD PTR -120[rbp]
movzx eax, BYTE PTR [rax]
movsx eax, al
sub eax, 48
add eax, edx
jmp .L1225
.L1224:
mov eax, 10000
.L1225:
mov DWORD PTR -44[rbp], eax
mov eax, DWORD PTR -4[rbp]
cdqe
add QWORD PTR -120[rbp], rax
mov DWORD PTR -48[rbp], 1
.L1223:
mov rax, QWORD PTR -120[rbp]
cmp rax, QWORD PTR -16[rbp]
jnb .L1227
mov rax, QWORD PTR -120[rbp]
movzx eax, BYTE PTR [rax]
movzx eax, al
movsx rdx, eax
lea rax, sqlite3CtypeMap[rip]
movzx eax, BYTE PTR [rdx+rax]
movzx eax, al
and eax, 4
test eax, eax
jne .L1226
jmp .L1227
.L1228:
mov eax, DWORD PTR -4[rbp]
cdqe
add QWORD PTR -120[rbp], rax
.L1227:
mov rax, QWORD PTR -120[rbp]
cmp rax, QWORD PTR -16[rbp]
jnb .L1212
mov rax, QWORD PTR -120[rbp]
movzx eax, BYTE PTR [rax]
movzx eax, al
movsx rdx, eax
lea rax, sqlite3CtypeMap[rip]
movzx eax, BYTE PTR [rdx+rax]
movzx eax, al
and eax, 1
test eax, eax
jne .L1228
jmp .L1212
.L1254:
nop
jmp .L1212
.L1255:
nop
jmp .L1212
.L1256:
nop
.L1212:
mov eax, DWORD PTR -44[rbp]
imul eax, DWORD PTR -40[rbp]
mov edx, eax
mov eax, DWORD PTR -36[rbp]
add eax, edx
mov DWORD PTR -44[rbp], eax
cmp DWORD PTR -44[rbp], 0
jns .L1229
mov DWORD PTR -40[rbp], -1
neg DWORD PTR -44[rbp]
jmp .L1230
.L1229:
mov DWORD PTR -40[rbp], 1
.L1230:
cmp QWORD PTR -32[rbp], 0
jne .L1235
cmp DWORD PTR -20[rbp], 0
jns .L1232
movsd xmm0, QWORD PTR .LC69[rip]
jmp .L1233
.L1232:
pxor xmm0, xmm0
.L1233:
movsd QWORD PTR -56[rbp], xmm0
jmp .L1234
.L1241:
cmp DWORD PTR -40[rbp], 0
jle .L1236
movabs rax, 922337203685477579
cmp QWORD PTR -32[rbp], rax
jg .L1257
mov rdx, QWORD PTR -32[rbp]
mov rax, rdx
sal rax, 2
add rax, rdx
add rax, rax
mov QWORD PTR -32[rbp], rax
jmp .L1239
.L1236:
mov rcx, QWORD PTR -32[rbp]
movabs rdx, 7378697629483820647
mov rax, rcx
imul rdx
sar rdx, 2
mov rax, rcx
sar rax, 63
sub rdx, rax
mov rax, rdx
sal rax, 2
add rax, rdx
add rax, rax
sub rcx, rax
mov rdx, rcx
test rdx, rdx
jne .L1258
mov rcx, QWORD PTR -32[rbp]
movabs rdx, 7378697629483820647
mov rax, rcx
imul rdx
sar rdx, 2
mov rax, rcx
sar rax, 63
sub rdx, rax
mov rax, rdx
mov QWORD PTR -32[rbp], rax
.L1239:
sub DWORD PTR -44[rbp], 1
.L1235:
cmp DWORD PTR -44[rbp], 0
jg .L1241
jmp .L1238
.L1257:
nop
jmp .L1238
.L1258:
nop
.L1238:
cmp DWORD PTR -20[rbp], 0
jns .L1242
mov rax, QWORD PTR -32[rbp]
neg rax
jmp .L1243
.L1242:
mov rax, QWORD PTR -32[rbp]
.L1243:
mov QWORD PTR -32[rbp], rax
cmp DWORD PTR -44[rbp], 0
jne .L1244
pxor xmm0, xmm0
cvtsi2sdq xmm0, QWORD PTR -32[rbp]
movsd QWORD PTR -56[rbp], xmm0
jmp .L1234
.L1244:
cmp DWORD PTR -44[rbp], 307
jle .L1245
cmp DWORD PTR -44[rbp], 341
jg .L1246
mov eax, DWORD PTR -44[rbp]
sub eax, 308
mov edi, eax
call sqlite3Pow10
fstp TBYTE PTR -160[rbp]
mov rax, QWORD PTR -160[rbp]
mov edx, DWORD PTR -152[rbp]
mov QWORD PTR -96[rbp], rax
mov DWORD PTR -88[rbp], edx
cmp DWORD PTR -40[rbp], 0
jns .L1247
fild QWORD PTR -32[rbp]
fld TBYTE PTR -96[rbp]
fdivp st(1), st
fstp QWORD PTR -56[rbp]
movsd xmm0, QWORD PTR -56[rbp]
movsd xmm1, QWORD PTR .LC70[rip]
divsd xmm0, xmm1
movsd QWORD PTR -56[rbp], xmm0
jmp .L1234
.L1247:
fild QWORD PTR -32[rbp]
fld TBYTE PTR -96[rbp]
fmulp st(1), st
fstp QWORD PTR -56[rbp]
movsd xmm1, QWORD PTR -56[rbp]
movsd xmm0, QWORD PTR .LC70[rip]
mulsd xmm0, xmm1
movsd QWORD PTR -56[rbp], xmm0
jmp .L1234
.L1246:
cmp DWORD PTR -40[rbp], 0
jns .L1250
pxor xmm0, xmm0
cvtsi2sdq xmm0, QWORD PTR -32[rbp]
pxor xmm1, xmm1
mulsd xmm0, xmm1
movsd QWORD PTR -56[rbp], xmm0
jmp .L1234
.L1250:
pxor xmm1, xmm1
cvtsi2sdq xmm1, QWORD PTR -32[rbp]
movsd xmm2, QWORD PTR .LC70[rip]
movsd xmm0, QWORD PTR .LC70[rip]
mulsd xmm0, xmm2
mulsd xmm0, xmm1
movsd QWORD PTR -56[rbp], xmm0
jmp .L1234
.L1245:
mov eax, DWORD PTR -44[rbp]
mov edi, eax
call sqlite3Pow10
fstp TBYTE PTR -160[rbp]
mov rax, QWORD PTR -160[rbp]
mov edx, DWORD PTR -152[rbp]
mov QWORD PTR -112[rbp], rax
mov DWORD PTR -104[rbp], edx
cmp DWORD PTR -40[rbp], 0
jns .L1251
fild QWORD PTR -32[rbp]
fld TBYTE PTR -112[rbp]
fdivp st(1), st
fstp QWORD PTR -56[rbp]
jmp .L1234
.L1251:
fild QWORD PTR -32[rbp]
fld TBYTE PTR -112[rbp]
fmulp st(1), st
fstp QWORD PTR -56[rbp]
.L1234:
mov rax, QWORD PTR -128[rbp]
movsd xmm0, QWORD PTR -56[rbp]
movsd QWORD PTR [rax], xmm0
mov rax, QWORD PTR -120[rbp]
cmp rax, QWORD PTR -16[rbp]
jne .L1252
cmp DWORD PTR -60[rbp], 0
jle .L1252
cmp DWORD PTR -48[rbp], 0
je .L1252
cmp DWORD PTR -64[rbp], 0
jne .L1252
mov eax, 1
jmp .L1202
.L1252:
mov eax, 0
.L1202:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE205:
.size sqlite3AtoF, .-sqlite3AtoF
.section .rodata
.LC71:
.string "922337203685477580"
.text
.type compare2pow63, @function
compare2pow63:
.LFB206:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
mov QWORD PTR -24[rbp], rdi
mov DWORD PTR -28[rbp], esi
mov DWORD PTR -4[rbp], 0
lea rax, .LC71[rip]
mov QWORD PTR -16[rbp], rax
mov DWORD PTR -8[rbp], 0
jmp .L1260
.L1262:
mov eax, DWORD PTR -8[rbp]
imul eax, DWORD PTR -28[rbp]
movsx rdx, eax
mov rax, QWORD PTR -24[rbp]
add rax, rdx
movzx eax, BYTE PTR [rax]
movsx edx, al
mov eax, DWORD PTR -8[rbp]
movsx rcx, eax
mov rax, QWORD PTR -16[rbp]
add rax, rcx
movzx eax, BYTE PTR [rax]
movsx eax, al
sub edx, eax
mov eax, edx
sal eax, 2
add eax, edx
add eax, eax
mov DWORD PTR -4[rbp], eax
add DWORD PTR -8[rbp], 1
.L1260:
cmp DWORD PTR -4[rbp], 0
jne .L1261
cmp DWORD PTR -8[rbp], 17
jle .L1262
.L1261:
cmp DWORD PTR -4[rbp], 0
jne .L1263
mov edx, DWORD PTR -28[rbp]
mov eax, edx
sal eax, 3
add eax, edx
add eax, eax
movsx rdx, eax
mov rax, QWORD PTR -24[rbp]
add rax, rdx
movzx eax, BYTE PTR [rax]
movsx eax, al
sub eax, 56
mov DWORD PTR -4[rbp], eax
.L1263:
mov eax, DWORD PTR -4[rbp]
pop rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE206:
.size compare2pow63, .-compare2pow63
.type sqlite3Atoi64, @function
sqlite3Atoi64:
.LFB207:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 88
mov QWORD PTR -72[rbp], rdi
mov QWORD PTR -80[rbp], rsi
mov DWORD PTR -84[rbp], edx
mov eax, ecx
mov BYTE PTR -88[rbp], al
mov QWORD PTR -16[rbp], 0
mov DWORD PTR -20[rbp], 0
mov DWORD PTR -44[rbp], 0
mov DWORD PTR -28[rbp], 0
mov eax, DWORD PTR -84[rbp]
movsx rdx, eax
mov rax, QWORD PTR -72[rbp]
add rax, rdx
mov QWORD PTR -40[rbp], rax
cmp BYTE PTR -88[rbp], 1
jne .L1266
mov DWORD PTR -4[rbp], 1
jmp .L1271
.L1266:
mov DWORD PTR -4[rbp], 2
movzx eax, BYTE PTR -88[rbp]
mov edx, 3
sub edx, eax
mov eax, edx
mov DWORD PTR -24[rbp], eax
jmp .L1268
.L1270:
add DWORD PTR -24[rbp], 2
.L1268:
mov eax, DWORD PTR -24[rbp]
cmp eax, DWORD PTR -84[rbp]
jge .L1269
mov eax, DWORD PTR -24[rbp]
movsx rdx, eax
mov rax, QWORD PTR -72[rbp]
add rax, rdx
movzx eax, BYTE PTR [rax]
test al, al
je .L1270
.L1269:
mov eax, DWORD PTR -24[rbp]
cmp eax, DWORD PTR -84[rbp]
setl al
movzx eax, al
mov DWORD PTR -28[rbp], eax
mov eax, DWORD PTR -24[rbp]
xor eax, 1
movsx rdx, eax
mov rax, QWORD PTR -72[rbp]
add rax, rdx
mov QWORD PTR -40[rbp], rax
movzx eax, BYTE PTR -88[rbp]
and eax, 1
add QWORD PTR -72[rbp], rax
jmp .L1271
.L1273:
mov eax, DWORD PTR -4[rbp]
cdqe
add QWORD PTR -72[rbp], rax
.L1271:
mov rax, QWORD PTR -72[rbp]
cmp rax, QWORD PTR -40[rbp]
jnb .L1272
mov rax, QWORD PTR -72[rbp]
movzx eax, BYTE PTR [rax]
movzx eax, al
movsx rdx, eax
lea rax, sqlite3CtypeMap[rip]
movzx eax, BYTE PTR [rdx+rax]
movzx eax, al
and eax, 1
test eax, eax
jne .L1273
.L1272:
mov rax, QWORD PTR -72[rbp]
cmp rax, QWORD PTR -40[rbp]
jnb .L1274
mov rax, QWORD PTR -72[rbp]
movzx eax, BYTE PTR [rax]
cmp al, 45
jne .L1275
mov DWORD PTR -20[rbp], 1
mov eax, DWORD PTR -4[rbp]
cdqe
add QWORD PTR -72[rbp], rax
jmp .L1274
.L1275:
mov rax, QWORD PTR -72[rbp]
movzx eax, BYTE PTR [rax]
cmp al, 43
jne .L1274
mov eax, DWORD PTR -4[rbp]
cdqe
add QWORD PTR -72[rbp], rax
.L1274:
mov rax, QWORD PTR -72[rbp]
mov QWORD PTR -56[rbp], rax
jmp .L1276
.L1278:
mov eax, DWORD PTR -4[rbp]
cdqe
add QWORD PTR -72[rbp], rax
.L1276:
mov rax, QWORD PTR -72[rbp]
cmp rax, QWORD PTR -40[rbp]
jnb .L1277
mov rax, QWORD PTR -72[rbp]
movzx eax, BYTE PTR [rax]
cmp al, 48
je .L1278
.L1277:
mov DWORD PTR -24[rbp], 0
jmp .L1279
.L1281:
mov rdx, QWORD PTR -16[rbp]
mov rax, rdx
sal rax, 2
add rax, rdx
add rax, rax
mov rdx, rax
mov eax, DWORD PTR -44[rbp]
cdqe
add rax, rdx
sub rax, 48
mov QWORD PTR -16[rbp], rax
mov eax, DWORD PTR -4[rbp]
add DWORD PTR -24[rbp], eax
.L1279:
mov eax, DWORD PTR -24[rbp]
movsx rdx, eax
mov rax, QWORD PTR -72[rbp]
add rax, rdx
cmp rax, QWORD PTR -40[rbp]
jnb .L1280
mov eax, DWORD PTR -24[rbp]
movsx rdx, eax
mov rax, QWORD PTR -72[rbp]
add rax, rdx
movzx eax, BYTE PTR [rax]
movsx eax, al
mov DWORD PTR -44[rbp], eax
cmp DWORD PTR -44[rbp], 47
jle .L1280
cmp DWORD PTR -44[rbp], 57
jle .L1281
.L1280:
mov rax, QWORD PTR -16[rbp]
test rax, rax
jns .L1282
cmp DWORD PTR -20[rbp], 0
je .L1283
movabs rax, -9223372036854775808
jmp .L1284
.L1283:
movabs rax, 9223372036854775807
.L1284:
mov rdx, QWORD PTR -80[rbp]
mov QWORD PTR [rdx], rax
jmp .L1285
.L1282:
cmp DWORD PTR -20[rbp], 0
je .L1286
mov rax, QWORD PTR -16[rbp]
neg rax
mov rdx, rax
mov rax, QWORD PTR -80[rbp]
mov QWORD PTR [rax], rdx
jmp .L1285
.L1286:
mov rdx, QWORD PTR -16[rbp]
mov rax, QWORD PTR -80[rbp]
mov QWORD PTR [rax], rdx
.L1285:
mov eax, DWORD PTR -24[rbp]
movsx rdx, eax
mov rax, QWORD PTR -72[rbp]
add rax, rdx
cmp rax, QWORD PTR -40[rbp]
jb .L1287
cmp DWORD PTR -24[rbp], 0
jne .L1288
mov rax, QWORD PTR -56[rbp]
cmp rax, QWORD PTR -72[rbp]
je .L1287
.L1288:
cmp DWORD PTR -28[rbp], 0
je .L1289
.L1287:
mov DWORD PTR -32[rbp], 1
jmp .L1290
.L1289:
mov DWORD PTR -32[rbp], 0
.L1290:
mov edx, DWORD PTR -4[rbp]
mov eax, edx
sal eax, 3
add eax, edx
add eax, eax
add eax, edx
cmp eax, DWORD PTR -24[rbp]
jge .L1291
mov eax, 2
jmp .L1292
.L1291:
mov edx, DWORD PTR -4[rbp]
mov eax, edx
sal eax, 3
add eax, edx
add eax, eax
add eax, edx
cmp eax, DWORD PTR -24[rbp]
jle .L1293
mov eax, DWORD PTR -32[rbp]
jmp .L1292
.L1293:
mov edx, DWORD PTR -4[rbp]
mov rax, QWORD PTR -72[rbp]
mov esi, edx
mov rdi, rax
call compare2pow63
mov DWORD PTR -44[rbp], eax
cmp DWORD PTR -44[rbp], 0
jns .L1294
mov eax, DWORD PTR -32[rbp]
jmp .L1292
.L1294:
cmp DWORD PTR -44[rbp], 0
jle .L1295
mov eax, 2
jmp .L1292
.L1295:
cmp DWORD PTR -20[rbp], 0
je .L1296
mov eax, DWORD PTR -32[rbp]
jmp .L1292
.L1296:
mov eax, 3
.L1292:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE207:
.size sqlite3Atoi64, .-sqlite3Atoi64
.type sqlite3DecOrHexToI64, @function
sqlite3DecOrHexToI64:
.LFB208:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
push rbx
sub rsp, 40
.cfi_offset 3, -24
mov QWORD PTR -40[rbp], rdi
mov QWORD PTR -48[rbp], rsi
mov rax, QWORD PTR -40[rbp]
movzx eax, BYTE PTR [rax]
cmp al, 48
jne .L1299
mov rax, QWORD PTR -40[rbp]
add rax, 1
movzx eax, BYTE PTR [rax]
cmp al, 120
je .L1300
mov rax, QWORD PTR -40[rbp]
add rax, 1
movzx eax, BYTE PTR [rax]
cmp al, 88
jne .L1299
.L1300:
mov QWORD PTR -32[rbp], 0
mov DWORD PTR -20[rbp], 2
jmp .L1301
.L1302:
add DWORD PTR -20[rbp], 1
.L1301:
mov eax, DWORD PTR -20[rbp]
movsx rdx, eax
mov rax, QWORD PTR -40[rbp]
add rax, rdx
movzx eax, BYTE PTR [rax]
cmp al, 48
je .L1302
mov eax, DWORD PTR -20[rbp]
mov DWORD PTR -24[rbp], eax
jmp .L1303
.L1304:
mov rax, QWORD PTR -32[rbp]
sal rax, 4
mov rbx, rax
mov eax, DWORD PTR -24[rbp]
movsx rdx, eax
mov rax, QWORD PTR -40[rbp]
add rax, rdx
movzx eax, BYTE PTR [rax]
movsx eax, al
mov edi, eax
call sqlite3HexToInt
movzx eax, al
add rax, rbx
mov QWORD PTR -32[rbp], rax
add DWORD PTR -24[rbp], 1
.L1303:
mov eax, DWORD PTR -24[rbp]
movsx rdx, eax
mov rax, QWORD PTR -40[rbp]
add rax, rdx
movzx eax, BYTE PTR [rax]
movzx eax, al
movsx rdx, eax
lea rax, sqlite3CtypeMap[rip]
movzx eax, BYTE PTR [rdx+rax]
movzx eax, al
and eax, 8
test eax, eax
jne .L1304
mov rdx, QWORD PTR -32[rbp]
mov rax, QWORD PTR -48[rbp]
mov QWORD PTR [rax], rdx
mov eax, DWORD PTR -24[rbp]
movsx rdx, eax
mov rax, QWORD PTR -40[rbp]
add rax, rdx
movzx eax, BYTE PTR [rax]
test al, al
jne .L1305
mov eax, DWORD PTR -24[rbp]
sub eax, DWORD PTR -20[rbp]
cmp eax, 16
jg .L1305
mov eax, 0
jmp .L1307
.L1305:
mov eax, 2
jmp .L1307
.L1299:
mov rax, QWORD PTR -40[rbp]
mov rdi, rax
call sqlite3Strlen30
mov edx, eax
mov rsi, QWORD PTR -48[rbp]
mov rax, QWORD PTR -40[rbp]
mov ecx, 1
mov rdi, rax
call sqlite3Atoi64
.L1307:
add rsp, 40
pop rbx
pop rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE208:
.size sqlite3DecOrHexToI64, .-sqlite3DecOrHexToI64
.type sqlite3GetInt32, @function
sqlite3GetInt32:
.LFB209:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
push rbx
sub rsp, 56
.cfi_offset 3, -24
mov QWORD PTR -56[rbp], rdi
mov QWORD PTR -64[rbp], rsi
mov QWORD PTR -24[rbp], 0
mov DWORD PTR -32[rbp], 0
mov rax, QWORD PTR -56[rbp]
movzx eax, BYTE PTR [rax]
cmp al, 45
jne .L1309
mov DWORD PTR -32[rbp], 1
add QWORD PTR -56[rbp], 1
jmp .L1310
.L1309:
mov rax, QWORD PTR -56[rbp]
movzx eax, BYTE PTR [rax]
cmp al, 43
jne .L1311
add QWORD PTR -56[rbp], 1
jmp .L1310
.L1311:
mov rax, QWORD PTR -56[rbp]
movzx eax, BYTE PTR [rax]
cmp al, 48
jne .L1310
mov rax, QWORD PTR -56[rbp]
add rax, 1
movzx eax, BYTE PTR [rax]
cmp al, 120
je .L1312
mov rax, QWORD PTR -56[rbp]
add rax, 1
movzx eax, BYTE PTR [rax]
cmp al, 88
jne .L1310
.L1312:
mov rax, QWORD PTR -56[rbp]
add rax, 2
movzx eax, BYTE PTR [rax]
movzx eax, al
movsx rdx, eax
lea rax, sqlite3CtypeMap[rip]
movzx eax, BYTE PTR [rdx+rax]
movzx eax, al
and eax, 8
test eax, eax
je .L1310
mov DWORD PTR -40[rbp], 0
add QWORD PTR -56[rbp], 2
jmp .L1313
.L1314:
add QWORD PTR -56[rbp], 1
.L1313:
mov rax, QWORD PTR -56[rbp]
movzx eax, BYTE PTR [rax]
cmp al, 48
je .L1314
mov DWORD PTR -28[rbp], 0
jmp .L1315
.L1317:
mov eax, DWORD PTR -40[rbp]
sal eax, 4
mov ebx, eax
mov eax, DWORD PTR -28[rbp]
movsx rdx, eax
mov rax, QWORD PTR -56[rbp]
add rax, rdx
movzx eax, BYTE PTR [rax]
movsx eax, al
mov edi, eax
call sqlite3HexToInt
movzx eax, al
add eax, ebx
mov DWORD PTR -40[rbp], eax
add DWORD PTR -28[rbp], 1
.L1315:
mov eax, DWORD PTR -28[rbp]
movsx rdx, eax
mov rax, QWORD PTR -56[rbp]
add rax, rdx
movzx eax, BYTE PTR [rax]
movzx eax, al
movsx rdx, eax
lea rax, sqlite3CtypeMap[rip]
movzx eax, BYTE PTR [rdx+rax]
movzx eax, al
and eax, 8
test eax, eax
je .L1316
cmp DWORD PTR -28[rbp], 7
jle .L1317
.L1316:
mov eax, DWORD PTR -40[rbp]
test eax, eax
js .L1318
mov eax, DWORD PTR -28[rbp]
movsx rdx, eax
mov rax, QWORD PTR -56[rbp]
add rax, rdx
movzx eax, BYTE PTR [rax]
movzx eax, al
movsx rdx, eax
lea rax, sqlite3CtypeMap[rip]
movzx eax, BYTE PTR [rdx+rax]
movzx eax, al
and eax, 8
test eax, eax
jne .L1318
mov edx, DWORD PTR -40[rbp]
mov rax, QWORD PTR -64[rbp]
mov DWORD PTR [rax], edx
mov eax, 1
jmp .L1320
.L1318:
mov eax, 0
jmp .L1320
.L1310:
mov rax, QWORD PTR -56[rbp]
movzx eax, BYTE PTR [rax]
movzx eax, al
movsx rdx, eax
lea rax, sqlite3CtypeMap[rip]
movzx eax, BYTE PTR [rdx+rax]
movzx eax, al
and eax, 4
test eax, eax
jne .L1322
mov eax, 0
jmp .L1320
.L1323:
add QWORD PTR -56[rbp], 1
.L1322:
mov rax, QWORD PTR -56[rbp]
movzx eax, BYTE PTR [rax]
cmp al, 48
je .L1323
mov DWORD PTR -28[rbp], 0
jmp .L1324
.L1326:
mov rdx, QWORD PTR -24[rbp]
mov rax, rdx
sal rax, 2
add rax, rdx
add rax, rax
mov rdx, rax
mov eax, DWORD PTR -36[rbp]
cdqe
add rax, rdx
mov QWORD PTR -24[rbp], rax
add DWORD PTR -28[rbp], 1
.L1324:
cmp DWORD PTR -28[rbp], 10
jg .L1325
mov eax, DWORD PTR -28[rbp]
movsx rdx, eax
mov rax, QWORD PTR -56[rbp]
add rax, rdx
movzx eax, BYTE PTR [rax]
movsx eax, al
sub eax, 48
mov DWORD PTR -36[rbp], eax
cmp DWORD PTR -36[rbp], 0
js .L1325
cmp DWORD PTR -36[rbp], 9
jle .L1326
.L1325:
cmp DWORD PTR -28[rbp], 10
jle .L1327
mov eax, 0
jmp .L1320
.L1327:
mov eax, DWORD PTR -32[rbp]
cdqe
mov rdx, QWORD PTR -24[rbp]
sub rdx, rax
mov rax, rdx
cmp rax, 2147483647
jle .L1328
mov eax, 0
jmp .L1320
.L1328:
cmp DWORD PTR -32[rbp], 0
je .L1329
neg QWORD PTR -24[rbp]
.L1329:
mov rax, QWORD PTR -24[rbp]
mov edx, eax
mov rax, QWORD PTR -64[rbp]
mov DWORD PTR [rax], edx
mov eax, 1
.L1320:
add rsp, 56
pop rbx
pop rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE209:
.size sqlite3GetInt32, .-sqlite3GetInt32
.type sqlite3Atoi, @function
sqlite3Atoi:
.LFB210:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 32
mov QWORD PTR -24[rbp], rdi
mov DWORD PTR -4[rbp], 0
cmp QWORD PTR -24[rbp], 0
je .L1331
lea rdx, -4[rbp]
mov rax, QWORD PTR -24[rbp]
mov rsi, rdx
mov rdi, rax
call sqlite3GetInt32
.L1331:
mov eax, DWORD PTR -4[rbp]
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE210:
.size sqlite3Atoi, .-sqlite3Atoi
.type putVarint64, @function
putVarint64:
.LFB211:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
mov QWORD PTR -40[rbp], rdi
mov QWORD PTR -48[rbp], rsi
movabs rax, -72057594037927936
and rax, QWORD PTR -48[rbp]
test rax, rax
je .L1334
mov rax, QWORD PTR -40[rbp]
add rax, 8
mov rdx, QWORD PTR -48[rbp]
mov BYTE PTR [rax], dl
shr QWORD PTR -48[rbp], 8
mov DWORD PTR -4[rbp], 7
jmp .L1335
.L1336:
mov eax, DWORD PTR -4[rbp]
movsx rdx, eax
mov rax, QWORD PTR -40[rbp]
add rax, rdx
mov rdx, QWORD PTR -48[rbp]
or edx, -128
mov BYTE PTR [rax], dl
shr QWORD PTR -48[rbp], 7
sub DWORD PTR -4[rbp], 1
.L1335:
cmp DWORD PTR -4[rbp], 0
jns .L1336
mov eax, 9
jmp .L1341
.L1334:
mov DWORD PTR -12[rbp], 0
.L1338:
mov eax, DWORD PTR -12[rbp]
lea edx, 1[rax]
mov DWORD PTR -12[rbp], edx
mov rdx, QWORD PTR -48[rbp]
or edx, -128
cdqe
mov BYTE PTR -22[rbp+rax], dl
shr QWORD PTR -48[rbp], 7
cmp QWORD PTR -48[rbp], 0
jne .L1338
movzx eax, BYTE PTR -22[rbp]
and eax, 127
mov BYTE PTR -22[rbp], al
mov DWORD PTR -4[rbp], 0
mov eax, DWORD PTR -12[rbp]
sub eax, 1
mov DWORD PTR -8[rbp], eax
jmp .L1339
.L1340:
mov eax, DWORD PTR -4[rbp]
movsx rdx, eax
mov rax, QWORD PTR -40[rbp]
add rdx, rax
mov eax, DWORD PTR -8[rbp]
cdqe
movzx eax, BYTE PTR -22[rbp+rax]
mov BYTE PTR [rdx], al
sub DWORD PTR -8[rbp], 1
add DWORD PTR -4[rbp], 1
.L1339:
cmp DWORD PTR -8[rbp], 0
jns .L1340
mov eax, DWORD PTR -12[rbp]
.L1341:
pop rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE211:
.size putVarint64, .-putVarint64
.type sqlite3PutVarint, @function
sqlite3PutVarint:
.LFB212:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 16
mov QWORD PTR -8[rbp], rdi
mov QWORD PTR -16[rbp], rsi
cmp QWORD PTR -16[rbp], 127
ja .L1343
mov rax, QWORD PTR -16[rbp]
and eax, 127
mov edx, eax
mov rax, QWORD PTR -8[rbp]
mov BYTE PTR [rax], dl
mov eax, 1
jmp .L1344
.L1343:
cmp QWORD PTR -16[rbp], 16383
ja .L1345
mov rax, QWORD PTR -16[rbp]
shr rax, 7
or eax, -128
mov edx, eax
mov rax, QWORD PTR -8[rbp]
mov BYTE PTR [rax], dl
mov rax, QWORD PTR -8[rbp]
add rax, 1
mov rdx, QWORD PTR -16[rbp]
and edx, 127
mov BYTE PTR [rax], dl
mov eax, 2
jmp .L1344
.L1345:
mov rdx, QWORD PTR -16[rbp]
mov rax, QWORD PTR -8[rbp]
mov rsi, rdx
mov rdi, rax
call putVarint64
.L1344:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE212:
.size sqlite3PutVarint, .-sqlite3PutVarint
.type sqlite3GetVarint, @function
sqlite3GetVarint:
.LFB213:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
mov QWORD PTR -24[rbp], rdi
mov QWORD PTR -32[rbp], rsi
mov rax, QWORD PTR -24[rbp]
movzx eax, BYTE PTR [rax]
movzx eax, al
mov DWORD PTR -4[rbp], eax
mov eax, DWORD PTR -4[rbp]
and eax, 128
test eax, eax
jne .L1347
mov edx, DWORD PTR -4[rbp]
mov rax, QWORD PTR -32[rbp]
mov QWORD PTR [rax], rdx
mov eax, 1
jmp .L1348
.L1347:
add QWORD PTR -24[rbp], 1
mov rax, QWORD PTR -24[rbp]
movzx eax, BYTE PTR [rax]
movzx eax, al
mov DWORD PTR -8[rbp], eax
mov eax, DWORD PTR -8[rbp]
and eax, 128
test eax, eax
jne .L1349
and DWORD PTR -4[rbp], 127
sal DWORD PTR -4[rbp], 7
mov eax, DWORD PTR -8[rbp]
or DWORD PTR -4[rbp], eax
mov edx, DWORD PTR -4[rbp]
mov rax, QWORD PTR -32[rbp]
mov QWORD PTR [rax], rdx
mov eax, 2
jmp .L1348
.L1349:
add QWORD PTR -24[rbp], 1
sal DWORD PTR -4[rbp], 14
mov rax, QWORD PTR -24[rbp]
movzx eax, BYTE PTR [rax]
movzx eax, al
or DWORD PTR -4[rbp], eax
mov eax, DWORD PTR -4[rbp]
and eax, 128
test eax, eax
jne .L1350
and DWORD PTR -4[rbp], 2080895
and DWORD PTR -8[rbp], 127
sal DWORD PTR -8[rbp], 7
mov eax, DWORD PTR -8[rbp]
or DWORD PTR -4[rbp], eax
mov edx, DWORD PTR -4[rbp]
mov rax, QWORD PTR -32[rbp]
mov QWORD PTR [rax], rdx
mov eax, 3
jmp .L1348
.L1350:
and DWORD PTR -4[rbp], 2080895
add QWORD PTR -24[rbp], 1
sal DWORD PTR -8[rbp], 14
mov rax, QWORD PTR -24[rbp]
movzx eax, BYTE PTR [rax]
movzx eax, al
or DWORD PTR -8[rbp], eax
mov eax, DWORD PTR -8[rbp]
and eax, 128
test eax, eax
jne .L1351
and DWORD PTR -8[rbp], 2080895
sal DWORD PTR -4[rbp], 7
mov eax, DWORD PTR -8[rbp]
or DWORD PTR -4[rbp], eax
mov edx, DWORD PTR -4[rbp]
mov rax, QWORD PTR -32[rbp]
mov QWORD PTR [rax], rdx
mov eax, 4
jmp .L1348
.L1351:
and DWORD PTR -8[rbp], 2080895
mov eax, DWORD PTR -4[rbp]
mov DWORD PTR -12[rbp], eax
add QWORD PTR -24[rbp], 1
sal DWORD PTR -4[rbp], 14
mov rax, QWORD PTR -24[rbp]
movzx eax, BYTE PTR [rax]
movzx eax, al
or DWORD PTR -4[rbp], eax
mov eax, DWORD PTR -4[rbp]
and eax, 128
test eax, eax
jne .L1352
sal DWORD PTR -8[rbp], 7
mov eax, DWORD PTR -8[rbp]
or DWORD PTR -4[rbp], eax
shr DWORD PTR -12[rbp], 18
mov eax, DWORD PTR -12[rbp]
sal rax, 32
mov rdx, rax
mov eax, DWORD PTR -4[rbp]
or rdx, rax
mov rax, QWORD PTR -32[rbp]
mov QWORD PTR [rax], rdx
mov eax, 5
jmp .L1348
.L1352:
sal DWORD PTR -12[rbp], 7
mov eax, DWORD PTR -8[rbp]
or DWORD PTR -12[rbp], eax
add QWORD PTR -24[rbp], 1
sal DWORD PTR -8[rbp], 14
mov rax, QWORD PTR -24[rbp]
movzx eax, BYTE PTR [rax]
movzx eax, al
or DWORD PTR -8[rbp], eax
mov eax, DWORD PTR -8[rbp]
and eax, 128
test eax, eax
jne .L1353
and DWORD PTR -4[rbp], 2080895
sal DWORD PTR -4[rbp], 7
mov eax, DWORD PTR -8[rbp]
or DWORD PTR -4[rbp], eax
shr DWORD PTR -12[rbp], 18
mov eax, DWORD PTR -12[rbp]
sal rax, 32
mov rdx, rax
mov eax, DWORD PTR -4[rbp]
or rdx, rax
mov rax, QWORD PTR -32[rbp]
mov QWORD PTR [rax], rdx
mov eax, 6
jmp .L1348
.L1353:
add QWORD PTR -24[rbp], 1
sal DWORD PTR -4[rbp], 14
mov rax, QWORD PTR -24[rbp]
movzx eax, BYTE PTR [rax]
movzx eax, al
or DWORD PTR -4[rbp], eax
mov eax, DWORD PTR -4[rbp]
and eax, 128
test eax, eax
jne .L1354
and DWORD PTR -4[rbp], -266354561
and DWORD PTR -8[rbp], 2080895
sal DWORD PTR -8[rbp], 7
mov eax, DWORD PTR -8[rbp]
or DWORD PTR -4[rbp], eax
shr DWORD PTR -12[rbp], 11
mov eax, DWORD PTR -12[rbp]
sal rax, 32
mov rdx, rax
mov eax, DWORD PTR -4[rbp]
or rdx, rax
mov rax, QWORD PTR -32[rbp]
mov QWORD PTR [rax], rdx
mov eax, 7
jmp .L1348
.L1354:
and DWORD PTR -4[rbp], 2080895
add QWORD PTR -24[rbp], 1
sal DWORD PTR -8[rbp], 14
mov rax, QWORD PTR -24[rbp]
movzx eax, BYTE PTR [rax]
movzx eax, al
or DWORD PTR -8[rbp], eax
mov eax, DWORD PTR -8[rbp]
and eax, 128
test eax, eax
jne .L1355
and DWORD PTR -8[rbp], -266354561
sal DWORD PTR -4[rbp], 7
mov eax, DWORD PTR -8[rbp]
or DWORD PTR -4[rbp], eax
shr DWORD PTR -12[rbp], 4
mov eax, DWORD PTR -12[rbp]
sal rax, 32
mov rdx, rax
mov eax, DWORD PTR -4[rbp]
or rdx, rax
mov rax, QWORD PTR -32[rbp]
mov QWORD PTR [rax], rdx
mov eax, 8
jmp .L1348
.L1355:
add QWORD PTR -24[rbp], 1
sal DWORD PTR -4[rbp], 15
mov rax, QWORD PTR -24[rbp]
movzx eax, BYTE PTR [rax]
movzx eax, al
or DWORD PTR -4[rbp], eax
and DWORD PTR -8[rbp], 2080895
sal DWORD PTR -8[rbp], 8
mov eax, DWORD PTR -8[rbp]
or DWORD PTR -4[rbp], eax
sal DWORD PTR -12[rbp], 4
mov rax, QWORD PTR -24[rbp]
sub rax, 4
movzx eax, BYTE PTR [rax]
movzx eax, al
mov DWORD PTR -8[rbp], eax
and DWORD PTR -8[rbp], 127
shr DWORD PTR -8[rbp], 3
mov eax, DWORD PTR -8[rbp]
or DWORD PTR -12[rbp], eax
mov eax, DWORD PTR -12[rbp]
sal rax, 32
mov rdx, rax
mov eax, DWORD PTR -4[rbp]
or rdx, rax
mov rax, QWORD PTR -32[rbp]
mov QWORD PTR [rax], rdx
mov eax, 9
.L1348:
pop rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE213:
.size sqlite3GetVarint, .-sqlite3GetVarint
.type sqlite3GetVarint32, @function
sqlite3GetVarint32:
.LFB214:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 48
mov QWORD PTR -40[rbp], rdi
mov QWORD PTR -48[rbp], rsi
mov rax, QWORD PTR -40[rbp]
movzx eax, BYTE PTR [rax]
movzx eax, al
mov DWORD PTR -4[rbp], eax
add QWORD PTR -40[rbp], 1
mov rax, QWORD PTR -40[rbp]
movzx eax, BYTE PTR [rax]
movzx eax, al
mov DWORD PTR -8[rbp], eax
mov eax, DWORD PTR -8[rbp]
and eax, 128
test eax, eax
jne .L1357
and DWORD PTR -4[rbp], 127
sal DWORD PTR -4[rbp], 7
mov eax, DWORD PTR -4[rbp]
or eax, DWORD PTR -8[rbp]
mov edx, eax
mov rax, QWORD PTR -48[rbp]
mov DWORD PTR [rax], edx
mov eax, 2
jmp .L1358
.L1357:
add QWORD PTR -40[rbp], 1
sal DWORD PTR -4[rbp], 14
mov rax, QWORD PTR -40[rbp]
movzx eax, BYTE PTR [rax]
movzx eax, al
or DWORD PTR -4[rbp], eax
mov eax, DWORD PTR -4[rbp]
and eax, 128
test eax, eax
jne .L1359
and DWORD PTR -4[rbp], 2080895
and DWORD PTR -8[rbp], 127
sal DWORD PTR -8[rbp], 7
mov eax, DWORD PTR -4[rbp]
or eax, DWORD PTR -8[rbp]
mov edx, eax
mov rax, QWORD PTR -48[rbp]
mov DWORD PTR [rax], edx
mov eax, 3
jmp .L1358
.L1359:
sub QWORD PTR -40[rbp], 2
lea rdx, -24[rbp]
mov rax, QWORD PTR -40[rbp]
mov rsi, rdx
mov rdi, rax
call sqlite3GetVarint
mov BYTE PTR -9[rbp], al
mov rax, QWORD PTR -24[rbp]
mov edx, eax
mov rax, QWORD PTR -24[rbp]
cmp rdx, rax
je .L1360
mov rax, QWORD PTR -48[rbp]
mov DWORD PTR [rax], -1
jmp .L1361
.L1360:
mov rax, QWORD PTR -24[rbp]
mov edx, eax
mov rax, QWORD PTR -48[rbp]
mov DWORD PTR [rax], edx
.L1361:
movzx eax, BYTE PTR -9[rbp]
.L1358:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE214:
.size sqlite3GetVarint32, .-sqlite3GetVarint32
.type sqlite3VarintLen, @function
sqlite3VarintLen:
.LFB215:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
mov QWORD PTR -24[rbp], rdi
mov DWORD PTR -4[rbp], 1
jmp .L1363
.L1364:
add DWORD PTR -4[rbp], 1
.L1363:
shr QWORD PTR -24[rbp], 7
cmp QWORD PTR -24[rbp], 0
jne .L1364
mov eax, DWORD PTR -4[rbp]
pop rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE215:
.size sqlite3VarintLen, .-sqlite3VarintLen
.type sqlite3Get4byte, @function
sqlite3Get4byte:
.LFB216:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
mov QWORD PTR -24[rbp], rdi
mov rax, QWORD PTR -24[rbp]
mov eax, DWORD PTR [rax]
mov DWORD PTR -4[rbp], eax
mov eax, DWORD PTR -4[rbp]
bswap eax
pop rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE216:
.size sqlite3Get4byte, .-sqlite3Get4byte
.type sqlite3Put4byte, @function
sqlite3Put4byte:
.LFB217:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
mov QWORD PTR -24[rbp], rdi
mov DWORD PTR -28[rbp], esi
mov eax, DWORD PTR -28[rbp]
bswap eax
mov DWORD PTR -4[rbp], eax
mov edx, DWORD PTR -4[rbp]
mov rax, QWORD PTR -24[rbp]
mov DWORD PTR [rax], edx
nop
pop rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE217:
.size sqlite3Put4byte, .-sqlite3Put4byte
.type sqlite3HexToInt, @function
sqlite3HexToInt:
.LFB218:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
mov DWORD PTR -4[rbp], edi
mov eax, DWORD PTR -4[rbp]
sar eax, 6
and eax, 1
mov edx, eax
mov eax, edx
sal eax, 3
add eax, edx
add DWORD PTR -4[rbp], eax
mov eax, DWORD PTR -4[rbp]
and eax, 15
pop rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE218:
.size sqlite3HexToInt, .-sqlite3HexToInt
.type sqlite3HexToBlob, @function
sqlite3HexToBlob:
.LFB219:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
push r12
push rbx
sub rsp, 48
.cfi_offset 12, -24
.cfi_offset 3, -32
mov QWORD PTR -40[rbp], rdi
mov QWORD PTR -48[rbp], rsi
mov DWORD PTR -52[rbp], edx
mov eax, DWORD PTR -52[rbp]
mov edx, eax
shr edx, 31
add eax, edx
sar eax
add eax, 1
movsx rdx, eax
mov rax, QWORD PTR -40[rbp]
mov rsi, rdx
mov rdi, rax
call sqlite3DbMallocRawNN
mov QWORD PTR -32[rbp], rax
sub DWORD PTR -52[rbp], 1
cmp QWORD PTR -32[rbp], 0
je .L1372
mov DWORD PTR -20[rbp], 0
jmp .L1373
.L1374:
mov eax, DWORD PTR -20[rbp]
mov edx, eax
shr edx, 31
add eax, edx
sar eax
movsx rdx, eax
mov rax, QWORD PTR -32[rbp]
lea rbx, [rdx+rax]
mov eax, DWORD PTR -20[rbp]
movsx rdx, eax
mov rax, QWORD PTR -48[rbp]
add rax, rdx
movzx eax, BYTE PTR [rax]
movsx eax, al
mov edi, eax
call sqlite3HexToInt
movzx eax, al
sal eax, 4
mov r12d, eax
mov eax, DWORD PTR -20[rbp]
cdqe
lea rdx, 1[rax]
mov rax, QWORD PTR -48[rbp]
add rax, rdx
movzx eax, BYTE PTR [rax]
movsx eax, al
mov edi, eax
call sqlite3HexToInt
or eax, r12d
mov BYTE PTR [rbx], al
add DWORD PTR -20[rbp], 2
.L1373:
mov eax, DWORD PTR -20[rbp]
cmp eax, DWORD PTR -52[rbp]
jl .L1374
mov eax, DWORD PTR -20[rbp]
mov edx, eax
shr edx, 31
add eax, edx
sar eax
movsx rdx, eax
mov rax, QWORD PTR -32[rbp]
add rax, rdx
mov BYTE PTR [rax], 0
.L1372:
mov rax, QWORD PTR -32[rbp]
add rsp, 48
pop rbx
pop r12
pop rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE219:
.size sqlite3HexToBlob, .-sqlite3HexToBlob
.section .rodata
.align 8
.LC72:
.string "API call with %s database connection pointer"
.text
.type logBadConnection, @function
logBadConnection:
.LFB220:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 16
mov QWORD PTR -8[rbp], rdi
mov rax, QWORD PTR -8[rbp]
mov rdx, rax
lea rsi, .LC72[rip]
mov edi, 21
mov eax, 0
call sqlite3_log
nop
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE220:
.size logBadConnection, .-logBadConnection
.section .rodata
.LC73:
.string "unopened"
.text
.type sqlite3SafetyCheckOk, @function
sqlite3SafetyCheckOk:
.LFB221:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 32
mov QWORD PTR -24[rbp], rdi
cmp QWORD PTR -24[rbp], 0
jne .L1378
lea rdi, .LC66[rip]
call logBadConnection
mov eax, 0
jmp .L1379
.L1378:
mov rax, QWORD PTR -24[rbp]
mov eax, DWORD PTR 112[rax]
mov DWORD PTR -4[rbp], eax
cmp DWORD PTR -4[rbp], -1607883113
je .L1380
mov rax, QWORD PTR -24[rbp]
mov rdi, rax
call sqlite3SafetyCheckSickOrOk
test eax, eax
je .L1381
lea rdi, .LC73[rip]
call logBadConnection
.L1381:
mov eax, 0
jmp .L1379
.L1380:
mov eax, 1
.L1379:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE221:
.size sqlite3SafetyCheckOk, .-sqlite3SafetyCheckOk
.section .rodata
.LC74:
.string "invalid"
.text
.type sqlite3SafetyCheckSickOrOk, @function
sqlite3SafetyCheckSickOrOk:
.LFB222:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 32
mov QWORD PTR -24[rbp], rdi
mov rax, QWORD PTR -24[rbp]
mov eax, DWORD PTR 112[rax]
mov DWORD PTR -4[rbp], eax
cmp DWORD PTR -4[rbp], 1266094736
je .L1383
cmp DWORD PTR -4[rbp], -1607883113
je .L1383
cmp DWORD PTR -4[rbp], -264537850
je .L1383
lea rdi, .LC74[rip]
call logBadConnection
mov eax, 0
jmp .L1384
.L1383:
mov eax, 1
.L1384:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE222:
.size sqlite3SafetyCheckSickOrOk, .-sqlite3SafetyCheckSickOrOk
.type sqlite3AddInt64, @function
sqlite3AddInt64:
.LFB223:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
mov QWORD PTR -8[rbp], rdi
mov QWORD PTR -16[rbp], rsi
mov rax, QWORD PTR -8[rbp]
mov rdx, QWORD PTR [rax]
mov ecx, 0
mov rax, QWORD PTR -16[rbp]
add rax, rdx
jno .L1386
mov ecx, 1
.L1386:
mov rdx, rax
mov rax, QWORD PTR -8[rbp]
mov QWORD PTR [rax], rdx
mov rax, rcx
and eax, 1
movzx eax, al
pop rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE223:
.size sqlite3AddInt64, .-sqlite3AddInt64
.type sqlite3SubInt64, @function
sqlite3SubInt64:
.LFB224:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
mov QWORD PTR -8[rbp], rdi
mov QWORD PTR -16[rbp], rsi
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR [rax]
mov edx, 0
sub rax, QWORD PTR -16[rbp]
jno .L1390
mov edx, 1
.L1390:
mov rcx, rax
mov rax, QWORD PTR -8[rbp]
mov QWORD PTR [rax], rcx
mov rax, rdx
and eax, 1
movzx eax, al
pop rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE224:
.size sqlite3SubInt64, .-sqlite3SubInt64
.type sqlite3MulInt64, @function
sqlite3MulInt64:
.LFB225:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
mov QWORD PTR -8[rbp], rdi
mov QWORD PTR -16[rbp], rsi
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR [rax]
mov edx, 0
imul rax, QWORD PTR -16[rbp]
jno .L1394
mov edx, 1
.L1394:
mov rcx, rax
mov rax, QWORD PTR -8[rbp]
mov QWORD PTR [rax], rcx
mov rax, rdx
and eax, 1
movzx eax, al
pop rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE225:
.size sqlite3MulInt64, .-sqlite3MulInt64
.type sqlite3AbsInt32, @function
sqlite3AbsInt32:
.LFB226:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
mov DWORD PTR -4[rbp], edi
cmp DWORD PTR -4[rbp], 0
js .L1398
mov eax, DWORD PTR -4[rbp]
jmp .L1399
.L1398:
cmp DWORD PTR -4[rbp], -2147483648
jne .L1400
mov eax, 2147483647
jmp .L1399
.L1400:
mov eax, DWORD PTR -4[rbp]
neg eax
.L1399:
pop rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE226:
.size sqlite3AbsInt32, .-sqlite3AbsInt32
.type sqlite3LogEstAdd, @function
sqlite3LogEstAdd:
.LFB227:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
mov edx, edi
mov eax, esi
mov WORD PTR -4[rbp], dx
mov WORD PTR -8[rbp], ax
movzx eax, WORD PTR -4[rbp]
cmp ax, WORD PTR -8[rbp]
jl .L1402
movsx eax, WORD PTR -4[rbp]
movsx edx, WORD PTR -8[rbp]
add edx, 49
cmp eax, edx
jle .L1403
movzx eax, WORD PTR -4[rbp]
jmp .L1404
.L1403:
movsx eax, WORD PTR -4[rbp]
movsx edx, WORD PTR -8[rbp]
add edx, 31
cmp eax, edx
jle .L1405
movzx eax, WORD PTR -4[rbp]
add eax, 1
jmp .L1404
.L1405:
movsx edx, WORD PTR -4[rbp]
movsx eax, WORD PTR -8[rbp]
sub edx, eax
mov eax, edx
movsx rdx, eax
lea rax, x.10629[rip]
movzx eax, BYTE PTR [rdx+rax]
movzx edx, al
movzx eax, WORD PTR -4[rbp]
add eax, edx
jmp .L1404
.L1402:
movsx eax, WORD PTR -8[rbp]
movsx edx, WORD PTR -4[rbp]
add edx, 49
cmp eax, edx
jle .L1406
movzx eax, WORD PTR -8[rbp]
jmp .L1404
.L1406:
movsx eax, WORD PTR -8[rbp]
movsx edx, WORD PTR -4[rbp]
add edx, 31
cmp eax, edx
jle .L1407
movzx eax, WORD PTR -8[rbp]
add eax, 1
jmp .L1404
.L1407:
movsx edx, WORD PTR -8[rbp]
movsx eax, WORD PTR -4[rbp]
sub edx, eax
mov eax, edx
movsx rdx, eax
lea rax, x.10629[rip]
movzx eax, BYTE PTR [rdx+rax]
movzx edx, al
movzx eax, WORD PTR -8[rbp]
add eax, edx
.L1404:
pop rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE227:
.size sqlite3LogEstAdd, .-sqlite3LogEstAdd
.type sqlite3LogEst, @function
sqlite3LogEst:
.LFB228:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
mov QWORD PTR -24[rbp], rdi
mov WORD PTR -2[rbp], 40
cmp QWORD PTR -24[rbp], 7
ja .L1409
cmp QWORD PTR -24[rbp], 1
ja .L1412
mov eax, 0
jmp .L1411
.L1413:
movzx eax, WORD PTR -2[rbp]
sub eax, 10
mov WORD PTR -2[rbp], ax
sal QWORD PTR -24[rbp]
.L1412:
cmp QWORD PTR -24[rbp], 7
jbe .L1413
jmp .L1414
.L1409:
bsr rax, QWORD PTR -24[rbp]
xor rax, 63
mov edx, 60
sub edx, eax
mov eax, edx
mov DWORD PTR -8[rbp], eax
mov eax, DWORD PTR -8[rbp]
mov edx, eax
mov eax, edx
sal eax, 2
add eax, edx
add eax, eax
mov edx, eax
movzx eax, WORD PTR -2[rbp]
add eax, edx
mov WORD PTR -2[rbp], ax
mov eax, DWORD PTR -8[rbp]
mov ecx, eax
shr QWORD PTR -24[rbp], cl
.L1414:
mov rax, QWORD PTR -24[rbp]
and eax, 7
lea rdx, [rax+rax]
lea rax, a.10633[rip]
movzx eax, WORD PTR [rdx+rax]
mov edx, eax
movzx eax, WORD PTR -2[rbp]
add eax, edx
sub eax, 10
.L1411:
pop rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE228:
.size sqlite3LogEst, .-sqlite3LogEst
.type sqlite3LogEstFromDouble, @function
sqlite3LogEstFromDouble:
.LFB229:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 24
movsd QWORD PTR -24[rbp], xmm0
movsd xmm1, QWORD PTR -24[rbp]
movsd xmm0, QWORD PTR .LC8[rip]
ucomisd xmm0, xmm1
jb .L1426
mov eax, 0
jmp .L1423
.L1426:
movsd xmm1, QWORD PTR -24[rbp]
movsd xmm0, QWORD PTR .LC75[rip]
ucomisd xmm0, xmm1
jb .L1427
movsd xmm0, QWORD PTR -24[rbp]
ucomisd xmm0, QWORD PTR .LC76[rip]
jnb .L1421
cvttsd2si rax, xmm0
jmp .L1422
.L1421:
movsd xmm1, QWORD PTR .LC76[rip]
subsd xmm0, xmm1
cvttsd2si rax, xmm0
movabs rdx, -9223372036854775808
xor rax, rdx
.L1422:
mov rdi, rax
call sqlite3LogEst
jmp .L1423
.L1427:
mov rax, QWORD PTR -24[rbp]
mov QWORD PTR -16[rbp], rax
mov rax, QWORD PTR -16[rbp]
shr rax, 52
sub ax, 1022
mov WORD PTR -2[rbp], ax
movzx edx, WORD PTR -2[rbp]
mov eax, edx
sal eax, 2
add eax, edx
add eax, eax
.L1423:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE229:
.size sqlite3LogEstFromDouble, .-sqlite3LogEstFromDouble
.type sqlite3VListAdd, @function
sqlite3VListAdd:
.LFB230:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 64
mov QWORD PTR -40[rbp], rdi
mov QWORD PTR -48[rbp], rsi
mov QWORD PTR -56[rbp], rdx
mov DWORD PTR -60[rbp], ecx
mov DWORD PTR -64[rbp], r8d
mov eax, DWORD PTR -60[rbp]
lea edx, 3[rax]
test eax, eax
cmovs eax, edx
sar eax, 2
add eax, 3
mov DWORD PTR -4[rbp], eax
cmp QWORD PTR -48[rbp], 0
je .L1429
mov rax, QWORD PTR -48[rbp]
add rax, 4
mov edx, DWORD PTR [rax]
mov eax, DWORD PTR -4[rbp]
add edx, eax
mov rax, QWORD PTR -48[rbp]
mov eax, DWORD PTR [rax]
cmp edx, eax
jle .L1430
.L1429:
cmp QWORD PTR -48[rbp], 0
je .L1431
mov rax, QWORD PTR -48[rbp]
mov eax, DWORD PTR [rax]
lea edx, [rax+rax]
jmp .L1432
.L1431:
mov edx, 10
.L1432:
mov eax, DWORD PTR -4[rbp]
add eax, edx
mov DWORD PTR -8[rbp], eax
mov eax, DWORD PTR -8[rbp]
cdqe
lea rdx, 0[0+rax*4]
mov rcx, QWORD PTR -48[rbp]
mov rax, QWORD PTR -40[rbp]
mov rsi, rcx
mov rdi, rax
call sqlite3DbRealloc
mov QWORD PTR -16[rbp], rax
cmp QWORD PTR -16[rbp], 0
jne .L1433
mov rax, QWORD PTR -48[rbp]
jmp .L1434
.L1433:
cmp QWORD PTR -48[rbp], 0
jne .L1435
mov rax, QWORD PTR -16[rbp]
add rax, 4
mov DWORD PTR [rax], 2
.L1435:
mov rax, QWORD PTR -16[rbp]
mov QWORD PTR -48[rbp], rax
mov rax, QWORD PTR -48[rbp]
mov edx, DWORD PTR -8[rbp]
mov DWORD PTR [rax], edx
.L1430:
mov rax, QWORD PTR -48[rbp]
mov eax, DWORD PTR 4[rax]
mov DWORD PTR -20[rbp], eax
mov eax, DWORD PTR -20[rbp]
cdqe
lea rdx, 0[0+rax*4]
mov rax, QWORD PTR -48[rbp]
add rdx, rax
mov eax, DWORD PTR -64[rbp]
mov DWORD PTR [rdx], eax
mov eax, DWORD PTR -20[rbp]
cdqe
add rax, 1
lea rdx, 0[0+rax*4]
mov rax, QWORD PTR -48[rbp]
add rdx, rax
mov eax, DWORD PTR -4[rbp]
mov DWORD PTR [rdx], eax
mov eax, DWORD PTR -20[rbp]
cdqe
add rax, 2
lea rdx, 0[0+rax*4]
mov rax, QWORD PTR -48[rbp]
add rax, rdx
mov QWORD PTR -32[rbp], rax
mov rax, QWORD PTR -48[rbp]
add rax, 4
mov ecx, DWORD PTR -20[rbp]
mov edx, DWORD PTR -4[rbp]
add edx, ecx
mov DWORD PTR [rax], edx
mov eax, DWORD PTR -60[rbp]
movsx rdx, eax
mov rcx, QWORD PTR -56[rbp]
mov rax, QWORD PTR -32[rbp]
mov rsi, rcx
mov rdi, rax
call memcpy@PLT
mov eax, DWORD PTR -60[rbp]
movsx rdx, eax
mov rax, QWORD PTR -32[rbp]
add rax, rdx
mov BYTE PTR [rax], 0
mov rax, QWORD PTR -48[rbp]
.L1434:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE230:
.size sqlite3VListAdd, .-sqlite3VListAdd
.type sqlite3VListNumToName, @function
sqlite3VListNumToName:
.LFB231:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
mov QWORD PTR -24[rbp], rdi
mov DWORD PTR -28[rbp], esi
cmp QWORD PTR -24[rbp], 0
jne .L1437
mov eax, 0
jmp .L1438
.L1437:
mov rax, QWORD PTR -24[rbp]
mov eax, DWORD PTR 4[rax]
mov DWORD PTR -8[rbp], eax
mov DWORD PTR -4[rbp], 2
.L1440:
mov eax, DWORD PTR -4[rbp]
cdqe
lea rdx, 0[0+rax*4]
mov rax, QWORD PTR -24[rbp]
add rax, rdx
mov eax, DWORD PTR [rax]
cmp eax, DWORD PTR -28[rbp]
jne .L1439
mov eax, DWORD PTR -4[rbp]
cdqe
add rax, 2
lea rdx, 0[0+rax*4]
mov rax, QWORD PTR -24[rbp]
add rax, rdx
jmp .L1438
.L1439:
mov eax, DWORD PTR -4[rbp]
cdqe
add rax, 1
lea rdx, 0[0+rax*4]
mov rax, QWORD PTR -24[rbp]
add rax, rdx
mov eax, DWORD PTR [rax]
add DWORD PTR -4[rbp], eax
mov eax, DWORD PTR -4[rbp]
cmp eax, DWORD PTR -8[rbp]
jl .L1440
mov eax, 0
.L1438:
pop rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE231:
.size sqlite3VListNumToName, .-sqlite3VListNumToName
.type sqlite3VListNameToNum, @function
sqlite3VListNameToNum:
.LFB232:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 48
mov QWORD PTR -24[rbp], rdi
mov QWORD PTR -32[rbp], rsi
mov DWORD PTR -36[rbp], edx
cmp QWORD PTR -24[rbp], 0
jne .L1442
mov eax, 0
jmp .L1443
.L1442:
mov rax, QWORD PTR -24[rbp]
mov eax, DWORD PTR 4[rax]
mov DWORD PTR -8[rbp], eax
mov DWORD PTR -4[rbp], 2
.L1445:
mov eax, DWORD PTR -4[rbp]
cdqe
add rax, 2
lea rdx, 0[0+rax*4]
mov rax, QWORD PTR -24[rbp]
add rax, rdx
mov QWORD PTR -16[rbp], rax
mov eax, DWORD PTR -36[rbp]
movsx rdx, eax
mov rcx, QWORD PTR -32[rbp]
mov rax, QWORD PTR -16[rbp]
mov rsi, rcx
mov rdi, rax
call strncmp@PLT
test eax, eax
jne .L1444
mov eax, DWORD PTR -36[rbp]
movsx rdx, eax
mov rax, QWORD PTR -16[rbp]
add rax, rdx
movzx eax, BYTE PTR [rax]
test al, al
jne .L1444
mov eax, DWORD PTR -4[rbp]
cdqe
lea rdx, 0[0+rax*4]
mov rax, QWORD PTR -24[rbp]
add rax, rdx
mov eax, DWORD PTR [rax]
jmp .L1443
.L1444:
mov eax, DWORD PTR -4[rbp]
cdqe
add rax, 1
lea rdx, 0[0+rax*4]
mov rax, QWORD PTR -24[rbp]
add rax, rdx
mov eax, DWORD PTR [rax]
add DWORD PTR -4[rbp], eax
mov eax, DWORD PTR -4[rbp]
cmp eax, DWORD PTR -8[rbp]
jl .L1445
mov eax, 0
.L1443:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE232:
.size sqlite3VListNameToNum, .-sqlite3VListNameToNum
.type sqlite3HashInit, @function
sqlite3HashInit:
.LFB233:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
mov QWORD PTR -8[rbp], rdi
mov rax, QWORD PTR -8[rbp]
mov QWORD PTR 8[rax], 0
mov rax, QWORD PTR -8[rbp]
mov DWORD PTR 4[rax], 0
mov rax, QWORD PTR -8[rbp]
mov DWORD PTR [rax], 0
mov rax, QWORD PTR -8[rbp]
mov QWORD PTR 16[rax], 0
nop
pop rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE233:
.size sqlite3HashInit, .-sqlite3HashInit
.type sqlite3HashClear, @function
sqlite3HashClear:
.LFB234:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 32
mov QWORD PTR -24[rbp], rdi
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 8[rax]
mov QWORD PTR -8[rbp], rax
mov rax, QWORD PTR -24[rbp]
mov QWORD PTR 8[rax], 0
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 16[rax]
mov rdi, rax
call sqlite3_free
mov rax, QWORD PTR -24[rbp]
mov QWORD PTR 16[rax], 0
mov rax, QWORD PTR -24[rbp]
mov DWORD PTR [rax], 0
jmp .L1448
.L1449:
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR [rax]
mov QWORD PTR -16[rbp], rax
mov rax, QWORD PTR -8[rbp]
mov rdi, rax
call sqlite3_free
mov rax, QWORD PTR -16[rbp]
mov QWORD PTR -8[rbp], rax
.L1448:
cmp QWORD PTR -8[rbp], 0
jne .L1449
mov rax, QWORD PTR -24[rbp]
mov DWORD PTR 4[rax], 0
nop
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE234:
.size sqlite3HashClear, .-sqlite3HashClear
.type strHash, @function
strHash:
.LFB235:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
mov QWORD PTR -24[rbp], rdi
mov DWORD PTR -4[rbp], 0
jmp .L1451
.L1452:
movzx eax, BYTE PTR -5[rbp]
movsx rdx, eax
lea rax, sqlite3UpperToLower[rip]
movzx eax, BYTE PTR [rdx+rax]
movzx eax, al
add DWORD PTR -4[rbp], eax
mov eax, DWORD PTR -4[rbp]
imul eax, eax, -1640531535
mov DWORD PTR -4[rbp], eax
.L1451:
mov rax, QWORD PTR -24[rbp]
lea rdx, 1[rax]
mov QWORD PTR -24[rbp], rdx
movzx eax, BYTE PTR [rax]
mov BYTE PTR -5[rbp], al
cmp BYTE PTR -5[rbp], 0
jne .L1452
mov eax, DWORD PTR -4[rbp]
pop rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE235:
.size strHash, .-strHash
.type insertElement, @function
insertElement:
.LFB236:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
mov QWORD PTR -24[rbp], rdi
mov QWORD PTR -32[rbp], rsi
mov QWORD PTR -40[rbp], rdx
cmp QWORD PTR -32[rbp], 0
je .L1455
mov rax, QWORD PTR -32[rbp]
mov eax, DWORD PTR [rax]
test eax, eax
je .L1456
mov rax, QWORD PTR -32[rbp]
mov rax, QWORD PTR 8[rax]
jmp .L1457
.L1456:
mov eax, 0
.L1457:
mov QWORD PTR -8[rbp], rax
mov rax, QWORD PTR -32[rbp]
mov eax, DWORD PTR [rax]
lea edx, 1[rax]
mov rax, QWORD PTR -32[rbp]
mov DWORD PTR [rax], edx
mov rax, QWORD PTR -32[rbp]
mov rdx, QWORD PTR -40[rbp]
mov QWORD PTR 8[rax], rdx
jmp .L1458
.L1455:
mov QWORD PTR -8[rbp], 0
.L1458:
cmp QWORD PTR -8[rbp], 0
je .L1459
mov rax, QWORD PTR -40[rbp]
mov rdx, QWORD PTR -8[rbp]
mov QWORD PTR [rax], rdx
mov rax, QWORD PTR -8[rbp]
mov rdx, QWORD PTR 8[rax]
mov rax, QWORD PTR -40[rbp]
mov QWORD PTR 8[rax], rdx
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR 8[rax]
test rax, rax
je .L1460
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR 8[rax]
mov rdx, QWORD PTR -40[rbp]
mov QWORD PTR [rax], rdx
jmp .L1461
.L1460:
mov rax, QWORD PTR -24[rbp]
mov rdx, QWORD PTR -40[rbp]
mov QWORD PTR 8[rax], rdx
.L1461:
mov rax, QWORD PTR -8[rbp]
mov rdx, QWORD PTR -40[rbp]
mov QWORD PTR 8[rax], rdx
jmp .L1464
.L1459:
mov rax, QWORD PTR -24[rbp]
mov rdx, QWORD PTR 8[rax]
mov rax, QWORD PTR -40[rbp]
mov QWORD PTR [rax], rdx
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 8[rax]
test rax, rax
je .L1463
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 8[rax]
mov rdx, QWORD PTR -40[rbp]
mov QWORD PTR 8[rax], rdx
.L1463:
mov rax, QWORD PTR -40[rbp]
mov QWORD PTR 8[rax], 0
mov rax, QWORD PTR -24[rbp]
mov rdx, QWORD PTR -40[rbp]
mov QWORD PTR 8[rax], rdx
.L1464:
nop
pop rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE236:
.size insertElement, .-insertElement
.type rehash, @function
rehash:
.LFB237:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 48
mov QWORD PTR -40[rbp], rdi
mov DWORD PTR -44[rbp], esi
mov eax, DWORD PTR -44[rbp]
sal rax, 4
cmp rax, 1024
jbe .L1466
mov DWORD PTR -44[rbp], 64
.L1466:
mov rax, QWORD PTR -40[rbp]
mov eax, DWORD PTR [rax]
cmp eax, DWORD PTR -44[rbp]
jne .L1467
mov eax, 0
jmp .L1468
.L1467:
call sqlite3BeginBenignMalloc
mov eax, DWORD PTR -44[rbp]
sal rax, 4
mov rdi, rax
call sqlite3Malloc
mov QWORD PTR -16[rbp], rax
call sqlite3EndBenignMalloc
cmp QWORD PTR -16[rbp], 0
jne .L1469
mov eax, 0
jmp .L1468
.L1469:
mov rax, QWORD PTR -40[rbp]
mov rax, QWORD PTR 16[rax]
mov rdi, rax
call sqlite3_free
mov rax, QWORD PTR -40[rbp]
mov rdx, QWORD PTR -16[rbp]
mov QWORD PTR 16[rax], rdx
mov rax, QWORD PTR -16[rbp]
mov rdi, rax
call sqlite3MallocSize
cdqe
shr rax, 4
mov DWORD PTR -44[rbp], eax
mov rax, QWORD PTR -40[rbp]
mov edx, DWORD PTR -44[rbp]
mov DWORD PTR [rax], edx
mov eax, DWORD PTR -44[rbp]
sal rax, 4
mov rdx, rax
mov rax, QWORD PTR -16[rbp]
mov esi, 0
mov rdi, rax
call memset@PLT
mov rax, QWORD PTR -40[rbp]
mov rax, QWORD PTR 8[rax]
mov QWORD PTR -8[rbp], rax
mov rax, QWORD PTR -40[rbp]
mov QWORD PTR 8[rax], 0
jmp .L1470
.L1471:
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR 24[rax]
mov rdi, rax
call strHash
mov edx, 0
div DWORD PTR -44[rbp]
mov DWORD PTR -20[rbp], edx
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR [rax]
mov QWORD PTR -32[rbp], rax
mov eax, DWORD PTR -20[rbp]
sal rax, 4
mov rdx, rax
mov rax, QWORD PTR -16[rbp]
lea rcx, [rdx+rax]
mov rdx, QWORD PTR -8[rbp]
mov rax, QWORD PTR -40[rbp]
mov rsi, rcx
mov rdi, rax
call insertElement
mov rax, QWORD PTR -32[rbp]
mov QWORD PTR -8[rbp], rax
.L1470:
cmp QWORD PTR -8[rbp], 0
jne .L1471
mov eax, 1
.L1468:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE237:
.size rehash, .-rehash
.type findElementWithHash, @function
findElementWithHash:
.LFB238:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 56
mov QWORD PTR -40[rbp], rdi
mov QWORD PTR -48[rbp], rsi
mov QWORD PTR -56[rbp], rdx
mov rax, QWORD PTR -40[rbp]
mov rax, QWORD PTR 16[rax]
test rax, rax
je .L1473
mov rax, QWORD PTR -48[rbp]
mov rdi, rax
call strHash
mov edx, eax
mov rax, QWORD PTR -40[rbp]
mov ecx, DWORD PTR [rax]
mov eax, edx
mov edx, 0
div ecx
mov DWORD PTR -16[rbp], edx
mov rax, QWORD PTR -40[rbp]
mov rax, QWORD PTR 16[rax]
mov edx, DWORD PTR -16[rbp]
sal rdx, 4
add rax, rdx
mov QWORD PTR -24[rbp], rax
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 8[rax]
mov QWORD PTR -8[rbp], rax
mov rax, QWORD PTR -24[rbp]
mov eax, DWORD PTR [rax]
mov DWORD PTR -12[rbp], eax
jmp .L1474
.L1473:
mov DWORD PTR -16[rbp], 0
mov rax, QWORD PTR -40[rbp]
mov rax, QWORD PTR 8[rax]
mov QWORD PTR -8[rbp], rax
mov rax, QWORD PTR -40[rbp]
mov eax, DWORD PTR 4[rax]
mov DWORD PTR -12[rbp], eax
.L1474:
cmp QWORD PTR -56[rbp], 0
je .L1476
mov rax, QWORD PTR -56[rbp]
mov edx, DWORD PTR -16[rbp]
mov DWORD PTR [rax], edx
jmp .L1476
.L1479:
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR 24[rax]
mov rdx, QWORD PTR -48[rbp]
mov rsi, rdx
mov rdi, rax
call sqlite3StrICmp
test eax, eax
jne .L1477
mov rax, QWORD PTR -8[rbp]
jmp .L1478
.L1477:
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR [rax]
mov QWORD PTR -8[rbp], rax
.L1476:
mov eax, DWORD PTR -12[rbp]
lea edx, -1[rax]
mov DWORD PTR -12[rbp], edx
test eax, eax
jne .L1479
lea rax, nullElement.10718[rip]
.L1478:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE238:
.size findElementWithHash, .-findElementWithHash
.type removeElementGivenHash, @function
removeElementGivenHash:
.LFB239:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 48
mov QWORD PTR -24[rbp], rdi
mov QWORD PTR -32[rbp], rsi
mov DWORD PTR -36[rbp], edx
mov rax, QWORD PTR -32[rbp]
mov rax, QWORD PTR 8[rax]
test rax, rax
je .L1481
mov rax, QWORD PTR -32[rbp]
mov rax, QWORD PTR 8[rax]
mov rdx, QWORD PTR -32[rbp]
mov rdx, QWORD PTR [rdx]
mov QWORD PTR [rax], rdx
jmp .L1482
.L1481:
mov rax, QWORD PTR -32[rbp]
mov rdx, QWORD PTR [rax]
mov rax, QWORD PTR -24[rbp]
mov QWORD PTR 8[rax], rdx
.L1482:
mov rax, QWORD PTR -32[rbp]
mov rax, QWORD PTR [rax]
test rax, rax
je .L1483
mov rax, QWORD PTR -32[rbp]
mov rax, QWORD PTR [rax]
mov rdx, QWORD PTR -32[rbp]
mov rdx, QWORD PTR 8[rdx]
mov QWORD PTR 8[rax], rdx
.L1483:
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 16[rax]
test rax, rax
je .L1484
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 16[rax]
mov edx, DWORD PTR -36[rbp]
sal rdx, 4
add rax, rdx
mov QWORD PTR -8[rbp], rax
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR 8[rax]
cmp rax, QWORD PTR -32[rbp]
jne .L1485
mov rax, QWORD PTR -32[rbp]
mov rdx, QWORD PTR [rax]
mov rax, QWORD PTR -8[rbp]
mov QWORD PTR 8[rax], rdx
.L1485:
mov rax, QWORD PTR -8[rbp]
mov eax, DWORD PTR [rax]
lea edx, -1[rax]
mov rax, QWORD PTR -8[rbp]
mov DWORD PTR [rax], edx
.L1484:
mov rax, QWORD PTR -32[rbp]
mov rdi, rax
call sqlite3_free
mov rax, QWORD PTR -24[rbp]
mov eax, DWORD PTR 4[rax]
lea edx, -1[rax]
mov rax, QWORD PTR -24[rbp]
mov DWORD PTR 4[rax], edx
mov rax, QWORD PTR -24[rbp]
mov eax, DWORD PTR 4[rax]
test eax, eax
jne .L1487
mov rax, QWORD PTR -24[rbp]
mov rdi, rax
call sqlite3HashClear
.L1487:
nop
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE239:
.size removeElementGivenHash, .-removeElementGivenHash
.type sqlite3HashFind, @function
sqlite3HashFind:
.LFB240:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 16
mov QWORD PTR -8[rbp], rdi
mov QWORD PTR -16[rbp], rsi
mov rcx, QWORD PTR -16[rbp]
mov rax, QWORD PTR -8[rbp]
mov edx, 0
mov rsi, rcx
mov rdi, rax
call findElementWithHash
mov rax, QWORD PTR 16[rax]
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE240:
.size sqlite3HashFind, .-sqlite3HashFind
.type sqlite3HashInsert, @function
sqlite3HashInsert:
.LFB241:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 64
mov QWORD PTR -40[rbp], rdi
mov QWORD PTR -48[rbp], rsi
mov QWORD PTR -56[rbp], rdx
lea rdx, -28[rbp]
mov rcx, QWORD PTR -48[rbp]
mov rax, QWORD PTR -40[rbp]
mov rsi, rcx
mov rdi, rax
call findElementWithHash
mov QWORD PTR -8[rbp], rax
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR 16[rax]
test rax, rax
je .L1491
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR 16[rax]
mov QWORD PTR -16[rbp], rax
cmp QWORD PTR -56[rbp], 0
jne .L1492
mov edx, DWORD PTR -28[rbp]
mov rcx, QWORD PTR -8[rbp]
mov rax, QWORD PTR -40[rbp]
mov rsi, rcx
mov rdi, rax
call removeElementGivenHash
jmp .L1493
.L1492:
mov rax, QWORD PTR -8[rbp]
mov rdx, QWORD PTR -56[rbp]
mov QWORD PTR 16[rax], rdx
mov rax, QWORD PTR -8[rbp]
mov rdx, QWORD PTR -48[rbp]
mov QWORD PTR 24[rax], rdx
.L1493:
mov rax, QWORD PTR -16[rbp]
jmp .L1500
.L1491:
cmp QWORD PTR -56[rbp], 0
jne .L1495
mov eax, 0
jmp .L1500
.L1495:
mov edi, 32
call sqlite3Malloc
mov QWORD PTR -24[rbp], rax
cmp QWORD PTR -24[rbp], 0
jne .L1496
mov rax, QWORD PTR -56[rbp]
jmp .L1500
.L1496:
mov rax, QWORD PTR -24[rbp]
mov rdx, QWORD PTR -48[rbp]
mov QWORD PTR 24[rax], rdx
mov rax, QWORD PTR -24[rbp]
mov rdx, QWORD PTR -56[rbp]
mov QWORD PTR 16[rax], rdx
mov rax, QWORD PTR -40[rbp]
mov eax, DWORD PTR 4[rax]
lea edx, 1[rax]
mov rax, QWORD PTR -40[rbp]
mov DWORD PTR 4[rax], edx
mov rax, QWORD PTR -40[rbp]
mov eax, DWORD PTR 4[rax]
cmp eax, 9
jbe .L1497
mov rax, QWORD PTR -40[rbp]
mov edx, DWORD PTR 4[rax]
mov rax, QWORD PTR -40[rbp]
mov eax, DWORD PTR [rax]
add eax, eax
cmp edx, eax
jbe .L1497
mov rax, QWORD PTR -40[rbp]
mov eax, DWORD PTR 4[rax]
lea edx, [rax+rax]
mov rax, QWORD PTR -40[rbp]
mov esi, edx
mov rdi, rax
call rehash
test eax, eax
je .L1497
mov rax, QWORD PTR -48[rbp]
mov rdi, rax
call strHash
mov edx, eax
mov rax, QWORD PTR -40[rbp]
mov ecx, DWORD PTR [rax]
mov eax, edx
mov edx, 0
div ecx
mov eax, edx
mov DWORD PTR -28[rbp], eax
.L1497:
mov rax, QWORD PTR -40[rbp]
mov rax, QWORD PTR 16[rax]
test rax, rax
je .L1498
mov rax, QWORD PTR -40[rbp]
mov rax, QWORD PTR 16[rax]
mov edx, DWORD PTR -28[rbp]
mov edx, edx
sal rdx, 4
lea rcx, [rax+rdx]
jmp .L1499
.L1498:
mov ecx, 0
.L1499:
mov rdx, QWORD PTR -24[rbp]
mov rax, QWORD PTR -40[rbp]
mov rsi, rcx
mov rdi, rax
call insertElement
mov eax, 0
.L1500:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE241:
.size sqlite3HashInsert, .-sqlite3HashInsert
.type sqlite3OpcodeName, @function
sqlite3OpcodeName:
.LFB242:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
mov DWORD PTR -4[rbp], edi
mov eax, DWORD PTR -4[rbp]
cdqe
lea rdx, 0[0+rax*8]
lea rax, azName.10745[rip]
mov rax, QWORD PTR [rdx+rax]
pop rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE242:
.size sqlite3OpcodeName, .-sqlite3OpcodeName
.local randomnessPid
.comm randomnessPid,4,4
.type posixOpen, @function
posixOpen:
.LFB243:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 16
mov QWORD PTR -8[rbp], rdi
mov DWORD PTR -12[rbp], esi
mov DWORD PTR -16[rbp], edx
mov edx, DWORD PTR -16[rbp]
mov ecx, DWORD PTR -12[rbp]
mov rax, QWORD PTR -8[rbp]
mov esi, ecx
mov rdi, rax
mov eax, 0
call open64@PLT
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE243:
.size posixOpen, .-posixOpen
.section .rodata
.LC77:
.string "open"
.LC78:
.string "close"
.LC79:
.string "access"
.LC80:
.string "getcwd"
.LC81:
.string "stat"
.LC82:
.string "fstat"
.LC83:
.string "ftruncate"
.LC84:
.string "fcntl"
.LC85:
.string "read"
.LC86:
.string "pread"
.LC87:
.string "pread64"
.LC88:
.string "write"
.LC89:
.string "pwrite"
.LC90:
.string "pwrite64"
.LC91:
.string "fchmod"
.LC92:
.string "fallocate"
.LC93:
.string "unlink"
.LC94:
.string "openDirectory"
.LC95:
.string "mkdir"
.LC96:
.string "rmdir"
.LC97:
.string "fchown"
.LC98:
.string "geteuid"
.LC99:
.string "mmap"
.LC100:
.string "munmap"
.LC101:
.string "mremap"
.LC102:
.string "getpagesize"
.LC103:
.string "readlink"
.LC104:
.string "lstat"
.LC105:
.string "ioctl"
.section .data.rel,"aw",@progbits
.align 32
.type aSyscall, @object
.size aSyscall, 696
aSyscall:
.quad .LC77
.quad posixOpen
.quad 0
.quad .LC78
.quad close
.quad 0
.quad .LC79
.quad access
.quad 0
.quad .LC80
.quad getcwd
.quad 0
.quad .LC81
.quad stat64
.quad 0
.quad .LC82
.quad fstat64
.quad 0
.quad .LC83
.quad ftruncate64
.quad 0
.quad .LC84
.quad fcntl
.quad 0
.quad .LC85
.quad read
.quad 0
.quad .LC86
.quad 0
.quad 0
.quad .LC87
.quad 0
.quad 0
.quad .LC88
.quad write
.quad 0
.quad .LC89
.quad 0
.quad 0
.quad .LC90
.quad 0
.quad 0
.quad .LC91
.quad fchmod
.quad 0
.quad .LC92
.quad 0
.quad 0
.quad .LC93
.quad unlink
.quad 0
.quad .LC94
.quad openDirectory
.quad 0
.quad .LC95
.quad mkdir
.quad 0
.quad .LC96
.quad rmdir
.quad 0
.quad .LC97
.quad fchown
.quad 0
.quad .LC98
.quad geteuid
.quad 0
.quad .LC99
.quad mmap64
.quad 0
.quad .LC100
.quad munmap
.quad 0
.quad .LC101
.quad mremap
.quad 0
.quad .LC102
.quad unixGetpagesize
.quad 0
.quad .LC103
.quad readlink
.quad 0
.quad .LC104
.quad lstat64
.quad 0
.quad .LC105
.quad 0
.quad 0
.text
.type robustFchown, @function
robustFchown:
.LFB244:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 16
mov DWORD PTR -4[rbp], edi
mov DWORD PTR -8[rbp], esi
mov DWORD PTR -12[rbp], edx
mov rax, QWORD PTR aSyscall[rip+512]
call rax
test eax, eax
jne .L1506
mov rax, QWORD PTR aSyscall[rip+488]
mov edx, DWORD PTR -12[rbp]
mov esi, DWORD PTR -8[rbp]
mov ecx, DWORD PTR -4[rbp]
mov edi, ecx
call rax
jmp .L1508
.L1506:
mov eax, 0
.L1508:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE244:
.size robustFchown, .-robustFchown
.type unixSetSystemCall, @function
unixSetSystemCall:
.LFB245:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 48
mov QWORD PTR -24[rbp], rdi
mov QWORD PTR -32[rbp], rsi
mov QWORD PTR -40[rbp], rdx
mov DWORD PTR -8[rbp], 12
cmp QWORD PTR -32[rbp], 0
jne .L1510
mov DWORD PTR -8[rbp], 0
mov DWORD PTR -4[rbp], 0
jmp .L1511
.L1513:
mov edx, DWORD PTR -4[rbp]
mov rax, rdx
add rax, rax
add rax, rdx
sal rax, 3
mov rdx, rax
lea rax, aSyscall[rip+16]
mov rax, QWORD PTR [rdx+rax]
test rax, rax
je .L1512
mov edx, DWORD PTR -4[rbp]
mov rax, rdx
add rax, rax
add rax, rdx
sal rax, 3
mov rdx, rax
lea rax, aSyscall[rip+16]
mov rcx, QWORD PTR [rdx+rax]
mov edx, DWORD PTR -4[rbp]
mov rax, rdx
add rax, rax
add rax, rdx
sal rax, 3
mov rdx, rax
lea rax, aSyscall[rip+8]
mov QWORD PTR [rdx+rax], rcx
.L1512:
add DWORD PTR -4[rbp], 1
.L1511:
cmp DWORD PTR -4[rbp], 28
jbe .L1513
jmp .L1514
.L1510:
mov DWORD PTR -4[rbp], 0
jmp .L1515
.L1519:
mov edx, DWORD PTR -4[rbp]
mov rax, rdx
add rax, rax
add rax, rdx
sal rax, 3
mov rdx, rax
lea rax, aSyscall[rip]
mov rdx, QWORD PTR [rdx+rax]
mov rax, QWORD PTR -32[rbp]
mov rsi, rdx
mov rdi, rax
call strcmp@PLT
test eax, eax
jne .L1516
mov edx, DWORD PTR -4[rbp]
mov rax, rdx
add rax, rax
add rax, rdx
sal rax, 3
mov rdx, rax
lea rax, aSyscall[rip+16]
mov rax, QWORD PTR [rdx+rax]
test rax, rax
jne .L1517
mov edx, DWORD PTR -4[rbp]
mov rax, rdx
add rax, rax
add rax, rdx
sal rax, 3
mov rdx, rax
lea rax, aSyscall[rip+8]
mov rcx, QWORD PTR [rdx+rax]
mov edx, DWORD PTR -4[rbp]
mov rax, rdx
add rax, rax
add rax, rdx
sal rax, 3
mov rdx, rax
lea rax, aSyscall[rip+16]
mov QWORD PTR [rdx+rax], rcx
.L1517:
mov DWORD PTR -8[rbp], 0
cmp QWORD PTR -40[rbp], 0
jne .L1518
mov edx, DWORD PTR -4[rbp]
mov rax, rdx
add rax, rax
add rax, rdx
sal rax, 3
mov rdx, rax
lea rax, aSyscall[rip+16]
mov rax, QWORD PTR [rdx+rax]
mov QWORD PTR -40[rbp], rax
.L1518:
mov edx, DWORD PTR -4[rbp]
mov rax, rdx
add rax, rax
add rax, rdx
sal rax, 3
mov rcx, rax
lea rax, aSyscall[rip+8]
mov rdx, QWORD PTR -40[rbp]
mov QWORD PTR [rcx+rax], rdx
jmp .L1514
.L1516:
add DWORD PTR -4[rbp], 1
.L1515:
cmp DWORD PTR -4[rbp], 28
jbe .L1519
.L1514:
mov eax, DWORD PTR -8[rbp]
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE245:
.size unixSetSystemCall, .-unixSetSystemCall
.type unixGetSystemCall, @function
unixGetSystemCall:
.LFB246:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 32
mov QWORD PTR -24[rbp], rdi
mov QWORD PTR -32[rbp], rsi
mov DWORD PTR -4[rbp], 0
jmp .L1522
.L1525:
mov edx, DWORD PTR -4[rbp]
mov rax, rdx
add rax, rax
add rax, rdx
sal rax, 3
mov rdx, rax
lea rax, aSyscall[rip]
mov rdx, QWORD PTR [rdx+rax]
mov rax, QWORD PTR -32[rbp]
mov rsi, rdx
mov rdi, rax
call strcmp@PLT
test eax, eax
jne .L1523
mov edx, DWORD PTR -4[rbp]
mov rax, rdx
add rax, rax
add rax, rdx
sal rax, 3
mov rdx, rax
lea rax, aSyscall[rip+8]
mov rax, QWORD PTR [rdx+rax]
jmp .L1524
.L1523:
add DWORD PTR -4[rbp], 1
.L1522:
cmp DWORD PTR -4[rbp], 28
jbe .L1525
mov eax, 0
.L1524:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE246:
.size unixGetSystemCall, .-unixGetSystemCall
.type unixNextSystemCall, @function
unixNextSystemCall:
.LFB247:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 32
mov QWORD PTR -24[rbp], rdi
mov QWORD PTR -32[rbp], rsi
mov DWORD PTR -4[rbp], -1
cmp QWORD PTR -32[rbp], 0
je .L1527
mov DWORD PTR -4[rbp], 0
jmp .L1528
.L1530:
mov eax, DWORD PTR -4[rbp]
movsx rdx, eax
mov rax, rdx
add rax, rax
add rax, rdx
sal rax, 3
mov rdx, rax
lea rax, aSyscall[rip]
mov rdx, QWORD PTR [rdx+rax]
mov rax, QWORD PTR -32[rbp]
mov rsi, rdx
mov rdi, rax
call strcmp@PLT
test eax, eax
je .L1535
add DWORD PTR -4[rbp], 1
.L1528:
cmp DWORD PTR -4[rbp], 27
jle .L1530
jmp .L1527
.L1535:
nop
.L1527:
add DWORD PTR -4[rbp], 1
jmp .L1531
.L1534:
mov eax, DWORD PTR -4[rbp]
movsx rdx, eax
mov rax, rdx
add rax, rax
add rax, rdx
sal rax, 3
mov rdx, rax
lea rax, aSyscall[rip+8]
mov rax, QWORD PTR [rdx+rax]
test rax, rax
je .L1532
mov eax, DWORD PTR -4[rbp]
movsx rdx, eax
mov rax, rdx
add rax, rax
add rax, rdx
sal rax, 3
mov rdx, rax
lea rax, aSyscall[rip]
mov rax, QWORD PTR [rdx+rax]
jmp .L1533
.L1532:
add DWORD PTR -4[rbp], 1
.L1531:
cmp DWORD PTR -4[rbp], 28
jle .L1534
mov eax, 0
.L1533:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE247:
.size unixNextSystemCall, .-unixNextSystemCall
.section .rodata
.align 8
.LC106:
.string "attempt to open \"%s\" as file descriptor %d"
.LC107:
.string "/dev/null"
.text
.type robust_open, @function
robust_open:
.LFB248:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 176
mov QWORD PTR -168[rbp], rdi
mov DWORD PTR -172[rbp], esi
mov DWORD PTR -176[rbp], edx
cmp DWORD PTR -176[rbp], 0
je .L1537
mov eax, DWORD PTR -176[rbp]
jmp .L1538
.L1537:
mov eax, 420
.L1538:
mov DWORD PTR -8[rbp], eax
.L1544:
mov rax, QWORD PTR aSyscall[rip+8]
mov edx, DWORD PTR -8[rbp]
mov ecx, DWORD PTR -172[rbp]
mov esi, ecx
or esi, 524288
mov rcx, QWORD PTR -168[rbp]
mov rdi, rcx
call rax
mov DWORD PTR -4[rbp], eax
cmp DWORD PTR -4[rbp], 0
jns .L1539
call __errno_location@PLT
mov eax, DWORD PTR [rax]
cmp eax, 4
jne .L1548
jmp .L1541
.L1539:
cmp DWORD PTR -4[rbp], 2
jg .L1549
mov rax, QWORD PTR aSyscall[rip+32]
mov edx, DWORD PTR -4[rbp]
mov edi, edx
call rax
mov edx, DWORD PTR -4[rbp]
mov rax, QWORD PTR -168[rbp]
mov ecx, edx
mov rdx, rax
lea rsi, .LC106[rip]
mov edi, 28
mov eax, 0
call sqlite3_log
mov DWORD PTR -4[rbp], -1
mov rax, QWORD PTR aSyscall[rip+8]
mov edx, DWORD PTR -176[rbp]
mov ecx, DWORD PTR -172[rbp]
mov esi, ecx
lea rdi, .LC107[rip]
call rax
test eax, eax
js .L1550
.L1541:
jmp .L1544
.L1548:
nop
jmp .L1542
.L1549:
nop
jmp .L1542
.L1550:
nop
.L1542:
cmp DWORD PTR -4[rbp], 0
js .L1545
cmp DWORD PTR -176[rbp], 0
je .L1545
mov rax, QWORD PTR aSyscall[rip+128]
lea rcx, -160[rbp]
mov edx, DWORD PTR -4[rbp]
mov rsi, rcx
mov edi, edx
call rax
test eax, eax
jne .L1545
mov rax, QWORD PTR -112[rbp]
test rax, rax
jne .L1545
mov eax, DWORD PTR -136[rbp]
and eax, 511
cmp eax, DWORD PTR -176[rbp]
je .L1545
mov rax, QWORD PTR aSyscall[rip+344]
mov ecx, DWORD PTR -176[rbp]
mov edx, DWORD PTR -4[rbp]
mov esi, ecx
mov edi, edx
call rax
.L1545:
mov eax, DWORD PTR -4[rbp]
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE248:
.size robust_open, .-robust_open
.type unixEnterMutex, @function
unixEnterMutex:
.LFB249:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
mov edi, 11
call sqlite3MutexAlloc
mov rdi, rax
call sqlite3_mutex_enter
nop
pop rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE249:
.size unixEnterMutex, .-unixEnterMutex
.type unixLeaveMutex, @function
unixLeaveMutex:
.LFB250:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
mov edi, 11
call sqlite3MutexAlloc
mov rdi, rax
call sqlite3_mutex_leave
nop
pop rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE250:
.size unixLeaveMutex, .-unixLeaveMutex
.type robust_ftruncate, @function
robust_ftruncate:
.LFB251:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 32
mov DWORD PTR -20[rbp], edi
mov QWORD PTR -32[rbp], rsi
.L1555:
mov rax, QWORD PTR aSyscall[rip+152]
mov rcx, QWORD PTR -32[rbp]
mov edx, DWORD PTR -20[rbp]
mov rsi, rcx
mov edi, edx
call rax
mov DWORD PTR -4[rbp], eax
cmp DWORD PTR -4[rbp], 0
jns .L1554
call __errno_location@PLT
mov eax, DWORD PTR [rax]
cmp eax, 4
je .L1555
.L1554:
mov eax, DWORD PTR -4[rbp]
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE251:
.size robust_ftruncate, .-robust_ftruncate
.type sqliteErrorFromPosixError, @function
sqliteErrorFromPosixError:
.LFB252:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
mov DWORD PTR -4[rbp], edi
mov DWORD PTR -8[rbp], esi
mov eax, DWORD PTR -4[rbp]
cmp eax, 13
je .L1559
cmp eax, 13
jg .L1560
cmp eax, 4
je .L1559
cmp eax, 11
je .L1559
cmp eax, 1
je .L1561
jmp .L1558
.L1560:
cmp eax, 37
je .L1559
cmp eax, 110
je .L1559
cmp eax, 16
jne .L1558
.L1559:
mov eax, 5
jmp .L1562
.L1561:
mov eax, 3
jmp .L1562
.L1558:
mov eax, DWORD PTR -8[rbp]
.L1562:
pop rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE252:
.size sqliteErrorFromPosixError, .-sqliteErrorFromPosixError
.local inodeList
.comm inodeList,8,8
.local nUnusedFd
.comm nUnusedFd,4,4
.section .rodata
.align 8
.LC108:
.string "os_unix.c:%d: (%d) %s(%s) - %s"
.text
.type unixLogErrorAtLine, @function
unixLogErrorAtLine:
.LFB253:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 48
mov DWORD PTR -20[rbp], edi
mov QWORD PTR -32[rbp], rsi
mov QWORD PTR -40[rbp], rdx
mov DWORD PTR -24[rbp], ecx
call __errno_location@PLT
mov eax, DWORD PTR [rax]
mov DWORD PTR -4[rbp], eax
lea rax, .LC65[rip]
mov QWORD PTR -16[rbp], rax
cmp QWORD PTR -40[rbp], 0
jne .L1564
lea rax, .LC65[rip]
mov QWORD PTR -40[rbp], rax
.L1564:
mov rdi, QWORD PTR -40[rbp]
mov rsi, QWORD PTR -32[rbp]
mov ecx, DWORD PTR -4[rbp]
mov edx, DWORD PTR -24[rbp]
mov eax, DWORD PTR -20[rbp]
sub rsp, 8
push QWORD PTR -16[rbp]
mov r9, rdi
mov r8, rsi
lea rsi, .LC108[rip]
mov edi, eax
mov eax, 0
call sqlite3_log
add rsp, 16
mov eax, DWORD PTR -20[rbp]
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE253:
.size unixLogErrorAtLine, .-unixLogErrorAtLine
.type robust_close, @function
robust_close:
.LFB254:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 16
mov QWORD PTR -8[rbp], rdi
mov DWORD PTR -12[rbp], esi
mov DWORD PTR -16[rbp], edx
mov rax, QWORD PTR aSyscall[rip+32]
mov edx, DWORD PTR -12[rbp]
mov edi, edx
call rax
test eax, eax
je .L1570
cmp QWORD PTR -8[rbp], 0
je .L1568
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR 56[rax]
jmp .L1569
.L1568:
mov eax, 0
.L1569:
mov edx, DWORD PTR -16[rbp]
mov ecx, edx
mov rdx, rax
lea rsi, .LC78[rip]
mov edi, 4106
call unixLogErrorAtLine
.L1570:
nop
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE254:
.size robust_close, .-robust_close
.type storeLastErrno, @function
storeLastErrno:
.LFB255:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
mov QWORD PTR -8[rbp], rdi
mov DWORD PTR -12[rbp], esi
mov rax, QWORD PTR -8[rbp]
mov edx, DWORD PTR -12[rbp]
mov DWORD PTR 32[rax], edx
nop
pop rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE255:
.size storeLastErrno, .-storeLastErrno
.type closePendingFds, @function
closePendingFds:
.LFB256:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 48
mov QWORD PTR -40[rbp], rdi
mov rax, QWORD PTR -40[rbp]
mov rax, QWORD PTR 16[rax]
mov QWORD PTR -16[rbp], rax
mov rax, QWORD PTR -16[rbp]
mov rax, QWORD PTR 48[rax]
mov QWORD PTR -8[rbp], rax
jmp .L1573
.L1574:
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR 8[rax]
mov QWORD PTR -24[rbp], rax
mov rax, QWORD PTR -8[rbp]
mov ecx, DWORD PTR [rax]
mov rax, QWORD PTR -40[rbp]
mov edx, 31980
mov esi, ecx
mov rdi, rax
call robust_close
mov rax, QWORD PTR -8[rbp]
mov rdi, rax
call sqlite3_free
mov eax, DWORD PTR nUnusedFd[rip]
sub eax, 1
mov DWORD PTR nUnusedFd[rip], eax
mov rax, QWORD PTR -24[rbp]
mov QWORD PTR -8[rbp], rax
.L1573:
cmp QWORD PTR -8[rbp], 0
jne .L1574
mov rax, QWORD PTR -16[rbp]
mov QWORD PTR 48[rax], 0
nop
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE256:
.size closePendingFds, .-closePendingFds
.type releaseInodeInfo, @function
releaseInodeInfo:
.LFB257:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 32
mov QWORD PTR -24[rbp], rdi
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 16[rax]
mov QWORD PTR -8[rbp], rax
cmp QWORD PTR -8[rbp], 0
je .L1580
mov rax, QWORD PTR -8[rbp]
mov eax, DWORD PTR 24[rax]
lea edx, -1[rax]
mov rax, QWORD PTR -8[rbp]
mov DWORD PTR 24[rax], edx
mov rax, QWORD PTR -8[rbp]
mov eax, DWORD PTR 24[rax]
test eax, eax
jne .L1580
mov rax, QWORD PTR -24[rbp]
mov rdi, rax
call closePendingFds
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR 64[rax]
test rax, rax
je .L1577
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR 64[rax]
mov rdx, QWORD PTR -8[rbp]
mov rdx, QWORD PTR 56[rdx]
mov QWORD PTR 56[rax], rdx
jmp .L1578
.L1577:
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR 56[rax]
mov QWORD PTR inodeList[rip], rax
.L1578:
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR 56[rax]
test rax, rax
je .L1579
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR 56[rax]
mov rdx, QWORD PTR -8[rbp]
mov rdx, QWORD PTR 64[rdx]
mov QWORD PTR 64[rax], rdx
.L1579:
mov rax, QWORD PTR -8[rbp]
mov rdi, rax
call sqlite3_free
.L1580:
nop
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE257:
.size releaseInodeInfo, .-releaseInodeInfo
.type findInodeInfo, @function
findInodeInfo:
.LFB258:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 192
mov QWORD PTR -184[rbp], rdi
mov QWORD PTR -192[rbp], rsi
mov QWORD PTR -8[rbp], 0
mov rax, QWORD PTR -184[rbp]
mov eax, DWORD PTR 24[rax]
mov DWORD PTR -12[rbp], eax
mov rax, QWORD PTR aSyscall[rip+128]
lea rcx, -176[rbp]
mov edx, DWORD PTR -12[rbp]
mov rsi, rcx
mov edi, edx
call rax
mov DWORD PTR -16[rbp], eax
cmp DWORD PTR -16[rbp], 0
je .L1582
call __errno_location@PLT
mov edx, DWORD PTR [rax]
mov rax, QWORD PTR -184[rbp]
mov esi, edx
mov rdi, rax
call storeLastErrno
mov eax, 10
jmp .L1591
.L1582:
lea rax, -32[rbp]
mov edx, 16
mov esi, 0
mov rdi, rax
call memset@PLT
mov rax, QWORD PTR -176[rbp]
mov QWORD PTR -32[rbp], rax
mov rax, QWORD PTR -168[rbp]
mov QWORD PTR -24[rbp], rax
mov rax, QWORD PTR inodeList[rip]
mov QWORD PTR -8[rbp], rax
jmp .L1584
.L1586:
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR 56[rax]
mov QWORD PTR -8[rbp], rax
.L1584:
cmp QWORD PTR -8[rbp], 0
je .L1585
mov rcx, QWORD PTR -8[rbp]
lea rax, -32[rbp]
mov edx, 16
mov rsi, rcx
mov rdi, rax
call memcmp@PLT
test eax, eax
jne .L1586
.L1585:
cmp QWORD PTR -8[rbp], 0
jne .L1587
mov edi, 72
call sqlite3_malloc64
mov QWORD PTR -8[rbp], rax
cmp QWORD PTR -8[rbp], 0
jne .L1588
mov eax, 7
jmp .L1591
.L1588:
mov rax, QWORD PTR -8[rbp]
mov edx, 72
mov esi, 0
mov rdi, rax
call memset@PLT
mov rcx, QWORD PTR -8[rbp]
mov rax, QWORD PTR -32[rbp]
mov rdx, QWORD PTR -24[rbp]
mov QWORD PTR [rcx], rax
mov QWORD PTR 8[rcx], rdx
mov rax, QWORD PTR -8[rbp]
mov DWORD PTR 24[rax], 1
mov rdx, QWORD PTR inodeList[rip]
mov rax, QWORD PTR -8[rbp]
mov QWORD PTR 56[rax], rdx
mov rax, QWORD PTR -8[rbp]
mov QWORD PTR 64[rax], 0
mov rax, QWORD PTR inodeList[rip]
test rax, rax
je .L1589
mov rax, QWORD PTR inodeList[rip]
mov rdx, QWORD PTR -8[rbp]
mov QWORD PTR 64[rax], rdx
.L1589:
mov rax, QWORD PTR -8[rbp]
mov QWORD PTR inodeList[rip], rax
jmp .L1590
.L1587:
mov rax, QWORD PTR -8[rbp]
mov eax, DWORD PTR 24[rax]
lea edx, 1[rax]
mov rax, QWORD PTR -8[rbp]
mov DWORD PTR 24[rax], edx
.L1590:
mov rax, QWORD PTR -192[rbp]
mov rdx, QWORD PTR -8[rbp]
mov QWORD PTR [rax], rdx
mov eax, 0
.L1591:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE258:
.size findInodeInfo, .-findInodeInfo
.type fileHasMoved, @function
fileHasMoved:
.LFB259:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 160
mov QWORD PTR -152[rbp], rdi
mov rax, QWORD PTR -152[rbp]
mov rax, QWORD PTR 16[rax]
test rax, rax
je .L1593
mov rax, QWORD PTR aSyscall[rip+104]
mov rdx, QWORD PTR -152[rbp]
mov rdx, QWORD PTR 56[rdx]
lea rcx, -144[rbp]
mov rsi, rcx
mov rdi, rdx
call rax
test eax, eax
jne .L1594
mov rdx, QWORD PTR -136[rbp]
mov rax, QWORD PTR -152[rbp]
mov rax, QWORD PTR 16[rax]
mov rax, QWORD PTR 8[rax]
cmp rdx, rax
je .L1593
.L1594:
mov eax, 1
jmp .L1596
.L1593:
mov eax, 0
.L1596:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE259:
.size fileHasMoved, .-fileHasMoved
.section .rodata
.LC109:
.string "cannot fstat db file %s"
.LC110:
.string "file unlinked while open: %s"
.LC111:
.string "multiple links to file: %s"
.LC112:
.string "file renamed while open: %s"
.text
.type verifyDbFile, @function
verifyDbFile:
.LFB260:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 176
mov QWORD PTR -168[rbp], rdi
mov rax, QWORD PTR -168[rbp]
movzx eax, WORD PTR 30[rax]
movzx eax, ax
and eax, 128
test eax, eax
jne .L1605
mov rax, QWORD PTR aSyscall[rip+128]
mov rdx, QWORD PTR -168[rbp]
mov edx, DWORD PTR 24[rdx]
lea rcx, -160[rbp]
mov rsi, rcx
mov edi, edx
call rax
mov DWORD PTR -4[rbp], eax
cmp DWORD PTR -4[rbp], 0
je .L1600
mov rax, QWORD PTR -168[rbp]
mov rax, QWORD PTR 56[rax]
mov rdx, rax
lea rsi, .LC109[rip]
mov edi, 28
mov eax, 0
call sqlite3_log
jmp .L1597
.L1600:
mov rax, QWORD PTR -144[rbp]
test rax, rax
jne .L1601
mov rax, QWORD PTR -168[rbp]
mov rax, QWORD PTR 56[rax]
mov rdx, rax
lea rsi, .LC110[rip]
mov edi, 28
mov eax, 0
call sqlite3_log
jmp .L1597
.L1601:
mov rax, QWORD PTR -144[rbp]
cmp rax, 1
jbe .L1602
mov rax, QWORD PTR -168[rbp]
mov rax, QWORD PTR 56[rax]
mov rdx, rax
lea rsi, .LC111[rip]
mov edi, 28
mov eax, 0
call sqlite3_log
jmp .L1597
.L1602:
mov rax, QWORD PTR -168[rbp]
mov rdi, rax
call fileHasMoved
test eax, eax
je .L1597
mov rax, QWORD PTR -168[rbp]
mov rax, QWORD PTR 56[rax]
mov rdx, rax
lea rsi, .LC112[rip]
mov edi, 28
mov eax, 0
call sqlite3_log
jmp .L1597
.L1605:
nop
.L1597:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE260:
.size verifyDbFile, .-verifyDbFile
.type unixCheckReservedLock, @function
unixCheckReservedLock:
.LFB261:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 64
mov QWORD PTR -56[rbp], rdi
mov QWORD PTR -64[rbp], rsi
mov DWORD PTR -4[rbp], 0
mov DWORD PTR -8[rbp], 0
mov rax, QWORD PTR -56[rbp]
mov QWORD PTR -16[rbp], rax
call unixEnterMutex
mov rax, QWORD PTR -16[rbp]
mov rax, QWORD PTR 16[rax]
movzx eax, BYTE PTR 20[rax]
cmp al, 1
jbe .L1607
mov DWORD PTR -8[rbp], 1
.L1607:
cmp DWORD PTR -8[rbp], 0
jne .L1608
mov rax, QWORD PTR -16[rbp]
mov rax, QWORD PTR 16[rax]
movzx eax, BYTE PTR 21[rax]
test al, al
jne .L1608
mov WORD PTR -46[rbp], 0
mov eax, DWORD PTR sqlite3PendingByte[rip]
add eax, 1
cdqe
mov QWORD PTR -40[rbp], rax
mov QWORD PTR -32[rbp], 1
mov WORD PTR -48[rbp], 1
mov rcx, QWORD PTR aSyscall[rip+176]
mov rax, QWORD PTR -16[rbp]
mov eax, DWORD PTR 24[rax]
lea rdx, -48[rbp]
mov esi, 5
mov edi, eax
mov eax, 0
call rcx
test eax, eax
je .L1609
mov DWORD PTR -4[rbp], 3594
call __errno_location@PLT
mov edx, DWORD PTR [rax]
mov rax, QWORD PTR -16[rbp]
mov esi, edx
mov rdi, rax
call storeLastErrno
jmp .L1608
.L1609:
movzx eax, WORD PTR -48[rbp]
cmp ax, 2
je .L1608
mov DWORD PTR -8[rbp], 1
.L1608:
call unixLeaveMutex
mov rax, QWORD PTR -64[rbp]
mov edx, DWORD PTR -8[rbp]
mov DWORD PTR [rax], edx
mov eax, DWORD PTR -4[rbp]
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE261:
.size unixCheckReservedLock, .-unixCheckReservedLock
.type unixFileLock, @function
unixFileLock:
.LFB262:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 64
mov QWORD PTR -56[rbp], rdi
mov QWORD PTR -64[rbp], rsi
mov rax, QWORD PTR -56[rbp]
mov rax, QWORD PTR 16[rax]
mov QWORD PTR -16[rbp], rax
mov rax, QWORD PTR -56[rbp]
movzx eax, WORD PTR 30[rax]
movzx eax, ax
and eax, 3
cmp eax, 1
jne .L1613
mov rax, QWORD PTR -16[rbp]
movzx eax, BYTE PTR 21[rax]
test al, al
jne .L1614
mov WORD PTR -46[rbp], 0
mov eax, DWORD PTR sqlite3PendingByte[rip]
add eax, 2
cdqe
mov QWORD PTR -40[rbp], rax
mov QWORD PTR -32[rbp], 510
mov WORD PTR -48[rbp], 1
mov rcx, QWORD PTR aSyscall[rip+176]
mov rax, QWORD PTR -56[rbp]
mov eax, DWORD PTR 24[rax]
lea rdx, -48[rbp]
mov esi, 6
mov edi, eax
mov eax, 0
call rcx
mov DWORD PTR -4[rbp], eax
cmp DWORD PTR -4[rbp], 0
jns .L1615
mov eax, DWORD PTR -4[rbp]
jmp .L1616
.L1615:
mov rax, QWORD PTR -16[rbp]
mov BYTE PTR 21[rax], 1
mov rax, QWORD PTR -16[rbp]
mov eax, DWORD PTR 40[rax]
lea edx, 1[rax]
mov rax, QWORD PTR -16[rbp]
mov DWORD PTR 40[rax], edx
jmp .L1618
.L1614:
mov DWORD PTR -4[rbp], 0
jmp .L1618
.L1613:
mov rcx, QWORD PTR aSyscall[rip+176]
mov rax, QWORD PTR -56[rbp]
mov eax, DWORD PTR 24[rax]
mov rdx, QWORD PTR -64[rbp]
mov esi, 6
mov edi, eax
mov eax, 0
call rcx
mov DWORD PTR -4[rbp], eax
.L1618:
mov eax, DWORD PTR -4[rbp]
.L1616:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE262:
.size unixFileLock, .-unixFileLock
.type unixLock, @function
unixLock:
.LFB263:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 80
mov QWORD PTR -72[rbp], rdi
mov DWORD PTR -76[rbp], esi
mov DWORD PTR -4[rbp], 0
mov rax, QWORD PTR -72[rbp]
mov QWORD PTR -16[rbp], rax
mov DWORD PTR -8[rbp], 0
mov rax, QWORD PTR -16[rbp]
movzx eax, BYTE PTR 28[rax]
movzx eax, al
cmp eax, DWORD PTR -76[rbp]
jl .L1620
mov eax, 0
jmp .L1640
.L1620:
call unixEnterMutex
mov rax, QWORD PTR -16[rbp]
mov rax, QWORD PTR 16[rax]
mov QWORD PTR -24[rbp], rax
mov rax, QWORD PTR -16[rbp]
movzx edx, BYTE PTR 28[rax]
mov rax, QWORD PTR -24[rbp]
movzx eax, BYTE PTR 20[rax]
cmp dl, al
je .L1622
mov rax, QWORD PTR -24[rbp]
movzx eax, BYTE PTR 20[rax]
cmp al, 2
ja .L1623
cmp DWORD PTR -76[rbp], 1
jle .L1622
.L1623:
mov DWORD PTR -4[rbp], 5
jmp .L1624
.L1622:
cmp DWORD PTR -76[rbp], 1
jne .L1625
mov rax, QWORD PTR -24[rbp]
movzx eax, BYTE PTR 20[rax]
cmp al, 1
je .L1626
mov rax, QWORD PTR -24[rbp]
movzx eax, BYTE PTR 20[rax]
cmp al, 2
jne .L1625
.L1626:
mov rax, QWORD PTR -16[rbp]
mov BYTE PTR 28[rax], 1
mov rax, QWORD PTR -24[rbp]
mov eax, DWORD PTR 16[rax]
lea edx, 1[rax]
mov rax, QWORD PTR -24[rbp]
mov DWORD PTR 16[rax], edx
mov rax, QWORD PTR -24[rbp]
mov eax, DWORD PTR 40[rax]
lea edx, 1[rax]
mov rax, QWORD PTR -24[rbp]
mov DWORD PTR 40[rax], edx
jmp .L1624
.L1625:
mov QWORD PTR -48[rbp], 1
mov WORD PTR -62[rbp], 0
cmp DWORD PTR -76[rbp], 1
je .L1627
cmp DWORD PTR -76[rbp], 4
jne .L1628
mov rax, QWORD PTR -16[rbp]
movzx eax, BYTE PTR 28[rax]
cmp al, 2
ja .L1628
.L1627:
cmp DWORD PTR -76[rbp], 1
setne al
movzx eax, al
mov WORD PTR -64[rbp], ax
mov eax, DWORD PTR sqlite3PendingByte[rip]
cdqe
mov QWORD PTR -56[rbp], rax
lea rdx, -64[rbp]
mov rax, QWORD PTR -16[rbp]
mov rsi, rdx
mov rdi, rax
call unixFileLock
test eax, eax
je .L1628
call __errno_location@PLT
mov eax, DWORD PTR [rax]
mov DWORD PTR -8[rbp], eax
mov eax, DWORD PTR -8[rbp]
mov esi, 3850
mov edi, eax
call sqliteErrorFromPosixError
mov DWORD PTR -4[rbp], eax
cmp DWORD PTR -4[rbp], 5
je .L1641
mov edx, DWORD PTR -8[rbp]
mov rax, QWORD PTR -16[rbp]
mov esi, edx
mov rdi, rax
call storeLastErrno
jmp .L1641
.L1628:
cmp DWORD PTR -76[rbp], 1
jne .L1630
mov eax, DWORD PTR sqlite3PendingByte[rip]
add eax, 2
cdqe
mov QWORD PTR -56[rbp], rax
mov QWORD PTR -48[rbp], 510
lea rdx, -64[rbp]
mov rax, QWORD PTR -16[rbp]
mov rsi, rdx
mov rdi, rax
call unixFileLock
test eax, eax
je .L1631
call __errno_location@PLT
mov eax, DWORD PTR [rax]
mov DWORD PTR -8[rbp], eax
mov eax, DWORD PTR -8[rbp]
mov esi, 3850
mov edi, eax
call sqliteErrorFromPosixError
mov DWORD PTR -4[rbp], eax
.L1631:
mov eax, DWORD PTR sqlite3PendingByte[rip]
cdqe
mov QWORD PTR -56[rbp], rax
mov QWORD PTR -48[rbp], 1
mov WORD PTR -64[rbp], 2
lea rdx, -64[rbp]
mov rax, QWORD PTR -16[rbp]
mov rsi, rdx
mov rdi, rax
call unixFileLock
test eax, eax
je .L1632
cmp DWORD PTR -4[rbp], 0
jne .L1632
call __errno_location@PLT
mov eax, DWORD PTR [rax]
mov DWORD PTR -8[rbp], eax
mov DWORD PTR -4[rbp], 2058
.L1632:
cmp DWORD PTR -4[rbp], 0
je .L1633
cmp DWORD PTR -4[rbp], 5
je .L1642
mov edx, DWORD PTR -8[rbp]
mov rax, QWORD PTR -16[rbp]
mov esi, edx
mov rdi, rax
call storeLastErrno
jmp .L1642
.L1633:
mov rax, QWORD PTR -16[rbp]
mov BYTE PTR 28[rax], 1
mov rax, QWORD PTR -24[rbp]
mov eax, DWORD PTR 40[rax]
lea edx, 1[rax]
mov rax, QWORD PTR -24[rbp]
mov DWORD PTR 40[rax], edx
mov rax, QWORD PTR -24[rbp]
mov DWORD PTR 16[rax], 1
jmp .L1635
.L1630:
cmp DWORD PTR -76[rbp], 4
jne .L1636
mov rax, QWORD PTR -24[rbp]
mov eax, DWORD PTR 16[rax]
cmp eax, 1
jle .L1636
mov DWORD PTR -4[rbp], 5
jmp .L1635
.L1636:
mov WORD PTR -64[rbp], 1
cmp DWORD PTR -76[rbp], 2
jne .L1637
mov eax, DWORD PTR sqlite3PendingByte[rip]
add eax, 1
cdqe
mov QWORD PTR -56[rbp], rax
mov QWORD PTR -48[rbp], 1
jmp .L1638
.L1637:
mov eax, DWORD PTR sqlite3PendingByte[rip]
add eax, 2
cdqe
mov QWORD PTR -56[rbp], rax
mov QWORD PTR -48[rbp], 510
.L1638:
lea rdx, -64[rbp]
mov rax, QWORD PTR -16[rbp]
mov rsi, rdx
mov rdi, rax
call unixFileLock
test eax, eax
je .L1635
call __errno_location@PLT
mov eax, DWORD PTR [rax]
mov DWORD PTR -8[rbp], eax
mov eax, DWORD PTR -8[rbp]
mov esi, 3850
mov edi, eax
call sqliteErrorFromPosixError
mov DWORD PTR -4[rbp], eax
cmp DWORD PTR -4[rbp], 5
je .L1635
mov edx, DWORD PTR -8[rbp]
mov rax, QWORD PTR -16[rbp]
mov esi, edx
mov rdi, rax
call storeLastErrno
.L1635:
cmp DWORD PTR -4[rbp], 0
jne .L1639
mov eax, DWORD PTR -76[rbp]
mov edx, eax
mov rax, QWORD PTR -16[rbp]
mov BYTE PTR 28[rax], dl
mov eax, DWORD PTR -76[rbp]
mov edx, eax
mov rax, QWORD PTR -24[rbp]
mov BYTE PTR 20[rax], dl
jmp .L1624
.L1639:
cmp DWORD PTR -76[rbp], 4
jne .L1624
mov rax, QWORD PTR -16[rbp]
mov BYTE PTR 28[rax], 3
mov rax, QWORD PTR -24[rbp]
mov BYTE PTR 20[rax], 3
jmp .L1624
.L1641:
nop
jmp .L1624
.L1642:
nop
.L1624:
call unixLeaveMutex
mov eax, DWORD PTR -4[rbp]
.L1640:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE263:
.size unixLock, .-unixLock
.type setPendingFd, @function
setPendingFd:
.LFB264:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
mov QWORD PTR -24[rbp], rdi
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 16[rax]
mov QWORD PTR -8[rbp], rax
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 48[rax]
mov QWORD PTR -16[rbp], rax
mov rax, QWORD PTR -8[rbp]
mov rdx, QWORD PTR 48[rax]
mov rax, QWORD PTR -16[rbp]
mov QWORD PTR 8[rax], rdx
mov rax, QWORD PTR -8[rbp]
mov rdx, QWORD PTR -16[rbp]
mov QWORD PTR 48[rax], rdx
mov rax, QWORD PTR -24[rbp]
mov DWORD PTR 24[rax], -1
mov rax, QWORD PTR -24[rbp]
mov QWORD PTR 48[rax], 0
mov eax, DWORD PTR nUnusedFd[rip]
add eax, 1
mov DWORD PTR nUnusedFd[rip], eax
nop
pop rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE264:
.size setPendingFd, .-setPendingFd
.type posixUnlock, @function
posixUnlock:
.LFB265:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 80
mov QWORD PTR -72[rbp], rdi
mov DWORD PTR -76[rbp], esi
mov DWORD PTR -80[rbp], edx
mov rax, QWORD PTR -72[rbp]
mov QWORD PTR -16[rbp], rax
mov DWORD PTR -4[rbp], 0
mov rax, QWORD PTR -16[rbp]
movzx eax, BYTE PTR 28[rax]
movzx eax, al
cmp eax, DWORD PTR -76[rbp]
jg .L1645
mov eax, 0
jmp .L1654
.L1645:
call unixEnterMutex
mov rax, QWORD PTR -16[rbp]
mov rax, QWORD PTR 16[rax]
mov QWORD PTR -24[rbp], rax
mov rax, QWORD PTR -16[rbp]
movzx eax, BYTE PTR 28[rax]
cmp al, 1
jbe .L1647
cmp DWORD PTR -76[rbp], 1
jne .L1648
mov WORD PTR -64[rbp], 0
mov WORD PTR -62[rbp], 0
mov eax, DWORD PTR sqlite3PendingByte[rip]
add eax, 2
cdqe
mov QWORD PTR -56[rbp], rax
mov QWORD PTR -48[rbp], 510
lea rdx, -64[rbp]
mov rax, QWORD PTR -16[rbp]
mov rsi, rdx
mov rdi, rax
call unixFileLock
test eax, eax
je .L1648
mov DWORD PTR -4[rbp], 2314
call __errno_location@PLT
mov edx, DWORD PTR [rax]
mov rax, QWORD PTR -16[rbp]
mov esi, edx
mov rdi, rax
call storeLastErrno
jmp .L1649
.L1648:
mov WORD PTR -64[rbp], 2
mov WORD PTR -62[rbp], 0
mov eax, DWORD PTR sqlite3PendingByte[rip]
cdqe
mov QWORD PTR -56[rbp], rax
mov QWORD PTR -48[rbp], 2
lea rdx, -64[rbp]
mov rax, QWORD PTR -16[rbp]
mov rsi, rdx
mov rdi, rax
call unixFileLock
test eax, eax
jne .L1650
mov rax, QWORD PTR -24[rbp]
mov BYTE PTR 20[rax], 1
jmp .L1647
.L1650:
mov DWORD PTR -4[rbp], 2058
call __errno_location@PLT
mov edx, DWORD PTR [rax]
mov rax, QWORD PTR -16[rbp]
mov esi, edx
mov rdi, rax
call storeLastErrno
jmp .L1649
.L1647:
cmp DWORD PTR -76[rbp], 0
jne .L1649
mov rax, QWORD PTR -24[rbp]
mov eax, DWORD PTR 16[rax]
lea edx, -1[rax]
mov rax, QWORD PTR -24[rbp]
mov DWORD PTR 16[rax], edx
mov rax, QWORD PTR -24[rbp]
mov eax, DWORD PTR 16[rax]
test eax, eax
jne .L1651
mov WORD PTR -64[rbp], 2
mov WORD PTR -62[rbp], 0
mov QWORD PTR -48[rbp], 0
mov rax, QWORD PTR -48[rbp]
mov QWORD PTR -56[rbp], rax
lea rdx, -64[rbp]
mov rax, QWORD PTR -16[rbp]
mov rsi, rdx
mov rdi, rax
call unixFileLock
test eax, eax
jne .L1652
mov rax, QWORD PTR -24[rbp]
mov BYTE PTR 20[rax], 0
jmp .L1651
.L1652:
mov DWORD PTR -4[rbp], 2058
call __errno_location@PLT
mov edx, DWORD PTR [rax]
mov rax, QWORD PTR -16[rbp]
mov esi, edx
mov rdi, rax
call storeLastErrno
mov rax, QWORD PTR -24[rbp]
mov BYTE PTR 20[rax], 0
mov rax, QWORD PTR -16[rbp]
mov BYTE PTR 28[rax], 0
.L1651:
mov rax, QWORD PTR -24[rbp]
mov eax, DWORD PTR 40[rax]
lea edx, -1[rax]
mov rax, QWORD PTR -24[rbp]
mov DWORD PTR 40[rax], edx
mov rax, QWORD PTR -24[rbp]
mov eax, DWORD PTR 40[rax]
test eax, eax
jne .L1649
mov rax, QWORD PTR -16[rbp]
mov rdi, rax
call closePendingFds
.L1649:
call unixLeaveMutex
cmp DWORD PTR -4[rbp], 0
jne .L1653
mov eax, DWORD PTR -76[rbp]
mov edx, eax
mov rax, QWORD PTR -16[rbp]
mov BYTE PTR 28[rax], dl
.L1653:
mov eax, DWORD PTR -4[rbp]
.L1654:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE265:
.size posixUnlock, .-posixUnlock
.type unixUnlock, @function
unixUnlock:
.LFB266:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 16
mov QWORD PTR -8[rbp], rdi
mov DWORD PTR -12[rbp], esi
mov ecx, DWORD PTR -12[rbp]
mov rax, QWORD PTR -8[rbp]
mov edx, 0
mov esi, ecx
mov rdi, rax
call posixUnlock
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE266:
.size unixUnlock, .-unixUnlock
.type closeUnixFile, @function
closeUnixFile:
.LFB267:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 32
mov QWORD PTR -24[rbp], rdi
mov rax, QWORD PTR -24[rbp]
mov QWORD PTR -8[rbp], rax
mov rax, QWORD PTR -8[rbp]
mov rdi, rax
call unixUnmapfile
mov rax, QWORD PTR -8[rbp]
mov eax, DWORD PTR 24[rax]
test eax, eax
js .L1658
mov rax, QWORD PTR -8[rbp]
mov ecx, DWORD PTR 24[rax]
mov rax, QWORD PTR -8[rbp]
mov edx, 32714
mov esi, ecx
mov rdi, rax
call robust_close
mov rax, QWORD PTR -8[rbp]
mov DWORD PTR 24[rax], -1
.L1658:
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR 48[rax]
mov rdi, rax
call sqlite3_free
mov rax, QWORD PTR -8[rbp]
mov edx, 120
mov esi, 0
mov rdi, rax
call memset@PLT
mov eax, 0
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE267:
.size closeUnixFile, .-closeUnixFile
.type unixClose, @function
unixClose:
.LFB268:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 32
mov QWORD PTR -24[rbp], rdi
mov DWORD PTR -4[rbp], 0
mov rax, QWORD PTR -24[rbp]
mov QWORD PTR -16[rbp], rax
mov rax, QWORD PTR -16[rbp]
mov rdi, rax
call verifyDbFile
mov rax, QWORD PTR -24[rbp]
mov esi, 0
mov rdi, rax
call unixUnlock
call unixEnterMutex
mov rax, QWORD PTR -16[rbp]
mov rax, QWORD PTR 16[rax]
test rax, rax
je .L1661
mov rax, QWORD PTR -16[rbp]
mov rax, QWORD PTR 16[rax]
mov eax, DWORD PTR 40[rax]
test eax, eax
je .L1661
mov rax, QWORD PTR -16[rbp]
mov rdi, rax
call setPendingFd
.L1661:
mov rax, QWORD PTR -16[rbp]
mov rdi, rax
call releaseInodeInfo
mov rax, QWORD PTR -24[rbp]
mov rdi, rax
call closeUnixFile
mov DWORD PTR -4[rbp], eax
call unixLeaveMutex
mov eax, DWORD PTR -4[rbp]
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE268:
.size unixClose, .-unixClose
.type nolockCheckReservedLock, @function
nolockCheckReservedLock:
.LFB269:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
mov QWORD PTR -8[rbp], rdi
mov QWORD PTR -16[rbp], rsi
mov rax, QWORD PTR -16[rbp]
mov DWORD PTR [rax], 0
mov eax, 0
pop rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE269:
.size nolockCheckReservedLock, .-nolockCheckReservedLock
.type nolockLock, @function
nolockLock:
.LFB270:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
mov QWORD PTR -8[rbp], rdi
mov DWORD PTR -12[rbp], esi
mov eax, 0
pop rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE270:
.size nolockLock, .-nolockLock
.type nolockUnlock, @function
nolockUnlock:
.LFB271:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
mov QWORD PTR -8[rbp], rdi
mov DWORD PTR -12[rbp], esi
mov eax, 0
pop rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE271:
.size nolockUnlock, .-nolockUnlock
.type nolockClose, @function
nolockClose:
.LFB272:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 16
mov QWORD PTR -8[rbp], rdi
mov rax, QWORD PTR -8[rbp]
mov rdi, rax
call closeUnixFile
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE272:
.size nolockClose, .-nolockClose
.type dotlockCheckReservedLock, @function
dotlockCheckReservedLock:
.LFB273:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 32
mov QWORD PTR -24[rbp], rdi
mov QWORD PTR -32[rbp], rsi
mov DWORD PTR -4[rbp], 0
mov DWORD PTR -8[rbp], 0
mov rax, QWORD PTR -24[rbp]
mov QWORD PTR -16[rbp], rax
mov rax, QWORD PTR aSyscall[rip+56]
mov rdx, QWORD PTR -16[rbp]
mov rdx, QWORD PTR 40[rdx]
mov esi, 0
mov rdi, rdx
call rax
test eax, eax
sete al
movzx eax, al
mov DWORD PTR -8[rbp], eax
mov rax, QWORD PTR -32[rbp]
mov edx, DWORD PTR -8[rbp]
mov DWORD PTR [rax], edx
mov eax, DWORD PTR -4[rbp]
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE273:
.size dotlockCheckReservedLock, .-dotlockCheckReservedLock
.type dotlockLock, @function
dotlockLock:
.LFB274:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 48
mov QWORD PTR -40[rbp], rdi
mov DWORD PTR -44[rbp], esi
mov rax, QWORD PTR -40[rbp]
mov QWORD PTR -16[rbp], rax
mov rax, QWORD PTR -16[rbp]
mov rax, QWORD PTR 40[rax]
mov QWORD PTR -24[rbp], rax
mov DWORD PTR -4[rbp], 0
mov rax, QWORD PTR -16[rbp]
movzx eax, BYTE PTR 28[rax]
test al, al
je .L1674
mov eax, DWORD PTR -44[rbp]
mov edx, eax
mov rax, QWORD PTR -16[rbp]
mov BYTE PTR 28[rax], dl
mov rax, QWORD PTR -24[rbp]
mov esi, 0
mov rdi, rax
call utimes@PLT
mov eax, 0
jmp .L1675
.L1674:
mov rax, QWORD PTR aSyscall[rip+440]
mov rdx, QWORD PTR -24[rbp]
mov esi, 511
mov rdi, rdx
call rax
mov DWORD PTR -4[rbp], eax
cmp DWORD PTR -4[rbp], 0
jns .L1676
call __errno_location@PLT
mov eax, DWORD PTR [rax]
mov DWORD PTR -28[rbp], eax
cmp DWORD PTR -28[rbp], 17
jne .L1677
mov DWORD PTR -4[rbp], 5
jmp .L1678
.L1677:
mov eax, DWORD PTR -28[rbp]
mov esi, 3850
mov edi, eax
call sqliteErrorFromPosixError
mov DWORD PTR -4[rbp], eax
cmp DWORD PTR -4[rbp], 5
je .L1678
mov edx, DWORD PTR -28[rbp]
mov rax, QWORD PTR -16[rbp]
mov esi, edx
mov rdi, rax
call storeLastErrno
.L1678:
mov eax, DWORD PTR -4[rbp]
jmp .L1675
.L1676:
mov eax, DWORD PTR -44[rbp]
mov edx, eax
mov rax, QWORD PTR -16[rbp]
mov BYTE PTR 28[rax], dl
mov eax, DWORD PTR -4[rbp]
.L1675:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE274:
.size dotlockLock, .-dotlockLock
.type dotlockUnlock, @function
dotlockUnlock:
.LFB275:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 48
mov QWORD PTR -40[rbp], rdi
mov DWORD PTR -44[rbp], esi
mov rax, QWORD PTR -40[rbp]
mov QWORD PTR -16[rbp], rax
mov rax, QWORD PTR -16[rbp]
mov rax, QWORD PTR 40[rax]
mov QWORD PTR -24[rbp], rax
mov rax, QWORD PTR -16[rbp]
movzx eax, BYTE PTR 28[rax]
movzx eax, al
cmp eax, DWORD PTR -44[rbp]
jne .L1680
mov eax, 0
jmp .L1681
.L1680:
cmp DWORD PTR -44[rbp], 1
jne .L1682
mov rax, QWORD PTR -16[rbp]
mov BYTE PTR 28[rax], 1
mov eax, 0
jmp .L1681
.L1682:
mov rax, QWORD PTR aSyscall[rip+464]
mov rdx, QWORD PTR -24[rbp]
mov rdi, rdx
call rax
mov DWORD PTR -4[rbp], eax
cmp DWORD PTR -4[rbp], 0
jns .L1683
call __errno_location@PLT
mov eax, DWORD PTR [rax]
mov DWORD PTR -28[rbp], eax
cmp DWORD PTR -28[rbp], 2
jne .L1684
mov DWORD PTR -4[rbp], 0
jmp .L1685
.L1684:
mov DWORD PTR -4[rbp], 2058
mov edx, DWORD PTR -28[rbp]
mov rax, QWORD PTR -16[rbp]
mov esi, edx
mov rdi, rax
call storeLastErrno
.L1685:
mov eax, DWORD PTR -4[rbp]
jmp .L1681
.L1683:
mov rax, QWORD PTR -16[rbp]
mov BYTE PTR 28[rax], 0
mov eax, 0
.L1681:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE275:
.size dotlockUnlock, .-dotlockUnlock
.type dotlockClose, @function
dotlockClose:
.LFB276:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 32
mov QWORD PTR -24[rbp], rdi
mov rax, QWORD PTR -24[rbp]
mov QWORD PTR -8[rbp], rax
mov rax, QWORD PTR -24[rbp]
mov esi, 0
mov rdi, rax
call dotlockUnlock
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR 40[rax]
mov rdi, rax
call sqlite3_free
mov rax, QWORD PTR -24[rbp]
mov rdi, rax
call closeUnixFile
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE276:
.size dotlockClose, .-dotlockClose
.type seekAndRead, @function
seekAndRead:
.LFB277:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 48
mov QWORD PTR -24[rbp], rdi
mov QWORD PTR -32[rbp], rsi
mov QWORD PTR -40[rbp], rdx
mov DWORD PTR -44[rbp], ecx
mov DWORD PTR -8[rbp], 0
.L1696:
mov rax, QWORD PTR -24[rbp]
mov eax, DWORD PTR 24[rax]
mov rcx, QWORD PTR -32[rbp]
mov edx, 0
mov rsi, rcx
mov edi, eax
call lseek64@PLT
mov QWORD PTR -16[rbp], rax
cmp QWORD PTR -16[rbp], 0
jns .L1689
call __errno_location@PLT
mov edx, DWORD PTR [rax]
mov rax, QWORD PTR -24[rbp]
mov esi, edx
mov rdi, rax
call storeLastErrno
mov eax, -1
jmp .L1690
.L1689:
mov rax, QWORD PTR aSyscall[rip+200]
mov edx, DWORD PTR -44[rbp]
movsx rdx, edx
mov rcx, QWORD PTR -24[rbp]
mov ecx, DWORD PTR 24[rcx]
mov rsi, QWORD PTR -40[rbp]
mov edi, ecx
call rax
mov DWORD PTR -4[rbp], eax
mov eax, DWORD PTR -4[rbp]
cmp eax, DWORD PTR -44[rbp]
je .L1697
cmp DWORD PTR -4[rbp], 0
jns .L1693
call __errno_location@PLT
mov eax, DWORD PTR [rax]
cmp eax, 4
jne .L1694
mov DWORD PTR -4[rbp], 1
jmp .L1695
.L1694:
mov DWORD PTR -8[rbp], 0
call __errno_location@PLT
mov edx, DWORD PTR [rax]
mov rax, QWORD PTR -24[rbp]
mov esi, edx
mov rdi, rax
call storeLastErrno
jmp .L1692
.L1693:
cmp DWORD PTR -4[rbp], 0
jle .L1695
mov eax, DWORD PTR -4[rbp]
sub DWORD PTR -44[rbp], eax
mov eax, DWORD PTR -4[rbp]
cdqe
add QWORD PTR -32[rbp], rax
mov eax, DWORD PTR -4[rbp]
add DWORD PTR -8[rbp], eax
mov eax, DWORD PTR -4[rbp]
cdqe
add QWORD PTR -40[rbp], rax
.L1695:
cmp DWORD PTR -4[rbp], 0
jg .L1696
jmp .L1692
.L1697:
nop
.L1692:
mov edx, DWORD PTR -4[rbp]
mov eax, DWORD PTR -8[rbp]
add eax, edx
.L1690:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE277:
.size seekAndRead, .-seekAndRead
.type unixRead, @function
unixRead:
.LFB278:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 48
mov QWORD PTR -24[rbp], rdi
mov QWORD PTR -32[rbp], rsi
mov DWORD PTR -36[rbp], edx
mov QWORD PTR -48[rbp], rcx
mov rax, QWORD PTR -24[rbp]
mov QWORD PTR -8[rbp], rax
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR 80[rax]
cmp rax, QWORD PTR -48[rbp]
jle .L1699
mov eax, DWORD PTR -36[rbp]
movsx rdx, eax
mov rax, QWORD PTR -48[rbp]
add rdx, rax
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR 80[rax]
cmp rdx, rax
jg .L1700
mov eax, DWORD PTR -36[rbp]
movsx rdx, eax
mov rax, QWORD PTR -8[rbp]
mov rcx, QWORD PTR 104[rax]
mov rax, QWORD PTR -48[rbp]
add rcx, rax
mov rax, QWORD PTR -32[rbp]
mov rsi, rcx
mov rdi, rax
call memcpy@PLT
mov eax, 0
jmp .L1701
.L1700:
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR 80[rax]
mov edx, eax
mov rax, QWORD PTR -48[rbp]
sub edx, eax
mov eax, edx
mov DWORD PTR -12[rbp], eax
mov eax, DWORD PTR -12[rbp]
movsx rdx, eax
mov rax, QWORD PTR -8[rbp]
mov rcx, QWORD PTR 104[rax]
mov rax, QWORD PTR -48[rbp]
add rcx, rax
mov rax, QWORD PTR -32[rbp]
mov rsi, rcx
mov rdi, rax
call memcpy@PLT
mov eax, DWORD PTR -12[rbp]
cdqe
add QWORD PTR -32[rbp], rax
mov eax, DWORD PTR -12[rbp]
sub DWORD PTR -36[rbp], eax
mov eax, DWORD PTR -12[rbp]
cdqe
add QWORD PTR -48[rbp], rax
.L1699:
mov ecx, DWORD PTR -36[rbp]
mov rdx, QWORD PTR -32[rbp]
mov rsi, QWORD PTR -48[rbp]
mov rax, QWORD PTR -8[rbp]
mov rdi, rax
call seekAndRead
mov DWORD PTR -16[rbp], eax
mov eax, DWORD PTR -16[rbp]
cmp eax, DWORD PTR -36[rbp]
jne .L1702
mov eax, 0
jmp .L1701
.L1702:
cmp DWORD PTR -16[rbp], 0
jns .L1703
mov eax, 266
jmp .L1701
.L1703:
mov rax, QWORD PTR -8[rbp]
mov esi, 0
mov rdi, rax
call storeLastErrno
mov eax, DWORD PTR -36[rbp]
sub eax, DWORD PTR -16[rbp]
cdqe
mov edx, DWORD PTR -16[rbp]
movsx rcx, edx
mov rdx, QWORD PTR -32[rbp]
add rcx, rdx
mov rdx, rax
mov esi, 0
mov rdi, rcx
call memset@PLT
mov eax, 522
.L1701:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE278:
.size unixRead, .-unixRead
.type seekAndWriteFd, @function
seekAndWriteFd:
.LFB279:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 48
mov DWORD PTR -20[rbp], edi
mov QWORD PTR -32[rbp], rsi
mov QWORD PTR -40[rbp], rdx
mov DWORD PTR -24[rbp], ecx
mov QWORD PTR -48[rbp], r8
mov DWORD PTR -4[rbp], 0
and DWORD PTR -24[rbp], 131071
.L1707:
mov rcx, QWORD PTR -32[rbp]
mov eax, DWORD PTR -20[rbp]
mov edx, 0
mov rsi, rcx
mov edi, eax
call lseek64@PLT
mov QWORD PTR -16[rbp], rax
cmp QWORD PTR -16[rbp], 0
jns .L1705
mov DWORD PTR -4[rbp], -1
jmp .L1706
.L1705:
mov rax, QWORD PTR aSyscall[rip+272]
mov edx, DWORD PTR -24[rbp]
movsx rdx, edx
mov rsi, QWORD PTR -40[rbp]
mov ecx, DWORD PTR -20[rbp]
mov edi, ecx
call rax
mov DWORD PTR -4[rbp], eax
cmp DWORD PTR -4[rbp], 0
jns .L1706
call __errno_location@PLT
mov eax, DWORD PTR [rax]
cmp eax, 4
je .L1707
.L1706:
cmp DWORD PTR -4[rbp], 0
jns .L1708
call __errno_location@PLT
mov edx, DWORD PTR [rax]
mov rax, QWORD PTR -48[rbp]
mov DWORD PTR [rax], edx
.L1708:
mov eax, DWORD PTR -4[rbp]
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE279:
.size seekAndWriteFd, .-seekAndWriteFd
.type seekAndWrite, @function
seekAndWrite:
.LFB280:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 32
mov QWORD PTR -8[rbp], rdi
mov QWORD PTR -16[rbp], rsi
mov QWORD PTR -24[rbp], rdx
mov DWORD PTR -28[rbp], ecx
mov rax, QWORD PTR -8[rbp]
lea rdi, 32[rax]
mov rax, QWORD PTR -8[rbp]
mov eax, DWORD PTR 24[rax]
mov ecx, DWORD PTR -28[rbp]
mov rdx, QWORD PTR -24[rbp]
mov rsi, QWORD PTR -16[rbp]
mov r8, rdi
mov edi, eax
call seekAndWriteFd
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE280:
.size seekAndWrite, .-seekAndWrite
.type unixWrite, @function
unixWrite:
.LFB281:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 48
mov QWORD PTR -24[rbp], rdi
mov QWORD PTR -32[rbp], rsi
mov DWORD PTR -36[rbp], edx
mov QWORD PTR -48[rbp], rcx
mov rax, QWORD PTR -24[rbp]
mov QWORD PTR -8[rbp], rax
mov DWORD PTR -12[rbp], 0
jmp .L1713
.L1715:
mov eax, DWORD PTR -12[rbp]
sub DWORD PTR -36[rbp], eax
mov eax, DWORD PTR -12[rbp]
cdqe
add QWORD PTR -48[rbp], rax
mov eax, DWORD PTR -12[rbp]
cdqe
add QWORD PTR -32[rbp], rax
.L1713:
mov ecx, DWORD PTR -36[rbp]
mov rdx, QWORD PTR -32[rbp]
mov rsi, QWORD PTR -48[rbp]
mov rax, QWORD PTR -8[rbp]
mov rdi, rax
call seekAndWrite
mov DWORD PTR -12[rbp], eax
mov eax, DWORD PTR -12[rbp]
cmp eax, DWORD PTR -36[rbp]
jge .L1714
cmp DWORD PTR -12[rbp], 0
jg .L1715
.L1714:
mov eax, DWORD PTR -36[rbp]
cmp eax, DWORD PTR -12[rbp]
jle .L1716
cmp DWORD PTR -12[rbp], 0
jns .L1717
mov rax, QWORD PTR -8[rbp]
mov eax, DWORD PTR 32[rax]
cmp eax, 28
je .L1717
mov eax, 778
jmp .L1718
.L1717:
mov rax, QWORD PTR -8[rbp]
mov esi, 0
mov rdi, rax
call storeLastErrno
mov eax, 13
jmp .L1718
.L1716:
mov eax, 0
.L1718:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE281:
.size unixWrite, .-unixWrite
.type full_fsync, @function
full_fsync:
.LFB282:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 32
mov DWORD PTR -20[rbp], edi
mov DWORD PTR -24[rbp], esi
mov DWORD PTR -28[rbp], edx
mov eax, DWORD PTR -20[rbp]
mov edi, eax
call fsync@PLT
mov DWORD PTR -4[rbp], eax
mov eax, DWORD PTR -4[rbp]
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE282:
.size full_fsync, .-full_fsync
.section .rodata
.LC113:
.string "%s"
.text
.type openDirectory, @function
openDirectory:
.LFB283:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 544
mov QWORD PTR -536[rbp], rdi
mov QWORD PTR -544[rbp], rsi
mov DWORD PTR -8[rbp], -1
mov rdx, QWORD PTR -536[rbp]
lea rax, -528[rbp]
mov rcx, rdx
lea rdx, .LC113[rip]
mov rsi, rax
mov edi, 512
mov eax, 0
call sqlite3_snprintf
lea rax, -528[rbp]
mov rdi, rax
call strlen@PLT
mov DWORD PTR -4[rbp], eax
jmp .L1722
.L1724:
sub DWORD PTR -4[rbp], 1
.L1722:
cmp DWORD PTR -4[rbp], 0
jle .L1723
mov eax, DWORD PTR -4[rbp]
cdqe
movzx eax, BYTE PTR -528[rbp+rax]
cmp al, 47
jne .L1724
.L1723:
cmp DWORD PTR -4[rbp], 0
jle .L1725
mov eax, DWORD PTR -4[rbp]
cdqe
mov BYTE PTR -528[rbp+rax], 0
jmp .L1726
.L1725:
movzx eax, BYTE PTR -528[rbp]
cmp al, 47
je .L1727
mov BYTE PTR -528[rbp], 46
.L1727:
mov BYTE PTR -527[rbp], 0
.L1726:
lea rax, -528[rbp]
mov edx, 0
mov esi, 0
mov rdi, rax
call robust_open
mov DWORD PTR -8[rbp], eax
mov rax, QWORD PTR -544[rbp]
mov edx, DWORD PTR -8[rbp]
mov DWORD PTR [rax], edx
cmp DWORD PTR -8[rbp], 0
js .L1728
mov eax, 0
jmp .L1730
.L1728:
mov edi, 34305
call sqlite3CantopenError
mov edi, eax
lea rax, -528[rbp]
mov ecx, 34305
mov rdx, rax
lea rsi, .LC94[rip]
call unixLogErrorAtLine
.L1730:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE283:
.size openDirectory, .-openDirectory
.section .rodata
.LC114:
.string "full_fsync"
.text
.type unixSync, @function
unixSync:
.LFB284:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 48
mov QWORD PTR -40[rbp], rdi
mov DWORD PTR -44[rbp], esi
mov rax, QWORD PTR -40[rbp]
mov QWORD PTR -16[rbp], rax
mov eax, DWORD PTR -44[rbp]
and eax, 16
mov DWORD PTR -20[rbp], eax
mov eax, DWORD PTR -44[rbp]
and eax, 15
cmp eax, 3
sete al
movzx eax, al
mov DWORD PTR -24[rbp], eax
mov rax, QWORD PTR -16[rbp]
mov eax, DWORD PTR 24[rax]
mov edx, DWORD PTR -20[rbp]
mov ecx, DWORD PTR -24[rbp]
mov esi, ecx
mov edi, eax
call full_fsync
mov DWORD PTR -4[rbp], eax
cmp DWORD PTR -4[rbp], 0
je .L1732
call __errno_location@PLT
mov edx, DWORD PTR [rax]
mov rax, QWORD PTR -16[rbp]
mov esi, edx
mov rdi, rax
call storeLastErrno
mov rax, QWORD PTR -16[rbp]
mov rax, QWORD PTR 56[rax]
mov ecx, 34346
mov rdx, rax
lea rsi, .LC114[rip]
mov edi, 1034
call unixLogErrorAtLine
jmp .L1733
.L1732:
mov rax, QWORD PTR -16[rbp]
movzx eax, WORD PTR 30[rax]
movzx eax, ax
and eax, 8
test eax, eax
je .L1734
mov rax, QWORD PTR aSyscall[rip+416]
mov rdx, QWORD PTR -16[rbp]
mov rdx, QWORD PTR 56[rdx]
lea rcx, -28[rbp]
mov rsi, rcx
mov rdi, rdx
call rax
mov DWORD PTR -4[rbp], eax
cmp DWORD PTR -4[rbp], 0
jne .L1735
mov eax, DWORD PTR -28[rbp]
mov edx, 0
mov esi, 0
mov edi, eax
call full_fsync
mov ecx, DWORD PTR -28[rbp]
mov rax, QWORD PTR -16[rbp]
mov edx, 34360
mov esi, ecx
mov rdi, rax
call robust_close
jmp .L1736
.L1735:
mov DWORD PTR -4[rbp], 0
.L1736:
mov rax, QWORD PTR -16[rbp]
movzx eax, WORD PTR 30[rax]
and eax, -9
mov edx, eax
mov rax, QWORD PTR -16[rbp]
mov WORD PTR 30[rax], dx
.L1734:
mov eax, DWORD PTR -4[rbp]
.L1733:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE284:
.size unixSync, .-unixSync
.type unixTruncate, @function
unixTruncate:
.LFB285:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 32
mov QWORD PTR -24[rbp], rdi
mov QWORD PTR -32[rbp], rsi
mov rax, QWORD PTR -24[rbp]
mov QWORD PTR -8[rbp], rax
mov rax, QWORD PTR -8[rbp]
mov eax, DWORD PTR 72[rax]
test eax, eax
jle .L1738
mov rax, QWORD PTR -8[rbp]
mov eax, DWORD PTR 72[rax]
movsx rdx, eax
mov rax, QWORD PTR -32[rbp]
add rax, rdx
lea rcx, -1[rax]
mov rax, QWORD PTR -8[rbp]
mov eax, DWORD PTR 72[rax]
movsx rsi, eax
mov rax, rcx
cqo
idiv rsi
mov rdx, rax
mov rax, QWORD PTR -8[rbp]
mov eax, DWORD PTR 72[rax]
cdqe
imul rax, rdx
mov QWORD PTR -32[rbp], rax
.L1738:
mov rax, QWORD PTR -8[rbp]
mov eax, DWORD PTR 24[rax]
mov rdx, QWORD PTR -32[rbp]
mov rsi, rdx
mov edi, eax
call robust_ftruncate
mov DWORD PTR -12[rbp], eax
cmp DWORD PTR -12[rbp], 0
je .L1739
call __errno_location@PLT
mov edx, DWORD PTR [rax]
mov rax, QWORD PTR -8[rbp]
mov esi, edx
mov rdi, rax
call storeLastErrno
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR 56[rax]
mov ecx, 34391
mov rdx, rax
lea rsi, .LC83[rip]
mov edi, 1546
call unixLogErrorAtLine
jmp .L1740
.L1739:
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR 80[rax]
cmp rax, QWORD PTR -32[rbp]
jle .L1741
mov rax, QWORD PTR -8[rbp]
mov rdx, QWORD PTR -32[rbp]
mov QWORD PTR 80[rax], rdx
.L1741:
mov eax, 0
.L1740:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE285:
.size unixTruncate, .-unixTruncate
.type unixFileSize, @function
unixFileSize:
.LFB286:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 176
mov QWORD PTR -168[rbp], rdi
mov QWORD PTR -176[rbp], rsi
mov rax, QWORD PTR aSyscall[rip+128]
mov rdx, QWORD PTR -168[rbp]
mov edx, DWORD PTR 24[rdx]
lea rcx, -160[rbp]
mov rsi, rcx
mov edi, edx
call rax
mov DWORD PTR -4[rbp], eax
cmp DWORD PTR -4[rbp], 0
je .L1743
call __errno_location@PLT
mov edx, DWORD PTR [rax]
mov rax, QWORD PTR -168[rbp]
mov esi, edx
mov rdi, rax
call storeLastErrno
mov eax, 1802
jmp .L1746
.L1743:
mov rdx, QWORD PTR -112[rbp]
mov rax, QWORD PTR -176[rbp]
mov QWORD PTR [rax], rdx
mov rax, QWORD PTR -176[rbp]
mov rax, QWORD PTR [rax]
cmp rax, 1
jne .L1745
mov rax, QWORD PTR -176[rbp]
mov QWORD PTR [rax], 0
.L1745:
mov eax, 0
.L1746:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE286:
.size unixFileSize, .-unixFileSize
.type fcntlSizeHint, @function
fcntlSizeHint:
.LFB287:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 192
mov QWORD PTR -184[rbp], rdi
mov QWORD PTR -192[rbp], rsi
mov rax, QWORD PTR -184[rbp]
mov eax, DWORD PTR 72[rax]
test eax, eax
jle .L1748
mov rax, QWORD PTR aSyscall[rip+128]
mov rdx, QWORD PTR -184[rbp]
mov edx, DWORD PTR 24[rdx]
lea rcx, -176[rbp]
mov rsi, rcx
mov edi, edx
call rax
test eax, eax
je .L1749
mov eax, 1802
jmp .L1756
.L1749:
mov rax, QWORD PTR -184[rbp]
mov eax, DWORD PTR 72[rax]
movsx rdx, eax
mov rax, QWORD PTR -192[rbp]
add rax, rdx
lea rcx, -1[rax]
mov rax, QWORD PTR -184[rbp]
mov eax, DWORD PTR 72[rax]
movsx rdi, eax
mov rax, rcx
cqo
idiv rdi
mov rdx, rax
mov rax, QWORD PTR -184[rbp]
mov eax, DWORD PTR 72[rax]
cdqe
imul rax, rdx
mov QWORD PTR -16[rbp], rax
mov rax, QWORD PTR -128[rbp]
cmp rax, QWORD PTR -16[rbp]
jge .L1748
mov rax, QWORD PTR -120[rbp]
mov DWORD PTR -20[rbp], eax
mov DWORD PTR -24[rbp], 0
mov rax, QWORD PTR -128[rbp]
mov edx, DWORD PTR -20[rbp]
movsx rcx, edx
cqo
idiv rcx
lea rdx, 1[rax]
mov eax, DWORD PTR -20[rbp]
cdqe
imul rax, rdx
sub rax, 1
mov QWORD PTR -8[rbp], rax
jmp .L1752
.L1755:
mov rax, QWORD PTR -8[rbp]
cmp rax, QWORD PTR -16[rbp]
jl .L1753
mov rax, QWORD PTR -16[rbp]
sub rax, 1
mov QWORD PTR -8[rbp], rax
.L1753:
mov rsi, QWORD PTR -8[rbp]
mov rax, QWORD PTR -184[rbp]
mov ecx, 1
lea rdx, .LC65[rip]
mov rdi, rax
call seekAndWrite
mov DWORD PTR -24[rbp], eax
cmp DWORD PTR -24[rbp], 1
je .L1754
mov eax, 778
jmp .L1756
.L1754:
mov eax, DWORD PTR -20[rbp]
cdqe
add QWORD PTR -8[rbp], rax
.L1752:
mov eax, DWORD PTR -20[rbp]
movsx rdx, eax
mov rax, QWORD PTR -16[rbp]
add rax, rdx
sub rax, 1
cmp rax, QWORD PTR -8[rbp]
jg .L1755
.L1748:
mov rax, QWORD PTR -184[rbp]
mov rax, QWORD PTR 96[rax]
test rax, rax
jle .L1757
mov rax, QWORD PTR -184[rbp]
mov rax, QWORD PTR 80[rax]
cmp rax, QWORD PTR -192[rbp]
jge .L1757
mov rax, QWORD PTR -184[rbp]
mov eax, DWORD PTR 72[rax]
test eax, eax
jg .L1758
mov rax, QWORD PTR -184[rbp]
mov eax, DWORD PTR 24[rax]
mov rdx, QWORD PTR -192[rbp]
mov rsi, rdx
mov edi, eax
call robust_ftruncate
test eax, eax
je .L1758
call __errno_location@PLT
mov edx, DWORD PTR [rax]
mov rax, QWORD PTR -184[rbp]
mov esi, edx
mov rdi, rax
call storeLastErrno
mov rax, QWORD PTR -184[rbp]
mov rax, QWORD PTR 56[rax]
mov ecx, 34512
mov rdx, rax
lea rsi, .LC83[rip]
mov edi, 1546
call unixLogErrorAtLine
jmp .L1756
.L1758:
mov rdx, QWORD PTR -192[rbp]
mov rax, QWORD PTR -184[rbp]
mov rsi, rdx
mov rdi, rax
call unixMapfile
mov DWORD PTR -28[rbp], eax
mov eax, DWORD PTR -28[rbp]
jmp .L1756
.L1757:
mov eax, 0
.L1756:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE287:
.size fcntlSizeHint, .-fcntlSizeHint
.type unixModeBit, @function
unixModeBit:
.LFB288:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
mov QWORD PTR -8[rbp], rdi
mov eax, esi
mov QWORD PTR -24[rbp], rdx
mov BYTE PTR -12[rbp], al
mov rax, QWORD PTR -24[rbp]
mov eax, DWORD PTR [rax]
test eax, eax
jns .L1760
mov rax, QWORD PTR -8[rbp]
movzx eax, WORD PTR 30[rax]
movzx edx, ax
movzx eax, BYTE PTR -12[rbp]
and eax, edx
test eax, eax
setne al
movzx edx, al
mov rax, QWORD PTR -24[rbp]
mov DWORD PTR [rax], edx
jmp .L1763
.L1760:
mov rax, QWORD PTR -24[rbp]
mov eax, DWORD PTR [rax]
test eax, eax
jne .L1762
mov rax, QWORD PTR -8[rbp]
movzx eax, WORD PTR 30[rax]
mov edx, eax
movzx eax, BYTE PTR -12[rbp]
not eax
and eax, edx
mov edx, eax
mov rax, QWORD PTR -8[rbp]
mov WORD PTR 30[rax], dx
jmp .L1763
.L1762:
mov rax, QWORD PTR -8[rbp]
movzx edx, WORD PTR 30[rax]
movzx eax, BYTE PTR -12[rbp]
or edx, eax
mov rax, QWORD PTR -8[rbp]
mov WORD PTR 30[rax], dx
.L1763:
nop
pop rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE288:
.size unixModeBit, .-unixModeBit
.type unixFileControl, @function
unixFileControl:
.LFB289:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 80
mov QWORD PTR -56[rbp], rdi
mov DWORD PTR -60[rbp], esi
mov QWORD PTR -72[rbp], rdx
mov rax, QWORD PTR -56[rbp]
mov QWORD PTR -24[rbp], rax
cmp DWORD PTR -60[rbp], 20
ja .L1765
mov eax, DWORD PTR -60[rbp]
lea rdx, 0[0+rax*4]
lea rax, .L1767[rip]
mov eax, DWORD PTR [rdx+rax]
movsx rdx, eax
lea rax, .L1767[rip]
add rax, rdx
jmp rax
.section .rodata
.align 4
.align 4
.L1767:
.long .L1765-.L1767
.long .L1766-.L1767
.long .L1765-.L1767
.long .L1765-.L1767
.long .L1768-.L1767
.long .L1769-.L1767
.long .L1770-.L1767
.long .L1765-.L1767
.long .L1765-.L1767
.long .L1765-.L1767
.long .L1771-.L1767
.long .L1765-.L1767
.long .L1772-.L1767
.long .L1773-.L1767
.long .L1765-.L1767
.long .L1765-.L1767
.long .L1774-.L1767
.long .L1765-.L1767
.long .L1775-.L1767
.long .L1765-.L1767
.long .L1776-.L1767
.text
.L1766:
mov rax, QWORD PTR -24[rbp]
movzx eax, BYTE PTR 28[rax]
movzx edx, al
mov rax, QWORD PTR -72[rbp]
mov DWORD PTR [rax], edx
mov eax, 0
jmp .L1777
.L1768:
mov rax, QWORD PTR -24[rbp]
mov edx, DWORD PTR 32[rax]
mov rax, QWORD PTR -72[rbp]
mov DWORD PTR [rax], edx
mov eax, 0
jmp .L1777
.L1770:
mov rax, QWORD PTR -72[rbp]
mov edx, DWORD PTR [rax]
mov rax, QWORD PTR -24[rbp]
mov DWORD PTR 72[rax], edx
mov eax, 0
jmp .L1777
.L1769:
mov rax, QWORD PTR -72[rbp]
mov rdx, QWORD PTR [rax]
mov rax, QWORD PTR -24[rbp]
mov rsi, rdx
mov rdi, rax
call fcntlSizeHint
mov DWORD PTR -28[rbp], eax
mov eax, DWORD PTR -28[rbp]
jmp .L1777
.L1771:
mov rdx, QWORD PTR -72[rbp]
mov rax, QWORD PTR -24[rbp]
mov esi, 4
mov rdi, rax
call unixModeBit
mov eax, 0
jmp .L1777
.L1773:
mov rdx, QWORD PTR -72[rbp]
mov rax, QWORD PTR -24[rbp]
mov esi, 16
mov rdi, rax
call unixModeBit
mov eax, 0
jmp .L1777
.L1772:
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 8[rax]
mov rax, QWORD PTR 24[rax]
mov rsi, rax
lea rdi, .LC113[rip]
mov eax, 0
call sqlite3_mprintf
mov rdx, rax
mov rax, QWORD PTR -72[rbp]
mov QWORD PTR [rax], rdx
mov eax, 0
jmp .L1777
.L1774:
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 8[rax]
mov eax, DWORD PTR 8[rax]
cdqe
mov rdi, rax
call sqlite3_malloc64
mov QWORD PTR -40[rbp], rax
cmp QWORD PTR -40[rbp], 0
je .L1778
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 8[rax]
mov eax, DWORD PTR 8[rax]
mov rdx, QWORD PTR -40[rbp]
mov rsi, rdx
mov edi, eax
call unixGetTempname
mov rax, QWORD PTR -72[rbp]
mov rdx, QWORD PTR -40[rbp]
mov QWORD PTR [rax], rdx
.L1778:
mov eax, 0
jmp .L1777
.L1776:
mov rax, QWORD PTR -24[rbp]
mov rdi, rax
call fileHasMoved
mov edx, eax
mov rax, QWORD PTR -72[rbp]
mov DWORD PTR [rax], edx
mov eax, 0
jmp .L1777
.L1775:
mov rax, QWORD PTR -72[rbp]
mov rax, QWORD PTR [rax]
mov QWORD PTR -8[rbp], rax
mov DWORD PTR -12[rbp], 0
mov rax, QWORD PTR sqlite3Config[rip+320]
cmp rax, QWORD PTR -8[rbp]
jge .L1781
mov rax, QWORD PTR sqlite3Config[rip+320]
mov QWORD PTR -8[rbp], rax
.L1781:
mov rax, QWORD PTR -24[rbp]
mov rdx, QWORD PTR 96[rax]
mov rax, QWORD PTR -72[rbp]
mov QWORD PTR [rax], rdx
cmp QWORD PTR -8[rbp], 0
js .L1780
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 96[rax]
cmp rax, QWORD PTR -8[rbp]
je .L1780
mov rax, QWORD PTR -24[rbp]
mov eax, DWORD PTR 76[rax]
test eax, eax
jne .L1780
mov rax, QWORD PTR -24[rbp]
mov rdx, QWORD PTR -8[rbp]
mov QWORD PTR 96[rax], rdx
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 80[rax]
test rax, rax
jle .L1780
mov rax, QWORD PTR -24[rbp]
mov rdi, rax
call unixUnmapfile
mov rax, QWORD PTR -24[rbp]
mov rsi, -1
mov rdi, rax
call unixMapfile
mov DWORD PTR -12[rbp], eax
.L1780:
mov eax, DWORD PTR -12[rbp]
jmp .L1777
.L1765:
mov eax, 12
.L1777:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE289:
.size unixFileControl, .-unixFileControl
.type setDeviceCharacteristics, @function
setDeviceCharacteristics:
.LFB290:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
mov QWORD PTR -8[rbp], rdi
mov rax, QWORD PTR -8[rbp]
mov eax, DWORD PTR 112[rax]
test eax, eax
jne .L1785
mov rax, QWORD PTR -8[rbp]
movzx eax, WORD PTR 30[rax]
movzx eax, ax
and eax, 16
test eax, eax
je .L1784
mov rax, QWORD PTR -8[rbp]
mov eax, DWORD PTR 116[rax]
or ah, 16
mov edx, eax
mov rax, QWORD PTR -8[rbp]
mov DWORD PTR 116[rax], edx
.L1784:
mov rax, QWORD PTR -8[rbp]
mov DWORD PTR 112[rax], 4096
.L1785:
nop
pop rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE290:
.size setDeviceCharacteristics, .-setDeviceCharacteristics
.type unixSectorSize, @function
unixSectorSize:
.LFB291:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 24
mov QWORD PTR -24[rbp], rdi
mov rax, QWORD PTR -24[rbp]
mov QWORD PTR -8[rbp], rax
mov rax, QWORD PTR -8[rbp]
mov rdi, rax
call setDeviceCharacteristics
mov rax, QWORD PTR -8[rbp]
mov eax, DWORD PTR 112[rax]
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE291:
.size unixSectorSize, .-unixSectorSize
.type unixDeviceCharacteristics, @function
unixDeviceCharacteristics:
.LFB292:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 24
mov QWORD PTR -24[rbp], rdi
mov rax, QWORD PTR -24[rbp]
mov QWORD PTR -8[rbp], rax
mov rax, QWORD PTR -8[rbp]
mov rdi, rax
call setDeviceCharacteristics
mov rax, QWORD PTR -8[rbp]
mov eax, DWORD PTR 116[rax]
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE292:
.size unixDeviceCharacteristics, .-unixDeviceCharacteristics
.type unixGetpagesize, @function
unixGetpagesize:
.LFB293:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
mov edi, 30
call sysconf@PLT
pop rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE293:
.size unixGetpagesize, .-unixGetpagesize
.type unixShmSystemLock, @function
unixShmSystemLock:
.LFB294:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 80
mov QWORD PTR -56[rbp], rdi
mov DWORD PTR -60[rbp], esi
mov DWORD PTR -64[rbp], edx
mov DWORD PTR -68[rbp], ecx
mov DWORD PTR -4[rbp], 0
mov rax, QWORD PTR -56[rbp]
mov rax, QWORD PTR 16[rax]
mov rax, QWORD PTR 32[rax]
mov QWORD PTR -16[rbp], rax
mov rax, QWORD PTR -16[rbp]
mov eax, DWORD PTR 24[rax]
test eax, eax
js .L1793
lea rax, -48[rbp]
mov edx, 32
mov esi, 0
mov rdi, rax
call memset@PLT
mov eax, DWORD PTR -60[rbp]
mov WORD PTR -48[rbp], ax
mov WORD PTR -46[rbp], 0
mov eax, DWORD PTR -64[rbp]
cdqe
mov QWORD PTR -40[rbp], rax
mov eax, DWORD PTR -68[rbp]
cdqe
mov QWORD PTR -32[rbp], rax
mov rcx, QWORD PTR aSyscall[rip+176]
mov rax, QWORD PTR -16[rbp]
mov eax, DWORD PTR 24[rax]
lea rdx, -48[rbp]
mov esi, 6
mov edi, eax
mov eax, 0
call rcx
mov DWORD PTR -4[rbp], eax
cmp DWORD PTR -4[rbp], -1
je .L1794
mov eax, 0
jmp .L1795
.L1794:
mov eax, 5
.L1795:
mov DWORD PTR -4[rbp], eax
.L1793:
mov eax, DWORD PTR -4[rbp]
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE294:
.size unixShmSystemLock, .-unixShmSystemLock
.type unixShmRegionPerMap, @function
unixShmRegionPerMap:
.LFB295:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 16
mov DWORD PTR -4[rbp], 32768
mov rax, QWORD PTR aSyscall[rip+608]
call rax
mov DWORD PTR -8[rbp], eax
mov eax, DWORD PTR -8[rbp]
cmp eax, DWORD PTR -4[rbp]
jge .L1798
mov eax, 1
jmp .L1799
.L1798:
mov eax, DWORD PTR -8[rbp]
cdq
idiv DWORD PTR -4[rbp]
.L1799:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE295:
.size unixShmRegionPerMap, .-unixShmRegionPerMap
.type unixShmPurge, @function
unixShmPurge:
.LFB296:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 48
mov QWORD PTR -40[rbp], rdi
mov rax, QWORD PTR -40[rbp]
mov rax, QWORD PTR 16[rax]
mov rax, QWORD PTR 32[rax]
mov QWORD PTR -16[rbp], rax
cmp QWORD PTR -16[rbp], 0
je .L1807
mov rax, QWORD PTR -16[rbp]
mov eax, DWORD PTR 48[rax]
test eax, eax
jne .L1807
call unixShmRegionPerMap
mov DWORD PTR -20[rbp], eax
mov rax, QWORD PTR -16[rbp]
mov rax, QWORD PTR 8[rax]
mov rdi, rax
call sqlite3_mutex_free
mov DWORD PTR -4[rbp], 0
jmp .L1802
.L1805:
mov rax, QWORD PTR -16[rbp]
mov eax, DWORD PTR 24[rax]
test eax, eax
js .L1803
mov rax, QWORD PTR aSyscall[rip+560]
mov rdx, QWORD PTR -16[rbp]
mov edx, DWORD PTR 28[rdx]
movsx rcx, edx
mov rdx, QWORD PTR -16[rbp]
mov rdx, QWORD PTR 40[rdx]
mov esi, DWORD PTR -4[rbp]
movsx rsi, esi
sal rsi, 3
add rdx, rsi
mov rdx, QWORD PTR [rdx]
mov rsi, rcx
mov rdi, rdx
call rax
jmp .L1804
.L1803:
mov rax, QWORD PTR -16[rbp]
mov rax, QWORD PTR 40[rax]
mov edx, DWORD PTR -4[rbp]
movsx rdx, edx
sal rdx, 3
add rax, rdx
mov rax, QWORD PTR [rax]
mov rdi, rax
call sqlite3_free
.L1804:
mov eax, DWORD PTR -20[rbp]
add DWORD PTR -4[rbp], eax
.L1802:
mov rax, QWORD PTR -16[rbp]
movzx eax, WORD PTR 32[rax]
movzx eax, ax
cmp eax, DWORD PTR -4[rbp]
jg .L1805
mov rax, QWORD PTR -16[rbp]
mov rax, QWORD PTR 40[rax]
mov rdi, rax
call sqlite3_free
mov rax, QWORD PTR -16[rbp]
mov eax, DWORD PTR 24[rax]
test eax, eax
js .L1806
mov rax, QWORD PTR -16[rbp]
mov ecx, DWORD PTR 24[rax]
mov rax, QWORD PTR -40[rbp]
mov edx, 35010
mov esi, ecx
mov rdi, rax
call robust_close
mov rax, QWORD PTR -16[rbp]
mov DWORD PTR 24[rax], -1
.L1806:
mov rax, QWORD PTR -16[rbp]
mov rax, QWORD PTR [rax]
mov QWORD PTR 32[rax], 0
mov rax, QWORD PTR -16[rbp]
mov rdi, rax
call sqlite3_free
.L1807:
nop
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE296:
.size unixShmPurge, .-unixShmPurge
.type unixLockSharedMemory, @function
unixLockSharedMemory:
.LFB297:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 64
mov QWORD PTR -56[rbp], rdi
mov QWORD PTR -64[rbp], rsi
mov DWORD PTR -4[rbp], 0
mov WORD PTR -46[rbp], 0
mov QWORD PTR -40[rbp], 128
mov QWORD PTR -32[rbp], 1
mov WORD PTR -48[rbp], 1
mov rcx, QWORD PTR aSyscall[rip+176]
mov rax, QWORD PTR -64[rbp]
mov eax, DWORD PTR 24[rax]
lea rdx, -48[rbp]
mov esi, 5
mov edi, eax
mov eax, 0
call rcx
test eax, eax
je .L1809
mov DWORD PTR -4[rbp], 3850
jmp .L1810
.L1809:
movzx eax, WORD PTR -48[rbp]
cmp ax, 2
jne .L1811
mov rax, QWORD PTR -64[rbp]
movzx eax, BYTE PTR 34[rax]
test al, al
je .L1812
mov rax, QWORD PTR -64[rbp]
mov BYTE PTR 35[rax], 1
mov DWORD PTR -4[rbp], 1288
jmp .L1810
.L1812:
mov rax, QWORD PTR -56[rbp]
mov ecx, 1
mov edx, 128
mov esi, 1
mov rdi, rax
call unixShmSystemLock
mov DWORD PTR -4[rbp], eax
cmp DWORD PTR -4[rbp], 0
jne .L1810
mov rax, QWORD PTR -64[rbp]
mov eax, DWORD PTR 24[rax]
mov esi, 0
mov edi, eax
call robust_ftruncate
test eax, eax
je .L1810
mov rax, QWORD PTR -64[rbp]
mov rax, QWORD PTR 16[rax]
mov ecx, 35062
mov rdx, rax
lea rsi, .LC83[rip]
mov edi, 4618
call unixLogErrorAtLine
mov DWORD PTR -4[rbp], eax
jmp .L1810
.L1811:
movzx eax, WORD PTR -48[rbp]
cmp ax, 1
jne .L1810
mov DWORD PTR -4[rbp], 5
.L1810:
cmp DWORD PTR -4[rbp], 0
jne .L1814
mov rax, QWORD PTR -56[rbp]
mov ecx, 1
mov edx, 128
mov esi, 0
mov rdi, rax
call unixShmSystemLock
mov DWORD PTR -4[rbp], eax
.L1814:
mov eax, DWORD PTR -4[rbp]
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE297:
.size unixLockSharedMemory, .-unixLockSharedMemory
.section .rodata
.LC115:
.string "%s-shm"
.LC116:
.string "readonly_shm"
.text
.type unixOpenSharedMemory, @function
unixOpenSharedMemory:
.LFB298:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 224
mov QWORD PTR -216[rbp], rdi
mov QWORD PTR -24[rbp], 0
mov DWORD PTR -12[rbp], 0
mov edi, 24
call sqlite3_malloc64
mov QWORD PTR -24[rbp], rax
cmp QWORD PTR -24[rbp], 0
jne .L1817
mov eax, 7
jmp .L1818
.L1817:
mov rax, QWORD PTR -24[rbp]
mov edx, 24
mov esi, 0
mov rdi, rax
call memset@PLT
call unixEnterMutex
mov rax, QWORD PTR -216[rbp]
mov rax, QWORD PTR 16[rax]
mov QWORD PTR -32[rbp], rax
mov rax, QWORD PTR -32[rbp]
mov rax, QWORD PTR 32[rax]
mov QWORD PTR -8[rbp], rax
cmp QWORD PTR -8[rbp], 0
jne .L1819
mov rax, QWORD PTR -216[rbp]
mov rax, QWORD PTR 56[rax]
mov QWORD PTR -40[rbp], rax
mov rax, QWORD PTR aSyscall[rip+128]
mov rdx, QWORD PTR -216[rbp]
mov edx, DWORD PTR 24[rdx]
lea rcx, -208[rbp]
mov rsi, rcx
mov edi, edx
call rax
test eax, eax
je .L1820
mov DWORD PTR -12[rbp], 1802
jmp .L1828
.L1820:
mov rax, QWORD PTR -40[rbp]
mov rdi, rax
call strlen@PLT
add eax, 6
mov DWORD PTR -44[rbp], eax
mov eax, DWORD PTR -44[rbp]
cdqe
add rax, 64
mov rdi, rax
call sqlite3_malloc64
mov QWORD PTR -8[rbp], rax
cmp QWORD PTR -8[rbp], 0
jne .L1822
mov DWORD PTR -12[rbp], 7
jmp .L1828
.L1822:
mov eax, DWORD PTR -44[rbp]
cdqe
lea rdx, 64[rax]
mov rax, QWORD PTR -8[rbp]
mov esi, 0
mov rdi, rax
call memset@PLT
mov rax, QWORD PTR -8[rbp]
lea rdx, 64[rax]
mov rax, QWORD PTR -8[rbp]
mov QWORD PTR 16[rax], rdx
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR 16[rax]
mov QWORD PTR -56[rbp], rax
mov rdx, QWORD PTR -40[rbp]
mov rsi, QWORD PTR -56[rbp]
mov eax, DWORD PTR -44[rbp]
mov rcx, rdx
lea rdx, .LC115[rip]
mov edi, eax
mov eax, 0
call sqlite3_snprintf
mov rax, QWORD PTR -8[rbp]
mov DWORD PTR 24[rax], -1
mov rax, QWORD PTR -216[rbp]
mov rax, QWORD PTR 16[rax]
mov rdx, QWORD PTR -8[rbp]
mov QWORD PTR 32[rax], rdx
mov rax, QWORD PTR -216[rbp]
mov rdx, QWORD PTR 16[rax]
mov rax, QWORD PTR -8[rbp]
mov QWORD PTR [rax], rdx
mov eax, DWORD PTR sqlite3Config[rip+4]
test eax, eax
je .L1823
mov edi, 0
call sqlite3_mutex_alloc
mov rdx, rax
mov rax, QWORD PTR -8[rbp]
mov QWORD PTR 8[rax], rdx
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR 8[rax]
test rax, rax
jne .L1823
mov DWORD PTR -12[rbp], 7
jmp .L1828
.L1823:
mov rax, QWORD PTR -32[rbp]
movzx eax, BYTE PTR 21[rax]
test al, al
jne .L1819
mov rax, QWORD PTR -216[rbp]
mov rax, QWORD PTR 56[rax]
mov edx, 0
lea rsi, .LC116[rip]
mov rdi, rax
call sqlite3_uri_boolean
test eax, eax
jne .L1825
mov eax, DWORD PTR -184[rbp]
and eax, 511
mov edx, eax
mov rax, QWORD PTR -56[rbp]
mov esi, 66
mov rdi, rax
call robust_open
mov edx, eax
mov rax, QWORD PTR -8[rbp]
mov DWORD PTR 24[rax], edx
.L1825:
mov rax, QWORD PTR -8[rbp]
mov eax, DWORD PTR 24[rax]
test eax, eax
jns .L1826
mov eax, DWORD PTR -184[rbp]
and eax, 511
mov edx, eax
mov rax, QWORD PTR -56[rbp]
mov esi, 0
mov rdi, rax
call robust_open
mov edx, eax
mov rax, QWORD PTR -8[rbp]
mov DWORD PTR 24[rax], edx
mov rax, QWORD PTR -8[rbp]
mov eax, DWORD PTR 24[rax]
test eax, eax
jns .L1827
mov edi, 35184
call sqlite3CantopenError
mov edi, eax
mov rax, QWORD PTR -56[rbp]
mov ecx, 35184
mov rdx, rax
lea rsi, .LC77[rip]
call unixLogErrorAtLine
mov DWORD PTR -12[rbp], eax
jmp .L1828
.L1827:
mov rax, QWORD PTR -8[rbp]
mov BYTE PTR 34[rax], 1
.L1826:
mov edx, DWORD PTR -176[rbp]
mov ecx, DWORD PTR -180[rbp]
mov rax, QWORD PTR -8[rbp]
mov eax, DWORD PTR 24[rax]
mov esi, ecx
mov edi, eax
call robustFchown
mov rdx, QWORD PTR -8[rbp]
mov rax, QWORD PTR -216[rbp]
mov rsi, rdx
mov rdi, rax
call unixLockSharedMemory
mov DWORD PTR -12[rbp], eax
cmp DWORD PTR -12[rbp], 0
je .L1819
cmp DWORD PTR -12[rbp], 1288
jne .L1829
.L1819:
mov rax, QWORD PTR -24[rbp]
mov rdx, QWORD PTR -8[rbp]
mov QWORD PTR [rax], rdx
mov rax, QWORD PTR -8[rbp]
mov eax, DWORD PTR 48[rax]
lea edx, 1[rax]
mov rax, QWORD PTR -8[rbp]
mov DWORD PTR 48[rax], edx
mov rax, QWORD PTR -216[rbp]
mov rdx, QWORD PTR -24[rbp]
mov QWORD PTR 64[rax], rdx
call unixLeaveMutex
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR 8[rax]
mov rdi, rax
call sqlite3_mutex_enter
mov rax, QWORD PTR -8[rbp]
mov rdx, QWORD PTR 56[rax]
mov rax, QWORD PTR -24[rbp]
mov QWORD PTR 8[rax], rdx
mov rax, QWORD PTR -8[rbp]
mov rdx, QWORD PTR -24[rbp]
mov QWORD PTR 56[rax], rdx
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR 8[rax]
mov rdi, rax
call sqlite3_mutex_leave
mov eax, DWORD PTR -12[rbp]
jmp .L1818
.L1829:
nop
.L1828:
mov rax, QWORD PTR -216[rbp]
mov rdi, rax
call unixShmPurge
mov rax, QWORD PTR -24[rbp]
mov rdi, rax
call sqlite3_free
call unixLeaveMutex
mov eax, DWORD PTR -12[rbp]
.L1818:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE298:
.size unixOpenSharedMemory, .-unixOpenSharedMemory
.type unixShmMap, @function
unixShmMap:
.LFB299:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 272
mov QWORD PTR -248[rbp], rdi
mov DWORD PTR -252[rbp], esi
mov DWORD PTR -256[rbp], edx
mov DWORD PTR -260[rbp], ecx
mov QWORD PTR -272[rbp], r8
mov rax, QWORD PTR -248[rbp]
mov QWORD PTR -32[rbp], rax
mov DWORD PTR -4[rbp], 0
call unixShmRegionPerMap
mov DWORD PTR -36[rbp], eax
mov rax, QWORD PTR -32[rbp]
mov rax, QWORD PTR 64[rax]
test rax, rax
jne .L1831
mov rax, QWORD PTR -32[rbp]
mov rdi, rax
call unixOpenSharedMemory
mov DWORD PTR -4[rbp], eax
cmp DWORD PTR -4[rbp], 0
je .L1831
mov eax, DWORD PTR -4[rbp]
jmp .L1832
.L1831:
mov rax, QWORD PTR -32[rbp]
mov rax, QWORD PTR 64[rax]
mov QWORD PTR -48[rbp], rax
mov rax, QWORD PTR -48[rbp]
mov rax, QWORD PTR [rax]
mov QWORD PTR -56[rbp], rax
mov rax, QWORD PTR -56[rbp]
mov rax, QWORD PTR 8[rax]
mov rdi, rax
call sqlite3_mutex_enter
mov rax, QWORD PTR -56[rbp]
movzx eax, BYTE PTR 35[rax]
test al, al
je .L1833
mov rdx, QWORD PTR -56[rbp]
mov rax, QWORD PTR -32[rbp]
mov rsi, rdx
mov rdi, rax
call unixLockSharedMemory
mov DWORD PTR -4[rbp], eax
cmp DWORD PTR -4[rbp], 0
jne .L1857
mov rax, QWORD PTR -56[rbp]
mov BYTE PTR 35[rax], 0
.L1833:
mov edx, DWORD PTR -252[rbp]
mov eax, DWORD PTR -36[rbp]
add eax, edx
cdq
idiv DWORD PTR -36[rbp]
imul eax, DWORD PTR -36[rbp]
mov DWORD PTR -60[rbp], eax
mov rax, QWORD PTR -56[rbp]
movzx eax, WORD PTR 32[rax]
movzx eax, ax
cmp eax, DWORD PTR -60[rbp]
jge .L1835
mov eax, DWORD PTR -60[rbp]
imul eax, DWORD PTR -256[rbp]
mov DWORD PTR -64[rbp], eax
mov rax, QWORD PTR -56[rbp]
mov edx, DWORD PTR -256[rbp]
mov DWORD PTR 28[rax], edx
mov rax, QWORD PTR -56[rbp]
mov eax, DWORD PTR 24[rax]
test eax, eax
js .L1836
mov rax, QWORD PTR aSyscall[rip+128]
mov rdx, QWORD PTR -56[rbp]
mov edx, DWORD PTR 24[rdx]
lea rcx, -240[rbp]
mov rsi, rcx
mov edi, edx
call rax
test eax, eax
je .L1837
mov DWORD PTR -4[rbp], 4874
jmp .L1835
.L1837:
mov rdx, QWORD PTR -192[rbp]
mov eax, DWORD PTR -64[rbp]
cdqe
cmp rdx, rax
jge .L1836
cmp DWORD PTR -260[rbp], 0
je .L1858
mov rax, QWORD PTR -192[rbp]
mov edx, DWORD PTR pgsz.12380[rip]
movsx rsi, edx
cqo
idiv rsi
mov DWORD PTR -8[rbp], eax
jmp .L1840
.L1843:
mov DWORD PTR -88[rbp], 0
mov eax, DWORD PTR -8[rbp]
lea edx, 1[rax]
mov eax, DWORD PTR pgsz.12380[rip]
imul eax, edx
sub eax, 1
movsx rsi, eax
mov rax, QWORD PTR -56[rbp]
mov eax, DWORD PTR 24[rax]
lea rdx, -88[rbp]
mov r8, rdx
mov ecx, 1
lea rdx, .LC65[rip]
mov edi, eax
call seekAndWriteFd
cmp eax, 1
je .L1841
mov rax, QWORD PTR -56[rbp]
mov rax, QWORD PTR 16[rax]
mov QWORD PTR -72[rbp], rax
mov rax, QWORD PTR -72[rbp]
mov ecx, 35328
mov rdx, rax
lea rsi, .LC88[rip]
mov edi, 4874
call unixLogErrorAtLine
mov DWORD PTR -4[rbp], eax
nop
jmp .L1835
.L1841:
add DWORD PTR -8[rbp], 1
.L1840:
mov esi, DWORD PTR pgsz.12380[rip]
mov eax, DWORD PTR -64[rbp]
cdq
idiv esi
cmp eax, DWORD PTR -8[rbp]
jg .L1843
.L1836:
mov eax, DWORD PTR -60[rbp]
sal eax, 3
mov edx, eax
mov rax, QWORD PTR -56[rbp]
mov rax, QWORD PTR 40[rax]
mov esi, edx
mov rdi, rax
call sqlite3_realloc
mov QWORD PTR -80[rbp], rax
cmp QWORD PTR -80[rbp], 0
jne .L1844
mov DWORD PTR -4[rbp], 3082
jmp .L1835
.L1844:
mov rax, QWORD PTR -56[rbp]
mov rdx, QWORD PTR -80[rbp]
mov QWORD PTR 40[rax], rdx
jmp .L1845
.L1853:
mov eax, DWORD PTR -256[rbp]
imul eax, DWORD PTR -36[rbp]
mov DWORD PTR -84[rbp], eax
mov rax, QWORD PTR -56[rbp]
mov eax, DWORD PTR 24[rax]
test eax, eax
js .L1846
mov rax, QWORD PTR aSyscall[rip+536]
mov edx, DWORD PTR -256[rbp]
movsx rcx, edx
mov rdx, QWORD PTR -56[rbp]
movzx edx, WORD PTR 32[rdx]
movzx edx, dx
imul rcx, rdx
mov rdi, rcx
mov rdx, QWORD PTR -56[rbp]
mov ecx, DWORD PTR 24[rdx]
mov rdx, QWORD PTR -56[rbp]
movzx edx, BYTE PTR 34[rdx]
test dl, dl
je .L1847
mov r10d, 1
jmp .L1848
.L1847:
mov r10d, 3
.L1848:
mov edx, DWORD PTR -84[rbp]
movsx rsi, edx
mov r9, rdi
mov r8d, ecx
mov ecx, 1
mov edx, r10d
mov edi, 0
call rax
mov QWORD PTR -24[rbp], rax
cmp QWORD PTR -24[rbp], -1
jne .L1849
mov rax, QWORD PTR -56[rbp]
mov rax, QWORD PTR 16[rax]
mov ecx, 35355
mov rdx, rax
lea rsi, .LC99[rip]
mov edi, 5386
call unixLogErrorAtLine
mov DWORD PTR -4[rbp], eax
jmp .L1835
.L1846:
mov eax, DWORD PTR -256[rbp]
cdqe
mov rdi, rax
call sqlite3_malloc64
mov QWORD PTR -24[rbp], rax
cmp QWORD PTR -24[rbp], 0
jne .L1850
mov DWORD PTR -4[rbp], 7
jmp .L1835
.L1850:
mov eax, DWORD PTR -256[rbp]
movsx rdx, eax
mov rax, QWORD PTR -24[rbp]
mov esi, 0
mov rdi, rax
call memset@PLT
.L1849:
mov DWORD PTR -12[rbp], 0
jmp .L1851
.L1852:
mov rax, QWORD PTR -56[rbp]
mov rdx, QWORD PTR 40[rax]
mov rax, QWORD PTR -56[rbp]
movzx eax, WORD PTR 32[rax]
movzx ecx, ax
mov eax, DWORD PTR -12[rbp]
add eax, ecx
cdqe
sal rax, 3
add rdx, rax
mov eax, DWORD PTR -256[rbp]
imul eax, DWORD PTR -12[rbp]
movsx rcx, eax
mov rax, QWORD PTR -24[rbp]
add rax, rcx
mov QWORD PTR [rdx], rax
add DWORD PTR -12[rbp], 1
.L1851:
mov eax, DWORD PTR -12[rbp]
cmp eax, DWORD PTR -36[rbp]
jl .L1852
mov rax, QWORD PTR -56[rbp]
movzx eax, WORD PTR 32[rax]
mov edx, DWORD PTR -36[rbp]
add edx, eax
mov rax, QWORD PTR -56[rbp]
mov WORD PTR 32[rax], dx
.L1845:
mov rax, QWORD PTR -56[rbp]
movzx eax, WORD PTR 32[rax]
movzx eax, ax
cmp eax, DWORD PTR -60[rbp]
jl .L1853
jmp .L1835
.L1857:
nop
jmp .L1835
.L1858:
nop
.L1835:
mov rax, QWORD PTR -56[rbp]
movzx eax, WORD PTR 32[rax]
movzx eax, ax
cmp eax, DWORD PTR -252[rbp]
jle .L1854
mov rax, QWORD PTR -56[rbp]
mov rax, QWORD PTR 40[rax]
mov edx, DWORD PTR -252[rbp]
movsx rdx, edx
sal rdx, 3
add rax, rdx
mov rdx, QWORD PTR [rax]
mov rax, QWORD PTR -272[rbp]
mov QWORD PTR [rax], rdx
jmp .L1855
.L1854:
mov rax, QWORD PTR -272[rbp]
mov QWORD PTR [rax], 0
.L1855:
mov rax, QWORD PTR -56[rbp]
movzx eax, BYTE PTR 34[rax]
test al, al
je .L1856
cmp DWORD PTR -4[rbp], 0
jne .L1856
mov DWORD PTR -4[rbp], 8
.L1856:
mov rax, QWORD PTR -56[rbp]
mov rax, QWORD PTR 8[rax]
mov rdi, rax
call sqlite3_mutex_leave
mov eax, DWORD PTR -4[rbp]
.L1832:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE299:
.size unixShmMap, .-unixShmMap
.type unixShmLock, @function
unixShmLock:
.LFB300:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 80
mov QWORD PTR -56[rbp], rdi
mov DWORD PTR -60[rbp], esi
mov DWORD PTR -64[rbp], edx
mov DWORD PTR -68[rbp], ecx
mov rax, QWORD PTR -56[rbp]
mov QWORD PTR -24[rbp], rax
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 64[rax]
mov QWORD PTR -32[rbp], rax
mov rax, QWORD PTR -32[rbp]
mov rax, QWORD PTR [rax]
mov QWORD PTR -40[rbp], rax
mov DWORD PTR -12[rbp], 0
mov edx, DWORD PTR -60[rbp]
mov eax, DWORD PTR -64[rbp]
add eax, edx
mov edx, 1
mov ecx, eax
sal edx, cl
mov eax, edx
mov edx, eax
mov eax, DWORD PTR -60[rbp]
mov esi, 1
mov ecx, eax
sal esi, cl
mov eax, esi
sub edx, eax
mov eax, edx
mov WORD PTR -42[rbp], ax
mov rax, QWORD PTR -40[rbp]
mov rax, QWORD PTR 8[rax]
mov rdi, rax
call sqlite3_mutex_enter
mov eax, DWORD PTR -68[rbp]
and eax, 1
test eax, eax
je .L1860
mov WORD PTR -14[rbp], 0
mov rax, QWORD PTR -40[rbp]
mov rax, QWORD PTR 56[rax]
mov QWORD PTR -8[rbp], rax
jmp .L1861
.L1864:
mov rax, QWORD PTR -8[rbp]
cmp rax, QWORD PTR -32[rbp]
je .L1883
mov rax, QWORD PTR -8[rbp]
movzx eax, WORD PTR 18[rax]
or WORD PTR -14[rbp], ax
jmp .L1863
.L1883:
nop
.L1863:
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR 8[rax]
mov QWORD PTR -8[rbp], rax
.L1861:
cmp QWORD PTR -8[rbp], 0
jne .L1864
movzx eax, WORD PTR -42[rbp]
and ax, WORD PTR -14[rbp]
test ax, ax
jne .L1865
mov eax, DWORD PTR -60[rbp]
lea esi, 120[rax]
mov edx, DWORD PTR -64[rbp]
mov rax, QWORD PTR -24[rbp]
mov ecx, edx
mov edx, esi
mov esi, 2
mov rdi, rax
call unixShmSystemLock
mov DWORD PTR -12[rbp], eax
jmp .L1866
.L1865:
mov DWORD PTR -12[rbp], 0
.L1866:
cmp DWORD PTR -12[rbp], 0
jne .L1868
mov rax, QWORD PTR -32[rbp]
movzx eax, WORD PTR 20[rax]
mov edx, eax
movzx eax, WORD PTR -42[rbp]
not eax
and eax, edx
mov edx, eax
mov rax, QWORD PTR -32[rbp]
mov WORD PTR 20[rax], dx
mov rax, QWORD PTR -32[rbp]
movzx eax, WORD PTR 18[rax]
mov edx, eax
movzx eax, WORD PTR -42[rbp]
not eax
and eax, edx
mov edx, eax
mov rax, QWORD PTR -32[rbp]
mov WORD PTR 18[rax], dx
jmp .L1868
.L1860:
mov eax, DWORD PTR -68[rbp]
and eax, 4
test eax, eax
je .L1869
mov WORD PTR -16[rbp], 0
mov rax, QWORD PTR -40[rbp]
mov rax, QWORD PTR 56[rax]
mov QWORD PTR -8[rbp], rax
jmp .L1870
.L1873:
mov rax, QWORD PTR -8[rbp]
movzx eax, WORD PTR 20[rax]
and ax, WORD PTR -42[rbp]
test ax, ax
je .L1871
mov DWORD PTR -12[rbp], 5
jmp .L1872
.L1871:
mov rax, QWORD PTR -8[rbp]
movzx eax, WORD PTR 18[rax]
or WORD PTR -16[rbp], ax
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR 8[rax]
mov QWORD PTR -8[rbp], rax
.L1870:
cmp QWORD PTR -8[rbp], 0
jne .L1873
.L1872:
cmp DWORD PTR -12[rbp], 0
jne .L1874
movzx eax, WORD PTR -16[rbp]
and ax, WORD PTR -42[rbp]
test ax, ax
jne .L1875
mov eax, DWORD PTR -60[rbp]
lea esi, 120[rax]
mov edx, DWORD PTR -64[rbp]
mov rax, QWORD PTR -24[rbp]
mov ecx, edx
mov edx, esi
mov esi, 0
mov rdi, rax
call unixShmSystemLock
mov DWORD PTR -12[rbp], eax
jmp .L1874
.L1875:
mov DWORD PTR -12[rbp], 0
.L1874:
cmp DWORD PTR -12[rbp], 0
jne .L1868
mov rax, QWORD PTR -32[rbp]
movzx eax, WORD PTR 18[rax]
or ax, WORD PTR -42[rbp]
mov edx, eax
mov rax, QWORD PTR -32[rbp]
mov WORD PTR 18[rax], dx
jmp .L1868
.L1869:
mov rax, QWORD PTR -40[rbp]
mov rax, QWORD PTR 56[rax]
mov QWORD PTR -8[rbp], rax
jmp .L1877
.L1881:
mov rax, QWORD PTR -8[rbp]
movzx eax, WORD PTR 20[rax]
and ax, WORD PTR -42[rbp]
test ax, ax
jne .L1878
mov rax, QWORD PTR -8[rbp]
movzx eax, WORD PTR 18[rax]
and ax, WORD PTR -42[rbp]
test ax, ax
je .L1879
.L1878:
mov DWORD PTR -12[rbp], 5
jmp .L1880
.L1879:
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR 8[rax]
mov QWORD PTR -8[rbp], rax
.L1877:
cmp QWORD PTR -8[rbp], 0
jne .L1881
.L1880:
cmp DWORD PTR -12[rbp], 0
jne .L1868
mov eax, DWORD PTR -60[rbp]
lea esi, 120[rax]
mov edx, DWORD PTR -64[rbp]
mov rax, QWORD PTR -24[rbp]
mov ecx, edx
mov edx, esi
mov esi, 1
mov rdi, rax
call unixShmSystemLock
mov DWORD PTR -12[rbp], eax
cmp DWORD PTR -12[rbp], 0
jne .L1868
mov rax, QWORD PTR -32[rbp]
movzx eax, WORD PTR 20[rax]
or ax, WORD PTR -42[rbp]
mov edx, eax
mov rax, QWORD PTR -32[rbp]
mov WORD PTR 20[rax], dx
.L1868:
mov rax, QWORD PTR -40[rbp]
mov rax, QWORD PTR 8[rax]
mov rdi, rax
call sqlite3_mutex_leave
mov eax, DWORD PTR -12[rbp]
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE300:
.size unixShmLock, .-unixShmLock
.type unixShmBarrier, @function
unixShmBarrier:
.LFB301:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 16
mov QWORD PTR -8[rbp], rdi
call sqlite3MemoryBarrier
call unixEnterMutex
call unixLeaveMutex
nop
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE301:
.size unixShmBarrier, .-unixShmBarrier
.type unixShmUnmap, @function
unixShmUnmap:
.LFB302:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 48
mov QWORD PTR -40[rbp], rdi
mov DWORD PTR -44[rbp], esi
mov rax, QWORD PTR -40[rbp]
mov QWORD PTR -16[rbp], rax
mov rax, QWORD PTR -16[rbp]
mov rax, QWORD PTR 64[rax]
mov QWORD PTR -24[rbp], rax
cmp QWORD PTR -24[rbp], 0
jne .L1886
mov eax, 0
jmp .L1887
.L1886:
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR [rax]
mov QWORD PTR -32[rbp], rax
mov rax, QWORD PTR -32[rbp]
mov rax, QWORD PTR 8[rax]
mov rdi, rax
call sqlite3_mutex_enter
mov rax, QWORD PTR -32[rbp]
add rax, 56
mov QWORD PTR -8[rbp], rax
jmp .L1888
.L1889:
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR [rax]
add rax, 8
mov QWORD PTR -8[rbp], rax
.L1888:
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR [rax]
cmp rax, QWORD PTR -24[rbp]
jne .L1889
mov rax, QWORD PTR -24[rbp]
mov rdx, QWORD PTR 8[rax]
mov rax, QWORD PTR -8[rbp]
mov QWORD PTR [rax], rdx
mov rax, QWORD PTR -24[rbp]
mov rdi, rax
call sqlite3_free
mov rax, QWORD PTR -16[rbp]
mov QWORD PTR 64[rax], 0
mov rax, QWORD PTR -32[rbp]
mov rax, QWORD PTR 8[rax]
mov rdi, rax
call sqlite3_mutex_leave
call unixEnterMutex
mov rax, QWORD PTR -32[rbp]
mov eax, DWORD PTR 48[rax]
lea edx, -1[rax]
mov rax, QWORD PTR -32[rbp]
mov DWORD PTR 48[rax], edx
mov rax, QWORD PTR -32[rbp]
mov eax, DWORD PTR 48[rax]
test eax, eax
jne .L1890
cmp DWORD PTR -44[rbp], 0
je .L1891
mov rax, QWORD PTR -32[rbp]
mov eax, DWORD PTR 24[rax]
test eax, eax
js .L1891
mov rax, QWORD PTR aSyscall[rip+392]
mov rdx, QWORD PTR -32[rbp]
mov rdx, QWORD PTR 16[rdx]
mov rdi, rdx
call rax
.L1891:
mov rax, QWORD PTR -16[rbp]
mov rdi, rax
call unixShmPurge
.L1890:
call unixLeaveMutex
mov eax, 0
.L1887:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE302:
.size unixShmUnmap, .-unixShmUnmap
.type unixUnmapfile, @function
unixUnmapfile:
.LFB303:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 16
mov QWORD PTR -8[rbp], rdi
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR 104[rax]
test rax, rax
je .L1894
mov rax, QWORD PTR aSyscall[rip+560]
mov rdx, QWORD PTR -8[rbp]
mov rdx, QWORD PTR 88[rdx]
mov rcx, rdx
mov rdx, QWORD PTR -8[rbp]
mov rdx, QWORD PTR 104[rdx]
mov rsi, rcx
mov rdi, rdx
call rax
mov rax, QWORD PTR -8[rbp]
mov QWORD PTR 104[rax], 0
mov rax, QWORD PTR -8[rbp]
mov QWORD PTR 80[rax], 0
mov rax, QWORD PTR -8[rbp]
mov QWORD PTR 88[rax], 0
.L1894:
nop
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE303:
.size unixUnmapfile, .-unixUnmapfile
.type unixRemapfile, @function
unixRemapfile:
.LFB304:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 80
mov QWORD PTR -72[rbp], rdi
mov QWORD PTR -80[rbp], rsi
lea rax, .LC99[rip]
mov QWORD PTR -8[rbp], rax
mov rax, QWORD PTR -72[rbp]
mov eax, DWORD PTR 24[rax]
mov DWORD PTR -20[rbp], eax
mov rax, QWORD PTR -72[rbp]
mov rax, QWORD PTR 104[rax]
mov QWORD PTR -32[rbp], rax
mov rax, QWORD PTR -72[rbp]
mov rax, QWORD PTR 88[rax]
mov QWORD PTR -40[rbp], rax
mov QWORD PTR -16[rbp], 0
mov DWORD PTR -44[rbp], 1
cmp QWORD PTR -32[rbp], 0
je .L1896
mov rax, QWORD PTR -72[rbp]
mov rax, QWORD PTR 80[rax]
mov QWORD PTR -56[rbp], rax
mov rdx, QWORD PTR -56[rbp]
mov rax, QWORD PTR -32[rbp]
add rax, rdx
mov QWORD PTR -64[rbp], rax
mov rax, QWORD PTR -56[rbp]
cmp rax, QWORD PTR -40[rbp]
je .L1897
mov rax, QWORD PTR aSyscall[rip+560]
mov rdx, QWORD PTR -40[rbp]
sub rdx, QWORD PTR -56[rbp]
mov rcx, rdx
mov rdx, QWORD PTR -64[rbp]
mov rsi, rcx
mov rdi, rdx
call rax
.L1897:
mov r8, QWORD PTR aSyscall[rip+584]
mov rdx, QWORD PTR -80[rbp]
mov rsi, QWORD PTR -56[rbp]
mov rax, QWORD PTR -32[rbp]
mov ecx, 1
mov rdi, rax
mov eax, 0
call r8
mov QWORD PTR -16[rbp], rax
lea rax, .LC101[rip]
mov QWORD PTR -8[rbp], rax
cmp QWORD PTR -16[rbp], -1
je .L1898
cmp QWORD PTR -16[rbp], 0
jne .L1896
.L1898:
mov rax, QWORD PTR aSyscall[rip+560]
mov rcx, QWORD PTR -56[rbp]
mov rdx, QWORD PTR -32[rbp]
mov rsi, rcx
mov rdi, rdx
call rax
.L1896:
cmp QWORD PTR -16[rbp], 0
jne .L1899
mov rax, QWORD PTR aSyscall[rip+536]
mov rsi, QWORD PTR -80[rbp]
mov ecx, DWORD PTR -20[rbp]
mov edx, DWORD PTR -44[rbp]
mov r9d, 0
mov r8d, ecx
mov ecx, 1
mov edi, 0
call rax
mov QWORD PTR -16[rbp], rax
.L1899:
cmp QWORD PTR -16[rbp], -1
jne .L1900
mov QWORD PTR -16[rbp], 0
mov QWORD PTR -80[rbp], 0
mov rax, QWORD PTR -72[rbp]
mov rdx, QWORD PTR 56[rax]
mov rax, QWORD PTR -8[rbp]
mov ecx, 35667
mov rsi, rax
mov edi, 0
call unixLogErrorAtLine
mov rax, QWORD PTR -72[rbp]
mov QWORD PTR 96[rax], 0
.L1900:
mov rax, QWORD PTR -72[rbp]
mov rdx, QWORD PTR -16[rbp]
mov QWORD PTR 104[rax], rdx
mov rax, QWORD PTR -72[rbp]
mov rdx, QWORD PTR -80[rbp]
mov QWORD PTR 88[rax], rdx
mov rax, QWORD PTR -72[rbp]
mov rdx, QWORD PTR 88[rax]
mov rax, QWORD PTR -72[rbp]
mov QWORD PTR 80[rax], rdx
nop
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE304:
.size unixRemapfile, .-unixRemapfile
.type unixMapfile, @function
unixMapfile:
.LFB305:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 160
mov QWORD PTR -152[rbp], rdi
mov QWORD PTR -160[rbp], rsi
mov rax, QWORD PTR -152[rbp]
mov eax, DWORD PTR 76[rax]
test eax, eax
jle .L1902
mov eax, 0
jmp .L1903
.L1902:
cmp QWORD PTR -160[rbp], 0
jns .L1904
mov rax, QWORD PTR aSyscall[rip+128]
mov rdx, QWORD PTR -152[rbp]
mov edx, DWORD PTR 24[rdx]
lea rcx, -144[rbp]
mov rsi, rcx
mov edi, edx
call rax
test eax, eax
je .L1905
mov eax, 1802
jmp .L1903
.L1905:
mov rax, QWORD PTR -96[rbp]
mov QWORD PTR -160[rbp], rax
.L1904:
mov rax, QWORD PTR -152[rbp]
mov rax, QWORD PTR 96[rax]
cmp rax, QWORD PTR -160[rbp]
jge .L1906
mov rax, QWORD PTR -152[rbp]
mov rax, QWORD PTR 96[rax]
mov QWORD PTR -160[rbp], rax
.L1906:
mov rax, QWORD PTR -152[rbp]
mov rax, QWORD PTR 80[rax]
cmp rax, QWORD PTR -160[rbp]
je .L1907
mov rdx, QWORD PTR -160[rbp]
mov rax, QWORD PTR -152[rbp]
mov rsi, rdx
mov rdi, rax
call unixRemapfile
.L1907:
mov eax, 0
.L1903:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE305:
.size unixMapfile, .-unixMapfile
.type unixFetch, @function
unixFetch:
.LFB306:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 48
mov QWORD PTR -24[rbp], rdi
mov QWORD PTR -32[rbp], rsi
mov DWORD PTR -36[rbp], edx
mov QWORD PTR -48[rbp], rcx
mov rax, QWORD PTR -24[rbp]
mov QWORD PTR -8[rbp], rax
mov rax, QWORD PTR -48[rbp]
mov QWORD PTR [rax], 0
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR 96[rax]
test rax, rax
jle .L1909
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR 104[rax]
test rax, rax
jne .L1910
mov rax, QWORD PTR -8[rbp]
mov rsi, -1
mov rdi, rax
call unixMapfile
mov DWORD PTR -12[rbp], eax
cmp DWORD PTR -12[rbp], 0
je .L1910
mov eax, DWORD PTR -12[rbp]
jmp .L1911
.L1910:
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR 80[rax]
mov edx, DWORD PTR -36[rbp]
movsx rcx, edx
mov rdx, QWORD PTR -32[rbp]
add rdx, rcx
cmp rax, rdx
jl .L1909
mov rax, QWORD PTR -8[rbp]
mov rdx, QWORD PTR 104[rax]
mov rax, QWORD PTR -32[rbp]
add rdx, rax
mov rax, QWORD PTR -48[rbp]
mov QWORD PTR [rax], rdx
mov rax, QWORD PTR -8[rbp]
mov eax, DWORD PTR 76[rax]
lea edx, 1[rax]
mov rax, QWORD PTR -8[rbp]
mov DWORD PTR 76[rax], edx
.L1909:
mov eax, 0
.L1911:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE306:
.size unixFetch, .-unixFetch
.type unixUnfetch, @function
unixUnfetch:
.LFB307:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 48
mov QWORD PTR -24[rbp], rdi
mov QWORD PTR -32[rbp], rsi
mov QWORD PTR -40[rbp], rdx
mov rax, QWORD PTR -24[rbp]
mov QWORD PTR -8[rbp], rax
cmp QWORD PTR -40[rbp], 0
je .L1913
mov rax, QWORD PTR -8[rbp]
mov eax, DWORD PTR 76[rax]
lea edx, -1[rax]
mov rax, QWORD PTR -8[rbp]
mov DWORD PTR 76[rax], edx
jmp .L1914
.L1913:
mov rax, QWORD PTR -8[rbp]
mov rdi, rax
call unixUnmapfile
.L1914:
mov eax, 0
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE307:
.size unixUnfetch, .-unixUnfetch
.section .data.rel.ro.local
.align 32
.type posixIoMethods, @object
.size posixIoMethods, 152
posixIoMethods:
.long 3
.zero 4
.quad unixClose
.quad unixRead
.quad unixWrite
.quad unixTruncate
.quad unixSync
.quad unixFileSize
.quad unixLock
.quad unixUnlock
.quad unixCheckReservedLock
.quad unixFileControl
.quad unixSectorSize
.quad unixDeviceCharacteristics
.quad unixShmMap
.quad unixShmLock
.quad unixShmBarrier
.quad unixShmUnmap
.quad unixFetch
.quad unixUnfetch
.text
.type posixIoFinderImpl, @function
posixIoFinderImpl:
.LFB308:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
mov QWORD PTR -8[rbp], rdi
mov QWORD PTR -16[rbp], rsi
lea rax, posixIoMethods[rip]
pop rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE308:
.size posixIoFinderImpl, .-posixIoFinderImpl
.section .data.rel.ro.local
.align 8
.type posixIoFinder, @object
.size posixIoFinder, 8
posixIoFinder:
.quad posixIoFinderImpl
.align 32
.type nolockIoMethods, @object
.size nolockIoMethods, 152
nolockIoMethods:
.long 3
.zero 4
.quad nolockClose
.quad unixRead
.quad unixWrite
.quad unixTruncate
.quad unixSync
.quad unixFileSize
.quad nolockLock
.quad nolockUnlock
.quad nolockCheckReservedLock
.quad unixFileControl
.quad unixSectorSize
.quad unixDeviceCharacteristics
.quad 0
.quad unixShmLock
.quad unixShmBarrier
.quad unixShmUnmap
.quad unixFetch
.quad unixUnfetch
.text
.type nolockIoFinderImpl, @function
nolockIoFinderImpl:
.LFB309:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
mov QWORD PTR -8[rbp], rdi
mov QWORD PTR -16[rbp], rsi
lea rax, nolockIoMethods[rip]
pop rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE309:
.size nolockIoFinderImpl, .-nolockIoFinderImpl
.section .data.rel.ro.local
.align 8
.type nolockIoFinder, @object
.size nolockIoFinder, 8
nolockIoFinder:
.quad nolockIoFinderImpl
.align 32
.type dotlockIoMethods, @object
.size dotlockIoMethods, 152
dotlockIoMethods:
.long 1
.zero 4
.quad dotlockClose
.quad unixRead
.quad unixWrite
.quad unixTruncate
.quad unixSync
.quad unixFileSize
.quad dotlockLock
.quad dotlockUnlock
.quad dotlockCheckReservedLock
.quad unixFileControl
.quad unixSectorSize
.quad unixDeviceCharacteristics
.quad 0
.quad unixShmLock
.quad unixShmBarrier
.quad unixShmUnmap
.quad unixFetch
.quad unixUnfetch
.text
.type dotlockIoFinderImpl, @function
dotlockIoFinderImpl:
.LFB310:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
mov QWORD PTR -8[rbp], rdi
mov QWORD PTR -16[rbp], rsi
lea rax, dotlockIoMethods[rip]
pop rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE310:
.size dotlockIoFinderImpl, .-dotlockIoFinderImpl
.section .data.rel.ro.local
.align 8
.type dotlockIoFinder, @object
.size dotlockIoFinder, 8
dotlockIoFinder:
.quad dotlockIoFinderImpl
.section .rodata
.LC117:
.string "psow"
.LC118:
.string "unix-excl"
.LC119:
.string "%s.lock"
.text
.type fillInUnixFile, @function
fillInUnixFile:
.LFB311:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 80
mov QWORD PTR -56[rbp], rdi
mov DWORD PTR -60[rbp], esi
mov QWORD PTR -72[rbp], rdx
mov QWORD PTR -80[rbp], rcx
mov DWORD PTR -64[rbp], r8d
mov rax, QWORD PTR -72[rbp]
mov QWORD PTR -24[rbp], rax
mov DWORD PTR -12[rbp], 0
mov rax, QWORD PTR -24[rbp]
mov edx, DWORD PTR -60[rbp]
mov DWORD PTR 24[rax], edx
mov rax, QWORD PTR -24[rbp]
mov rdx, QWORD PTR -56[rbp]
mov QWORD PTR 8[rax], rdx
mov rax, QWORD PTR -24[rbp]
mov rdx, QWORD PTR -80[rbp]
mov QWORD PTR 56[rax], rdx
mov eax, DWORD PTR -64[rbp]
movzx edx, al
mov rax, QWORD PTR -24[rbp]
mov WORD PTR 30[rax], dx
mov rdx, QWORD PTR sqlite3Config[rip+312]
mov rax, QWORD PTR -24[rbp]
mov QWORD PTR 96[rax], rdx
mov eax, DWORD PTR -64[rbp]
and eax, 64
test eax, eax
je .L1923
mov rax, QWORD PTR -80[rbp]
jmp .L1924
.L1923:
mov eax, 0
.L1924:
mov edx, 1
lea rsi, .LC117[rip]
mov rdi, rax
call sqlite3_uri_boolean
test eax, eax
je .L1925
mov rax, QWORD PTR -24[rbp]
movzx eax, WORD PTR 30[rax]
or eax, 16
mov edx, eax
mov rax, QWORD PTR -24[rbp]
mov WORD PTR 30[rax], dx
.L1925:
mov rax, QWORD PTR -56[rbp]
mov rax, QWORD PTR 24[rax]
lea rsi, .LC118[rip]
mov rdi, rax
call strcmp@PLT
test eax, eax
jne .L1926
mov rax, QWORD PTR -24[rbp]
movzx eax, WORD PTR 30[rax]
or eax, 1
mov edx, eax
mov rax, QWORD PTR -24[rbp]
mov WORD PTR 30[rax], dx
.L1926:
mov eax, DWORD PTR -64[rbp]
and eax, 128
test eax, eax
je .L1927
lea rax, nolockIoMethods[rip]
mov QWORD PTR -8[rbp], rax
jmp .L1928
.L1927:
mov rax, QWORD PTR -56[rbp]
mov rax, QWORD PTR 32[rax]
mov rax, QWORD PTR [rax]
mov rcx, QWORD PTR -24[rbp]
mov rdx, QWORD PTR -80[rbp]
mov rsi, rcx
mov rdi, rdx
call rax
mov QWORD PTR -8[rbp], rax
.L1928:
lea rax, posixIoMethods[rip]
cmp QWORD PTR -8[rbp], rax
jne .L1929
call unixEnterMutex
mov rax, QWORD PTR -24[rbp]
lea rdx, 16[rax]
mov rax, QWORD PTR -24[rbp]
mov rsi, rdx
mov rdi, rax
call findInodeInfo
mov DWORD PTR -12[rbp], eax
cmp DWORD PTR -12[rbp], 0
je .L1930
mov ecx, DWORD PTR -60[rbp]
mov rax, QWORD PTR -24[rbp]
mov edx, 36170
mov esi, ecx
mov rdi, rax
call robust_close
mov DWORD PTR -60[rbp], -1
.L1930:
call unixLeaveMutex
jmp .L1931
.L1929:
lea rax, dotlockIoMethods[rip]
cmp QWORD PTR -8[rbp], rax
jne .L1931
mov rax, QWORD PTR -80[rbp]
mov rdi, rax
call strlen@PLT
add eax, 6
mov DWORD PTR -28[rbp], eax
mov eax, DWORD PTR -28[rbp]
cdqe
mov rdi, rax
call sqlite3_malloc64
mov QWORD PTR -40[rbp], rax
cmp QWORD PTR -40[rbp], 0
jne .L1932
mov DWORD PTR -12[rbp], 7
jmp .L1933
.L1932:
mov rdx, QWORD PTR -80[rbp]
mov rsi, QWORD PTR -40[rbp]
mov eax, DWORD PTR -28[rbp]
mov rcx, rdx
lea rdx, .LC119[rip]
mov edi, eax
mov eax, 0
call sqlite3_snprintf
.L1933:
mov rax, QWORD PTR -24[rbp]
mov rdx, QWORD PTR -40[rbp]
mov QWORD PTR 40[rax], rdx
.L1931:
mov rax, QWORD PTR -24[rbp]
mov esi, 0
mov rdi, rax
call storeLastErrno
cmp DWORD PTR -12[rbp], 0
je .L1934
cmp DWORD PTR -60[rbp], 0
js .L1936
mov ecx, DWORD PTR -60[rbp]
mov rax, QWORD PTR -24[rbp]
mov edx, 36255
mov esi, ecx
mov rdi, rax
call robust_close
jmp .L1936
.L1934:
mov rax, QWORD PTR -24[rbp]
mov rdx, QWORD PTR -8[rbp]
mov QWORD PTR [rax], rdx
mov rax, QWORD PTR -24[rbp]
mov rdi, rax
call verifyDbFile
.L1936:
mov eax, DWORD PTR -12[rbp]
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE311:
.size fillInUnixFile, .-fillInUnixFile
.section .rodata
.LC120:
.string "SQLITE_TMPDIR"
.LC121:
.string "TMPDIR"
.text
.type unixTempFileDir, @function
unixTempFileDir:
.LFB312:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 160
mov DWORD PTR -4[rbp], 0
mov rax, QWORD PTR sqlite3_temp_directory[rip]
mov QWORD PTR -16[rbp], rax
mov rax, QWORD PTR azDirs.12535[rip]
test rax, rax
jne .L1939
lea rdi, .LC120[rip]
call getenv@PLT
mov QWORD PTR azDirs.12535[rip], rax
.L1939:
mov rax, QWORD PTR azDirs.12535[rip+8]
test rax, rax
jne .L1940
lea rdi, .LC121[rip]
call getenv@PLT
mov QWORD PTR azDirs.12535[rip+8], rax
.L1940:
cmp QWORD PTR -16[rbp], 0
je .L1941
mov rax, QWORD PTR aSyscall[rip+104]
lea rcx, -160[rbp]
mov rdx, QWORD PTR -16[rbp]
mov rsi, rcx
mov rdi, rdx
call rax
test eax, eax
jne .L1941
mov eax, DWORD PTR -136[rbp]
and eax, 61440
cmp eax, 16384
jne .L1941
mov rax, QWORD PTR aSyscall[rip+56]
mov rdx, QWORD PTR -16[rbp]
mov esi, 3
mov rdi, rdx
call rax
test eax, eax
jne .L1941
mov rax, QWORD PTR -16[rbp]
jmp .L1945
.L1941:
cmp DWORD PTR -4[rbp], 5
ja .L1947
mov eax, DWORD PTR -4[rbp]
lea edx, 1[rax]
mov DWORD PTR -4[rbp], edx
mov eax, eax
lea rdx, 0[0+rax*8]
lea rax, azDirs.12535[rip]
mov rax, QWORD PTR [rdx+rax]
mov QWORD PTR -16[rbp], rax
jmp .L1940
.L1947:
nop
mov eax, 0
.L1945:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE312:
.size unixTempFileDir, .-unixTempFileDir
.section .rodata
.LC122:
.string "%s/etilqs_%llx%c"
.text
.type unixGetTempname, @function
unixGetTempname:
.LFB313:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 48
mov DWORD PTR -36[rbp], edi
mov QWORD PTR -48[rbp], rsi
mov DWORD PTR -4[rbp], 0
mov rax, QWORD PTR -48[rbp]
mov BYTE PTR [rax], 0
call unixTempFileDir
mov QWORD PTR -16[rbp], rax
cmp QWORD PTR -16[rbp], 0
jne .L1949
mov eax, 6410
jmp .L1950
.L1949:
lea rax, -24[rbp]
mov rsi, rax
mov edi, 8
call sqlite3_randomness
mov eax, DWORD PTR -36[rbp]
cdqe
lea rdx, -2[rax]
mov rax, QWORD PTR -48[rbp]
add rax, rdx
mov BYTE PTR [rax], 0
mov rcx, QWORD PTR -24[rbp]
mov rdx, QWORD PTR -16[rbp]
mov rsi, QWORD PTR -48[rbp]
mov eax, DWORD PTR -36[rbp]
mov r9d, 0
mov r8, rcx
mov rcx, rdx
lea rdx, .LC122[rip]
mov edi, eax
mov eax, 0
call sqlite3_snprintf
mov eax, DWORD PTR -36[rbp]
cdqe
lea rdx, -2[rax]
mov rax, QWORD PTR -48[rbp]
add rax, rdx
movzx eax, BYTE PTR [rax]
test al, al
jne .L1951
mov eax, DWORD PTR -4[rbp]
lea edx, 1[rax]
mov DWORD PTR -4[rbp], edx
cmp eax, 10
jle .L1952
.L1951:
mov eax, 1
jmp .L1950
.L1952:
mov rax, QWORD PTR aSyscall[rip+56]
mov rdx, QWORD PTR -48[rbp]
mov esi, 0
mov rdi, rdx
call rax
test eax, eax
je .L1949
mov eax, 0
.L1950:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE313:
.size unixGetTempname, .-unixGetTempname
.type findReusableFd, @function
findReusableFd:
.LFB314:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 192
mov QWORD PTR -184[rbp], rdi
mov DWORD PTR -188[rbp], esi
mov QWORD PTR -8[rbp], 0
call unixEnterMutex
mov eax, DWORD PTR nUnusedFd[rip]
test eax, eax
je .L1954
mov rax, QWORD PTR aSyscall[rip+104]
lea rcx, -176[rbp]
mov rdx, QWORD PTR -184[rbp]
mov rsi, rcx
mov rdi, rdx
call rax
test eax, eax
jne .L1954
mov rax, QWORD PTR inodeList[rip]
mov QWORD PTR -16[rbp], rax
jmp .L1955
.L1957:
mov rax, QWORD PTR -16[rbp]
mov rax, QWORD PTR 56[rax]
mov QWORD PTR -16[rbp], rax
.L1955:
cmp QWORD PTR -16[rbp], 0
je .L1956
mov rax, QWORD PTR -16[rbp]
mov rdx, QWORD PTR [rax]
mov rax, QWORD PTR -176[rbp]
cmp rdx, rax
jne .L1957
mov rax, QWORD PTR -16[rbp]
mov rdx, QWORD PTR 8[rax]
mov rax, QWORD PTR -168[rbp]
cmp rdx, rax
jne .L1957
.L1956:
cmp QWORD PTR -16[rbp], 0
je .L1954
mov rax, QWORD PTR -16[rbp]
add rax, 48
mov QWORD PTR -24[rbp], rax
jmp .L1958
.L1960:
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR [rax]
add rax, 8
mov QWORD PTR -24[rbp], rax
.L1958:
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR [rax]
test rax, rax
je .L1959
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR [rax]
mov eax, DWORD PTR 4[rax]
cmp eax, DWORD PTR -188[rbp]
jne .L1960
.L1959:
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR [rax]
mov QWORD PTR -8[rbp], rax
cmp QWORD PTR -8[rbp], 0
je .L1954
mov eax, DWORD PTR nUnusedFd[rip]
sub eax, 1
mov DWORD PTR nUnusedFd[rip], eax
mov rax, QWORD PTR -8[rbp]
mov rdx, QWORD PTR 8[rax]
mov rax, QWORD PTR -24[rbp]
mov QWORD PTR [rax], rdx
.L1954:
call unixLeaveMutex
mov rax, QWORD PTR -8[rbp]
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE314:
.size findReusableFd, .-findReusableFd
.type getFileMode, @function
getFileMode:
.LFB315:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 192
mov QWORD PTR -168[rbp], rdi
mov QWORD PTR -176[rbp], rsi
mov QWORD PTR -184[rbp], rdx
mov QWORD PTR -192[rbp], rcx
mov DWORD PTR -4[rbp], 0
mov rax, QWORD PTR aSyscall[rip+104]
lea rcx, -160[rbp]
mov rdx, QWORD PTR -168[rbp]
mov rsi, rcx
mov rdi, rdx
call rax
test eax, eax
jne .L1963
mov eax, DWORD PTR -136[rbp]
and eax, 511
mov edx, eax
mov rax, QWORD PTR -176[rbp]
mov DWORD PTR [rax], edx
mov edx, DWORD PTR -132[rbp]
mov rax, QWORD PTR -184[rbp]
mov DWORD PTR [rax], edx
mov edx, DWORD PTR -128[rbp]
mov rax, QWORD PTR -192[rbp]
mov DWORD PTR [rax], edx
jmp .L1964
.L1963:
mov DWORD PTR -4[rbp], 1802
.L1964:
mov eax, DWORD PTR -4[rbp]
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE315:
.size getFileMode, .-getFileMode
.section .rodata
.LC123:
.string "modeof"
.text
.type findCreateFileMode, @function
findCreateFileMode:
.LFB316:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 592
mov QWORD PTR -552[rbp], rdi
mov DWORD PTR -556[rbp], esi
mov QWORD PTR -568[rbp], rdx
mov QWORD PTR -576[rbp], rcx
mov QWORD PTR -584[rbp], r8
mov DWORD PTR -4[rbp], 0
mov rax, QWORD PTR -568[rbp]
mov DWORD PTR [rax], 0
mov rax, QWORD PTR -576[rbp]
mov DWORD PTR [rax], 0
mov rax, QWORD PTR -584[rbp]
mov DWORD PTR [rax], 0
mov eax, DWORD PTR -556[rbp]
and eax, 526336
test eax, eax
je .L1967
mov rax, QWORD PTR -552[rbp]
mov rdi, rax
call sqlite3Strlen30
sub eax, 1
mov DWORD PTR -8[rbp], eax
jmp .L1968
.L1972:
cmp DWORD PTR -8[rbp], 0
je .L1969
mov eax, DWORD PTR -8[rbp]
movsx rdx, eax
mov rax, QWORD PTR -552[rbp]
add rax, rdx
movzx eax, BYTE PTR [rax]
cmp al, 46
jne .L1970
.L1969:
mov eax, 0
jmp .L1971
.L1970:
sub DWORD PTR -8[rbp], 1
.L1968:
mov eax, DWORD PTR -8[rbp]
movsx rdx, eax
mov rax, QWORD PTR -552[rbp]
add rax, rdx
movzx eax, BYTE PTR [rax]
cmp al, 45
jne .L1972
mov eax, DWORD PTR -8[rbp]
movsx rdx, eax
mov rcx, QWORD PTR -552[rbp]
lea rax, -544[rbp]
mov rsi, rcx
mov rdi, rax
call memcpy@PLT
mov eax, DWORD PTR -8[rbp]
cdqe
mov BYTE PTR -544[rbp+rax], 0
mov rcx, QWORD PTR -584[rbp]
mov rdx, QWORD PTR -576[rbp]
mov rsi, QWORD PTR -568[rbp]
lea rax, -544[rbp]
mov rdi, rax
call getFileMode
mov DWORD PTR -4[rbp], eax
jmp .L1973
.L1967:
mov eax, DWORD PTR -556[rbp]
and eax, 8
test eax, eax
je .L1974
mov rax, QWORD PTR -568[rbp]
mov DWORD PTR [rax], 384
jmp .L1973
.L1974:
mov eax, DWORD PTR -556[rbp]
and eax, 64
test eax, eax
je .L1973
mov rax, QWORD PTR -552[rbp]
lea rsi, .LC123[rip]
mov rdi, rax
call sqlite3_uri_parameter
mov QWORD PTR -16[rbp], rax
cmp QWORD PTR -16[rbp], 0
je .L1973
mov rcx, QWORD PTR -584[rbp]
mov rdx, QWORD PTR -576[rbp]
mov rsi, QWORD PTR -568[rbp]
mov rax, QWORD PTR -16[rbp]
mov rdi, rax
call getFileMode
mov DWORD PTR -4[rbp], eax
.L1973:
mov eax, DWORD PTR -4[rbp]
.L1971:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE316:
.size findCreateFileMode, .-findCreateFileMode
.type unixOpen, @function
unixOpen:
.LFB317:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 672
mov QWORD PTR -632[rbp], rdi
mov QWORD PTR -640[rbp], rsi
mov QWORD PTR -648[rbp], rdx
mov DWORD PTR -652[rbp], ecx
mov QWORD PTR -664[rbp], r8
mov rax, QWORD PTR -648[rbp]
mov QWORD PTR -48[rbp], rax
mov DWORD PTR -4[rbp], -1
mov DWORD PTR -8[rbp], 0
mov eax, DWORD PTR -652[rbp]
mov al, 0
mov DWORD PTR -52[rbp], eax
mov DWORD PTR -12[rbp], 0
mov DWORD PTR -16[rbp], 0
mov eax, DWORD PTR -652[rbp]
and eax, 16
mov DWORD PTR -56[rbp], eax
mov eax, DWORD PTR -652[rbp]
and eax, 8
mov DWORD PTR -60[rbp], eax
mov eax, DWORD PTR -652[rbp]
and eax, 4
mov DWORD PTR -64[rbp], eax
mov eax, DWORD PTR -652[rbp]
and eax, 1
mov DWORD PTR -20[rbp], eax
mov eax, DWORD PTR -652[rbp]
and eax, 2
mov DWORD PTR -68[rbp], eax
cmp DWORD PTR -64[rbp], 0
je .L1976
cmp DWORD PTR -52[rbp], 16384
je .L1977
cmp DWORD PTR -52[rbp], 2048
je .L1977
cmp DWORD PTR -52[rbp], 524288
jne .L1976
.L1977:
mov eax, 1
jmp .L1978
.L1976:
mov eax, 0
.L1978:
mov DWORD PTR -72[rbp], eax
mov rax, QWORD PTR -640[rbp]
mov QWORD PTR -32[rbp], rax
call getpid@PLT
mov edx, eax
mov eax, DWORD PTR randomnessPid[rip]
cmp edx, eax
je .L1979
call getpid@PLT
mov DWORD PTR randomnessPid[rip], eax
mov esi, 0
mov edi, 0
call sqlite3_randomness
.L1979:
mov rax, QWORD PTR -48[rbp]
mov edx, 120
mov esi, 0
mov rdi, rax
call memset@PLT
cmp DWORD PTR -52[rbp], 256
jne .L1980
mov edx, DWORD PTR -652[rbp]
mov rax, QWORD PTR -32[rbp]
mov esi, edx
mov rdi, rax
call findReusableFd
mov QWORD PTR -40[rbp], rax
cmp QWORD PTR -40[rbp], 0
je .L1981
mov rax, QWORD PTR -40[rbp]
mov eax, DWORD PTR [rax]
mov DWORD PTR -4[rbp], eax
jmp .L1982
.L1981:
mov edi, 16
call sqlite3_malloc64
mov QWORD PTR -40[rbp], rax
cmp QWORD PTR -40[rbp], 0
jne .L1982
mov eax, 7
jmp .L2008
.L1982:
mov rax, QWORD PTR -48[rbp]
mov rdx, QWORD PTR -40[rbp]
mov QWORD PTR 48[rax], rdx
jmp .L1984
.L1980:
cmp QWORD PTR -32[rbp], 0
jne .L1984
mov rax, QWORD PTR -632[rbp]
mov eax, DWORD PTR 8[rax]
lea rdx, -608[rbp]
mov rsi, rdx
mov edi, eax
call unixGetTempname
mov DWORD PTR -12[rbp], eax
cmp DWORD PTR -12[rbp], 0
je .L1985
mov eax, DWORD PTR -12[rbp]
jmp .L2008
.L1985:
lea rax, -608[rbp]
mov QWORD PTR -32[rbp], rax
.L1984:
cmp DWORD PTR -20[rbp], 0
cmp DWORD PTR -68[rbp], 0
je .L1987
or DWORD PTR -8[rbp], 2
.L1987:
cmp DWORD PTR -64[rbp], 0
je .L1988
or DWORD PTR -8[rbp], 64
.L1988:
cmp DWORD PTR -56[rbp], 0
je .L1989
or DWORD PTR -8[rbp], 131200
.L1989:
cmp DWORD PTR -4[rbp], 0
jns .L1990
lea rdi, -620[rbp]
lea rcx, -616[rbp]
lea rdx, -612[rbp]
mov esi, DWORD PTR -652[rbp]
mov rax, QWORD PTR -32[rbp]
mov r8, rdi
mov rdi, rax
call findCreateFileMode
mov DWORD PTR -12[rbp], eax
cmp DWORD PTR -12[rbp], 0
je .L1991
mov eax, DWORD PTR -12[rbp]
jmp .L2008
.L1991:
mov edx, DWORD PTR -612[rbp]
mov ecx, DWORD PTR -8[rbp]
mov rax, QWORD PTR -32[rbp]
mov esi, ecx
mov rdi, rax
call robust_open
mov DWORD PTR -4[rbp], eax
cmp DWORD PTR -4[rbp], 0
jns .L1992
cmp DWORD PTR -72[rbp], 0
je .L1993
call __errno_location@PLT
mov eax, DWORD PTR [rax]
cmp eax, 13
jne .L1993
mov rax, QWORD PTR aSyscall[rip+56]
mov rdx, QWORD PTR -32[rbp]
mov esi, 0
mov rdi, rdx
call rax
test eax, eax
je .L1993
mov DWORD PTR -12[rbp], 1544
jmp .L1992
.L1993:
call __errno_location@PLT
mov eax, DWORD PTR [rax]
cmp eax, 21
je .L1992
cmp DWORD PTR -68[rbp], 0
je .L1992
and DWORD PTR -652[rbp], -7
and DWORD PTR -8[rbp], -67
or DWORD PTR -652[rbp], 1
mov DWORD PTR -20[rbp], 1
mov edx, DWORD PTR -612[rbp]
mov ecx, DWORD PTR -8[rbp]
mov rax, QWORD PTR -32[rbp]
mov esi, ecx
mov rdi, rax
call robust_open
mov DWORD PTR -4[rbp], eax
.L1992:
cmp DWORD PTR -4[rbp], 0
jns .L1994
mov edi, 36667
call sqlite3CantopenError
mov edi, eax
mov rax, QWORD PTR -32[rbp]
mov ecx, 36667
mov rdx, rax
lea rsi, .LC77[rip]
call unixLogErrorAtLine
mov DWORD PTR -76[rbp], eax
cmp DWORD PTR -12[rbp], 0
jne .L2009
mov eax, DWORD PTR -76[rbp]
mov DWORD PTR -12[rbp], eax
nop
jmp .L2009
.L1994:
mov eax, DWORD PTR -652[rbp]
and eax, 526336
test eax, eax
je .L1990
mov edx, DWORD PTR -620[rbp]
mov ecx, DWORD PTR -616[rbp]
mov eax, DWORD PTR -4[rbp]
mov esi, ecx
mov edi, eax
call robustFchown
.L1990:
cmp QWORD PTR -664[rbp], 0
je .L1999
mov rax, QWORD PTR -664[rbp]
mov edx, DWORD PTR -652[rbp]
mov DWORD PTR [rax], edx
.L1999:
mov rax, QWORD PTR -48[rbp]
mov rax, QWORD PTR 48[rax]
test rax, rax
je .L2000
mov rax, QWORD PTR -48[rbp]
mov rax, QWORD PTR 48[rax]
mov edx, DWORD PTR -4[rbp]
mov DWORD PTR [rax], edx
mov rax, QWORD PTR -48[rbp]
mov rax, QWORD PTR 48[rax]
mov edx, DWORD PTR -652[rbp]
mov DWORD PTR 4[rax], edx
.L2000:
cmp DWORD PTR -60[rbp], 0
je .L2001
mov rax, QWORD PTR aSyscall[rip+392]
mov rdx, QWORD PTR -32[rbp]
mov rdi, rdx
call rax
.L2001:
cmp DWORD PTR -60[rbp], 0
je .L2002
or DWORD PTR -16[rbp], 32
.L2002:
cmp DWORD PTR -20[rbp], 0
je .L2003
or DWORD PTR -16[rbp], 2
.L2003:
cmp DWORD PTR -52[rbp], 256
setne al
movzx eax, al
mov DWORD PTR -80[rbp], eax
cmp DWORD PTR -80[rbp], 0
je .L2004
or DWORD PTR -16[rbp], 128
.L2004:
cmp DWORD PTR -72[rbp], 0
je .L2005
or DWORD PTR -16[rbp], 8
.L2005:
mov eax, DWORD PTR -652[rbp]
and eax, 64
test eax, eax
je .L2006
or DWORD PTR -16[rbp], 64
.L2006:
mov edi, DWORD PTR -16[rbp]
mov rcx, QWORD PTR -640[rbp]
mov rdx, QWORD PTR -648[rbp]
mov esi, DWORD PTR -4[rbp]
mov rax, QWORD PTR -632[rbp]
mov r8d, edi
mov rdi, rax
call fillInUnixFile
mov DWORD PTR -12[rbp], eax
jmp .L1998
.L2009:
nop
.L1998:
cmp DWORD PTR -12[rbp], 0
je .L2007
mov rax, QWORD PTR -48[rbp]
mov rax, QWORD PTR 48[rax]
mov rdi, rax
call sqlite3_free
.L2007:
mov eax, DWORD PTR -12[rbp]
.L2008:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE317:
.size unixOpen, .-unixOpen
.section .rodata
.LC124:
.string "fsync"
.text
.type unixDelete, @function
unixDelete:
.LFB318:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 48
mov QWORD PTR -24[rbp], rdi
mov QWORD PTR -32[rbp], rsi
mov DWORD PTR -36[rbp], edx
mov DWORD PTR -4[rbp], 0
mov rax, QWORD PTR aSyscall[rip+392]
mov rdx, QWORD PTR -32[rbp]
mov rdi, rdx
call rax
cmp eax, -1
jne .L2011
call __errno_location@PLT
mov eax, DWORD PTR [rax]
cmp eax, 2
jne .L2012
mov DWORD PTR -4[rbp], 5898
jmp .L2013
.L2012:
mov rax, QWORD PTR -32[rbp]
mov ecx, 36797
mov rdx, rax
lea rsi, .LC93[rip]
mov edi, 2570
call unixLogErrorAtLine
mov DWORD PTR -4[rbp], eax
.L2013:
mov eax, DWORD PTR -4[rbp]
jmp .L2014
.L2011:
mov eax, DWORD PTR -36[rbp]
and eax, 1
test eax, eax
je .L2015
mov rax, QWORD PTR aSyscall[rip+416]
lea rcx, -8[rbp]
mov rdx, QWORD PTR -32[rbp]
mov rsi, rcx
mov rdi, rdx
call rax
mov DWORD PTR -4[rbp], eax
cmp DWORD PTR -4[rbp], 0
jne .L2016
mov eax, DWORD PTR -8[rbp]
mov edx, 0
mov esi, 0
mov edi, eax
call full_fsync
test eax, eax
je .L2017
mov rax, QWORD PTR -32[rbp]
mov ecx, 36807
mov rdx, rax
lea rsi, .LC124[rip]
mov edi, 1290
call unixLogErrorAtLine
mov DWORD PTR -4[rbp], eax
.L2017:
mov eax, DWORD PTR -8[rbp]
mov edx, 36809
mov esi, eax
mov edi, 0
call robust_close
jmp .L2015
.L2016:
mov DWORD PTR -4[rbp], 0
.L2015:
mov eax, DWORD PTR -4[rbp]
.L2014:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE318:
.size unixDelete, .-unixDelete
.type unixAccess, @function
unixAccess:
.LFB319:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 176
mov QWORD PTR -152[rbp], rdi
mov QWORD PTR -160[rbp], rsi
mov DWORD PTR -164[rbp], edx
mov QWORD PTR -176[rbp], rcx
cmp DWORD PTR -164[rbp], 0
jne .L2020
mov rax, QWORD PTR aSyscall[rip+104]
lea rcx, -144[rbp]
mov rdx, QWORD PTR -160[rbp]
mov rsi, rcx
mov rdi, rdx
call rax
test eax, eax
jne .L2021
mov rax, QWORD PTR -96[rbp]
test rax, rax
jle .L2021
mov edx, 1
jmp .L2022
.L2021:
mov edx, 0
.L2022:
mov rax, QWORD PTR -176[rbp]
mov DWORD PTR [rax], edx
jmp .L2023
.L2020:
mov rax, QWORD PTR aSyscall[rip+56]
mov rdx, QWORD PTR -160[rbp]
mov esi, 6
mov rdi, rdx
call rax
test eax, eax
sete al
movzx edx, al
mov rax, QWORD PTR -176[rbp]
mov DWORD PTR [rax], edx
.L2023:
mov eax, 0
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE319:
.size unixAccess, .-unixAccess
.type mkFullPathname, @function
mkFullPathname:
.LFB320:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 48
mov QWORD PTR -24[rbp], rdi
mov QWORD PTR -32[rbp], rsi
mov DWORD PTR -36[rbp], edx
mov rax, QWORD PTR -24[rbp]
mov rdi, rax
call sqlite3Strlen30
mov DWORD PTR -8[rbp], eax
mov DWORD PTR -4[rbp], 0
mov rax, QWORD PTR -24[rbp]
movzx eax, BYTE PTR [rax]
cmp al, 47
je .L2026
mov rax, QWORD PTR aSyscall[rip+80]
mov edx, DWORD PTR -36[rbp]
sub edx, 2
movsx rcx, edx
mov rdx, QWORD PTR -32[rbp]
mov rsi, rcx
mov rdi, rdx
call rax
test rax, rax
jne .L2027
mov edi, 36864
call sqlite3CantopenError
mov edi, eax
mov rax, QWORD PTR -24[rbp]
mov ecx, 36864
mov rdx, rax
lea rsi, .LC80[rip]
call unixLogErrorAtLine
jmp .L2028
.L2027:
mov rax, QWORD PTR -32[rbp]
mov rdi, rax
call sqlite3Strlen30
mov DWORD PTR -4[rbp], eax
mov eax, DWORD PTR -4[rbp]
lea edx, 1[rax]
mov DWORD PTR -4[rbp], edx
movsx rdx, eax
mov rax, QWORD PTR -32[rbp]
add rax, rdx
mov BYTE PTR [rax], 47
.L2026:
mov edx, DWORD PTR -4[rbp]
mov eax, DWORD PTR -8[rbp]
add eax, edx
add eax, 1
cmp eax, DWORD PTR -36[rbp]
jle .L2029
mov eax, DWORD PTR -4[rbp]
movsx rdx, eax
mov rax, QWORD PTR -32[rbp]
add rax, rdx
mov BYTE PTR [rax], 0
mov edi, 36873
call sqlite3CantopenError
jmp .L2028
.L2029:
mov eax, DWORD PTR -4[rbp]
movsx rdx, eax
mov rax, QWORD PTR -32[rbp]
lea rsi, [rdx+rax]
mov eax, DWORD PTR -36[rbp]
sub eax, DWORD PTR -4[rbp]
mov rdx, QWORD PTR -24[rbp]
mov rcx, rdx
lea rdx, .LC113[rip]
mov edi, eax
mov eax, 0
call sqlite3_snprintf
mov eax, 0
.L2028:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE320:
.size mkFullPathname, .-mkFullPathname
.type unixFullPathname, @function
unixFullPathname:
.LFB321:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 224
mov QWORD PTR -200[rbp], rdi
mov QWORD PTR -208[rbp], rsi
mov DWORD PTR -212[rbp], edx
mov QWORD PTR -224[rbp], rcx
mov DWORD PTR -4[rbp], 0
mov DWORD PTR -12[rbp], 1
mov rax, QWORD PTR -208[rbp]
mov QWORD PTR -24[rbp], rax
mov QWORD PTR -32[rbp], 0
.L2048:
mov DWORD PTR -36[rbp], 0
mov rax, QWORD PTR aSyscall[rip+656]
lea rcx, -192[rbp]
mov rdx, QWORD PTR -24[rbp]
mov rsi, rcx
mov rdi, rdx
call rax
test eax, eax
je .L2031
call __errno_location@PLT
mov eax, DWORD PTR [rax]
cmp eax, 2
je .L2033
mov edi, 36921
call sqlite3CantopenError
mov edi, eax
mov rax, QWORD PTR -24[rbp]
mov ecx, 36921
mov rdx, rax
lea rsi, .LC104[rip]
call unixLogErrorAtLine
mov DWORD PTR -4[rbp], eax
jmp .L2033
.L2031:
mov eax, DWORD PTR -168[rbp]
and eax, 61440
cmp eax, 40960
sete al
movzx eax, al
mov DWORD PTR -36[rbp], eax
.L2033:
cmp DWORD PTR -36[rbp], 0
je .L2034
cmp QWORD PTR -32[rbp], 0
jne .L2035
mov eax, DWORD PTR -212[rbp]
mov edi, eax
call sqlite3_malloc
mov QWORD PTR -32[rbp], rax
cmp QWORD PTR -32[rbp], 0
jne .L2037
mov DWORD PTR -4[rbp], 7
jmp .L2037
.L2035:
add DWORD PTR -12[rbp], 1
cmp DWORD PTR -12[rbp], 100
jle .L2037
mov edi, 36932
call sqlite3CantopenError
mov DWORD PTR -4[rbp], eax
.L2037:
cmp DWORD PTR -4[rbp], 0
jne .L2038
mov rax, QWORD PTR aSyscall[rip+632]
mov edx, DWORD PTR -212[rbp]
sub edx, 1
movsx rdx, edx
mov rsi, QWORD PTR -32[rbp]
mov rcx, QWORD PTR -24[rbp]
mov rdi, rcx
call rax
mov DWORD PTR -8[rbp], eax
cmp DWORD PTR -8[rbp], 0
jns .L2039
mov edi, 36938
call sqlite3CantopenError
mov edi, eax
mov rax, QWORD PTR -24[rbp]
mov ecx, 36938
mov rdx, rax
lea rsi, .LC103[rip]
call unixLogErrorAtLine
mov DWORD PTR -4[rbp], eax
jmp .L2038
.L2039:
mov rax, QWORD PTR -32[rbp]
movzx eax, BYTE PTR [rax]
cmp al, 47
je .L2040
mov rax, QWORD PTR -24[rbp]
mov rdi, rax
call sqlite3Strlen30
mov DWORD PTR -40[rbp], eax
jmp .L2041
.L2043:
sub DWORD PTR -40[rbp], 1
.L2041:
cmp DWORD PTR -40[rbp], 0
jle .L2042
mov eax, DWORD PTR -40[rbp]
cdqe
lea rdx, -1[rax]
mov rax, QWORD PTR -24[rbp]
add rax, rdx
movzx eax, BYTE PTR [rax]
cmp al, 47
jne .L2043
.L2042:
mov edx, DWORD PTR -8[rbp]
mov eax, DWORD PTR -40[rbp]
add eax, edx
add eax, 1
cmp eax, DWORD PTR -212[rbp]
jle .L2044
mov edi, 36944
call sqlite3CantopenError
mov DWORD PTR -4[rbp], eax
jmp .L2040
.L2044:
mov eax, DWORD PTR -8[rbp]
add eax, 1
movsx rdx, eax
mov eax, DWORD PTR -40[rbp]
movsx rcx, eax
mov rax, QWORD PTR -32[rbp]
add rcx, rax
mov rax, QWORD PTR -32[rbp]
mov rsi, rax
mov rdi, rcx
call memmove@PLT
mov eax, DWORD PTR -40[rbp]
movsx rdx, eax
mov rcx, QWORD PTR -24[rbp]
mov rax, QWORD PTR -32[rbp]
mov rsi, rcx
mov rdi, rax
call memcpy@PLT
mov eax, DWORD PTR -40[rbp]
add DWORD PTR -8[rbp], eax
.L2040:
mov eax, DWORD PTR -8[rbp]
movsx rdx, eax
mov rax, QWORD PTR -32[rbp]
add rax, rdx
mov BYTE PTR [rax], 0
.L2038:
mov rax, QWORD PTR -32[rbp]
mov QWORD PTR -24[rbp], rax
.L2034:
cmp DWORD PTR -4[rbp], 0
jne .L2045
mov rax, QWORD PTR -24[rbp]
cmp rax, QWORD PTR -224[rbp]
je .L2045
mov edx, DWORD PTR -212[rbp]
mov rcx, QWORD PTR -224[rbp]
mov rax, QWORD PTR -24[rbp]
mov rsi, rcx
mov rdi, rax
call mkFullPathname
mov DWORD PTR -4[rbp], eax
.L2045:
cmp DWORD PTR -36[rbp], 0
je .L2050
mov rax, QWORD PTR -224[rbp]
mov QWORD PTR -24[rbp], rax
cmp DWORD PTR -4[rbp], 0
je .L2048
jmp .L2047
.L2050:
nop
.L2047:
mov rax, QWORD PTR -32[rbp]
mov rdi, rax
call sqlite3_free
mov eax, DWORD PTR -4[rbp]
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE321:
.size unixFullPathname, .-unixFullPathname
.type unixDlOpen, @function
unixDlOpen:
.LFB322:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 16
mov QWORD PTR -8[rbp], rdi
mov QWORD PTR -16[rbp], rsi
mov rax, QWORD PTR -16[rbp]
mov esi, 258
mov rdi, rax
call dlopen@PLT
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE322:
.size unixDlOpen, .-unixDlOpen
.type unixDlError, @function
unixDlError:
.LFB323:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 48
mov QWORD PTR -24[rbp], rdi
mov DWORD PTR -28[rbp], esi
mov QWORD PTR -40[rbp], rdx
call unixEnterMutex
call dlerror@PLT
mov QWORD PTR -8[rbp], rax
cmp QWORD PTR -8[rbp], 0
je .L2054
mov rdx, QWORD PTR -8[rbp]
mov rsi, QWORD PTR -40[rbp]
mov eax, DWORD PTR -28[rbp]
mov rcx, rdx
lea rdx, .LC113[rip]
mov edi, eax
mov eax, 0
call sqlite3_snprintf
.L2054:
call unixLeaveMutex
nop
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE323:
.size unixDlError, .-unixDlError
.type unixDlSym, @function
unixDlSym:
.LFB324:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 48
mov QWORD PTR -24[rbp], rdi
mov QWORD PTR -32[rbp], rsi
mov QWORD PTR -40[rbp], rdx
mov rax, QWORD PTR dlsym@GOTPCREL[rip]
mov QWORD PTR -8[rbp], rax
mov rcx, QWORD PTR -40[rbp]
mov rdx, QWORD PTR -32[rbp]
mov rax, QWORD PTR -8[rbp]
mov rsi, rcx
mov rdi, rdx
call rax
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE324:
.size unixDlSym, .-unixDlSym
.type unixDlClose, @function
unixDlClose:
.LFB325:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 16
mov QWORD PTR -8[rbp], rdi
mov QWORD PTR -16[rbp], rsi
mov rax, QWORD PTR -16[rbp]
mov rdi, rax
call dlclose@PLT
nop
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE325:
.size unixDlClose, .-unixDlClose
.section .rodata
.LC125:
.string "/dev/urandom"
.text
.type unixRandomness, @function
unixRandomness:
.LFB326:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 48
mov QWORD PTR -24[rbp], rdi
mov DWORD PTR -28[rbp], esi
mov QWORD PTR -40[rbp], rdx
mov eax, DWORD PTR -28[rbp]
movsx rdx, eax
mov rax, QWORD PTR -40[rbp]
mov esi, 0
mov rdi, rax
call memset@PLT
call getpid@PLT
mov DWORD PTR randomnessPid[rip], eax
mov edx, 0
mov esi, 0
lea rdi, .LC125[rip]
call robust_open
mov DWORD PTR -4[rbp], eax
cmp DWORD PTR -4[rbp], 0
jns .L2059
lea rax, -16[rbp]
mov rdi, rax
call time@PLT
mov rdx, QWORD PTR -16[rbp]
mov rax, QWORD PTR -40[rbp]
mov QWORD PTR [rax], rdx
mov rax, QWORD PTR -40[rbp]
lea rdx, 8[rax]
mov eax, DWORD PTR randomnessPid[rip]
mov DWORD PTR [rdx], eax
mov DWORD PTR -28[rbp], 12
jmp .L2060
.L2059:
mov rax, QWORD PTR aSyscall[rip+200]
mov edx, DWORD PTR -28[rbp]
movsx rdx, edx
mov rsi, QWORD PTR -40[rbp]
mov ecx, DWORD PTR -4[rbp]
mov edi, ecx
call rax
mov DWORD PTR -8[rbp], eax
cmp DWORD PTR -8[rbp], 0
jns .L2061
call __errno_location@PLT
mov eax, DWORD PTR [rax]
cmp eax, 4
je .L2059
.L2061:
mov eax, DWORD PTR -4[rbp]
mov edx, 37068
mov esi, eax
mov edi, 0
call robust_close
.L2060:
mov eax, DWORD PTR -28[rbp]
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE326:
.size unixRandomness, .-unixRandomness
.type unixSleep, @function
unixSleep:
.LFB327:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 32
mov QWORD PTR -24[rbp], rdi
mov DWORD PTR -28[rbp], esi
mov eax, DWORD PTR -28[rbp]
lea ecx, 999999[rax]
mov edx, 1125899907
mov eax, ecx
imul edx
sar edx, 18
mov eax, ecx
sar eax, 31
sub edx, eax
mov eax, edx
mov DWORD PTR -4[rbp], eax
mov eax, DWORD PTR -4[rbp]
mov edi, eax
call sleep@PLT
mov eax, DWORD PTR -4[rbp]
imul eax, eax, 1000000
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE327:
.size unixSleep, .-unixSleep
.type unixCurrentTimeInt64, @function
unixCurrentTimeInt64:
.LFB328:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 48
mov QWORD PTR -40[rbp], rdi
mov QWORD PTR -48[rbp], rsi
mov DWORD PTR -4[rbp], 0
lea rax, -32[rbp]
mov esi, 0
mov rdi, rax
call gettimeofday@PLT
mov rax, QWORD PTR -32[rbp]
imul rdx, rax, 1000
mov rax, QWORD PTR unixEpoch.12793[rip]
lea rsi, [rdx+rax]
mov rcx, QWORD PTR -24[rbp]
movabs rdx, 2361183241434822607
mov rax, rcx
imul rdx
sar rdx, 7
mov rax, rcx
sar rax, 63
sub rdx, rax
mov rax, rdx
lea rdx, [rsi+rax]
mov rax, QWORD PTR -48[rbp]
mov QWORD PTR [rax], rdx
mov eax, DWORD PTR -4[rbp]
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE328:
.size unixCurrentTimeInt64, .-unixCurrentTimeInt64
.type unixCurrentTime, @function
unixCurrentTime:
.LFB329:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 32
mov QWORD PTR -24[rbp], rdi
mov QWORD PTR -32[rbp], rsi
mov QWORD PTR -16[rbp], 0
lea rax, -16[rbp]
mov rsi, rax
mov edi, 0
call unixCurrentTimeInt64
mov DWORD PTR -4[rbp], eax
mov rax, QWORD PTR -16[rbp]
pxor xmm0, xmm0
cvtsi2sdq xmm0, rax
movsd xmm1, QWORD PTR .LC12[rip]
divsd xmm0, xmm1
mov rax, QWORD PTR -32[rbp]
movsd QWORD PTR [rax], xmm0
mov eax, DWORD PTR -4[rbp]
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE329:
.size unixCurrentTime, .-unixCurrentTime
.type unixGetLastError, @function
unixGetLastError:
.LFB330:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 32
mov QWORD PTR -8[rbp], rdi
mov DWORD PTR -12[rbp], esi
mov QWORD PTR -24[rbp], rdx
call __errno_location@PLT
mov eax, DWORD PTR [rax]
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE330:
.size unixGetLastError, .-unixGetLastError
.globl sqlite3_os_init
.type sqlite3_os_init, @function
sqlite3_os_init:
.LFB331:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 16
mov DWORD PTR -4[rbp], 0
jmp .L2072
.L2073:
cmp DWORD PTR -4[rbp], 0
sete al
movzx ecx, al
mov edx, DWORD PTR -4[rbp]
mov rax, rdx
sal rax, 2
add rax, rdx
sal rax, 2
add rax, rdx
sal rax, 3
lea rdx, aVfs.12810[rip]
add rax, rdx
mov esi, ecx
mov rdi, rax
call sqlite3_vfs_register
add DWORD PTR -4[rbp], 1
.L2072:
cmp DWORD PTR -4[rbp], 3
jbe .L2073
mov eax, 0
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE331:
.size sqlite3_os_init, .-sqlite3_os_init
.globl sqlite3_os_end
.type sqlite3_os_end, @function
sqlite3_os_end:
.LFB332:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
mov eax, 0
pop rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE332:
.size sqlite3_os_end, .-sqlite3_os_end
.type sqlite3BitvecCreate, @function
sqlite3BitvecCreate:
.LFB333:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 32
mov DWORD PTR -20[rbp], edi
mov edi, 512
call sqlite3MallocZero
mov QWORD PTR -8[rbp], rax
cmp QWORD PTR -8[rbp], 0
je .L2078
mov rax, QWORD PTR -8[rbp]
mov edx, DWORD PTR -20[rbp]
mov DWORD PTR [rax], edx
.L2078:
mov rax, QWORD PTR -8[rbp]
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE333:
.size sqlite3BitvecCreate, .-sqlite3BitvecCreate
.type sqlite3BitvecTestNotNull, @function
sqlite3BitvecTestNotNull:
.LFB334:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
mov QWORD PTR -24[rbp], rdi
mov DWORD PTR -28[rbp], esi
sub DWORD PTR -28[rbp], 1
mov rax, QWORD PTR -24[rbp]
mov eax, DWORD PTR [rax]
cmp eax, DWORD PTR -28[rbp]
ja .L2083
mov eax, 0
jmp .L2082
.L2084:
mov rax, QWORD PTR -24[rbp]
mov esi, DWORD PTR 8[rax]
mov eax, DWORD PTR -28[rbp]
mov edx, 0
div esi
mov DWORD PTR -8[rbp], eax
mov rax, QWORD PTR -24[rbp]
mov ecx, DWORD PTR 8[rax]
mov eax, DWORD PTR -28[rbp]
mov edx, 0
div ecx
mov DWORD PTR -28[rbp], edx
mov rax, QWORD PTR -24[rbp]
mov edx, DWORD PTR -8[rbp]
add rdx, 2
mov rax, QWORD PTR [rax+rdx*8]
mov QWORD PTR -24[rbp], rax
cmp QWORD PTR -24[rbp], 0
jne .L2083
mov eax, 0
jmp .L2082
.L2083:
mov rax, QWORD PTR -24[rbp]
mov eax, DWORD PTR 8[rax]
test eax, eax
jne .L2084
mov rax, QWORD PTR -24[rbp]
mov eax, DWORD PTR [rax]
cmp eax, 3968
ja .L2085
mov eax, DWORD PTR -28[rbp]
shr eax, 3
mov edx, eax
mov rax, QWORD PTR -24[rbp]
mov edx, edx
movzx eax, BYTE PTR 16[rax+rdx]
movzx edx, al
mov eax, DWORD PTR -28[rbp]
and eax, 7
mov ecx, eax
sar edx, cl
mov eax, edx
and eax, 1
test eax, eax
setne al
movzx eax, al
jmp .L2082
.L2085:
mov ecx, DWORD PTR -28[rbp]
lea eax, 1[rcx]
mov DWORD PTR -28[rbp], eax
mov eax, ecx
shr eax, 2
mov edx, 554189329
mul edx
mov eax, edx
shr eax, 2
mov DWORD PTR -4[rbp], eax
mov eax, DWORD PTR -4[rbp]
imul eax, eax, 124
sub ecx, eax
mov eax, ecx
mov DWORD PTR -4[rbp], eax
jmp .L2086
.L2088:
mov rax, QWORD PTR -24[rbp]
mov edx, DWORD PTR -4[rbp]
add rdx, 4
mov eax, DWORD PTR [rax+rdx*4]
cmp eax, DWORD PTR -28[rbp]
jne .L2087
mov eax, 1
jmp .L2082
.L2087:
mov eax, DWORD PTR -4[rbp]
lea ecx, 1[rax]
mov eax, ecx
shr eax, 2
mov edx, 554189329
mul edx
mov eax, edx
shr eax, 2
mov DWORD PTR -4[rbp], eax
mov eax, DWORD PTR -4[rbp]
imul eax, eax, 124
sub ecx, eax
mov eax, ecx
mov DWORD PTR -4[rbp], eax
.L2086:
mov rax, QWORD PTR -24[rbp]
mov edx, DWORD PTR -4[rbp]
add rdx, 4
mov eax, DWORD PTR [rax+rdx*4]
test eax, eax
jne .L2088
mov eax, 0
.L2082:
pop rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE334:
.size sqlite3BitvecTestNotNull, .-sqlite3BitvecTestNotNull
.type sqlite3BitvecTest, @function
sqlite3BitvecTest:
.LFB335:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 16
mov QWORD PTR -8[rbp], rdi
mov DWORD PTR -12[rbp], esi
cmp QWORD PTR -8[rbp], 0
je .L2090
mov edx, DWORD PTR -12[rbp]
mov rax, QWORD PTR -8[rbp]
mov esi, edx
mov rdi, rax
call sqlite3BitvecTestNotNull
test eax, eax
je .L2090
mov eax, 1
jmp .L2092
.L2090:
mov eax, 0
.L2092:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE335:
.size sqlite3BitvecTest, .-sqlite3BitvecTest
.type sqlite3BitvecSet, @function
sqlite3BitvecSet:
.LFB336:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 48
mov QWORD PTR -40[rbp], rdi
mov DWORD PTR -44[rbp], esi
cmp QWORD PTR -40[rbp], 0
jne .L2094
mov eax, 0
jmp .L2095
.L2094:
sub DWORD PTR -44[rbp], 1
jmp .L2096
.L2099:
mov rax, QWORD PTR -40[rbp]
mov edi, DWORD PTR 8[rax]
mov eax, DWORD PTR -44[rbp]
mov edx, 0
div edi
mov DWORD PTR -16[rbp], eax
mov rax, QWORD PTR -40[rbp]
mov ecx, DWORD PTR 8[rax]
mov eax, DWORD PTR -44[rbp]
mov edx, 0
div ecx
mov DWORD PTR -44[rbp], edx
mov rax, QWORD PTR -40[rbp]
mov edx, DWORD PTR -16[rbp]
add rdx, 2
mov rax, QWORD PTR [rax+rdx*8]
test rax, rax
jne .L2097
mov rax, QWORD PTR -40[rbp]
mov eax, DWORD PTR 8[rax]
mov edi, eax
call sqlite3BitvecCreate
mov rcx, rax
mov rax, QWORD PTR -40[rbp]
mov edx, DWORD PTR -16[rbp]
add rdx, 2
mov QWORD PTR [rax+rdx*8], rcx
mov rax, QWORD PTR -40[rbp]
mov edx, DWORD PTR -16[rbp]
add rdx, 2
mov rax, QWORD PTR [rax+rdx*8]
test rax, rax
jne .L2097
mov eax, 7
jmp .L2095
.L2097:
mov rax, QWORD PTR -40[rbp]
mov edx, DWORD PTR -16[rbp]
add rdx, 2
mov rax, QWORD PTR [rax+rdx*8]
mov QWORD PTR -40[rbp], rax
.L2096:
mov rax, QWORD PTR -40[rbp]
mov eax, DWORD PTR [rax]
cmp eax, 3968
jbe .L2098
mov rax, QWORD PTR -40[rbp]
mov eax, DWORD PTR 8[rax]
test eax, eax
jne .L2099
.L2098:
mov rax, QWORD PTR -40[rbp]
mov eax, DWORD PTR [rax]
cmp eax, 3968
ja .L2100
mov eax, DWORD PTR -44[rbp]
shr eax, 3
mov edx, eax
mov rax, QWORD PTR -40[rbp]
mov ecx, edx
movzx eax, BYTE PTR 16[rax+rcx]
mov edi, eax
mov eax, DWORD PTR -44[rbp]
and eax, 7
mov esi, 1
mov ecx, eax
sal esi, cl
mov eax, esi
or eax, edi
mov ecx, eax
mov rax, QWORD PTR -40[rbp]
mov edx, edx
mov BYTE PTR 16[rax+rdx], cl
mov eax, 0
jmp .L2095
.L2100:
mov ecx, DWORD PTR -44[rbp]
lea eax, 1[rcx]
mov DWORD PTR -44[rbp], eax
mov eax, ecx
shr eax, 2
mov edx, 554189329
mul edx
mov eax, edx
shr eax, 2
mov DWORD PTR -4[rbp], eax
mov eax, DWORD PTR -4[rbp]
imul eax, eax, 124
sub ecx, eax
mov eax, ecx
mov DWORD PTR -4[rbp], eax
mov rax, QWORD PTR -40[rbp]
mov edx, DWORD PTR -4[rbp]
add rdx, 4
mov eax, DWORD PTR [rax+rdx*4]
test eax, eax
jne .L2101
mov rax, QWORD PTR -40[rbp]
mov eax, DWORD PTR 4[rax]
cmp eax, 122
ja .L2111
jmp .L2103
.L2101:
mov rax, QWORD PTR -40[rbp]
mov edx, DWORD PTR -4[rbp]
add rdx, 4
mov eax, DWORD PTR [rax+rdx*4]
cmp eax, DWORD PTR -44[rbp]
jne .L2105
mov eax, 0
jmp .L2095
.L2105:
add DWORD PTR -4[rbp], 1
cmp DWORD PTR -4[rbp], 123
jbe .L2106
mov DWORD PTR -4[rbp], 0
.L2106:
mov rax, QWORD PTR -40[rbp]
mov edx, DWORD PTR -4[rbp]
add rdx, 4
mov eax, DWORD PTR [rax+rdx*4]
test eax, eax
jne .L2101
jmp .L2104
.L2111:
nop
.L2104:
mov rax, QWORD PTR -40[rbp]
mov eax, DWORD PTR 4[rax]
cmp eax, 61
jbe .L2103
mov esi, 496
mov edi, 0
call sqlite3DbMallocRaw
mov QWORD PTR -24[rbp], rax
cmp QWORD PTR -24[rbp], 0
jne .L2107
mov eax, 7
jmp .L2095
.L2107:
mov rax, QWORD PTR -40[rbp]
lea rcx, 16[rax]
mov rax, QWORD PTR -24[rbp]
mov edx, 496
mov rsi, rcx
mov rdi, rax
call memcpy@PLT
mov rax, QWORD PTR -40[rbp]
add rax, 16
mov edx, 496
mov esi, 0
mov rdi, rax
call memset@PLT
mov rax, QWORD PTR -40[rbp]
mov eax, DWORD PTR [rax]
mov eax, eax
add rax, 61
shr rax
movabs rdx, -8925843906633654007
mul rdx
mov rax, rdx
shr rax, 4
mov edx, eax
mov rax, QWORD PTR -40[rbp]
mov DWORD PTR 8[rax], edx
mov edx, DWORD PTR -44[rbp]
mov rax, QWORD PTR -40[rbp]
mov esi, edx
mov rdi, rax
call sqlite3BitvecSet
mov DWORD PTR -12[rbp], eax
mov DWORD PTR -8[rbp], 0
jmp .L2108
.L2110:
mov eax, DWORD PTR -8[rbp]
lea rdx, 0[0+rax*4]
mov rax, QWORD PTR -24[rbp]
add rax, rdx
mov eax, DWORD PTR [rax]
test eax, eax
je .L2109
mov eax, DWORD PTR -8[rbp]
lea rdx, 0[0+rax*4]
mov rax, QWORD PTR -24[rbp]
add rax, rdx
mov edx, DWORD PTR [rax]
mov rax, QWORD PTR -40[rbp]
mov esi, edx
mov rdi, rax
call sqlite3BitvecSet
or DWORD PTR -12[rbp], eax
.L2109:
add DWORD PTR -8[rbp], 1
.L2108:
cmp DWORD PTR -8[rbp], 123
jbe .L2110
mov rax, QWORD PTR -24[rbp]
mov rsi, rax
mov edi, 0
call sqlite3DbFree
mov eax, DWORD PTR -12[rbp]
jmp .L2095
.L2103:
mov rax, QWORD PTR -40[rbp]
mov eax, DWORD PTR 4[rax]
lea edx, 1[rax]
mov rax, QWORD PTR -40[rbp]
mov DWORD PTR 4[rax], edx
mov rax, QWORD PTR -40[rbp]
mov edx, DWORD PTR -4[rbp]
lea rcx, 4[rdx]
mov edx, DWORD PTR -44[rbp]
mov DWORD PTR [rax+rcx*4], edx
mov eax, 0
.L2095:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE336:
.size sqlite3BitvecSet, .-sqlite3BitvecSet
.type sqlite3BitvecClear, @function
sqlite3BitvecClear:
.LFB337:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 64
mov QWORD PTR -40[rbp], rdi
mov DWORD PTR -44[rbp], esi
mov QWORD PTR -56[rbp], rdx
cmp QWORD PTR -40[rbp], 0
je .L2123
sub DWORD PTR -44[rbp], 1
jmp .L2115
.L2116:
mov rax, QWORD PTR -40[rbp]
mov esi, DWORD PTR 8[rax]
mov eax, DWORD PTR -44[rbp]
mov edx, 0
div esi
mov DWORD PTR -12[rbp], eax
mov rax, QWORD PTR -40[rbp]
mov ecx, DWORD PTR 8[rax]
mov eax, DWORD PTR -44[rbp]
mov edx, 0
div ecx
mov DWORD PTR -44[rbp], edx
mov rax, QWORD PTR -40[rbp]
mov edx, DWORD PTR -12[rbp]
add rdx, 2
mov rax, QWORD PTR [rax+rdx*8]
mov QWORD PTR -40[rbp], rax
cmp QWORD PTR -40[rbp], 0
je .L2124
.L2115:
mov rax, QWORD PTR -40[rbp]
mov eax, DWORD PTR 8[rax]
test eax, eax
jne .L2116
mov rax, QWORD PTR -40[rbp]
mov eax, DWORD PTR [rax]
cmp eax, 3968
ja .L2117
mov eax, DWORD PTR -44[rbp]
shr eax, 3
mov edx, eax
mov rax, QWORD PTR -40[rbp]
mov ecx, edx
movzx eax, BYTE PTR 16[rax+rcx]
mov esi, eax
mov eax, DWORD PTR -44[rbp]
and eax, 7
mov edi, 1
mov ecx, eax
sal edi, cl
mov eax, edi
not eax
and eax, esi
mov ecx, eax
mov rax, QWORD PTR -40[rbp]
mov edx, edx
mov BYTE PTR 16[rax+rdx], cl
jmp .L2112
.L2117:
mov rax, QWORD PTR -56[rbp]
mov QWORD PTR -24[rbp], rax
mov rax, QWORD PTR -40[rbp]
lea rcx, 16[rax]
mov rax, QWORD PTR -24[rbp]
mov edx, 496
mov rsi, rcx
mov rdi, rax
call memcpy@PLT
mov rax, QWORD PTR -40[rbp]
add rax, 16
mov edx, 496
mov esi, 0
mov rdi, rax
call memset@PLT
mov rax, QWORD PTR -40[rbp]
mov DWORD PTR 4[rax], 0
mov DWORD PTR -4[rbp], 0
jmp .L2118
.L2122:
mov eax, DWORD PTR -4[rbp]
lea rdx, 0[0+rax*4]
mov rax, QWORD PTR -24[rbp]
add rax, rdx
mov eax, DWORD PTR [rax]
test eax, eax
je .L2119
mov eax, DWORD PTR -4[rbp]
lea rdx, 0[0+rax*4]
mov rax, QWORD PTR -24[rbp]
add rax, rdx
mov eax, DWORD PTR [rax]
mov edx, DWORD PTR -44[rbp]
add edx, 1
cmp eax, edx
je .L2119
mov eax, DWORD PTR -4[rbp]
lea rdx, 0[0+rax*4]
mov rax, QWORD PTR -24[rbp]
add rax, rdx
mov eax, DWORD PTR [rax]
lea ecx, -1[rax]
mov eax, ecx
shr eax, 2
mov edx, 554189329
mul edx
mov eax, edx
shr eax, 2
mov DWORD PTR -8[rbp], eax
mov eax, DWORD PTR -8[rbp]
imul eax, eax, 124
sub ecx, eax
mov eax, ecx
mov DWORD PTR -8[rbp], eax
mov rax, QWORD PTR -40[rbp]
mov eax, DWORD PTR 4[rax]
lea edx, 1[rax]
mov rax, QWORD PTR -40[rbp]
mov DWORD PTR 4[rax], edx
jmp .L2120
.L2121:
add DWORD PTR -8[rbp], 1
cmp DWORD PTR -8[rbp], 123
jbe .L2120
mov DWORD PTR -8[rbp], 0
.L2120:
mov rax, QWORD PTR -40[rbp]
mov edx, DWORD PTR -8[rbp]
add rdx, 4
mov eax, DWORD PTR [rax+rdx*4]
test eax, eax
jne .L2121
mov eax, DWORD PTR -4[rbp]
lea rdx, 0[0+rax*4]
mov rax, QWORD PTR -24[rbp]
add rax, rdx
mov edx, DWORD PTR [rax]
mov rax, QWORD PTR -40[rbp]
mov ecx, DWORD PTR -8[rbp]
add rcx, 4
mov DWORD PTR [rax+rcx*4], edx
.L2119:
add DWORD PTR -4[rbp], 1
.L2118:
cmp DWORD PTR -4[rbp], 123
jbe .L2122
jmp .L2112
.L2123:
nop
jmp .L2112
.L2124:
nop
.L2112:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE337:
.size sqlite3BitvecClear, .-sqlite3BitvecClear
.type sqlite3BitvecDestroy, @function
sqlite3BitvecDestroy:
.LFB338:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 32
mov QWORD PTR -24[rbp], rdi
cmp QWORD PTR -24[rbp], 0
je .L2131
mov rax, QWORD PTR -24[rbp]
mov eax, DWORD PTR 8[rax]
test eax, eax
je .L2128
mov DWORD PTR -4[rbp], 0
jmp .L2129
.L2130:
mov rax, QWORD PTR -24[rbp]
mov edx, DWORD PTR -4[rbp]
add rdx, 2
mov rax, QWORD PTR [rax+rdx*8]
mov rdi, rax
call sqlite3BitvecDestroy
add DWORD PTR -4[rbp], 1
.L2129:
cmp DWORD PTR -4[rbp], 61
jbe .L2130
.L2128:
mov rax, QWORD PTR -24[rbp]
mov rdi, rax
call sqlite3_free
jmp .L2125
.L2131:
nop
.L2125:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE338:
.size sqlite3BitvecDestroy, .-sqlite3BitvecDestroy
.type sqlite3BitvecSize, @function
sqlite3BitvecSize:
.LFB339:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
mov QWORD PTR -8[rbp], rdi
mov rax, QWORD PTR -8[rbp]
mov eax, DWORD PTR [rax]
pop rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE339:
.size sqlite3BitvecSize, .-sqlite3BitvecSize
.type sqlite3BitvecBuiltinTest, @function
sqlite3BitvecBuiltinTest:
.LFB340:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
push rbx
sub rsp, 72
.cfi_offset 3, -24
mov DWORD PTR -68[rbp], edi
mov QWORD PTR -80[rbp], rsi
mov QWORD PTR -40[rbp], 0
mov QWORD PTR -48[rbp], 0
mov DWORD PTR -20[rbp], -1
mov eax, DWORD PTR -68[rbp]
mov edi, eax
call sqlite3BitvecCreate
mov QWORD PTR -40[rbp], rax
mov eax, DWORD PTR -68[rbp]
add eax, 7
lea edx, 7[rax]
test eax, eax
cmovs eax, edx
sar eax, 3
add eax, 1
cdqe
mov rdi, rax
call sqlite3MallocZero
mov QWORD PTR -48[rbp], rax
mov edi, 512
call sqlite3_malloc64
mov QWORD PTR -56[rbp], rax
cmp QWORD PTR -40[rbp], 0
je .L2135
cmp QWORD PTR -48[rbp], 0
je .L2135
cmp QWORD PTR -56[rbp], 0
je .L2135
mov esi, 1
mov edi, 0
call sqlite3BitvecSet
mov rax, QWORD PTR -56[rbp]
mov rdx, rax
mov esi, 1
mov edi, 0
call sqlite3BitvecClear
mov DWORD PTR -28[rbp], 0
jmp .L2136
.L2142:
mov eax, DWORD PTR -60[rbp]
cmp eax, 1
jl .L2137
cmp eax, 2
jle .L2138
cmp eax, 5
jne .L2137
.L2138:
mov DWORD PTR -24[rbp], 4
mov eax, DWORD PTR -28[rbp]
cdqe
add rax, 2
lea rdx, 0[0+rax*4]
mov rax, QWORD PTR -80[rbp]
add rax, rdx
mov eax, DWORD PTR [rax]
sub eax, 1
mov DWORD PTR -64[rbp], eax
mov eax, DWORD PTR -28[rbp]
cdqe
add rax, 2
lea rdx, 0[0+rax*4]
mov rax, QWORD PTR -80[rbp]
add rax, rdx
mov edx, DWORD PTR -28[rbp]
movsx rdx, edx
add rdx, 2
lea rcx, 0[0+rdx*4]
mov rdx, QWORD PTR -80[rbp]
add rdx, rcx
mov ecx, DWORD PTR [rdx]
mov edx, DWORD PTR -28[rbp]
movsx rdx, edx
add rdx, 3
lea rsi, 0[0+rdx*4]
mov rdx, QWORD PTR -80[rbp]
add rdx, rsi
mov edx, DWORD PTR [rdx]
add edx, ecx
mov DWORD PTR [rax], edx
jmp .L2139
.L2137:
mov DWORD PTR -24[rbp], 2
lea rax, -64[rbp]
mov rsi, rax
mov edi, 4
call sqlite3_randomness
nop
.L2139:
mov eax, DWORD PTR -28[rbp]
cdqe
add rax, 1
lea rdx, 0[0+rax*4]
mov rax, QWORD PTR -80[rbp]
add rax, rdx
mov edx, DWORD PTR [rax]
sub edx, 1
mov DWORD PTR [rax], edx
mov eax, DWORD PTR [rax]
test eax, eax
jle .L2140
mov DWORD PTR -24[rbp], 0
.L2140:
mov eax, DWORD PTR -24[rbp]
add DWORD PTR -28[rbp], eax
mov eax, DWORD PTR -64[rbp]
and eax, 2147483647
cdq
idiv DWORD PTR -68[rbp]
mov eax, edx
mov DWORD PTR -64[rbp], eax
mov eax, DWORD PTR -60[rbp]
and eax, 1
test eax, eax
je .L2141
mov eax, DWORD PTR -64[rbp]
add eax, 1
sar eax, 3
movsx rdx, eax
mov rax, QWORD PTR -48[rbp]
add rax, rdx
mov edx, DWORD PTR -64[rbp]
add edx, 1
sar edx, 3
movsx rcx, edx
mov rdx, QWORD PTR -48[rbp]
add rdx, rcx
movzx edx, BYTE PTR [rdx]
mov edi, edx
mov edx, DWORD PTR -64[rbp]
add edx, 1
and edx, 7
mov esi, 1
mov ecx, edx
sal esi, cl
mov edx, esi
or edx, edi
mov BYTE PTR [rax], dl
cmp DWORD PTR -60[rbp], 5
je .L2136
mov eax, DWORD PTR -64[rbp]
add eax, 1
mov edx, eax
mov rax, QWORD PTR -40[rbp]
mov esi, edx
mov rdi, rax
call sqlite3BitvecSet
test eax, eax
je .L2136
jmp .L2135
.L2141:
mov eax, DWORD PTR -64[rbp]
add eax, 1
sar eax, 3
movsx rdx, eax
mov rax, QWORD PTR -48[rbp]
add rax, rdx
mov edx, DWORD PTR -64[rbp]
add edx, 1
sar edx, 3
movsx rcx, edx
mov rdx, QWORD PTR -48[rbp]
add rdx, rcx
movzx edx, BYTE PTR [rdx]
mov esi, edx
mov edx, DWORD PTR -64[rbp]
add edx, 1
and edx, 7
mov edi, 1
mov ecx, edx
sal edi, cl
mov edx, edi
not edx
and edx, esi
mov BYTE PTR [rax], dl
mov eax, DWORD PTR -64[rbp]
add eax, 1
mov ecx, eax
mov rdx, QWORD PTR -56[rbp]
mov rax, QWORD PTR -40[rbp]
mov esi, ecx
mov rdi, rax
call sqlite3BitvecClear
.L2136:
mov eax, DWORD PTR -28[rbp]
cdqe
lea rdx, 0[0+rax*4]
mov rax, QWORD PTR -80[rbp]
add rax, rdx
mov eax, DWORD PTR [rax]
mov DWORD PTR -60[rbp], eax
cmp DWORD PTR -60[rbp], 0
jne .L2142
mov esi, 0
mov edi, 0
call sqlite3BitvecTest
mov ebx, eax
mov eax, DWORD PTR -68[rbp]
add eax, 1
mov edx, eax
mov rax, QWORD PTR -40[rbp]
mov esi, edx
mov rdi, rax
call sqlite3BitvecTest
add ebx, eax
mov rax, QWORD PTR -40[rbp]
mov esi, 0
mov rdi, rax
call sqlite3BitvecTest
add eax, ebx
mov ebx, eax
mov rax, QWORD PTR -40[rbp]
mov rdi, rax
call sqlite3BitvecSize
mov edx, eax
mov eax, DWORD PTR -68[rbp]
sub edx, eax
mov eax, edx
add eax, ebx
mov DWORD PTR -20[rbp], eax
mov DWORD PTR -64[rbp], 1
jmp .L2143
.L2145:
mov eax, DWORD PTR -64[rbp]
sar eax, 3
movsx rdx, eax
mov rax, QWORD PTR -48[rbp]
add rax, rdx
movzx eax, BYTE PTR [rax]
movzx edx, al
mov eax, DWORD PTR -64[rbp]
and eax, 7
mov ecx, eax
sar edx, cl
mov eax, edx
and eax, 1
test eax, eax
setne al
movzx ebx, al
mov eax, DWORD PTR -64[rbp]
mov edx, eax
mov rax, QWORD PTR -40[rbp]
mov esi, edx
mov rdi, rax
call sqlite3BitvecTest
cmp ebx, eax
je .L2144
mov eax, DWORD PTR -64[rbp]
mov DWORD PTR -20[rbp], eax
jmp .L2135
.L2144:
mov eax, DWORD PTR -64[rbp]
add eax, 1
mov DWORD PTR -64[rbp], eax
.L2143:
mov eax, DWORD PTR -64[rbp]
cmp eax, DWORD PTR -68[rbp]
jle .L2145
.L2135:
mov rax, QWORD PTR -56[rbp]
mov rdi, rax
call sqlite3_free
mov rax, QWORD PTR -48[rbp]
mov rdi, rax
call sqlite3_free
mov rax, QWORD PTR -40[rbp]
mov rdi, rax
call sqlite3BitvecDestroy
mov eax, DWORD PTR -20[rbp]
add rsp, 72
pop rbx
pop rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE340:
.size sqlite3BitvecBuiltinTest, .-sqlite3BitvecBuiltinTest
.type pcacheManageDirtyList, @function
pcacheManageDirtyList:
.LFB341:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
mov QWORD PTR -24[rbp], rdi
mov eax, esi
mov BYTE PTR -28[rbp], al
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 24[rax]
mov QWORD PTR -8[rbp], rax
movzx eax, BYTE PTR -28[rbp]
and eax, 1
test eax, eax
je .L2148
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR 16[rax]
cmp rax, QWORD PTR -24[rbp]
jne .L2149
mov rax, QWORD PTR -24[rbp]
mov rdx, QWORD PTR 64[rax]
mov rax, QWORD PTR -8[rbp]
mov QWORD PTR 16[rax], rdx
.L2149:
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 56[rax]
test rax, rax
je .L2150
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 56[rax]
mov rdx, QWORD PTR -24[rbp]
mov rdx, QWORD PTR 64[rdx]
mov QWORD PTR 64[rax], rdx
jmp .L2151
.L2150:
mov rax, QWORD PTR -24[rbp]
mov rdx, QWORD PTR 64[rax]
mov rax, QWORD PTR -8[rbp]
mov QWORD PTR 8[rax], rdx
.L2151:
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 64[rax]
test rax, rax
je .L2152
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 64[rax]
mov rdx, QWORD PTR -24[rbp]
mov rdx, QWORD PTR 56[rdx]
mov QWORD PTR 56[rax], rdx
jmp .L2148
.L2152:
mov rax, QWORD PTR -24[rbp]
mov rdx, QWORD PTR 56[rax]
mov rax, QWORD PTR -8[rbp]
mov QWORD PTR [rax], rdx
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR [rax]
test rax, rax
jne .L2148
mov rax, QWORD PTR -8[rbp]
mov BYTE PTR 45[rax], 2
.L2148:
movzx eax, BYTE PTR -28[rbp]
and eax, 2
test eax, eax
je .L2156
mov rax, QWORD PTR -24[rbp]
mov QWORD PTR 64[rax], 0
mov rax, QWORD PTR -8[rbp]
mov rdx, QWORD PTR [rax]
mov rax, QWORD PTR -24[rbp]
mov QWORD PTR 56[rax], rdx
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 56[rax]
test rax, rax
je .L2154
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 56[rax]
mov rdx, QWORD PTR -24[rbp]
mov QWORD PTR 64[rax], rdx
jmp .L2155
.L2154:
mov rax, QWORD PTR -8[rbp]
mov rdx, QWORD PTR -24[rbp]
mov QWORD PTR 8[rax], rdx
mov rax, QWORD PTR -8[rbp]
movzx eax, BYTE PTR 44[rax]
test al, al
je .L2155
mov rax, QWORD PTR -8[rbp]
mov BYTE PTR 45[rax], 1
.L2155:
mov rax, QWORD PTR -8[rbp]
mov rdx, QWORD PTR -24[rbp]
mov QWORD PTR [rax], rdx
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR 16[rax]
test rax, rax
jne .L2156
mov rax, QWORD PTR -24[rbp]
movzx eax, WORD PTR 52[rax]
movzx eax, ax
and eax, 8
test eax, eax
jne .L2156
mov rax, QWORD PTR -8[rbp]
mov rdx, QWORD PTR -24[rbp]
mov QWORD PTR 16[rax], rdx
.L2156:
nop
pop rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE341:
.size pcacheManageDirtyList, .-pcacheManageDirtyList
.type pcacheUnpin, @function
pcacheUnpin:
.LFB342:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 16
mov QWORD PTR -8[rbp], rdi
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR 24[rax]
movzx eax, BYTE PTR 44[rax]
test al, al
je .L2159
mov rax, QWORD PTR sqlite3Config[rip+248]
mov rdx, QWORD PTR -8[rbp]
mov rsi, QWORD PTR [rdx]
mov rdx, QWORD PTR -8[rbp]
mov rdx, QWORD PTR 24[rdx]
mov rcx, QWORD PTR 64[rdx]
mov edx, 0
mov rdi, rcx
call rax
.L2159:
nop
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE342:
.size pcacheUnpin, .-pcacheUnpin
.type numberOfCachePages, @function
numberOfCachePages:
.LFB343:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
mov QWORD PTR -8[rbp], rdi
mov rax, QWORD PTR -8[rbp]
mov eax, DWORD PTR 28[rax]
test eax, eax
js .L2161
mov rax, QWORD PTR -8[rbp]
mov eax, DWORD PTR 28[rax]
jmp .L2162
.L2161:
mov rax, QWORD PTR -8[rbp]
mov eax, DWORD PTR 28[rax]
movsx rdx, eax
mov eax, 0
sub rax, rdx
sal rax, 10
mov rcx, rax
mov rax, QWORD PTR -8[rbp]
mov edx, DWORD PTR 36[rax]
mov rax, QWORD PTR -8[rbp]
mov eax, DWORD PTR 40[rax]
add eax, edx
movsx rsi, eax
mov rax, rcx
cqo
idiv rsi
.L2162:
pop rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE343:
.size numberOfCachePages, .-numberOfCachePages
.type sqlite3PcacheInitialize, @function
sqlite3PcacheInitialize:
.LFB344:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
mov rax, QWORD PTR sqlite3Config[rip+200]
test rax, rax
jne .L2164
call sqlite3PCacheSetDefault
.L2164:
mov rax, QWORD PTR sqlite3Config[rip+200]
mov rdx, QWORD PTR sqlite3Config[rip+192]
mov rdi, rdx
call rax
pop rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE344:
.size sqlite3PcacheInitialize, .-sqlite3PcacheInitialize
.type sqlite3PcacheShutdown, @function
sqlite3PcacheShutdown:
.LFB345:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
mov rax, QWORD PTR sqlite3Config[rip+208]
test rax, rax
je .L2168
mov rax, QWORD PTR sqlite3Config[rip+208]
mov rdx, QWORD PTR sqlite3Config[rip+192]
mov rdi, rdx
call rax
.L2168:
nop
pop rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE345:
.size sqlite3PcacheShutdown, .-sqlite3PcacheShutdown
.type sqlite3PcacheSize, @function
sqlite3PcacheSize:
.LFB346:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
mov eax, 72
pop rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE346:
.size sqlite3PcacheSize, .-sqlite3PcacheSize
.type sqlite3PcacheOpen, @function
sqlite3PcacheOpen:
.LFB347:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 48
mov DWORD PTR -4[rbp], edi
mov DWORD PTR -8[rbp], esi
mov DWORD PTR -12[rbp], edx
mov QWORD PTR -24[rbp], rcx
mov QWORD PTR -32[rbp], r8
mov QWORD PTR -40[rbp], r9
mov rax, QWORD PTR -40[rbp]
mov edx, 72
mov esi, 0
mov rdi, rax
call memset@PLT
mov rax, QWORD PTR -40[rbp]
mov DWORD PTR 36[rax], 1
mov rax, QWORD PTR -40[rbp]
mov edx, DWORD PTR -8[rbp]
mov DWORD PTR 40[rax], edx
mov eax, DWORD PTR -12[rbp]
mov edx, eax
mov rax, QWORD PTR -40[rbp]
mov BYTE PTR 44[rax], dl
mov rax, QWORD PTR -40[rbp]
mov BYTE PTR 45[rax], 2
mov rax, QWORD PTR -40[rbp]
mov rdx, QWORD PTR -24[rbp]
mov QWORD PTR 48[rax], rdx
mov rax, QWORD PTR -40[rbp]
mov rdx, QWORD PTR -32[rbp]
mov QWORD PTR 56[rax], rdx
mov rax, QWORD PTR -40[rbp]
mov DWORD PTR 28[rax], 100
mov rax, QWORD PTR -40[rbp]
mov DWORD PTR 32[rax], 1
mov edx, DWORD PTR -4[rbp]
mov rax, QWORD PTR -40[rbp]
mov esi, edx
mov rdi, rax
call sqlite3PcacheSetPageSize
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE347:
.size sqlite3PcacheOpen, .-sqlite3PcacheOpen
.type sqlite3PcacheSetPageSize, @function
sqlite3PcacheSetPageSize:
.LFB348:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
push rbx
sub rsp, 40
.cfi_offset 3, -24
mov QWORD PTR -40[rbp], rdi
mov DWORD PTR -44[rbp], esi
mov rax, QWORD PTR -40[rbp]
mov eax, DWORD PTR 36[rax]
test eax, eax
je .L2174
mov rax, QWORD PTR sqlite3Config[rip+216]
mov rdx, QWORD PTR -40[rbp]
movzx edx, BYTE PTR 44[rdx]
movzx edx, dl
mov rcx, QWORD PTR -40[rbp]
mov ecx, DWORD PTR 40[rcx]
add ecx, 72
mov esi, ecx
mov ecx, DWORD PTR -44[rbp]
mov edi, ecx
call rax
mov QWORD PTR -24[rbp], rax
cmp QWORD PTR -24[rbp], 0
jne .L2175
mov eax, 7
jmp .L2176
.L2175:
mov rbx, QWORD PTR sqlite3Config[rip+224]
mov rax, QWORD PTR -40[rbp]
mov rdi, rax
call numberOfCachePages
mov edx, eax
mov rax, QWORD PTR -24[rbp]
mov esi, edx
mov rdi, rax
call rbx
mov rax, QWORD PTR -40[rbp]
mov rax, QWORD PTR 64[rax]
test rax, rax
je .L2177
mov rax, QWORD PTR sqlite3Config[rip+272]
mov rdx, QWORD PTR -40[rbp]
mov rdx, QWORD PTR 64[rdx]
mov rdi, rdx
call rax
.L2177:
mov rax, QWORD PTR -40[rbp]
mov rdx, QWORD PTR -24[rbp]
mov QWORD PTR 64[rax], rdx
mov rax, QWORD PTR -40[rbp]
mov edx, DWORD PTR -44[rbp]
mov DWORD PTR 36[rax], edx
.L2174:
mov eax, 0
.L2176:
add rsp, 40
pop rbx
pop rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE348:
.size sqlite3PcacheSetPageSize, .-sqlite3PcacheSetPageSize
.type sqlite3PcacheFetch, @function
sqlite3PcacheFetch:
.LFB349:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 32
mov QWORD PTR -24[rbp], rdi
mov DWORD PTR -28[rbp], esi
mov DWORD PTR -32[rbp], edx
mov rax, QWORD PTR -24[rbp]
movzx eax, BYTE PTR 45[rax]
movzx eax, al
and eax, DWORD PTR -32[rbp]
mov DWORD PTR -4[rbp], eax
mov rax, QWORD PTR sqlite3Config[rip+240]
mov rdx, QWORD PTR -24[rbp]
mov rcx, QWORD PTR 64[rdx]
mov edx, DWORD PTR -4[rbp]
mov esi, DWORD PTR -28[rbp]
mov rdi, rcx
call rax
mov QWORD PTR -16[rbp], rax
mov rax, QWORD PTR -16[rbp]
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE349:
.size sqlite3PcacheFetch, .-sqlite3PcacheFetch
.type sqlite3PcacheFetchStress, @function
sqlite3PcacheFetchStress:
.LFB350:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 48
mov QWORD PTR -24[rbp], rdi
mov DWORD PTR -28[rbp], esi
mov QWORD PTR -40[rbp], rdx
mov rax, QWORD PTR -24[rbp]
movzx eax, BYTE PTR 45[rax]
cmp al, 2
jne .L2181
mov eax, 0
jmp .L2182
.L2181:
mov rax, QWORD PTR -24[rbp]
mov rdi, rax
call sqlite3PcachePagecount
mov edx, eax
mov rax, QWORD PTR -24[rbp]
mov eax, DWORD PTR 32[rax]
cmp edx, eax
jle .L2183
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 16[rax]
mov QWORD PTR -8[rbp], rax
jmp .L2184
.L2186:
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR 64[rax]
mov QWORD PTR -8[rbp], rax
.L2184:
cmp QWORD PTR -8[rbp], 0
je .L2185
mov rax, QWORD PTR -8[rbp]
movzx eax, WORD PTR 54[rax]
test ax, ax
jne .L2186
mov rax, QWORD PTR -8[rbp]
movzx eax, WORD PTR 52[rax]
movzx eax, ax
and eax, 8
test eax, eax
jne .L2186
.L2185:
mov rax, QWORD PTR -24[rbp]
mov rdx, QWORD PTR -8[rbp]
mov QWORD PTR 16[rax], rdx
cmp QWORD PTR -8[rbp], 0
jne .L2187
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 8[rax]
mov QWORD PTR -8[rbp], rax
jmp .L2188
.L2189:
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR 64[rax]
mov QWORD PTR -8[rbp], rax
.L2188:
cmp QWORD PTR -8[rbp], 0
je .L2187
mov rax, QWORD PTR -8[rbp]
movzx eax, WORD PTR 54[rax]
test ax, ax
jne .L2189
.L2187:
cmp QWORD PTR -8[rbp], 0
je .L2183
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 48[rax]
mov rdx, QWORD PTR -24[rbp]
mov rdx, QWORD PTR 56[rdx]
mov rcx, QWORD PTR -8[rbp]
mov rsi, rcx
mov rdi, rdx
call rax
mov DWORD PTR -12[rbp], eax
cmp DWORD PTR -12[rbp], 0
je .L2183
cmp DWORD PTR -12[rbp], 5
je .L2183
mov eax, DWORD PTR -12[rbp]
jmp .L2182
.L2183:
mov rax, QWORD PTR sqlite3Config[rip+240]
mov rdx, QWORD PTR -24[rbp]
mov rcx, QWORD PTR 64[rdx]
mov esi, DWORD PTR -28[rbp]
mov edx, 2
mov rdi, rcx
call rax
mov rdx, rax
mov rax, QWORD PTR -40[rbp]
mov QWORD PTR [rax], rdx
mov rax, QWORD PTR -40[rbp]
mov rax, QWORD PTR [rax]
test rax, rax
jne .L2190
mov eax, 7
jmp .L2182
.L2190:
mov eax, 0
.L2182:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE350:
.size sqlite3PcacheFetchStress, .-sqlite3PcacheFetchStress
.type pcacheFetchFinishWithInit, @function
pcacheFetchFinishWithInit:
.LFB351:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 48
mov QWORD PTR -24[rbp], rdi
mov DWORD PTR -28[rbp], esi
mov QWORD PTR -40[rbp], rdx
mov rax, QWORD PTR -40[rbp]
mov rax, QWORD PTR 8[rax]
mov QWORD PTR -8[rbp], rax
mov rax, QWORD PTR -8[rbp]
add rax, 32
mov edx, 40
mov esi, 0
mov rdi, rax
call memset@PLT
mov rax, QWORD PTR -8[rbp]
mov rdx, QWORD PTR -40[rbp]
mov QWORD PTR [rax], rdx
mov rax, QWORD PTR -40[rbp]
mov rdx, QWORD PTR [rax]
mov rax, QWORD PTR -8[rbp]
mov QWORD PTR 8[rax], rdx
mov rax, QWORD PTR -8[rbp]
lea rdx, 72[rax]
mov rax, QWORD PTR -8[rbp]
mov QWORD PTR 16[rax], rdx
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR 16[rax]
mov edx, 8
mov esi, 0
mov rdi, rax
call memset@PLT
mov rax, QWORD PTR -8[rbp]
mov rdx, QWORD PTR -24[rbp]
mov QWORD PTR 24[rax], rdx
mov rax, QWORD PTR -8[rbp]
mov edx, DWORD PTR -28[rbp]
mov DWORD PTR 48[rax], edx
mov rax, QWORD PTR -8[rbp]
mov WORD PTR 52[rax], 1
mov rdx, QWORD PTR -40[rbp]
mov ecx, DWORD PTR -28[rbp]
mov rax, QWORD PTR -24[rbp]
mov esi, ecx
mov rdi, rax
call sqlite3PcacheFetchFinish
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE351:
.size pcacheFetchFinishWithInit, .-pcacheFetchFinishWithInit
.type sqlite3PcacheFetchFinish, @function
sqlite3PcacheFetchFinish:
.LFB352:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 48
mov QWORD PTR -24[rbp], rdi
mov DWORD PTR -28[rbp], esi
mov QWORD PTR -40[rbp], rdx
mov rax, QWORD PTR -40[rbp]
mov rax, QWORD PTR 8[rax]
mov QWORD PTR -8[rbp], rax
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR [rax]
test rax, rax
jne .L2195
mov rdx, QWORD PTR -40[rbp]
mov ecx, DWORD PTR -28[rbp]
mov rax, QWORD PTR -24[rbp]
mov esi, ecx
mov rdi, rax
call pcacheFetchFinishWithInit
jmp .L2196
.L2195:
mov rax, QWORD PTR -24[rbp]
mov eax, DWORD PTR 24[rax]
lea edx, 1[rax]
mov rax, QWORD PTR -24[rbp]
mov DWORD PTR 24[rax], edx
mov rax, QWORD PTR -8[rbp]
movzx eax, WORD PTR 54[rax]
add eax, 1
mov edx, eax
mov rax, QWORD PTR -8[rbp]
mov WORD PTR 54[rax], dx
mov rax, QWORD PTR -8[rbp]
.L2196:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE352:
.size sqlite3PcacheFetchFinish, .-sqlite3PcacheFetchFinish
.type sqlite3PcacheRelease, @function
sqlite3PcacheRelease:
.LFB353:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 16
mov QWORD PTR -8[rbp], rdi
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR 24[rax]
mov edx, DWORD PTR 24[rax]
sub edx, 1
mov DWORD PTR 24[rax], edx
mov rax, QWORD PTR -8[rbp]
movzx eax, WORD PTR 54[rax]
sub eax, 1
mov edx, eax
mov rax, QWORD PTR -8[rbp]
mov WORD PTR 54[rax], dx
mov rax, QWORD PTR -8[rbp]
movzx eax, WORD PTR 54[rax]
test ax, ax
jne .L2200
mov rax, QWORD PTR -8[rbp]
movzx eax, WORD PTR 52[rax]
movzx eax, ax
and eax, 1
test eax, eax
je .L2199
mov rax, QWORD PTR -8[rbp]
mov rdi, rax
call pcacheUnpin
jmp .L2200
.L2199:
mov rax, QWORD PTR -8[rbp]
mov esi, 3
mov rdi, rax
call pcacheManageDirtyList
.L2200:
nop
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE353:
.size sqlite3PcacheRelease, .-sqlite3PcacheRelease
.type sqlite3PcacheRef, @function
sqlite3PcacheRef:
.LFB354:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
mov QWORD PTR -8[rbp], rdi
mov rax, QWORD PTR -8[rbp]
movzx eax, WORD PTR 54[rax]
add eax, 1
mov edx, eax
mov rax, QWORD PTR -8[rbp]
mov WORD PTR 54[rax], dx
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR 24[rax]
mov edx, DWORD PTR 24[rax]
add edx, 1
mov DWORD PTR 24[rax], edx
nop
pop rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE354:
.size sqlite3PcacheRef, .-sqlite3PcacheRef
.type sqlite3PcacheDrop, @function
sqlite3PcacheDrop:
.LFB355:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 16
mov QWORD PTR -8[rbp], rdi
mov rax, QWORD PTR -8[rbp]
movzx eax, WORD PTR 52[rax]
movzx eax, ax
and eax, 2
test eax, eax
je .L2203
mov rax, QWORD PTR -8[rbp]
mov esi, 1
mov rdi, rax
call pcacheManageDirtyList
.L2203:
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR 24[rax]
mov edx, DWORD PTR 24[rax]
sub edx, 1
mov DWORD PTR 24[rax], edx
mov rax, QWORD PTR sqlite3Config[rip+248]
mov rdx, QWORD PTR -8[rbp]
mov rsi, QWORD PTR [rdx]
mov rdx, QWORD PTR -8[rbp]
mov rdx, QWORD PTR 24[rdx]
mov rcx, QWORD PTR 64[rdx]
mov edx, 1
mov rdi, rcx
call rax
nop
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE355:
.size sqlite3PcacheDrop, .-sqlite3PcacheDrop
.type sqlite3PcacheMakeDirty, @function
sqlite3PcacheMakeDirty:
.LFB356:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 8
mov QWORD PTR -8[rbp], rdi
mov rax, QWORD PTR -8[rbp]
movzx eax, WORD PTR 52[rax]
movzx eax, ax
and eax, 17
test eax, eax
je .L2206
mov rax, QWORD PTR -8[rbp]
movzx eax, WORD PTR 52[rax]
and eax, -17
mov edx, eax
mov rax, QWORD PTR -8[rbp]
mov WORD PTR 52[rax], dx
mov rax, QWORD PTR -8[rbp]
movzx eax, WORD PTR 52[rax]
movzx eax, ax
and eax, 1
test eax, eax
je .L2206
mov rax, QWORD PTR -8[rbp]
movzx eax, WORD PTR 52[rax]
xor eax, 3
mov edx, eax
mov rax, QWORD PTR -8[rbp]
mov WORD PTR 52[rax], dx
mov rax, QWORD PTR -8[rbp]
mov esi, 2
mov rdi, rax
call pcacheManageDirtyList
.L2206:
nop
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE356:
.size sqlite3PcacheMakeDirty, .-sqlite3PcacheMakeDirty
.type sqlite3PcacheMakeClean, @function
sqlite3PcacheMakeClean:
.LFB357:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 16
mov QWORD PTR -8[rbp], rdi
mov rax, QWORD PTR -8[rbp]
mov esi, 1
mov rdi, rax
call pcacheManageDirtyList
mov rax, QWORD PTR -8[rbp]
movzx eax, WORD PTR 52[rax]
and eax, -15
mov edx, eax
mov rax, QWORD PTR -8[rbp]
mov WORD PTR 52[rax], dx
mov rax, QWORD PTR -8[rbp]
movzx eax, WORD PTR 52[rax]
or eax, 1
mov edx, eax
mov rax, QWORD PTR -8[rbp]
mov WORD PTR 52[rax], dx
mov rax, QWORD PTR -8[rbp]
movzx eax, WORD PTR 54[rax]
test ax, ax
jne .L2209
mov rax, QWORD PTR -8[rbp]
mov rdi, rax
call pcacheUnpin
.L2209:
nop
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE357:
.size sqlite3PcacheMakeClean, .-sqlite3PcacheMakeClean
.type sqlite3PcacheCleanAll, @function
sqlite3PcacheCleanAll:
.LFB358:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 32
mov QWORD PTR -24[rbp], rdi
jmp .L2211
.L2212:
mov rax, QWORD PTR -8[rbp]
mov rdi, rax
call sqlite3PcacheMakeClean
.L2211:
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR [rax]
mov QWORD PTR -8[rbp], rax
cmp QWORD PTR -8[rbp], 0
jne .L2212
nop
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE358:
.size sqlite3PcacheCleanAll, .-sqlite3PcacheCleanAll
.type sqlite3PcacheClearWritable, @function
sqlite3PcacheClearWritable:
.LFB359:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
mov QWORD PTR -24[rbp], rdi
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR [rax]
mov QWORD PTR -8[rbp], rax
jmp .L2214
.L2215:
mov rax, QWORD PTR -8[rbp]
movzx eax, WORD PTR 52[rax]
and eax, -13
mov edx, eax
mov rax, QWORD PTR -8[rbp]
mov WORD PTR 52[rax], dx
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR 56[rax]
mov QWORD PTR -8[rbp], rax
.L2214:
cmp QWORD PTR -8[rbp], 0
jne .L2215
mov rax, QWORD PTR -24[rbp]
mov rdx, QWORD PTR 8[rax]
mov rax, QWORD PTR -24[rbp]
mov QWORD PTR 16[rax], rdx
nop
pop rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE359:
.size sqlite3PcacheClearWritable, .-sqlite3PcacheClearWritable
.type sqlite3PcacheClearSyncFlags, @function
sqlite3PcacheClearSyncFlags:
.LFB360:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
mov QWORD PTR -24[rbp], rdi
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR [rax]
mov QWORD PTR -8[rbp], rax
jmp .L2217
.L2218:
mov rax, QWORD PTR -8[rbp]
movzx eax, WORD PTR 52[rax]
and eax, -9
mov edx, eax
mov rax, QWORD PTR -8[rbp]
mov WORD PTR 52[rax], dx
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR 56[rax]
mov QWORD PTR -8[rbp], rax
.L2217:
cmp QWORD PTR -8[rbp], 0
jne .L2218
mov rax, QWORD PTR -24[rbp]
mov rdx, QWORD PTR 8[rax]
mov rax, QWORD PTR -24[rbp]
mov QWORD PTR 16[rax], rdx
nop
pop rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE360:
.size sqlite3PcacheClearSyncFlags, .-sqlite3PcacheClearSyncFlags
.type sqlite3PcacheMove, @function
sqlite3PcacheMove:
.LFB361:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 32
mov QWORD PTR -24[rbp], rdi
mov DWORD PTR -28[rbp], esi
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 24[rax]
mov QWORD PTR -8[rbp], rax
mov rax, QWORD PTR sqlite3Config[rip+256]
mov rdx, QWORD PTR -24[rbp]
mov edx, DWORD PTR 48[rdx]
mov rcx, QWORD PTR -24[rbp]
mov rsi, QWORD PTR [rcx]
mov rcx, QWORD PTR -8[rbp]
mov rdi, QWORD PTR 64[rcx]
mov ecx, DWORD PTR -28[rbp]
call rax
mov rax, QWORD PTR -24[rbp]
mov edx, DWORD PTR -28[rbp]
mov DWORD PTR 48[rax], edx
mov rax, QWORD PTR -24[rbp]
movzx eax, WORD PTR 52[rax]
movzx eax, ax
and eax, 2
test eax, eax
je .L2221
mov rax, QWORD PTR -24[rbp]
movzx eax, WORD PTR 52[rax]
movzx eax, ax
and eax, 8
test eax, eax
je .L2221
mov rax, QWORD PTR -24[rbp]
mov esi, 3
mov rdi, rax
call pcacheManageDirtyList
.L2221:
nop
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE361:
.size sqlite3PcacheMove, .-sqlite3PcacheMove
.type sqlite3PcacheTruncate, @function
sqlite3PcacheTruncate:
.LFB362:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 48
mov QWORD PTR -40[rbp], rdi
mov DWORD PTR -44[rbp], esi
mov rax, QWORD PTR -40[rbp]
mov rax, QWORD PTR 64[rax]
test rax, rax
je .L2228
mov rax, QWORD PTR -40[rbp]
mov rax, QWORD PTR [rax]
mov QWORD PTR -8[rbp], rax
jmp .L2224
.L2226:
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR 56[rax]
mov QWORD PTR -16[rbp], rax
mov rax, QWORD PTR -8[rbp]
mov eax, DWORD PTR 48[rax]
cmp eax, DWORD PTR -44[rbp]
jbe .L2225
mov rax, QWORD PTR -8[rbp]
mov rdi, rax
call sqlite3PcacheMakeClean
.L2225:
mov rax, QWORD PTR -16[rbp]
mov QWORD PTR -8[rbp], rax
.L2224:
cmp QWORD PTR -8[rbp], 0
jne .L2226
cmp DWORD PTR -44[rbp], 0
jne .L2227
mov rax, QWORD PTR -40[rbp]
mov eax, DWORD PTR 24[rax]
test eax, eax
je .L2227
mov rax, QWORD PTR sqlite3Config[rip+240]
mov rdx, QWORD PTR -40[rbp]
mov rcx, QWORD PTR 64[rdx]
mov edx, 0
mov esi, 1
mov rdi, rcx
call rax
mov QWORD PTR -24[rbp], rax
cmp QWORD PTR -24[rbp], 0
je .L2227
mov rax, QWORD PTR -40[rbp]
mov eax, DWORD PTR 36[rax]
movsx rdx, eax
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR [rax]
mov esi, 0
mov rdi, rax
call memset@PLT
mov DWORD PTR -44[rbp], 1
.L2227:
mov rax, QWORD PTR sqlite3Config[rip+264]
mov edx, DWORD PTR -44[rbp]
lea ecx, 1[rdx]
mov rdx, QWORD PTR -40[rbp]
mov rdx, QWORD PTR 64[rdx]
mov esi, ecx
mov rdi, rdx
call rax
.L2228:
nop
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE362:
.size sqlite3PcacheTruncate, .-sqlite3PcacheTruncate
.type sqlite3PcacheClose, @function
sqlite3PcacheClose:
.LFB363:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 16
mov QWORD PTR -8[rbp], rdi
mov rax, QWORD PTR sqlite3Config[rip+272]
mov rdx, QWORD PTR -8[rbp]
mov rdx, QWORD PTR 64[rdx]
mov rdi, rdx
call rax
nop
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE363:
.size sqlite3PcacheClose, .-sqlite3PcacheClose
.type sqlite3PcacheClear, @function
sqlite3PcacheClear:
.LFB364:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 16
mov QWORD PTR -8[rbp], rdi
mov rax, QWORD PTR -8[rbp]
mov esi, 0
mov rdi, rax
call sqlite3PcacheTruncate
nop
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE364:
.size sqlite3PcacheClear, .-sqlite3PcacheClear
.type pcacheMergeDirtyList, @function
pcacheMergeDirtyList:
.LFB365:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
mov QWORD PTR -88[rbp], rdi
mov QWORD PTR -96[rbp], rsi
lea rax, -80[rbp]
mov QWORD PTR -8[rbp], rax
.L2235:
mov rax, QWORD PTR -88[rbp]
mov edx, DWORD PTR 48[rax]
mov rax, QWORD PTR -96[rbp]
mov eax, DWORD PTR 48[rax]
cmp edx, eax
jnb .L2232
mov rax, QWORD PTR -8[rbp]
mov rdx, QWORD PTR -88[rbp]
mov QWORD PTR 32[rax], rdx
mov rax, QWORD PTR -88[rbp]
mov QWORD PTR -8[rbp], rax
mov rax, QWORD PTR -88[rbp]
mov rax, QWORD PTR 32[rax]
mov QWORD PTR -88[rbp], rax
cmp QWORD PTR -88[rbp], 0
jne .L2235
mov rax, QWORD PTR -8[rbp]
mov rdx, QWORD PTR -96[rbp]
mov QWORD PTR 32[rax], rdx
jmp .L2234
.L2232:
mov rax, QWORD PTR -8[rbp]
mov rdx, QWORD PTR -96[rbp]
mov QWORD PTR 32[rax], rdx
mov rax, QWORD PTR -96[rbp]
mov QWORD PTR -8[rbp], rax
mov rax, QWORD PTR -96[rbp]
mov rax, QWORD PTR 32[rax]
mov QWORD PTR -96[rbp], rax
cmp QWORD PTR -96[rbp], 0
jne .L2235
mov rax, QWORD PTR -8[rbp]
mov rdx, QWORD PTR -88[rbp]
mov QWORD PTR 32[rax], rdx
.L2234:
mov rax, QWORD PTR -48[rbp]
pop rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE365:
.size pcacheMergeDirtyList, .-pcacheMergeDirtyList
.type pcacheSortDirtyList, @function
pcacheSortDirtyList:
.LFB366:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 288
mov QWORD PTR -280[rbp], rdi
lea rax, -272[rbp]
mov edx, 256
mov esi, 0
mov rdi, rax
call memset@PLT
jmp .L2238
.L2243:
mov rax, QWORD PTR -280[rbp]
mov QWORD PTR -8[rbp], rax
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR 32[rax]
mov QWORD PTR -280[rbp], rax
mov rax, QWORD PTR -8[rbp]
mov QWORD PTR 32[rax], 0
mov DWORD PTR -12[rbp], 0
jmp .L2239
.L2242:
mov eax, DWORD PTR -12[rbp]
cdqe
mov rax, QWORD PTR -272[rbp+rax*8]
test rax, rax
jne .L2240
mov eax, DWORD PTR -12[rbp]
cdqe
mov rdx, QWORD PTR -8[rbp]
mov QWORD PTR -272[rbp+rax*8], rdx
jmp .L2241
.L2240:
mov eax, DWORD PTR -12[rbp]
cdqe
mov rax, QWORD PTR -272[rbp+rax*8]
mov rdx, QWORD PTR -8[rbp]
mov rsi, rdx
mov rdi, rax
call pcacheMergeDirtyList
mov QWORD PTR -8[rbp], rax
mov eax, DWORD PTR -12[rbp]
cdqe
mov QWORD PTR -272[rbp+rax*8], 0
add DWORD PTR -12[rbp], 1
.L2239:
cmp DWORD PTR -12[rbp], 30
jle .L2242
.L2241:
cmp DWORD PTR -12[rbp], 31
jne .L2238
mov eax, DWORD PTR -12[rbp]
cdqe
mov rax, QWORD PTR -272[rbp+rax*8]
mov rdx, QWORD PTR -8[rbp]
mov rsi, rdx
mov rdi, rax
call pcacheMergeDirtyList
mov rdx, rax
mov eax, DWORD PTR -12[rbp]
cdqe
mov QWORD PTR -272[rbp+rax*8], rdx
.L2238:
cmp QWORD PTR -280[rbp], 0
jne .L2243
mov rax, QWORD PTR -272[rbp]
mov QWORD PTR -8[rbp], rax
mov DWORD PTR -12[rbp], 1
jmp .L2244
.L2249:
mov eax, DWORD PTR -12[rbp]
cdqe
mov rax, QWORD PTR -272[rbp+rax*8]
test rax, rax
je .L2251
cmp QWORD PTR -8[rbp], 0
je .L2247
mov eax, DWORD PTR -12[rbp]
cdqe
mov rdx, QWORD PTR -272[rbp+rax*8]
mov rax, QWORD PTR -8[rbp]
mov rsi, rdx
mov rdi, rax
call pcacheMergeDirtyList
jmp .L2248
.L2247:
mov eax, DWORD PTR -12[rbp]
cdqe
mov rax, QWORD PTR -272[rbp+rax*8]
.L2248:
mov QWORD PTR -8[rbp], rax
jmp .L2246
.L2251:
nop
.L2246:
add DWORD PTR -12[rbp], 1
.L2244:
cmp DWORD PTR -12[rbp], 31
jle .L2249
mov rax, QWORD PTR -8[rbp]
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE366:
.size pcacheSortDirtyList, .-pcacheSortDirtyList
.type sqlite3PcacheDirtyList, @function
sqlite3PcacheDirtyList:
.LFB367:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 32
mov QWORD PTR -24[rbp], rdi
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR [rax]
mov QWORD PTR -8[rbp], rax
jmp .L2253
.L2254:
mov rax, QWORD PTR -8[rbp]
mov rdx, QWORD PTR 56[rax]
mov rax, QWORD PTR -8[rbp]
mov QWORD PTR 32[rax], rdx
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR 56[rax]
mov QWORD PTR -8[rbp], rax
.L2253:
cmp QWORD PTR -8[rbp], 0
jne .L2254
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR [rax]
mov rdi, rax
call pcacheSortDirtyList
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE367:
.size sqlite3PcacheDirtyList, .-sqlite3PcacheDirtyList
.type sqlite3PcacheRefCount, @function
sqlite3PcacheRefCount:
.LFB368:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
mov QWORD PTR -8[rbp], rdi
mov rax, QWORD PTR -8[rbp]
mov eax, DWORD PTR 24[rax]
pop rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE368:
.size sqlite3PcacheRefCount, .-sqlite3PcacheRefCount
.type sqlite3PcachePageRefcount, @function
sqlite3PcachePageRefcount:
.LFB369:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
mov QWORD PTR -8[rbp], rdi
mov rax, QWORD PTR -8[rbp]
movzx eax, WORD PTR 54[rax]
cwde
pop rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE369:
.size sqlite3PcachePageRefcount, .-sqlite3PcachePageRefcount
.type sqlite3PcachePagecount, @function
sqlite3PcachePagecount:
.LFB370:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 16
mov QWORD PTR -8[rbp], rdi
mov rax, QWORD PTR sqlite3Config[rip+232]
mov rdx, QWORD PTR -8[rbp]
mov rdx, QWORD PTR 64[rdx]
mov rdi, rdx
call rax
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE370:
.size sqlite3PcachePagecount, .-sqlite3PcachePagecount
.type sqlite3PcacheSetCachesize, @function
sqlite3PcacheSetCachesize:
.LFB371:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
push rbx
sub rsp, 24
.cfi_offset 3, -24
mov QWORD PTR -24[rbp], rdi
mov DWORD PTR -28[rbp], esi
mov rax, QWORD PTR -24[rbp]
mov edx, DWORD PTR -28[rbp]
mov DWORD PTR 28[rax], edx
mov rbx, QWORD PTR sqlite3Config[rip+224]
mov rax, QWORD PTR -24[rbp]
mov rdi, rax
call numberOfCachePages
mov edx, eax
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 64[rax]
mov esi, edx
mov rdi, rax
call rbx
nop
add rsp, 24
pop rbx
pop rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE371:
.size sqlite3PcacheSetCachesize, .-sqlite3PcacheSetCachesize
.type sqlite3PcacheSetSpillsize, @function
sqlite3PcacheSetSpillsize:
.LFB372:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 32
mov QWORD PTR -24[rbp], rdi
mov DWORD PTR -28[rbp], esi
cmp DWORD PTR -28[rbp], 0
je .L2264
cmp DWORD PTR -28[rbp], 0
jns .L2265
mov eax, DWORD PTR -28[rbp]
movsx rdx, eax
mov eax, 0
sub rax, rdx
sal rax, 10
mov rcx, rax
mov rax, QWORD PTR -24[rbp]
mov edx, DWORD PTR 36[rax]
mov rax, QWORD PTR -24[rbp]
mov eax, DWORD PTR 40[rax]
add eax, edx
movsx rsi, eax
mov rax, rcx
cqo
idiv rsi
mov DWORD PTR -28[rbp], eax
.L2265:
mov rax, QWORD PTR -24[rbp]
mov edx, DWORD PTR -28[rbp]
mov DWORD PTR 32[rax], edx
.L2264:
mov rax, QWORD PTR -24[rbp]
mov rdi, rax
call numberOfCachePages
mov DWORD PTR -4[rbp], eax
mov rax, QWORD PTR -24[rbp]
mov eax, DWORD PTR 32[rax]
cmp eax, DWORD PTR -4[rbp]
jle .L2266
mov rax, QWORD PTR -24[rbp]
mov eax, DWORD PTR 32[rax]
mov DWORD PTR -4[rbp], eax
.L2266:
mov eax, DWORD PTR -4[rbp]
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE372:
.size sqlite3PcacheSetSpillsize, .-sqlite3PcacheSetSpillsize
.type sqlite3PcacheShrink, @function
sqlite3PcacheShrink:
.LFB373:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 16
mov QWORD PTR -8[rbp], rdi
mov rax, QWORD PTR sqlite3Config[rip+280]
mov rdx, QWORD PTR -8[rbp]
mov rdx, QWORD PTR 64[rdx]
mov rdi, rdx
call rax
nop
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE373:
.size sqlite3PcacheShrink, .-sqlite3PcacheShrink
.type sqlite3HeaderSizePcache, @function
sqlite3HeaderSizePcache:
.LFB374:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
mov eax, 72
pop rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE374:
.size sqlite3HeaderSizePcache, .-sqlite3HeaderSizePcache
.type sqlite3PCachePercentDirty, @function
sqlite3PCachePercentDirty:
.LFB375:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 24
mov QWORD PTR -24[rbp], rdi
mov DWORD PTR -12[rbp], 0
mov rax, QWORD PTR -24[rbp]
mov rdi, rax
call numberOfCachePages
mov DWORD PTR -16[rbp], eax
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR [rax]
mov QWORD PTR -8[rbp], rax
jmp .L2272
.L2273:
add DWORD PTR -12[rbp], 1
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR 56[rax]
mov QWORD PTR -8[rbp], rax
.L2272:
cmp QWORD PTR -8[rbp], 0
jne .L2273
cmp DWORD PTR -16[rbp], 0
je .L2274
mov eax, DWORD PTR -12[rbp]
movsx rdx, eax
mov rax, rdx
sal rax, 2
add rax, rdx
lea rdx, 0[0+rax*4]
add rax, rdx
sal rax, 2
mov rcx, rax
mov eax, DWORD PTR -16[rbp]
movsx rsi, eax
mov rax, rcx
cqo
idiv rsi
jmp .L2276
.L2274:
mov eax, 0
.L2276:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE375:
.size sqlite3PCachePercentDirty, .-sqlite3PCachePercentDirty
.local pcache1_g
.comm pcache1_g,144,32
.type sqlite3PCacheBufferSetup, @function
sqlite3PCacheBufferSetup:
.LFB376:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
mov QWORD PTR -24[rbp], rdi
mov DWORD PTR -28[rbp], esi
mov DWORD PTR -32[rbp], edx
mov eax, DWORD PTR pcache1_g[rip+80]
test eax, eax
je .L2285
cmp QWORD PTR -24[rbp], 0
jne .L2279
mov DWORD PTR -32[rbp], 0
mov eax, DWORD PTR -32[rbp]
mov DWORD PTR -28[rbp], eax
.L2279:
cmp DWORD PTR -32[rbp], 0
jne .L2280
mov DWORD PTR -28[rbp], 0
.L2280:
and DWORD PTR -28[rbp], -8
mov eax, DWORD PTR -28[rbp]
mov DWORD PTR pcache1_g[rip+92], eax
mov eax, DWORD PTR -32[rbp]
mov DWORD PTR pcache1_g[rip+136], eax
mov eax, DWORD PTR pcache1_g[rip+136]
mov DWORD PTR pcache1_g[rip+96], eax
cmp DWORD PTR -32[rbp], 90
jg .L2281
mov ecx, DWORD PTR -32[rbp]
mov edx, 1717986919
mov eax, ecx
imul edx
sar edx, 2
mov eax, ecx
sar eax, 31
sub edx, eax
mov eax, edx
add eax, 1
jmp .L2282
.L2281:
mov eax, 10
.L2282:
mov DWORD PTR pcache1_g[rip+100], eax
mov rax, QWORD PTR -24[rbp]
mov QWORD PTR pcache1_g[rip+104], rax
mov QWORD PTR pcache1_g[rip+128], 0
mov DWORD PTR pcache1_g[rip+140], 0
jmp .L2283
.L2284:
mov rax, QWORD PTR -24[rbp]
mov QWORD PTR -8[rbp], rax
mov rdx, QWORD PTR pcache1_g[rip+128]
mov rax, QWORD PTR -8[rbp]
mov QWORD PTR [rax], rdx
mov rax, QWORD PTR -8[rbp]
mov QWORD PTR pcache1_g[rip+128], rax
mov eax, DWORD PTR -28[rbp]
cdqe
add QWORD PTR -24[rbp], rax
.L2283:
mov eax, DWORD PTR -32[rbp]
lea edx, -1[rax]
mov DWORD PTR -32[rbp], edx
test eax, eax
jne .L2284
mov rax, QWORD PTR -24[rbp]
mov QWORD PTR pcache1_g[rip+112], rax
.L2285:
nop
pop rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE376:
.size sqlite3PCacheBufferSetup, .-sqlite3PCacheBufferSetup
.type pcache1InitBulk, @function
pcache1InitBulk:
.LFB377:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 48
mov QWORD PTR -40[rbp], rdi
mov eax, DWORD PTR pcache1_g[rip+88]
test eax, eax
jne .L2287
mov eax, 0
jmp .L2288
.L2287:
mov rax, QWORD PTR -40[rbp]
mov eax, DWORD PTR 36[rax]
cmp eax, 2
ja .L2289
mov eax, 0
jmp .L2288
.L2289:
call sqlite3BeginBenignMalloc
mov eax, DWORD PTR pcache1_g[rip+88]
test eax, eax
jle .L2290
mov rax, QWORD PTR -40[rbp]
mov eax, DWORD PTR 24[rax]
movsx rdx, eax
mov eax, DWORD PTR pcache1_g[rip+88]
cdqe
imul rax, rdx
mov QWORD PTR -8[rbp], rax
jmp .L2291
.L2290:
mov eax, DWORD PTR pcache1_g[rip+88]
movsx rdx, eax
mov eax, 0
sub rax, rdx
sal rax, 10
mov QWORD PTR -8[rbp], rax
.L2291:
mov rax, QWORD PTR -40[rbp]
mov eax, DWORD PTR 24[rax]
movsx rdx, eax
mov rax, QWORD PTR -40[rbp]
mov eax, DWORD PTR 36[rax]
mov eax, eax
imul rax, rdx
cmp rax, QWORD PTR -8[rbp]
jge .L2292
mov rax, QWORD PTR -40[rbp]
mov eax, DWORD PTR 24[rax]
movsx rdx, eax
mov rax, QWORD PTR -40[rbp]
mov eax, DWORD PTR 36[rax]
mov eax, eax
imul rax, rdx
mov QWORD PTR -8[rbp], rax
.L2292:
mov rax, QWORD PTR -8[rbp]
mov rdi, rax
call sqlite3Malloc
mov rdx, rax
mov rax, QWORD PTR -40[rbp]
mov QWORD PTR 80[rax], rdx
mov rax, QWORD PTR -40[rbp]
mov rax, QWORD PTR 80[rax]
mov QWORD PTR -16[rbp], rax
call sqlite3EndBenignMalloc
cmp QWORD PTR -16[rbp], 0
je .L2293
mov rax, QWORD PTR -16[rbp]
mov rdi, rax
call sqlite3MallocSize
mov ecx, eax
mov rax, QWORD PTR -40[rbp]
mov esi, DWORD PTR 24[rax]
mov eax, ecx
cdq
idiv esi
mov DWORD PTR -20[rbp], eax
.L2294:
mov rax, QWORD PTR -40[rbp]
mov eax, DWORD PTR 16[rax]
movsx rdx, eax
mov rax, QWORD PTR -16[rbp]
add rax, rdx
mov QWORD PTR -32[rbp], rax
mov rax, QWORD PTR -32[rbp]
mov rdx, QWORD PTR -16[rbp]
mov QWORD PTR [rax], rdx
mov rax, QWORD PTR -32[rbp]
lea rdx, 56[rax]
mov rax, QWORD PTR -32[rbp]
mov QWORD PTR 8[rax], rdx
mov rax, QWORD PTR -32[rbp]
mov BYTE PTR 20[rax], 1
mov rax, QWORD PTR -32[rbp]
mov BYTE PTR 21[rax], 0
mov rax, QWORD PTR -40[rbp]
mov rdx, QWORD PTR 72[rax]
mov rax, QWORD PTR -32[rbp]
mov QWORD PTR 24[rax], rdx
mov rax, QWORD PTR -40[rbp]
mov rdx, QWORD PTR -32[rbp]
mov QWORD PTR 72[rax], rdx
mov rax, QWORD PTR -40[rbp]
mov eax, DWORD PTR 24[rax]
cdqe
add QWORD PTR -16[rbp], rax
sub DWORD PTR -20[rbp], 1
cmp DWORD PTR -20[rbp], 0
jne .L2294
.L2293:
mov rax, QWORD PTR -40[rbp]
mov rax, QWORD PTR 72[rax]
test rax, rax
setne al
movzx eax, al
.L2288:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE377:
.size pcache1InitBulk, .-pcache1InitBulk
.type pcache1Alloc, @function
pcache1Alloc:
.LFB378:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 32
mov DWORD PTR -20[rbp], edi
mov QWORD PTR -8[rbp], 0
mov eax, DWORD PTR pcache1_g[rip+92]
cmp eax, DWORD PTR -20[rbp]
jl .L2296
mov rax, QWORD PTR pcache1_g[rip+120]
mov rdi, rax
call sqlite3_mutex_enter
mov rax, QWORD PTR pcache1_g[rip+128]
mov QWORD PTR -8[rbp], rax
cmp QWORD PTR -8[rbp], 0
je .L2297
mov rax, QWORD PTR pcache1_g[rip+128]
mov rax, QWORD PTR [rax]
mov QWORD PTR pcache1_g[rip+128], rax
mov eax, DWORD PTR pcache1_g[rip+136]
sub eax, 1
mov DWORD PTR pcache1_g[rip+136], eax
mov edx, DWORD PTR pcache1_g[rip+136]
mov eax, DWORD PTR pcache1_g[rip+100]
cmp edx, eax
setl al
movzx eax, al
mov DWORD PTR pcache1_g[rip+140], eax
mov eax, DWORD PTR -20[rbp]
mov esi, eax
mov edi, 7
call sqlite3StatusHighwater
mov esi, 1
mov edi, 1
call sqlite3StatusUp
.L2297:
mov rax, QWORD PTR pcache1_g[rip+120]
mov rdi, rax
call sqlite3_mutex_leave
.L2296:
cmp QWORD PTR -8[rbp], 0
jne .L2298
mov eax, DWORD PTR -20[rbp]
cdqe
mov rdi, rax
call sqlite3Malloc
mov QWORD PTR -8[rbp], rax
cmp QWORD PTR -8[rbp], 0
je .L2298
mov rax, QWORD PTR -8[rbp]
mov rdi, rax
call sqlite3MallocSize
mov DWORD PTR -12[rbp], eax
mov rax, QWORD PTR pcache1_g[rip+120]
mov rdi, rax
call sqlite3_mutex_enter
mov eax, DWORD PTR -20[rbp]
mov esi, eax
mov edi, 7
call sqlite3StatusHighwater
mov eax, DWORD PTR -12[rbp]
mov esi, eax
mov edi, 2
call sqlite3StatusUp
mov rax, QWORD PTR pcache1_g[rip+120]
mov rdi, rax
call sqlite3_mutex_leave
.L2298:
mov rax, QWORD PTR -8[rbp]
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE378:
.size pcache1Alloc, .-pcache1Alloc
.type pcache1Free, @function
pcache1Free:
.LFB379:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 32
mov QWORD PTR -24[rbp], rdi
cmp QWORD PTR -24[rbp], 0
je .L2304
mov rax, QWORD PTR pcache1_g[rip+104]
mov rdx, rax
mov rax, QWORD PTR -24[rbp]
cmp rdx, rax
ja .L2303
mov rax, QWORD PTR pcache1_g[rip+112]
mov rdx, rax
mov rax, QWORD PTR -24[rbp]
cmp rdx, rax
jbe .L2303
mov rax, QWORD PTR pcache1_g[rip+120]
mov rdi, rax
call sqlite3_mutex_enter
mov esi, 1
mov edi, 1
call sqlite3StatusDown
mov rax, QWORD PTR -24[rbp]
mov QWORD PTR -8[rbp], rax
mov rdx, QWORD PTR pcache1_g[rip+128]
mov rax, QWORD PTR -8[rbp]
mov QWORD PTR [rax], rdx
mov rax, QWORD PTR -8[rbp]
mov QWORD PTR pcache1_g[rip+128], rax
mov eax, DWORD PTR pcache1_g[rip+136]
add eax, 1
mov DWORD PTR pcache1_g[rip+136], eax
mov edx, DWORD PTR pcache1_g[rip+136]
mov eax, DWORD PTR pcache1_g[rip+100]
cmp edx, eax
setl al
movzx eax, al
mov DWORD PTR pcache1_g[rip+140], eax
mov rax, QWORD PTR pcache1_g[rip+120]
mov rdi, rax
call sqlite3_mutex_leave
jmp .L2300
.L2303:
mov DWORD PTR -12[rbp], 0
mov rax, QWORD PTR -24[rbp]
mov rdi, rax
call sqlite3MallocSize
mov DWORD PTR -12[rbp], eax
mov rax, QWORD PTR pcache1_g[rip+120]
mov rdi, rax
call sqlite3_mutex_enter
mov eax, DWORD PTR -12[rbp]
mov esi, eax
mov edi, 2
call sqlite3StatusDown
mov rax, QWORD PTR pcache1_g[rip+120]
mov rdi, rax
call sqlite3_mutex_leave
mov rax, QWORD PTR -24[rbp]
mov rdi, rax
call sqlite3_free
jmp .L2300
.L2304:
nop
.L2300:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE379:
.size pcache1Free, .-pcache1Free
.type pcache1AllocPage, @function
pcache1AllocPage:
.LFB380:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 32
mov QWORD PTR -24[rbp], rdi
mov DWORD PTR -28[rbp], esi
mov QWORD PTR -8[rbp], 0
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 72[rax]
test rax, rax
jne .L2306
mov rax, QWORD PTR -24[rbp]
mov eax, DWORD PTR 52[rax]
test eax, eax
jne .L2307
mov rax, QWORD PTR -24[rbp]
mov rdi, rax
call pcache1InitBulk
test eax, eax
je .L2307
.L2306:
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 72[rax]
mov QWORD PTR -8[rbp], rax
mov rax, QWORD PTR -8[rbp]
mov rdx, QWORD PTR 24[rax]
mov rax, QWORD PTR -24[rbp]
mov QWORD PTR 72[rax], rdx
mov rax, QWORD PTR -8[rbp]
mov QWORD PTR 24[rax], 0
jmp .L2308
.L2307:
cmp DWORD PTR -28[rbp], 0
je .L2309
call sqlite3BeginBenignMalloc
.L2309:
mov rax, QWORD PTR -24[rbp]
mov eax, DWORD PTR 24[rax]
mov edi, eax
call pcache1Alloc
mov QWORD PTR -16[rbp], rax
mov rax, QWORD PTR -24[rbp]
mov eax, DWORD PTR 16[rax]
movsx rdx, eax
mov rax, QWORD PTR -16[rbp]
add rax, rdx
mov QWORD PTR -8[rbp], rax
cmp DWORD PTR -28[rbp], 0
je .L2310
call sqlite3EndBenignMalloc
.L2310:
cmp QWORD PTR -16[rbp], 0
jne .L2311
mov eax, 0
jmp .L2312
.L2311:
mov rax, QWORD PTR -8[rbp]
mov rdx, QWORD PTR -16[rbp]
mov QWORD PTR [rax], rdx
mov rax, QWORD PTR -8[rbp]
lea rdx, 56[rax]
mov rax, QWORD PTR -8[rbp]
mov QWORD PTR 8[rax], rdx
mov rax, QWORD PTR -8[rbp]
mov BYTE PTR 20[rax], 0
mov rax, QWORD PTR -8[rbp]
mov BYTE PTR 21[rax], 0
.L2308:
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 8[rax]
mov edx, DWORD PTR [rax]
add edx, 1
mov DWORD PTR [rax], edx
mov rax, QWORD PTR -8[rbp]
.L2312:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE380:
.size pcache1AllocPage, .-pcache1AllocPage
.type pcache1FreePage, @function
pcache1FreePage:
.LFB381:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 32
mov QWORD PTR -24[rbp], rdi
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 32[rax]
mov QWORD PTR -8[rbp], rax
mov rax, QWORD PTR -24[rbp]
movzx eax, BYTE PTR 20[rax]
test al, al
je .L2314
mov rax, QWORD PTR -8[rbp]
mov rdx, QWORD PTR 72[rax]
mov rax, QWORD PTR -24[rbp]
mov QWORD PTR 24[rax], rdx
mov rax, QWORD PTR -8[rbp]
mov rdx, QWORD PTR -24[rbp]
mov QWORD PTR 72[rax], rdx
jmp .L2315
.L2314:
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR [rax]
mov rdi, rax
call pcache1Free
.L2315:
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR 8[rax]
mov edx, DWORD PTR [rax]
sub edx, 1
mov DWORD PTR [rax], edx
nop
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE381:
.size pcache1FreePage, .-pcache1FreePage
.type sqlite3PageMalloc, @function
sqlite3PageMalloc:
.LFB382:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 16
mov DWORD PTR -4[rbp], edi
mov eax, DWORD PTR -4[rbp]
mov edi, eax
call pcache1Alloc
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE382:
.size sqlite3PageMalloc, .-sqlite3PageMalloc
.type sqlite3PageFree, @function
sqlite3PageFree:
.LFB383:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 16
mov QWORD PTR -8[rbp], rdi
mov rax, QWORD PTR -8[rbp]
mov rdi, rax
call pcache1Free
nop
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE383:
.size sqlite3PageFree, .-sqlite3PageFree
.type pcache1UnderMemoryPressure, @function
pcache1UnderMemoryPressure:
.LFB384:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 8
mov QWORD PTR -8[rbp], rdi
mov eax, DWORD PTR pcache1_g[rip+96]
test eax, eax
je .L2320
mov rax, QWORD PTR -8[rbp]
mov edx, DWORD PTR 16[rax]
mov rax, QWORD PTR -8[rbp]
mov eax, DWORD PTR 20[rax]
add edx, eax
mov eax, DWORD PTR pcache1_g[rip+92]
cmp edx, eax
jg .L2320
mov eax, DWORD PTR pcache1_g[rip+140]
jmp .L2321
.L2320:
call sqlite3HeapNearlyFull
.L2321:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE384:
.size pcache1UnderMemoryPressure, .-pcache1UnderMemoryPressure
.type pcache1ResizeHash, @function
pcache1ResizeHash:
.LFB385:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 64
mov QWORD PTR -56[rbp], rdi
mov rax, QWORD PTR -56[rbp]
mov eax, DWORD PTR 56[rax]
add eax, eax
mov DWORD PTR -4[rbp], eax
cmp DWORD PTR -4[rbp], 255
ja .L2323
mov DWORD PTR -4[rbp], 256
.L2323:
mov rax, QWORD PTR -56[rbp]
mov eax, DWORD PTR 56[rax]
test eax, eax
je .L2324
call sqlite3BeginBenignMalloc
.L2324:
mov eax, DWORD PTR -4[rbp]
sal rax, 3
mov rdi, rax
call sqlite3MallocZero
mov QWORD PTR -24[rbp], rax
mov rax, QWORD PTR -56[rbp]
mov eax, DWORD PTR 56[rax]
test eax, eax
je .L2325
call sqlite3EndBenignMalloc
.L2325:
cmp QWORD PTR -24[rbp], 0
je .L2331
mov DWORD PTR -8[rbp], 0
jmp .L2327
.L2330:
mov rax, QWORD PTR -56[rbp]
mov rax, QWORD PTR 64[rax]
mov edx, DWORD PTR -8[rbp]
sal rdx, 3
add rax, rdx
mov rax, QWORD PTR [rax]
mov QWORD PTR -16[rbp], rax
jmp .L2328
.L2329:
mov rax, QWORD PTR -32[rbp]
mov eax, DWORD PTR 16[rax]
mov edx, 0
div DWORD PTR -4[rbp]
mov DWORD PTR -36[rbp], edx
mov rax, QWORD PTR -32[rbp]
mov rax, QWORD PTR 24[rax]
mov QWORD PTR -16[rbp], rax
mov eax, DWORD PTR -36[rbp]
lea rdx, 0[0+rax*8]
mov rax, QWORD PTR -24[rbp]
add rax, rdx
mov rdx, QWORD PTR [rax]
mov rax, QWORD PTR -32[rbp]
mov QWORD PTR 24[rax], rdx
mov eax, DWORD PTR -36[rbp]
lea rdx, 0[0+rax*8]
mov rax, QWORD PTR -24[rbp]
add rdx, rax
mov rax, QWORD PTR -32[rbp]
mov QWORD PTR [rdx], rax
.L2328:
mov rax, QWORD PTR -16[rbp]
mov QWORD PTR -32[rbp], rax
cmp QWORD PTR -32[rbp], 0
jne .L2329
add DWORD PTR -8[rbp], 1
.L2327:
mov rax, QWORD PTR -56[rbp]
mov eax, DWORD PTR 56[rax]
cmp eax, DWORD PTR -8[rbp]
ja .L2330
mov rax, QWORD PTR -56[rbp]
mov rax, QWORD PTR 64[rax]
mov rdi, rax
call sqlite3_free
mov rax, QWORD PTR -56[rbp]
mov rdx, QWORD PTR -24[rbp]
mov QWORD PTR 64[rax], rdx
mov rax, QWORD PTR -56[rbp]
mov edx, DWORD PTR -4[rbp]
mov DWORD PTR 56[rax], edx
.L2331:
nop
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE385:
.size pcache1ResizeHash, .-pcache1ResizeHash
.type pcache1PinPage, @function
pcache1PinPage:
.LFB386:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
mov QWORD PTR -8[rbp], rdi
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR 48[rax]
mov rdx, QWORD PTR -8[rbp]
mov rdx, QWORD PTR 40[rdx]
mov QWORD PTR 40[rax], rdx
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR 40[rax]
mov rdx, QWORD PTR -8[rbp]
mov rdx, QWORD PTR 48[rdx]
mov QWORD PTR 48[rax], rdx
mov rax, QWORD PTR -8[rbp]
mov QWORD PTR 40[rax], 0
mov rax, QWORD PTR -8[rbp]
mov QWORD PTR 48[rax], 0
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR 32[rax]
mov edx, DWORD PTR 48[rax]
sub edx, 1
mov DWORD PTR 48[rax], edx
mov rax, QWORD PTR -8[rbp]
pop rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE386:
.size pcache1PinPage, .-pcache1PinPage
.type pcache1RemoveFromHash, @function
pcache1RemoveFromHash:
.LFB387:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 48
mov QWORD PTR -40[rbp], rdi
mov DWORD PTR -44[rbp], esi
mov rax, QWORD PTR -40[rbp]
mov rax, QWORD PTR 32[rax]
mov QWORD PTR -16[rbp], rax
mov rax, QWORD PTR -40[rbp]
mov eax, DWORD PTR 16[rax]
mov rdx, QWORD PTR -16[rbp]
mov ecx, DWORD PTR 56[rdx]
mov edx, 0
div ecx
mov DWORD PTR -20[rbp], edx
mov rax, QWORD PTR -16[rbp]
mov rax, QWORD PTR 64[rax]
mov edx, DWORD PTR -20[rbp]
sal rdx, 3
add rax, rdx
mov QWORD PTR -8[rbp], rax
jmp .L2335
.L2336:
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR [rax]
add rax, 24
mov QWORD PTR -8[rbp], rax
.L2335:
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR [rax]
cmp rax, QWORD PTR -40[rbp]
jne .L2336
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR [rax]
mov rdx, QWORD PTR 24[rax]
mov rax, QWORD PTR -8[rbp]
mov QWORD PTR [rax], rdx
mov rax, QWORD PTR -16[rbp]
mov eax, DWORD PTR 52[rax]
lea edx, -1[rax]
mov rax, QWORD PTR -16[rbp]
mov DWORD PTR 52[rax], edx
cmp DWORD PTR -44[rbp], 0
je .L2338
mov rax, QWORD PTR -40[rbp]
mov rdi, rax
call pcache1FreePage
.L2338:
nop
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE387:
.size pcache1RemoveFromHash, .-pcache1RemoveFromHash
.type pcache1EnforceMaxPage, @function
pcache1EnforceMaxPage:
.LFB388:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 32
mov QWORD PTR -24[rbp], rdi
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR [rax]
mov QWORD PTR -8[rbp], rax
jmp .L2340
.L2342:
mov rax, QWORD PTR -16[rbp]
mov rdi, rax
call pcache1PinPage
mov rax, QWORD PTR -16[rbp]
mov esi, 1
mov rdi, rax
call pcache1RemoveFromHash
.L2340:
mov rax, QWORD PTR -8[rbp]
mov edx, DWORD PTR 20[rax]
mov rax, QWORD PTR -8[rbp]
mov eax, DWORD PTR 8[rax]
cmp edx, eax
jbe .L2341
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR 72[rax]
mov QWORD PTR -16[rbp], rax
mov rax, QWORD PTR -16[rbp]
movzx eax, BYTE PTR 21[rax]
test al, al
je .L2342
.L2341:
mov rax, QWORD PTR -24[rbp]
mov eax, DWORD PTR 52[rax]
test eax, eax
jne .L2344
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 80[rax]
test rax, rax
je .L2344
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 80[rax]
mov rdi, rax
call sqlite3_free
mov rax, QWORD PTR -24[rbp]
mov QWORD PTR 72[rax], 0
mov rax, QWORD PTR -24[rbp]
mov QWORD PTR 80[rax], 0
.L2344:
nop
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE388:
.size pcache1EnforceMaxPage, .-pcache1EnforceMaxPage
.type pcache1TruncateUnsafe, @function
pcache1TruncateUnsafe:
.LFB389:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 48
mov QWORD PTR -40[rbp], rdi
mov DWORD PTR -44[rbp], esi
mov rax, QWORD PTR -40[rbp]
mov eax, DWORD PTR 44[rax]
sub eax, DWORD PTR -44[rbp]
mov edx, eax
mov rax, QWORD PTR -40[rbp]
mov eax, DWORD PTR 56[rax]
cmp edx, eax
jnb .L2346
mov rax, QWORD PTR -40[rbp]
mov ecx, DWORD PTR 56[rax]
mov eax, DWORD PTR -44[rbp]
mov edx, 0
div ecx
mov DWORD PTR -4[rbp], edx
mov rax, QWORD PTR -40[rbp]
mov eax, DWORD PTR 44[rax]
mov rdx, QWORD PTR -40[rbp]
mov ecx, DWORD PTR 56[rdx]
mov edx, 0
div ecx
mov DWORD PTR -8[rbp], edx
jmp .L2347
.L2346:
mov rax, QWORD PTR -40[rbp]
mov eax, DWORD PTR 56[rax]
shr eax
mov DWORD PTR -4[rbp], eax
mov eax, DWORD PTR -4[rbp]
sub eax, 1
mov DWORD PTR -8[rbp], eax
.L2347:
mov rax, QWORD PTR -40[rbp]
mov rax, QWORD PTR 64[rax]
mov edx, DWORD PTR -4[rbp]
sal rdx, 3
add rax, rdx
mov QWORD PTR -16[rbp], rax
jmp .L2348
.L2351:
mov rax, QWORD PTR -24[rbp]
mov eax, DWORD PTR 16[rax]
cmp eax, DWORD PTR -44[rbp]
jb .L2349
mov rax, QWORD PTR -40[rbp]
mov eax, DWORD PTR 52[rax]
lea edx, -1[rax]
mov rax, QWORD PTR -40[rbp]
mov DWORD PTR 52[rax], edx
mov rax, QWORD PTR -24[rbp]
mov rdx, QWORD PTR 24[rax]
mov rax, QWORD PTR -16[rbp]
mov QWORD PTR [rax], rdx
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 40[rax]
test rax, rax
je .L2350
mov rax, QWORD PTR -24[rbp]
mov rdi, rax
call pcache1PinPage
.L2350:
mov rax, QWORD PTR -24[rbp]
mov rdi, rax
call pcache1FreePage
jmp .L2348
.L2349:
mov rax, QWORD PTR -24[rbp]
add rax, 24
mov QWORD PTR -16[rbp], rax
.L2348:
mov rax, QWORD PTR -16[rbp]
mov rax, QWORD PTR [rax]
mov QWORD PTR -24[rbp], rax
cmp QWORD PTR -24[rbp], 0
jne .L2351
mov eax, DWORD PTR -4[rbp]
cmp eax, DWORD PTR -8[rbp]
je .L2355
mov eax, DWORD PTR -4[rbp]
lea edx, 1[rax]
mov rax, QWORD PTR -40[rbp]
mov ecx, DWORD PTR 56[rax]
mov eax, edx
mov edx, 0
div ecx
mov DWORD PTR -4[rbp], edx
jmp .L2347
.L2355:
nop
nop
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE389:
.size pcache1TruncateUnsafe, .-pcache1TruncateUnsafe
.type pcache1Init, @function
pcache1Init:
.LFB390:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 16
mov QWORD PTR -8[rbp], rdi
mov edx, 144
mov esi, 0
lea rdi, pcache1_g[rip]
call memset@PLT
mov rax, QWORD PTR sqlite3Config[rip+328]
test rax, rax
je .L2357
mov eax, DWORD PTR sqlite3Config[rip+4]
test eax, eax
jle .L2358
.L2357:
mov eax, 1
jmp .L2359
.L2358:
mov eax, 0
.L2359:
mov DWORD PTR pcache1_g[rip+84], eax
mov eax, DWORD PTR sqlite3Config[rip+4]
test eax, eax
je .L2360
mov edi, 6
call sqlite3MutexAlloc
mov QWORD PTR pcache1_g[rip], rax
mov edi, 7
call sqlite3MutexAlloc
mov QWORD PTR pcache1_g[rip+120], rax
.L2360:
mov eax, DWORD PTR pcache1_g[rip+84]
test eax, eax
je .L2361
mov eax, DWORD PTR sqlite3Config[rip+340]
test eax, eax
je .L2361
mov rax, QWORD PTR sqlite3Config[rip+328]
test rax, rax
jne .L2361
mov eax, DWORD PTR sqlite3Config[rip+340]
mov DWORD PTR pcache1_g[rip+88], eax
jmp .L2362
.L2361:
mov DWORD PTR pcache1_g[rip+88], 0
.L2362:
mov DWORD PTR pcache1_g[rip+16], 10
mov DWORD PTR pcache1_g[rip+80], 1
mov eax, 0
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE390:
.size pcache1Init, .-pcache1Init
.type pcache1Shutdown, @function
pcache1Shutdown:
.LFB391:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 16
mov QWORD PTR -8[rbp], rdi
mov edx, 144
mov esi, 0
lea rdi, pcache1_g[rip]
call memset@PLT
nop
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE391:
.size pcache1Shutdown, .-pcache1Shutdown
.type pcache1Create, @function
pcache1Create:
.LFB392:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 48
mov DWORD PTR -36[rbp], edi
mov DWORD PTR -40[rbp], esi
mov DWORD PTR -44[rbp], edx
mov eax, DWORD PTR pcache1_g[rip+84]
cdqe
mov edx, eax
mov eax, edx
sal eax, 2
add eax, edx
sal eax, 4
add eax, 88
mov DWORD PTR -20[rbp], eax
mov eax, DWORD PTR -20[rbp]
cdqe
mov rdi, rax
call sqlite3MallocZero
mov QWORD PTR -8[rbp], rax
cmp QWORD PTR -8[rbp], 0
je .L2366
mov eax, DWORD PTR pcache1_g[rip+84]
test eax, eax
je .L2367
mov rax, QWORD PTR -8[rbp]
add rax, 88
mov QWORD PTR -16[rbp], rax
mov rax, QWORD PTR -16[rbp]
mov DWORD PTR 16[rax], 10
jmp .L2368
.L2367:
lea rax, pcache1_g[rip]
mov QWORD PTR -16[rbp], rax
.L2368:
mov rax, QWORD PTR -16[rbp]
movzx eax, BYTE PTR 45[rax]
test al, al
jne .L2369
mov rax, QWORD PTR -16[rbp]
mov BYTE PTR 45[rax], 1
mov rax, QWORD PTR -16[rbp]
lea rdx, 24[rax]
mov rax, QWORD PTR -16[rbp]
mov QWORD PTR 64[rax], rdx
mov rax, QWORD PTR -16[rbp]
mov rdx, QWORD PTR 64[rax]
mov rax, QWORD PTR -16[rbp]
mov QWORD PTR 72[rax], rdx
.L2369:
mov rax, QWORD PTR -8[rbp]
mov rdx, QWORD PTR -16[rbp]
mov QWORD PTR [rax], rdx
mov rax, QWORD PTR -8[rbp]
mov edx, DWORD PTR -36[rbp]
mov DWORD PTR 16[rax], edx
mov rax, QWORD PTR -8[rbp]
mov edx, DWORD PTR -40[rbp]
mov DWORD PTR 20[rax], edx
mov edx, DWORD PTR -36[rbp]
mov eax, DWORD PTR -40[rbp]
add eax, edx
add eax, 56
mov edx, eax
mov rax, QWORD PTR -8[rbp]
mov DWORD PTR 24[rax], edx
cmp DWORD PTR -44[rbp], 0
setne al
movzx edx, al
mov rax, QWORD PTR -8[rbp]
mov DWORD PTR 28[rax], edx
mov rax, QWORD PTR -8[rbp]
mov rdi, rax
call pcache1ResizeHash
cmp DWORD PTR -44[rbp], 0
je .L2370
mov rax, QWORD PTR -8[rbp]
mov DWORD PTR 32[rax], 10
mov rax, QWORD PTR -16[rbp]
mov edx, DWORD PTR 12[rax]
mov rax, QWORD PTR -8[rbp]
mov eax, DWORD PTR 32[rax]
add edx, eax
mov rax, QWORD PTR -16[rbp]
mov DWORD PTR 12[rax], edx
mov rax, QWORD PTR -16[rbp]
mov edx, DWORD PTR 8[rax]
mov rax, QWORD PTR -16[rbp]
mov eax, DWORD PTR 12[rax]
sub edx, eax
mov eax, edx
lea edx, 10[rax]
mov rax, QWORD PTR -16[rbp]
mov DWORD PTR 16[rax], edx
mov rax, QWORD PTR -16[rbp]
lea rdx, 20[rax]
mov rax, QWORD PTR -8[rbp]
mov QWORD PTR 8[rax], rdx
jmp .L2371
.L2370:
mov rax, QWORD PTR -8[rbp]
lea rdx, dummyCurrentPage.13288[rip]
mov QWORD PTR 8[rax], rdx
.L2371:
mov rax, QWORD PTR -8[rbp]
mov eax, DWORD PTR 56[rax]
test eax, eax
jne .L2366
mov rax, QWORD PTR -8[rbp]
mov rdi, rax
call pcache1Destroy
mov QWORD PTR -8[rbp], 0
.L2366:
mov rax, QWORD PTR -8[rbp]
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE392:
.size pcache1Create, .-pcache1Create
.type pcache1Cachesize, @function
pcache1Cachesize:
.LFB393:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 32
mov QWORD PTR -24[rbp], rdi
mov DWORD PTR -28[rbp], esi
mov rax, QWORD PTR -24[rbp]
mov QWORD PTR -8[rbp], rax
mov rax, QWORD PTR -8[rbp]
mov eax, DWORD PTR 28[rax]
test eax, eax
je .L2375
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR [rax]
mov QWORD PTR -16[rbp], rax
mov rax, QWORD PTR -16[rbp]
mov edx, DWORD PTR 8[rax]
mov ecx, DWORD PTR -28[rbp]
mov rax, QWORD PTR -8[rbp]
mov eax, DWORD PTR 36[rax]
sub ecx, eax
mov eax, ecx
add edx, eax
mov rax, QWORD PTR -16[rbp]
mov DWORD PTR 8[rax], edx
mov rax, QWORD PTR -16[rbp]
mov edx, DWORD PTR 8[rax]
mov rax, QWORD PTR -16[rbp]
mov eax, DWORD PTR 12[rax]
sub edx, eax
mov eax, edx
lea edx, 10[rax]
mov rax, QWORD PTR -16[rbp]
mov DWORD PTR 16[rax], edx
mov edx, DWORD PTR -28[rbp]
mov rax, QWORD PTR -8[rbp]
mov DWORD PTR 36[rax], edx
mov rax, QWORD PTR -8[rbp]
mov edx, DWORD PTR 36[rax]
mov eax, edx
sal eax, 3
add eax, edx
mov edx, -858993459
mul edx
shr edx, 3
mov rax, QWORD PTR -8[rbp]
mov DWORD PTR 40[rax], edx
mov rax, QWORD PTR -8[rbp]
mov rdi, rax
call pcache1EnforceMaxPage
.L2375:
nop
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE393:
.size pcache1Cachesize, .-pcache1Cachesize
.type pcache1Shrink, @function
pcache1Shrink:
.LFB394:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 48
mov QWORD PTR -40[rbp], rdi
mov rax, QWORD PTR -40[rbp]
mov QWORD PTR -8[rbp], rax
mov rax, QWORD PTR -8[rbp]
mov eax, DWORD PTR 28[rax]
test eax, eax
je .L2378
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR [rax]
mov QWORD PTR -16[rbp], rax
mov rax, QWORD PTR -16[rbp]
mov eax, DWORD PTR 8[rax]
mov DWORD PTR -20[rbp], eax
mov rax, QWORD PTR -16[rbp]
mov DWORD PTR 8[rax], 0
mov rax, QWORD PTR -8[rbp]
mov rdi, rax
call pcache1EnforceMaxPage
mov edx, DWORD PTR -20[rbp]
mov rax, QWORD PTR -16[rbp]
mov DWORD PTR 8[rax], edx
.L2378:
nop
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE394:
.size pcache1Shrink, .-pcache1Shrink
.type pcache1Pagecount, @function
pcache1Pagecount:
.LFB395:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
mov QWORD PTR -24[rbp], rdi
mov rax, QWORD PTR -24[rbp]
mov QWORD PTR -8[rbp], rax
mov rax, QWORD PTR -8[rbp]
mov eax, DWORD PTR 52[rax]
mov DWORD PTR -12[rbp], eax
mov eax, DWORD PTR -12[rbp]
pop rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE395:
.size pcache1Pagecount, .-pcache1Pagecount
.type pcache1FetchStage2, @function
pcache1FetchStage2:
.LFB396:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 64
mov QWORD PTR -56[rbp], rdi
mov DWORD PTR -60[rbp], esi
mov DWORD PTR -64[rbp], edx
mov rax, QWORD PTR -56[rbp]
mov rax, QWORD PTR [rax]
mov QWORD PTR -16[rbp], rax
mov QWORD PTR -8[rbp], 0
mov rax, QWORD PTR -56[rbp]
mov edx, DWORD PTR 52[rax]
mov rax, QWORD PTR -56[rbp]
mov eax, DWORD PTR 48[rax]
sub edx, eax
mov eax, edx
mov DWORD PTR -20[rbp], eax
cmp DWORD PTR -64[rbp], 1
jne .L2382
mov rax, QWORD PTR -16[rbp]
mov eax, DWORD PTR 16[rax]
cmp eax, DWORD PTR -20[rbp]
jbe .L2383
mov rax, QWORD PTR -56[rbp]
mov eax, DWORD PTR 40[rax]
cmp eax, DWORD PTR -20[rbp]
jbe .L2383
mov rax, QWORD PTR -56[rbp]
mov rdi, rax
call pcache1UnderMemoryPressure
test eax, eax
je .L2382
mov rax, QWORD PTR -56[rbp]
mov eax, DWORD PTR 48[rax]
cmp eax, DWORD PTR -20[rbp]
jnb .L2382
.L2383:
mov eax, 0
jmp .L2384
.L2382:
mov rax, QWORD PTR -56[rbp]
mov edx, DWORD PTR 52[rax]
mov rax, QWORD PTR -56[rbp]
mov eax, DWORD PTR 56[rax]
cmp edx, eax
jb .L2385
mov rax, QWORD PTR -56[rbp]
mov rdi, rax
call pcache1ResizeHash
.L2385:
mov rax, QWORD PTR -56[rbp]
mov eax, DWORD PTR 28[rax]
test eax, eax
je .L2386
mov rax, QWORD PTR -16[rbp]
mov rax, QWORD PTR 72[rax]
movzx eax, BYTE PTR 21[rax]
test al, al
jne .L2386
mov rax, QWORD PTR -56[rbp]
mov eax, DWORD PTR 52[rax]
lea edx, 1[rax]
mov rax, QWORD PTR -56[rbp]
mov eax, DWORD PTR 36[rax]
cmp edx, eax
jnb .L2387
mov rax, QWORD PTR -56[rbp]
mov rdi, rax
call pcache1UnderMemoryPressure
test eax, eax
je .L2386
.L2387:
mov rax, QWORD PTR -16[rbp]
mov rax, QWORD PTR 72[rax]
mov QWORD PTR -8[rbp], rax
mov rax, QWORD PTR -8[rbp]
mov esi, 0
mov rdi, rax
call pcache1RemoveFromHash
mov rax, QWORD PTR -8[rbp]
mov rdi, rax
call pcache1PinPage
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR 32[rax]
mov QWORD PTR -32[rbp], rax
mov rax, QWORD PTR -32[rbp]
mov edx, DWORD PTR 24[rax]
mov rax, QWORD PTR -56[rbp]
mov eax, DWORD PTR 24[rax]
cmp edx, eax
je .L2388
mov rax, QWORD PTR -8[rbp]
mov rdi, rax
call pcache1FreePage
mov QWORD PTR -8[rbp], 0
jmp .L2386
.L2388:
mov rax, QWORD PTR -16[rbp]
mov edx, DWORD PTR 20[rax]
mov rax, QWORD PTR -32[rbp]
mov ecx, DWORD PTR 28[rax]
mov rax, QWORD PTR -56[rbp]
mov eax, DWORD PTR 28[rax]
sub ecx, eax
mov eax, ecx
sub edx, eax
mov rax, QWORD PTR -16[rbp]
mov DWORD PTR 20[rax], edx
.L2386:
cmp QWORD PTR -8[rbp], 0
jne .L2389
cmp DWORD PTR -64[rbp], 1
sete al
movzx edx, al
mov rax, QWORD PTR -56[rbp]
mov esi, edx
mov rdi, rax
call pcache1AllocPage
mov QWORD PTR -8[rbp], rax
.L2389:
cmp QWORD PTR -8[rbp], 0
je .L2390
mov rax, QWORD PTR -56[rbp]
mov ecx, DWORD PTR 56[rax]
mov eax, DWORD PTR -60[rbp]
mov edx, 0
div ecx
mov DWORD PTR -36[rbp], edx
mov rax, QWORD PTR -56[rbp]
mov eax, DWORD PTR 52[rax]
lea edx, 1[rax]
mov rax, QWORD PTR -56[rbp]
mov DWORD PTR 52[rax], edx
mov rax, QWORD PTR -8[rbp]
mov edx, DWORD PTR -60[rbp]
mov DWORD PTR 16[rax], edx
mov rax, QWORD PTR -56[rbp]
mov rax, QWORD PTR 64[rax]
mov edx, DWORD PTR -36[rbp]
sal rdx, 3
add rax, rdx
mov rdx, QWORD PTR [rax]
mov rax, QWORD PTR -8[rbp]
mov QWORD PTR 24[rax], rdx
mov rax, QWORD PTR -8[rbp]
mov rdx, QWORD PTR -56[rbp]
mov QWORD PTR 32[rax], rdx
mov rax, QWORD PTR -8[rbp]
mov QWORD PTR 48[rax], 0
mov rax, QWORD PTR -8[rbp]
mov QWORD PTR 40[rax], 0
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR 8[rax]
mov QWORD PTR [rax], 0
mov rax, QWORD PTR -56[rbp]
mov rax, QWORD PTR 64[rax]
mov edx, DWORD PTR -36[rbp]
sal rdx, 3
add rdx, rax
mov rax, QWORD PTR -8[rbp]
mov QWORD PTR [rdx], rax
mov rax, QWORD PTR -56[rbp]
mov eax, DWORD PTR 44[rax]
cmp eax, DWORD PTR -60[rbp]
jnb .L2390
mov rax, QWORD PTR -56[rbp]
mov edx, DWORD PTR -60[rbp]
mov DWORD PTR 44[rax], edx
.L2390:
mov rax, QWORD PTR -8[rbp]
.L2384:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE396:
.size pcache1FetchStage2, .-pcache1FetchStage2
.type pcache1FetchNoMutex, @function
pcache1FetchNoMutex:
.LFB397:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 32
mov QWORD PTR -24[rbp], rdi
mov DWORD PTR -28[rbp], esi
mov DWORD PTR -32[rbp], edx
mov rax, QWORD PTR -24[rbp]
mov QWORD PTR -16[rbp], rax
mov QWORD PTR -8[rbp], 0
mov rax, QWORD PTR -16[rbp]
mov rcx, QWORD PTR 64[rax]
mov rax, QWORD PTR -16[rbp]
mov esi, DWORD PTR 56[rax]
mov eax, DWORD PTR -28[rbp]
mov edx, 0
div esi
mov eax, edx
mov eax, eax
sal rax, 3
add rax, rcx
mov rax, QWORD PTR [rax]
mov QWORD PTR -8[rbp], rax
jmp .L2392
.L2394:
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR 24[rax]
mov QWORD PTR -8[rbp], rax
.L2392:
cmp QWORD PTR -8[rbp], 0
je .L2393
mov rax, QWORD PTR -8[rbp]
mov eax, DWORD PTR 16[rax]
cmp eax, DWORD PTR -28[rbp]
jne .L2394
.L2393:
cmp QWORD PTR -8[rbp], 0
je .L2395
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR 40[rax]
test rax, rax
je .L2396
mov rax, QWORD PTR -8[rbp]
mov rdi, rax
call pcache1PinPage
jmp .L2397
.L2396:
mov rax, QWORD PTR -8[rbp]
jmp .L2397
.L2395:
cmp DWORD PTR -32[rbp], 0
je .L2398
mov edx, DWORD PTR -32[rbp]
mov ecx, DWORD PTR -28[rbp]
mov rax, QWORD PTR -16[rbp]
mov esi, ecx
mov rdi, rax
call pcache1FetchStage2
jmp .L2397
.L2398:
mov eax, 0
.L2397:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE397:
.size pcache1FetchNoMutex, .-pcache1FetchNoMutex
.type pcache1Fetch, @function
pcache1Fetch:
.LFB398:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 16
mov QWORD PTR -8[rbp], rdi
mov DWORD PTR -12[rbp], esi
mov DWORD PTR -16[rbp], edx
mov edx, DWORD PTR -16[rbp]
mov ecx, DWORD PTR -12[rbp]
mov rax, QWORD PTR -8[rbp]
mov esi, ecx
mov rdi, rax
call pcache1FetchNoMutex
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE398:
.size pcache1Fetch, .-pcache1Fetch
.type pcache1Unpin, @function
pcache1Unpin:
.LFB399:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 64
mov QWORD PTR -40[rbp], rdi
mov QWORD PTR -48[rbp], rsi
mov DWORD PTR -52[rbp], edx
mov rax, QWORD PTR -40[rbp]
mov QWORD PTR -8[rbp], rax
mov rax, QWORD PTR -48[rbp]
mov QWORD PTR -16[rbp], rax
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR [rax]
mov QWORD PTR -24[rbp], rax
cmp DWORD PTR -52[rbp], 0
jne .L2402
mov rax, QWORD PTR -24[rbp]
mov edx, DWORD PTR 20[rax]
mov rax, QWORD PTR -24[rbp]
mov eax, DWORD PTR 8[rax]
cmp edx, eax
jbe .L2403
.L2402:
mov rax, QWORD PTR -16[rbp]
mov esi, 1
mov rdi, rax
call pcache1RemoveFromHash
jmp .L2404
.L2403:
mov rax, QWORD PTR -24[rbp]
add rax, 64
mov QWORD PTR -32[rbp], rax
mov rax, QWORD PTR -24[rbp]
lea rdx, 24[rax]
mov rax, QWORD PTR -16[rbp]
mov QWORD PTR 48[rax], rdx
mov rax, QWORD PTR -32[rbp]
mov rdx, QWORD PTR [rax]
mov rax, QWORD PTR -16[rbp]
mov QWORD PTR 40[rax], rdx
mov rax, QWORD PTR -16[rbp]
mov rax, QWORD PTR 40[rax]
mov rdx, QWORD PTR -16[rbp]
mov QWORD PTR 48[rax], rdx
mov rax, QWORD PTR -32[rbp]
mov rdx, QWORD PTR -16[rbp]
mov QWORD PTR [rax], rdx
mov rax, QWORD PTR -8[rbp]
mov eax, DWORD PTR 48[rax]
lea edx, 1[rax]
mov rax, QWORD PTR -8[rbp]
mov DWORD PTR 48[rax], edx
.L2404:
nop
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE399:
.size pcache1Unpin, .-pcache1Unpin
.type pcache1Rekey, @function
pcache1Rekey:
.LFB400:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
mov QWORD PTR -40[rbp], rdi
mov QWORD PTR -48[rbp], rsi
mov DWORD PTR -52[rbp], edx
mov DWORD PTR -56[rbp], ecx
mov rax, QWORD PTR -40[rbp]
mov QWORD PTR -16[rbp], rax
mov rax, QWORD PTR -48[rbp]
mov QWORD PTR -24[rbp], rax
mov rax, QWORD PTR -16[rbp]
mov ecx, DWORD PTR 56[rax]
mov eax, DWORD PTR -52[rbp]
mov edx, 0
div ecx
mov DWORD PTR -28[rbp], edx
mov rax, QWORD PTR -16[rbp]
mov rax, QWORD PTR 64[rax]
mov edx, DWORD PTR -28[rbp]
sal rdx, 3
add rax, rdx
mov QWORD PTR -8[rbp], rax
jmp .L2406
.L2407:
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR [rax]
add rax, 24
mov QWORD PTR -8[rbp], rax
.L2406:
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR [rax]
cmp rax, QWORD PTR -24[rbp]
jne .L2407
mov rax, QWORD PTR -24[rbp]
mov rdx, QWORD PTR 24[rax]
mov rax, QWORD PTR -8[rbp]
mov QWORD PTR [rax], rdx
mov rax, QWORD PTR -16[rbp]
mov ecx, DWORD PTR 56[rax]
mov eax, DWORD PTR -56[rbp]
mov edx, 0
div ecx
mov DWORD PTR -28[rbp], edx
mov rax, QWORD PTR -24[rbp]
mov edx, DWORD PTR -56[rbp]
mov DWORD PTR 16[rax], edx
mov rax, QWORD PTR -16[rbp]
mov rax, QWORD PTR 64[rax]
mov edx, DWORD PTR -28[rbp]
sal rdx, 3
add rax, rdx
mov rdx, QWORD PTR [rax]
mov rax, QWORD PTR -24[rbp]
mov QWORD PTR 24[rax], rdx
mov rax, QWORD PTR -16[rbp]
mov rax, QWORD PTR 64[rax]
mov edx, DWORD PTR -28[rbp]
sal rdx, 3
add rdx, rax
mov rax, QWORD PTR -24[rbp]
mov QWORD PTR [rdx], rax
mov rax, QWORD PTR -16[rbp]
mov eax, DWORD PTR 44[rax]
cmp eax, DWORD PTR -56[rbp]
jnb .L2409
mov rax, QWORD PTR -16[rbp]
mov edx, DWORD PTR -56[rbp]
mov DWORD PTR 44[rax], edx
.L2409:
nop
pop rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE400:
.size pcache1Rekey, .-pcache1Rekey
.type pcache1Truncate, @function
pcache1Truncate:
.LFB401:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 32
mov QWORD PTR -24[rbp], rdi
mov DWORD PTR -28[rbp], esi
mov rax, QWORD PTR -24[rbp]
mov QWORD PTR -8[rbp], rax
mov rax, QWORD PTR -8[rbp]
mov eax, DWORD PTR 44[rax]
cmp eax, DWORD PTR -28[rbp]
jb .L2412
mov edx, DWORD PTR -28[rbp]
mov rax, QWORD PTR -8[rbp]
mov esi, edx
mov rdi, rax
call pcache1TruncateUnsafe
mov eax, DWORD PTR -28[rbp]
lea edx, -1[rax]
mov rax, QWORD PTR -8[rbp]
mov DWORD PTR 44[rax], edx
.L2412:
nop
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE401:
.size pcache1Truncate, .-pcache1Truncate
.type pcache1Destroy, @function
pcache1Destroy:
.LFB402:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 32
mov QWORD PTR -24[rbp], rdi
mov rax, QWORD PTR -24[rbp]
mov QWORD PTR -8[rbp], rax
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR [rax]
mov QWORD PTR -16[rbp], rax
mov rax, QWORD PTR -8[rbp]
mov eax, DWORD PTR 52[rax]
test eax, eax
je .L2414
mov rax, QWORD PTR -8[rbp]
mov esi, 0
mov rdi, rax
call pcache1TruncateUnsafe
.L2414:
mov rax, QWORD PTR -16[rbp]
mov edx, DWORD PTR 8[rax]
mov rax, QWORD PTR -8[rbp]
mov eax, DWORD PTR 36[rax]
sub edx, eax
mov rax, QWORD PTR -16[rbp]
mov DWORD PTR 8[rax], edx
mov rax, QWORD PTR -16[rbp]
mov edx, DWORD PTR 12[rax]
mov rax, QWORD PTR -8[rbp]
mov eax, DWORD PTR 32[rax]
sub edx, eax
mov rax, QWORD PTR -16[rbp]
mov DWORD PTR 12[rax], edx
mov rax, QWORD PTR -16[rbp]
mov edx, DWORD PTR 8[rax]
mov rax, QWORD PTR -16[rbp]
mov eax, DWORD PTR 12[rax]
sub edx, eax
mov eax, edx
lea edx, 10[rax]
mov rax, QWORD PTR -16[rbp]
mov DWORD PTR 16[rax], edx
mov rax, QWORD PTR -8[rbp]
mov rdi, rax
call pcache1EnforceMaxPage
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR 80[rax]
mov rdi, rax
call sqlite3_free
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR 64[rax]
mov rdi, rax
call sqlite3_free
mov rax, QWORD PTR -8[rbp]
mov rdi, rax
call sqlite3_free
nop
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE402:
.size pcache1Destroy, .-pcache1Destroy
.type sqlite3PCacheSetDefault, @function
sqlite3PCacheSetDefault:
.LFB403:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
lea rsi, defaultMethods.13366[rip]
mov edi, 18
mov eax, 0
call sqlite3_config
nop
pop rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE403:
.size sqlite3PCacheSetDefault, .-sqlite3PCacheSetDefault
.type sqlite3HeaderSizePcache1, @function
sqlite3HeaderSizePcache1:
.LFB404:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
mov eax, 56
pop rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE404:
.size sqlite3HeaderSizePcache1, .-sqlite3HeaderSizePcache1
.type sqlite3Pcache1Mutex, @function
sqlite3Pcache1Mutex:
.LFB405:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
mov rax, QWORD PTR pcache1_g[rip+120]
pop rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE405:
.size sqlite3Pcache1Mutex, .-sqlite3Pcache1Mutex
.type sqlite3RowSetInit, @function
sqlite3RowSetInit:
.LFB406:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
mov QWORD PTR -24[rbp], rdi
mov QWORD PTR -32[rbp], rsi
mov DWORD PTR -36[rbp], edx
mov rax, QWORD PTR -32[rbp]
mov QWORD PTR -8[rbp], rax
mov rax, QWORD PTR -8[rbp]
mov QWORD PTR [rax], 0
mov rax, QWORD PTR -8[rbp]
mov rdx, QWORD PTR -24[rbp]
mov QWORD PTR 8[rax], rdx
mov rax, QWORD PTR -8[rbp]
mov QWORD PTR 16[rax], 0
mov rax, QWORD PTR -8[rbp]
mov QWORD PTR 24[rax], 0
mov rax, QWORD PTR -8[rbp]
mov QWORD PTR 40[rax], 0
mov rax, QWORD PTR -8[rbp]
lea rdx, 56[rax]
mov rax, QWORD PTR -8[rbp]
mov QWORD PTR 32[rax], rdx
mov eax, DWORD PTR -36[rbp]
sub rax, 56
movabs rdx, -6148914691236517205
mul rdx
mov rax, rdx
shr rax, 4
mov edx, eax
mov rax, QWORD PTR -8[rbp]
mov WORD PTR 48[rax], dx
mov rax, QWORD PTR -8[rbp]
mov WORD PTR 50[rax], 1
mov rax, QWORD PTR -8[rbp]
mov DWORD PTR 52[rax], 0
mov rax, QWORD PTR -8[rbp]
pop rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE406:
.size sqlite3RowSetInit, .-sqlite3RowSetInit
.type sqlite3RowSetClear, @function
sqlite3RowSetClear:
.LFB407:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 32
mov QWORD PTR -24[rbp], rdi
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR [rax]
mov QWORD PTR -8[rbp], rax
jmp .L2423
.L2424:
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR [rax]
mov QWORD PTR -16[rbp], rax
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 8[rax]
mov rdx, QWORD PTR -8[rbp]
mov rsi, rdx
mov rdi, rax
call sqlite3DbFree
mov rax, QWORD PTR -16[rbp]
mov QWORD PTR -8[rbp], rax
.L2423:
cmp QWORD PTR -8[rbp], 0
jne .L2424
mov rax, QWORD PTR -24[rbp]
mov QWORD PTR [rax], 0
mov rax, QWORD PTR -24[rbp]
mov WORD PTR 48[rax], 0
mov rax, QWORD PTR -24[rbp]
mov QWORD PTR 16[rax], 0
mov rax, QWORD PTR -24[rbp]
mov QWORD PTR 24[rax], 0
mov rax, QWORD PTR -24[rbp]
mov QWORD PTR 40[rax], 0
mov rax, QWORD PTR -24[rbp]
mov WORD PTR 50[rax], 1
nop
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE407:
.size sqlite3RowSetClear, .-sqlite3RowSetClear
.type rowSetEntryAlloc, @function
rowSetEntryAlloc:
.LFB408:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 32
mov QWORD PTR -24[rbp], rdi
mov rax, QWORD PTR -24[rbp]
movzx eax, WORD PTR 48[rax]
test ax, ax
jne .L2426
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 8[rax]
mov esi, 1016
mov rdi, rax
call sqlite3DbMallocRawNN
mov QWORD PTR -8[rbp], rax
cmp QWORD PTR -8[rbp], 0
jne .L2427
mov eax, 0
jmp .L2428
.L2427:
mov rax, QWORD PTR -24[rbp]
mov rdx, QWORD PTR [rax]
mov rax, QWORD PTR -8[rbp]
mov QWORD PTR [rax], rdx
mov rax, QWORD PTR -24[rbp]
mov rdx, QWORD PTR -8[rbp]
mov QWORD PTR [rax], rdx
mov rax, QWORD PTR -8[rbp]
lea rdx, 8[rax]
mov rax, QWORD PTR -24[rbp]
mov QWORD PTR 32[rax], rdx
mov rax, QWORD PTR -24[rbp]
mov WORD PTR 48[rax], 42
.L2426:
mov rax, QWORD PTR -24[rbp]
movzx eax, WORD PTR 48[rax]
lea edx, -1[rax]
mov rax, QWORD PTR -24[rbp]
mov WORD PTR 48[rax], dx
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 32[rax]
lea rcx, 24[rax]
mov rdx, QWORD PTR -24[rbp]
mov QWORD PTR 32[rdx], rcx
.L2428:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE408:
.size rowSetEntryAlloc, .-rowSetEntryAlloc
.type sqlite3RowSetInsert, @function
sqlite3RowSetInsert:
.LFB409:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 32
mov QWORD PTR -24[rbp], rdi
mov QWORD PTR -32[rbp], rsi
mov rax, QWORD PTR -24[rbp]
mov rdi, rax
call rowSetEntryAlloc
mov QWORD PTR -8[rbp], rax
cmp QWORD PTR -8[rbp], 0
je .L2435
mov rax, QWORD PTR -8[rbp]
mov rdx, QWORD PTR -32[rbp]
mov QWORD PTR [rax], rdx
mov rax, QWORD PTR -8[rbp]
mov QWORD PTR 8[rax], 0
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 24[rax]
mov QWORD PTR -16[rbp], rax
cmp QWORD PTR -16[rbp], 0
je .L2432
mov rax, QWORD PTR -16[rbp]
mov rax, QWORD PTR [rax]
cmp rax, QWORD PTR -32[rbp]
jl .L2433
mov rax, QWORD PTR -24[rbp]
movzx eax, WORD PTR 50[rax]
and eax, -2
mov edx, eax
mov rax, QWORD PTR -24[rbp]
mov WORD PTR 50[rax], dx
.L2433:
mov rax, QWORD PTR -16[rbp]
mov rdx, QWORD PTR -8[rbp]
mov QWORD PTR 8[rax], rdx
jmp .L2434
.L2432:
mov rax, QWORD PTR -24[rbp]
mov rdx, QWORD PTR -8[rbp]
mov QWORD PTR 16[rax], rdx
.L2434:
mov rax, QWORD PTR -24[rbp]
mov rdx, QWORD PTR -8[rbp]
mov QWORD PTR 24[rax], rdx
jmp .L2429
.L2435:
nop
.L2429:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE409:
.size sqlite3RowSetInsert, .-sqlite3RowSetInsert
.type rowSetEntryMerge, @function
rowSetEntryMerge:
.LFB410:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
mov QWORD PTR -40[rbp], rdi
mov QWORD PTR -48[rbp], rsi
lea rax, -32[rbp]
mov QWORD PTR -8[rbp], rax
.L2441:
mov rax, QWORD PTR -40[rbp]
mov rdx, QWORD PTR [rax]
mov rax, QWORD PTR -48[rbp]
mov rax, QWORD PTR [rax]
cmp rdx, rax
jg .L2437
mov rax, QWORD PTR -40[rbp]
mov rdx, QWORD PTR [rax]
mov rax, QWORD PTR -48[rbp]
mov rax, QWORD PTR [rax]
cmp rdx, rax
jge .L2438
mov rax, QWORD PTR -8[rbp]
mov rdx, QWORD PTR -40[rbp]
mov QWORD PTR 8[rax], rdx
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR 8[rax]
mov QWORD PTR -8[rbp], rax
.L2438:
mov rax, QWORD PTR -40[rbp]
mov rax, QWORD PTR 8[rax]
mov QWORD PTR -40[rbp], rax
cmp QWORD PTR -40[rbp], 0
jne .L2441
mov rax, QWORD PTR -8[rbp]
mov rdx, QWORD PTR -48[rbp]
mov QWORD PTR 8[rax], rdx
jmp .L2440
.L2437:
mov rax, QWORD PTR -8[rbp]
mov rdx, QWORD PTR -48[rbp]
mov QWORD PTR 8[rax], rdx
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR 8[rax]
mov QWORD PTR -8[rbp], rax
mov rax, QWORD PTR -48[rbp]
mov rax, QWORD PTR 8[rax]
mov QWORD PTR -48[rbp], rax
cmp QWORD PTR -48[rbp], 0
jne .L2441
mov rax, QWORD PTR -8[rbp]
mov rdx, QWORD PTR -40[rbp]
mov QWORD PTR 8[rax], rdx
.L2440:
mov rax, QWORD PTR -24[rbp]
pop rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE410:
.size rowSetEntryMerge, .-rowSetEntryMerge
.type rowSetEntrySort, @function
rowSetEntrySort:
.LFB411:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 352
mov QWORD PTR -344[rbp], rdi
lea rax, -336[rbp]
mov edx, 320
mov esi, 0
mov rdi, rax
call memset@PLT
jmp .L2444
.L2447:
mov rax, QWORD PTR -344[rbp]
mov rax, QWORD PTR 8[rax]
mov QWORD PTR -16[rbp], rax
mov rax, QWORD PTR -344[rbp]
mov QWORD PTR 8[rax], 0
mov DWORD PTR -4[rbp], 0
jmp .L2445
.L2446:
mov eax, DWORD PTR -4[rbp]
mov rax, QWORD PTR -336[rbp+rax*8]
mov rdx, QWORD PTR -344[rbp]
mov rsi, rdx
mov rdi, rax
call rowSetEntryMerge
mov QWORD PTR -344[rbp], rax
mov eax, DWORD PTR -4[rbp]
mov QWORD PTR -336[rbp+rax*8], 0
add DWORD PTR -4[rbp], 1
.L2445:
mov eax, DWORD PTR -4[rbp]
mov rax, QWORD PTR -336[rbp+rax*8]
test rax, rax
jne .L2446
mov eax, DWORD PTR -4[rbp]
mov rdx, QWORD PTR -344[rbp]
mov QWORD PTR -336[rbp+rax*8], rdx
mov rax, QWORD PTR -16[rbp]
mov QWORD PTR -344[rbp], rax
.L2444:
cmp QWORD PTR -344[rbp], 0
jne .L2447
mov rax, QWORD PTR -336[rbp]
mov QWORD PTR -344[rbp], rax
mov DWORD PTR -4[rbp], 1
jmp .L2448
.L2453:
mov eax, DWORD PTR -4[rbp]
mov rax, QWORD PTR -336[rbp+rax*8]
test rax, rax
je .L2455
cmp QWORD PTR -344[rbp], 0
je .L2451
mov eax, DWORD PTR -4[rbp]
mov rdx, QWORD PTR -336[rbp+rax*8]
mov rax, QWORD PTR -344[rbp]
mov rsi, rdx
mov rdi, rax
call rowSetEntryMerge
jmp .L2452
.L2451:
mov eax, DWORD PTR -4[rbp]
mov rax, QWORD PTR -336[rbp+rax*8]
.L2452:
mov QWORD PTR -344[rbp], rax
jmp .L2450
.L2455:
nop
.L2450:
add DWORD PTR -4[rbp], 1
.L2448:
cmp DWORD PTR -4[rbp], 39
jbe .L2453
mov rax, QWORD PTR -344[rbp]
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE411:
.size rowSetEntrySort, .-rowSetEntrySort
.type rowSetTreeToList, @function
rowSetTreeToList:
.LFB412:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 48
mov QWORD PTR -24[rbp], rdi
mov QWORD PTR -32[rbp], rsi
mov QWORD PTR -40[rbp], rdx
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 16[rax]
test rax, rax
je .L2457
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 16[rax]
lea rdx, -8[rbp]
mov rcx, QWORD PTR -32[rbp]
mov rsi, rcx
mov rdi, rax
call rowSetTreeToList
mov rax, QWORD PTR -8[rbp]
mov rdx, QWORD PTR -24[rbp]
mov QWORD PTR 8[rax], rdx
jmp .L2458
.L2457:
mov rax, QWORD PTR -32[rbp]
mov rdx, QWORD PTR -24[rbp]
mov QWORD PTR [rax], rdx
.L2458:
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 8[rax]
test rax, rax
je .L2459
mov rax, QWORD PTR -24[rbp]
lea rcx, 8[rax]
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 8[rax]
mov rdx, QWORD PTR -40[rbp]
mov rsi, rcx
mov rdi, rax
call rowSetTreeToList
jmp .L2461
.L2459:
mov rax, QWORD PTR -40[rbp]
mov rdx, QWORD PTR -24[rbp]
mov QWORD PTR [rax], rdx
.L2461:
nop
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE412:
.size rowSetTreeToList, .-rowSetTreeToList
.type rowSetNDeepTree, @function
rowSetNDeepTree:
.LFB413:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 32
mov QWORD PTR -24[rbp], rdi
mov DWORD PTR -28[rbp], esi
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR [rax]
test rax, rax
jne .L2463
mov eax, 0
jmp .L2464
.L2463:
cmp DWORD PTR -28[rbp], 1
jle .L2465
mov eax, DWORD PTR -28[rbp]
lea edx, -1[rax]
mov rax, QWORD PTR -24[rbp]
mov esi, edx
mov rdi, rax
call rowSetNDeepTree
mov QWORD PTR -16[rbp], rax
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR [rax]
mov QWORD PTR -8[rbp], rax
cmp QWORD PTR -8[rbp], 0
jne .L2466
mov rax, QWORD PTR -16[rbp]
jmp .L2464
.L2466:
mov rax, QWORD PTR -8[rbp]
mov rdx, QWORD PTR -16[rbp]
mov QWORD PTR 16[rax], rdx
mov rax, QWORD PTR -8[rbp]
mov rdx, QWORD PTR 8[rax]
mov rax, QWORD PTR -24[rbp]
mov QWORD PTR [rax], rdx
mov eax, DWORD PTR -28[rbp]
lea edx, -1[rax]
mov rax, QWORD PTR -24[rbp]
mov esi, edx
mov rdi, rax
call rowSetNDeepTree
mov rdx, rax
mov rax, QWORD PTR -8[rbp]
mov QWORD PTR 8[rax], rdx
jmp .L2467
.L2465:
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR [rax]
mov QWORD PTR -8[rbp], rax
mov rax, QWORD PTR -8[rbp]
mov rdx, QWORD PTR 8[rax]
mov rax, QWORD PTR -24[rbp]
mov QWORD PTR [rax], rdx
mov rax, QWORD PTR -8[rbp]
mov QWORD PTR 8[rax], 0
mov rax, QWORD PTR -8[rbp]
mov rdx, QWORD PTR 8[rax]
mov rax, QWORD PTR -8[rbp]
mov QWORD PTR 16[rax], rdx
.L2467:
mov rax, QWORD PTR -8[rbp]
.L2464:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE413:
.size rowSetNDeepTree, .-rowSetNDeepTree
.type rowSetListToTree, @function
rowSetListToTree:
.LFB414:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 48
mov QWORD PTR -40[rbp], rdi
mov rax, QWORD PTR -40[rbp]
mov QWORD PTR -16[rbp], rax
mov rax, QWORD PTR -16[rbp]
mov rax, QWORD PTR 8[rax]
mov QWORD PTR -40[rbp], rax
mov rax, QWORD PTR -16[rbp]
mov QWORD PTR 8[rax], 0
mov rax, QWORD PTR -16[rbp]
mov rdx, QWORD PTR 8[rax]
mov rax, QWORD PTR -16[rbp]
mov QWORD PTR 16[rax], rdx
mov DWORD PTR -4[rbp], 1
jmp .L2469
.L2470:
mov rax, QWORD PTR -16[rbp]
mov QWORD PTR -24[rbp], rax
mov rax, QWORD PTR -40[rbp]
mov QWORD PTR -16[rbp], rax
mov rax, QWORD PTR -16[rbp]
mov rax, QWORD PTR 8[rax]
mov QWORD PTR -40[rbp], rax
mov rax, QWORD PTR -16[rbp]
mov rdx, QWORD PTR -24[rbp]
mov QWORD PTR 16[rax], rdx
mov edx, DWORD PTR -4[rbp]
lea rax, -40[rbp]
mov esi, edx
mov rdi, rax
call rowSetNDeepTree
mov rdx, rax
mov rax, QWORD PTR -16[rbp]
mov QWORD PTR 8[rax], rdx
add DWORD PTR -4[rbp], 1
.L2469:
mov rax, QWORD PTR -40[rbp]
test rax, rax
jne .L2470
mov rax, QWORD PTR -16[rbp]
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE414:
.size rowSetListToTree, .-rowSetListToTree
.type sqlite3RowSetNext, @function
sqlite3RowSetNext:
.LFB415:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 16
mov QWORD PTR -8[rbp], rdi
mov QWORD PTR -16[rbp], rsi
mov rax, QWORD PTR -8[rbp]
movzx eax, WORD PTR 50[rax]
movzx eax, ax
and eax, 2
test eax, eax
jne .L2473
mov rax, QWORD PTR -8[rbp]
movzx eax, WORD PTR 50[rax]
movzx eax, ax
and eax, 1
test eax, eax
jne .L2474
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR 16[rax]
mov rdi, rax
call rowSetEntrySort
mov rdx, rax
mov rax, QWORD PTR -8[rbp]
mov QWORD PTR 16[rax], rdx
.L2474:
mov rax, QWORD PTR -8[rbp]
movzx eax, WORD PTR 50[rax]
or eax, 3
mov edx, eax
mov rax, QWORD PTR -8[rbp]
mov WORD PTR 50[rax], dx
.L2473:
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR 16[rax]
test rax, rax
je .L2475
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR 16[rax]
mov rdx, QWORD PTR [rax]
mov rax, QWORD PTR -16[rbp]
mov QWORD PTR [rax], rdx
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR 16[rax]
mov rdx, QWORD PTR 8[rax]
mov rax, QWORD PTR -8[rbp]
mov QWORD PTR 16[rax], rdx
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR 16[rax]
test rax, rax
jne .L2476
mov rax, QWORD PTR -8[rbp]
mov rdi, rax
call sqlite3RowSetClear
.L2476:
mov eax, 1
jmp .L2477
.L2475:
mov eax, 0
.L2477:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE415:
.size sqlite3RowSetNext, .-sqlite3RowSetNext
.type sqlite3RowSetTest, @function
sqlite3RowSetTest:
.LFB416:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 80
mov QWORD PTR -56[rbp], rdi
mov DWORD PTR -60[rbp], esi
mov QWORD PTR -72[rbp], rdx
mov rax, QWORD PTR -56[rbp]
mov eax, DWORD PTR 52[rax]
cmp eax, DWORD PTR -60[rbp]
je .L2479
mov rax, QWORD PTR -56[rbp]
mov rax, QWORD PTR 16[rax]
mov QWORD PTR -8[rbp], rax
cmp QWORD PTR -8[rbp], 0
je .L2480
mov rax, QWORD PTR -56[rbp]
add rax, 40
mov QWORD PTR -24[rbp], rax
mov rax, QWORD PTR -56[rbp]
movzx eax, WORD PTR 50[rax]
movzx eax, ax
and eax, 1
test eax, eax
jne .L2481
mov rax, QWORD PTR -8[rbp]
mov rdi, rax
call rowSetEntrySort
mov QWORD PTR -8[rbp], rax
.L2481:
mov rax, QWORD PTR -56[rbp]
mov rax, QWORD PTR 40[rax]
mov QWORD PTR -16[rbp], rax
jmp .L2482
.L2485:
mov rax, QWORD PTR -16[rbp]
add rax, 8
mov QWORD PTR -24[rbp], rax
mov rax, QWORD PTR -16[rbp]
mov rax, QWORD PTR 16[rax]
test rax, rax
jne .L2483
mov rax, QWORD PTR -8[rbp]
mov rdi, rax
call rowSetListToTree
mov rdx, rax
mov rax, QWORD PTR -16[rbp]
mov QWORD PTR 16[rax], rdx
jmp .L2484
.L2483:
mov rax, QWORD PTR -16[rbp]
mov rax, QWORD PTR 16[rax]
lea rdx, -40[rbp]
lea rcx, -32[rbp]
mov rsi, rcx
mov rdi, rax
call rowSetTreeToList
mov rax, QWORD PTR -16[rbp]
mov QWORD PTR 16[rax], 0
mov rax, QWORD PTR -32[rbp]
mov rdx, QWORD PTR -8[rbp]
mov rsi, rdx
mov rdi, rax
call rowSetEntryMerge
mov QWORD PTR -8[rbp], rax
mov rax, QWORD PTR -16[rbp]
mov rax, QWORD PTR 8[rax]
mov QWORD PTR -16[rbp], rax
.L2482:
cmp QWORD PTR -16[rbp], 0
jne .L2485
.L2484:
cmp QWORD PTR -16[rbp], 0
jne .L2486
mov rax, QWORD PTR -56[rbp]
mov rdi, rax
call rowSetEntryAlloc
mov QWORD PTR -16[rbp], rax
mov rax, QWORD PTR -24[rbp]
mov rdx, QWORD PTR -16[rbp]
mov QWORD PTR [rax], rdx
cmp QWORD PTR -16[rbp], 0
je .L2486
mov rax, QWORD PTR -16[rbp]
mov QWORD PTR [rax], 0
mov rax, QWORD PTR -16[rbp]
mov QWORD PTR 8[rax], 0
mov rax, QWORD PTR -8[rbp]
mov rdi, rax
call rowSetListToTree
mov rdx, rax
mov rax, QWORD PTR -16[rbp]
mov QWORD PTR 16[rax], rdx
.L2486:
mov rax, QWORD PTR -56[rbp]
mov QWORD PTR 16[rax], 0
mov rax, QWORD PTR -56[rbp]
mov QWORD PTR 24[rax], 0
mov rax, QWORD PTR -56[rbp]
movzx eax, WORD PTR 50[rax]
or eax, 1
mov edx, eax
mov rax, QWORD PTR -56[rbp]
mov WORD PTR 50[rax], dx
.L2480:
mov rax, QWORD PTR -56[rbp]
mov edx, DWORD PTR -60[rbp]
mov DWORD PTR 52[rax], edx
.L2479:
mov rax, QWORD PTR -56[rbp]
mov rax, QWORD PTR 40[rax]
mov QWORD PTR -16[rbp], rax
jmp .L2487
.L2493:
mov rax, QWORD PTR -16[rbp]
mov rax, QWORD PTR 16[rax]
mov QWORD PTR -8[rbp], rax
jmp .L2488
.L2492:
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR [rax]
cmp rax, QWORD PTR -72[rbp]
jge .L2489
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR 8[rax]
mov QWORD PTR -8[rbp], rax
jmp .L2488
.L2489:
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR [rax]
cmp rax, QWORD PTR -72[rbp]
jle .L2490
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR 16[rax]
mov QWORD PTR -8[rbp], rax
jmp .L2488
.L2490:
mov eax, 1
jmp .L2491
.L2488:
cmp QWORD PTR -8[rbp], 0
jne .L2492
mov rax, QWORD PTR -16[rbp]
mov rax, QWORD PTR 8[rax]
mov QWORD PTR -16[rbp], rax
.L2487:
cmp QWORD PTR -16[rbp], 0
jne .L2493
mov eax, 0
.L2491:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE416:
.size sqlite3RowSetTest, .-sqlite3RowSetTest
.section .rodata
.align 8
.type aJournalMagic, @object
.size aJournalMagic, 8
aJournalMagic:
.byte -39
.byte -43
.byte 5
.byte -7
.byte 32
.byte -95
.byte 99
.byte -41
.text
.type setGetterMethod, @function
setGetterMethod:
.LFB417:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
mov QWORD PTR -8[rbp], rdi
mov rax, QWORD PTR -8[rbp]
mov eax, DWORD PTR 44[rax]
test eax, eax
je .L2495
mov rax, QWORD PTR -8[rbp]
lea rdx, getPageError[rip]
mov QWORD PTR 264[rax], rdx
jmp .L2498
.L2495:
mov rax, QWORD PTR -8[rbp]
movzx eax, BYTE PTR 26[rax]
test al, al
je .L2497
mov rax, QWORD PTR -8[rbp]
lea rdx, getPageMMap[rip]
mov QWORD PTR 264[rax], rdx
jmp .L2498
.L2497:
mov rax, QWORD PTR -8[rbp]
lea rdx, getPageNormal[rip]
mov QWORD PTR 264[rax], rdx
.L2498:
nop
pop rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE417:
.size setGetterMethod, .-setGetterMethod
.type subjRequiresPage, @function
subjRequiresPage:
.LFB418:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 40
mov QWORD PTR -40[rbp], rdi
mov rax, QWORD PTR -40[rbp]
mov rax, QWORD PTR 40[rax]
mov QWORD PTR -16[rbp], rax
mov rax, QWORD PTR -40[rbp]
mov eax, DWORD PTR 48[rax]
mov DWORD PTR -20[rbp], eax
mov DWORD PTR -4[rbp], 0
jmp .L2500
.L2503:
mov rax, QWORD PTR -16[rbp]
mov rcx, QWORD PTR 120[rax]
mov eax, DWORD PTR -4[rbp]
movsx rdx, eax
mov rax, rdx
add rax, rax
add rax, rdx
sal rax, 4
add rax, rcx
mov QWORD PTR -32[rbp], rax
mov rax, QWORD PTR -32[rbp]
mov eax, DWORD PTR 24[rax]
cmp eax, DWORD PTR -20[rbp]
jb .L2501
mov rax, QWORD PTR -32[rbp]
mov rax, QWORD PTR 16[rax]
mov edx, DWORD PTR -20[rbp]
mov esi, edx
mov rdi, rax
call sqlite3BitvecTestNotNull
test eax, eax
jne .L2501
mov eax, 1
jmp .L2502
.L2501:
add DWORD PTR -4[rbp], 1
.L2500:
mov rax, QWORD PTR -16[rbp]
mov eax, DWORD PTR 128[rax]
cmp eax, DWORD PTR -4[rbp]
jg .L2503
mov eax, 0
.L2502:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE418:
.size subjRequiresPage, .-subjRequiresPage
.type read32bits, @function
read32bits:
.LFB419:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 48
mov QWORD PTR -24[rbp], rdi
mov QWORD PTR -32[rbp], rsi
mov QWORD PTR -40[rbp], rdx
mov rdx, QWORD PTR -32[rbp]
lea rsi, -8[rbp]
mov rax, QWORD PTR -24[rbp]
mov rcx, rdx
mov edx, 4
mov rdi, rax
call sqlite3OsRead
mov DWORD PTR -4[rbp], eax
cmp DWORD PTR -4[rbp], 0
jne .L2505
lea rax, -8[rbp]
mov rdi, rax
call sqlite3Get4byte
mov edx, eax
mov rax, QWORD PTR -40[rbp]
mov DWORD PTR [rax], edx
.L2505:
mov eax, DWORD PTR -4[rbp]
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE419:
.size read32bits, .-read32bits
.type write32bits, @function
write32bits:
.LFB420:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 48
mov QWORD PTR -24[rbp], rdi
mov QWORD PTR -32[rbp], rsi
mov DWORD PTR -36[rbp], edx
mov edx, DWORD PTR -36[rbp]
lea rax, -4[rbp]
mov esi, edx
mov rdi, rax
call sqlite3Put4byte
mov rdx, QWORD PTR -32[rbp]
lea rsi, -4[rbp]
mov rax, QWORD PTR -24[rbp]
mov rcx, rdx
mov edx, 4
mov rdi, rax
call sqlite3OsWrite
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE420:
.size write32bits, .-write32bits
.type pagerUnlockDb, @function
pagerUnlockDb:
.LFB421:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 32
mov QWORD PTR -24[rbp], rdi
mov DWORD PTR -28[rbp], esi
mov DWORD PTR -4[rbp], 0
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 72[rax]
mov rax, QWORD PTR [rax]
test rax, rax
je .L2510
mov rax, QWORD PTR -24[rbp]
movzx eax, BYTE PTR 17[rax]
test al, al
jne .L2511
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 72[rax]
mov edx, DWORD PTR -28[rbp]
mov esi, edx
mov rdi, rax
call sqlite3OsUnlock
jmp .L2512
.L2511:
mov eax, 0
.L2512:
mov DWORD PTR -4[rbp], eax
mov rax, QWORD PTR -24[rbp]
movzx eax, BYTE PTR 21[rax]
cmp al, 5
je .L2510
mov eax, DWORD PTR -28[rbp]
mov edx, eax
mov rax, QWORD PTR -24[rbp]
mov BYTE PTR 21[rax], dl
.L2510:
mov eax, DWORD PTR -4[rbp]
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE421:
.size pagerUnlockDb, .-pagerUnlockDb
.type pagerLockDb, @function
pagerLockDb:
.LFB422:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 32
mov QWORD PTR -24[rbp], rdi
mov DWORD PTR -28[rbp], esi
mov DWORD PTR -4[rbp], 0
mov rax, QWORD PTR -24[rbp]
movzx eax, BYTE PTR 21[rax]
movzx eax, al
cmp eax, DWORD PTR -28[rbp]
jl .L2515
mov rax, QWORD PTR -24[rbp]
movzx eax, BYTE PTR 21[rax]
cmp al, 5
jne .L2516
.L2515:
mov rax, QWORD PTR -24[rbp]
movzx eax, BYTE PTR 17[rax]
test al, al
jne .L2517
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 72[rax]
mov edx, DWORD PTR -28[rbp]
mov esi, edx
mov rdi, rax
call sqlite3OsLock
jmp .L2518
.L2517:
mov eax, 0
.L2518:
mov DWORD PTR -4[rbp], eax
cmp DWORD PTR -4[rbp], 0
jne .L2516
mov rax, QWORD PTR -24[rbp]
movzx eax, BYTE PTR 21[rax]
cmp al, 5
jne .L2519
cmp DWORD PTR -28[rbp], 4
jne .L2516
.L2519:
mov eax, DWORD PTR -28[rbp]
mov edx, eax
mov rax, QWORD PTR -24[rbp]
mov BYTE PTR 21[rax], dl
.L2516:
mov eax, DWORD PTR -4[rbp]
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE422:
.size pagerLockDb, .-pagerLockDb
.type jrnlBufferSize, @function
jrnlBufferSize:
.LFB423:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
mov QWORD PTR -8[rbp], rdi
mov eax, 0
pop rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE423:
.size jrnlBufferSize, .-jrnlBufferSize
.type readMasterJournal, @function
readMasterJournal:
.LFB424:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 80
mov QWORD PTR -56[rbp], rdi
mov QWORD PTR -64[rbp], rsi
mov DWORD PTR -68[rbp], edx
mov rax, QWORD PTR -64[rbp]
mov BYTE PTR [rax], 0
lea rdx, -24[rbp]
mov rax, QWORD PTR -56[rbp]
mov rsi, rdx
mov rdi, rax
call sqlite3OsFileSize
mov DWORD PTR -4[rbp], eax
cmp DWORD PTR -4[rbp], 0
jne .L2524
mov rax, QWORD PTR -24[rbp]
cmp rax, 15
jle .L2524
mov rax, QWORD PTR -24[rbp]
lea rcx, -16[rax]
lea rdx, -12[rbp]
mov rax, QWORD PTR -56[rbp]
mov rsi, rcx
mov rdi, rax
call read32bits
mov DWORD PTR -4[rbp], eax
cmp DWORD PTR -4[rbp], 0
jne .L2524
mov eax, DWORD PTR -12[rbp]
cmp eax, DWORD PTR -68[rbp]
jnb .L2524
mov eax, DWORD PTR -12[rbp]
mov edx, eax
mov rax, QWORD PTR -24[rbp]
sub rax, 16
cmp rdx, rax
jg .L2524
mov eax, DWORD PTR -12[rbp]
test eax, eax
je .L2524
mov rax, QWORD PTR -24[rbp]
lea rcx, -12[rax]
lea rdx, -28[rbp]
mov rax, QWORD PTR -56[rbp]
mov rsi, rcx
mov rdi, rax
call read32bits
mov DWORD PTR -4[rbp], eax
cmp DWORD PTR -4[rbp], 0
jne .L2524
mov rax, QWORD PTR -24[rbp]
lea rdx, -8[rax]
lea rsi, -36[rbp]
mov rax, QWORD PTR -56[rbp]
mov rcx, rdx
mov edx, 8
mov rdi, rax
call sqlite3OsRead
mov DWORD PTR -4[rbp], eax
cmp DWORD PTR -4[rbp], 0
jne .L2524
lea rax, -36[rbp]
mov edx, 8
lea rsi, aJournalMagic[rip]
mov rdi, rax
call memcmp@PLT
test eax, eax
jne .L2524
mov rax, QWORD PTR -24[rbp]
sub rax, 16
mov edx, DWORD PTR -12[rbp]
mov edx, edx
sub rax, rdx
mov rdx, rax
mov eax, DWORD PTR -12[rbp]
mov edi, eax
mov rsi, QWORD PTR -64[rbp]
mov rax, QWORD PTR -56[rbp]
mov rcx, rdx
mov edx, edi
mov rdi, rax
call sqlite3OsRead
mov DWORD PTR -4[rbp], eax
cmp DWORD PTR -4[rbp], 0
je .L2525
.L2524:
mov eax, DWORD PTR -4[rbp]
jmp .L2530
.L2525:
mov DWORD PTR -8[rbp], 0
jmp .L2527
.L2528:
mov edx, DWORD PTR -28[rbp]
mov ecx, DWORD PTR -8[rbp]
mov rax, QWORD PTR -64[rbp]
add rax, rcx
movzx eax, BYTE PTR [rax]
movsx eax, al
sub edx, eax
mov eax, edx
mov DWORD PTR -28[rbp], eax
add DWORD PTR -8[rbp], 1
.L2527:
mov eax, DWORD PTR -12[rbp]
cmp DWORD PTR -8[rbp], eax
jb .L2528
mov eax, DWORD PTR -28[rbp]
test eax, eax
je .L2529
mov DWORD PTR -12[rbp], 0
.L2529:
mov eax, DWORD PTR -12[rbp]
mov edx, eax
mov rax, QWORD PTR -64[rbp]
add rax, rdx
mov BYTE PTR [rax], 0
mov eax, 0
.L2530:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE424:
.size readMasterJournal, .-readMasterJournal
.type journalHdrOffset, @function
journalHdrOffset:
.LFB425:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
mov QWORD PTR -24[rbp], rdi
mov QWORD PTR -8[rbp], 0
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 96[rax]
mov QWORD PTR -16[rbp], rax
cmp QWORD PTR -16[rbp], 0
je .L2532
mov rax, QWORD PTR -16[rbp]
lea rdx, -1[rax]
mov rax, QWORD PTR -24[rbp]
mov eax, DWORD PTR 184[rax]
mov ecx, eax
mov rax, rdx
cqo
idiv rcx
lea rdx, 1[rax]
mov rax, QWORD PTR -24[rbp]
mov eax, DWORD PTR 184[rax]
mov eax, eax
imul rax, rdx
mov QWORD PTR -8[rbp], rax
.L2532:
mov rax, QWORD PTR -8[rbp]
pop rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE425:
.size journalHdrOffset, .-journalHdrOffset
.type zeroJournalHdr, @function
zeroJournalHdr:
.LFB426:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 48
mov QWORD PTR -40[rbp], rdi
mov DWORD PTR -44[rbp], esi
mov DWORD PTR -4[rbp], 0
mov rax, QWORD PTR -40[rbp]
mov rax, QWORD PTR 96[rax]
test rax, rax
je .L2535
mov rax, QWORD PTR -40[rbp]
mov rax, QWORD PTR 200[rax]
mov QWORD PTR -16[rbp], rax
cmp DWORD PTR -44[rbp], 0
jne .L2536
cmp QWORD PTR -16[rbp], 0
jne .L2537
.L2536:
mov rax, QWORD PTR -40[rbp]
mov rax, QWORD PTR 80[rax]
mov esi, 0
mov rdi, rax
call sqlite3OsTruncate
mov DWORD PTR -4[rbp], eax
jmp .L2538
.L2537:
mov rax, QWORD PTR -40[rbp]
mov rax, QWORD PTR 80[rax]
mov ecx, 0
mov edx, 28
lea rsi, zeroHdr.13714[rip]
mov rdi, rax
call sqlite3OsWrite
mov DWORD PTR -4[rbp], eax
.L2538:
cmp DWORD PTR -4[rbp], 0
jne .L2539
mov rax, QWORD PTR -40[rbp]
movzx eax, BYTE PTR 11[rax]
test al, al
jne .L2539
mov rax, QWORD PTR -40[rbp]
movzx eax, BYTE PTR 14[rax]
or eax, 16
movzx edx, al
mov rax, QWORD PTR -40[rbp]
mov rax, QWORD PTR 80[rax]
mov esi, edx
mov rdi, rax
call sqlite3OsSync
mov DWORD PTR -4[rbp], eax
.L2539:
cmp DWORD PTR -4[rbp], 0
jne .L2535
cmp QWORD PTR -16[rbp], 0
jle .L2535
mov rax, QWORD PTR -40[rbp]
mov rax, QWORD PTR 80[rax]
lea rdx, -24[rbp]
mov rsi, rdx
mov rdi, rax
call sqlite3OsFileSize
mov DWORD PTR -4[rbp], eax
cmp DWORD PTR -4[rbp], 0
jne .L2535
mov rax, QWORD PTR -24[rbp]
cmp rax, QWORD PTR -16[rbp]
jle .L2535
mov rax, QWORD PTR -40[rbp]
mov rax, QWORD PTR 80[rax]
mov rdx, QWORD PTR -16[rbp]
mov rsi, rdx
mov rdi, rax
call sqlite3OsTruncate
mov DWORD PTR -4[rbp], eax
.L2535:
mov eax, DWORD PTR -4[rbp]
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE426:
.size zeroJournalHdr, .-zeroJournalHdr
.type writeJournalHdr, @function
writeJournalHdr:
.LFB427:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 48
mov QWORD PTR -40[rbp], rdi
mov DWORD PTR -4[rbp], 0
mov rax, QWORD PTR -40[rbp]
mov rax, QWORD PTR 272[rax]
mov QWORD PTR -24[rbp], rax
mov rax, QWORD PTR -40[rbp]
mov eax, DWORD PTR 188[rax]
mov DWORD PTR -8[rbp], eax
mov rax, QWORD PTR -40[rbp]
mov eax, DWORD PTR 184[rax]
cmp eax, DWORD PTR -8[rbp]
jnb .L2543
mov rax, QWORD PTR -40[rbp]
mov eax, DWORD PTR 184[rax]
mov DWORD PTR -8[rbp], eax
.L2543:
mov DWORD PTR -16[rbp], 0
jmp .L2544
.L2546:
mov rax, QWORD PTR -40[rbp]
mov rcx, QWORD PTR 120[rax]
mov eax, DWORD PTR -16[rbp]
movsx rdx, eax
mov rax, rdx
add rax, rax
add rax, rdx
sal rax, 4
add rax, rcx
mov rax, QWORD PTR 8[rax]
test rax, rax
jne .L2545
mov rax, QWORD PTR -40[rbp]
mov rcx, QWORD PTR 120[rax]
mov eax, DWORD PTR -16[rbp]
movsx rdx, eax
mov rax, rdx
add rax, rax
add rax, rdx
sal rax, 4
lea rdx, [rcx+rax]
mov rax, QWORD PTR -40[rbp]
mov rax, QWORD PTR 96[rax]
mov QWORD PTR 8[rdx], rax
.L2545:
add DWORD PTR -16[rbp], 1
.L2544:
mov rax, QWORD PTR -40[rbp]
mov eax, DWORD PTR 128[rax]
cmp eax, DWORD PTR -16[rbp]
jg .L2546
mov rax, QWORD PTR -40[rbp]
mov rdi, rax
call journalHdrOffset
mov rdx, rax
mov rax, QWORD PTR -40[rbp]
mov QWORD PTR 96[rax], rdx
mov rax, QWORD PTR -40[rbp]
mov rdx, QWORD PTR 96[rax]
mov rax, QWORD PTR -40[rbp]
mov QWORD PTR 104[rax], rdx
mov rax, QWORD PTR -40[rbp]
movzx eax, BYTE PTR 11[rax]
test al, al
jne .L2547
mov rax, QWORD PTR -40[rbp]
movzx eax, BYTE PTR 9[rax]
cmp al, 4
je .L2547
mov rax, QWORD PTR -40[rbp]
mov rax, QWORD PTR 72[rax]
mov rdi, rax
call sqlite3OsDeviceCharacteristics
and eax, 512
test eax, eax
je .L2548
.L2547:
mov rdx, QWORD PTR aJournalMagic[rip]
mov rax, QWORD PTR -24[rbp]
mov QWORD PTR [rax], rdx
mov rax, QWORD PTR -24[rbp]
add rax, 8
mov esi, -1
mov rdi, rax
call sqlite3Put4byte
jmp .L2549
.L2548:
mov rax, QWORD PTR -24[rbp]
mov edx, 12
mov esi, 0
mov rdi, rax
call memset@PLT
.L2549:
mov rax, QWORD PTR -40[rbp]
add rax, 52
mov rsi, rax
mov edi, 4
call sqlite3_randomness
mov rax, QWORD PTR -40[rbp]
mov eax, DWORD PTR 52[rax]
mov rdx, QWORD PTR -24[rbp]
add rdx, 12
mov esi, eax
mov rdi, rdx
call sqlite3Put4byte
mov rax, QWORD PTR -40[rbp]
mov eax, DWORD PTR 32[rax]
mov rdx, QWORD PTR -24[rbp]
add rdx, 16
mov esi, eax
mov rdi, rdx
call sqlite3Put4byte
mov rax, QWORD PTR -40[rbp]
mov eax, DWORD PTR 184[rax]
mov rdx, QWORD PTR -24[rbp]
add rdx, 20
mov esi, eax
mov rdi, rdx
call sqlite3Put4byte
mov rax, QWORD PTR -40[rbp]
mov eax, DWORD PTR 188[rax]
mov edx, eax
mov rax, QWORD PTR -24[rbp]
add rax, 24
mov esi, edx
mov rdi, rax
call sqlite3Put4byte
mov eax, DWORD PTR -8[rbp]
lea rdx, -28[rax]
mov rax, QWORD PTR -24[rbp]
add rax, 28
mov esi, 0
mov rdi, rax
call memset@PLT
mov DWORD PTR -12[rbp], 0
jmp .L2550
.L2552:
mov rax, QWORD PTR -40[rbp]
mov rcx, QWORD PTR 96[rax]
mov edx, DWORD PTR -8[rbp]
mov rax, QWORD PTR -40[rbp]
mov rax, QWORD PTR 80[rax]
mov rsi, QWORD PTR -24[rbp]
mov rdi, rax
call sqlite3OsWrite
mov DWORD PTR -4[rbp], eax
mov rax, QWORD PTR -40[rbp]
mov rdx, QWORD PTR 96[rax]
mov eax, DWORD PTR -8[rbp]
add rdx, rax
mov rax, QWORD PTR -40[rbp]
mov QWORD PTR 96[rax], rdx
mov eax, DWORD PTR -8[rbp]
add DWORD PTR -12[rbp], eax
.L2550:
cmp DWORD PTR -4[rbp], 0
jne .L2551
mov rax, QWORD PTR -40[rbp]
mov eax, DWORD PTR 184[rax]
cmp eax, DWORD PTR -12[rbp]
ja .L2552
.L2551:
mov eax, DWORD PTR -4[rbp]
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE427:
.size writeJournalHdr, .-writeJournalHdr
.type readJournalHdr, @function
readJournalHdr:
.LFB428:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 80
mov QWORD PTR -40[rbp], rdi
mov DWORD PTR -44[rbp], esi
mov QWORD PTR -56[rbp], rdx
mov QWORD PTR -64[rbp], rcx
mov QWORD PTR -72[rbp], r8
mov rax, QWORD PTR -40[rbp]
mov rdi, rax
call journalHdrOffset
mov rdx, rax
mov rax, QWORD PTR -40[rbp]
mov QWORD PTR 96[rax], rdx
mov rax, QWORD PTR -40[rbp]
mov rdx, QWORD PTR 96[rax]
mov rax, QWORD PTR -40[rbp]
mov eax, DWORD PTR 184[rax]
mov eax, eax
add rax, rdx
cmp rax, QWORD PTR -56[rbp]
jle .L2555
mov eax, 101
jmp .L2569
.L2555:
mov rax, QWORD PTR -40[rbp]
mov rax, QWORD PTR 96[rax]
mov QWORD PTR -16[rbp], rax
cmp DWORD PTR -44[rbp], 0
jne .L2557
mov rax, QWORD PTR -40[rbp]
mov rax, QWORD PTR 104[rax]
cmp rax, QWORD PTR -16[rbp]
je .L2558
.L2557:
mov rax, QWORD PTR -40[rbp]
mov rax, QWORD PTR 80[rax]
mov rdx, QWORD PTR -16[rbp]
lea rsi, -24[rbp]
mov rcx, rdx
mov edx, 8
mov rdi, rax
call sqlite3OsRead
mov DWORD PTR -4[rbp], eax
cmp DWORD PTR -4[rbp], 0
je .L2559
mov eax, DWORD PTR -4[rbp]
jmp .L2569
.L2559:
lea rax, -24[rbp]
mov edx, 8
lea rsi, aJournalMagic[rip]
mov rdi, rax
call memcmp@PLT
test eax, eax
je .L2558
mov eax, 101
jmp .L2569
.L2558:
mov rax, QWORD PTR -16[rbp]
lea rcx, 8[rax]
mov rax, QWORD PTR -40[rbp]
mov rax, QWORD PTR 80[rax]
mov rdx, QWORD PTR -64[rbp]
mov rsi, rcx
mov rdi, rax
call read32bits
mov DWORD PTR -4[rbp], eax
cmp DWORD PTR -4[rbp], 0
jne .L2560
mov rax, QWORD PTR -40[rbp]
lea rdx, 52[rax]
mov rax, QWORD PTR -16[rbp]
lea rcx, 12[rax]
mov rax, QWORD PTR -40[rbp]
mov rax, QWORD PTR 80[rax]
mov rsi, rcx
mov rdi, rax
call read32bits
mov DWORD PTR -4[rbp], eax
cmp DWORD PTR -4[rbp], 0
jne .L2560
mov rax, QWORD PTR -16[rbp]
lea rcx, 16[rax]
mov rax, QWORD PTR -40[rbp]
mov rax, QWORD PTR 80[rax]
mov rdx, QWORD PTR -72[rbp]
mov rsi, rcx
mov rdi, rax
call read32bits
mov DWORD PTR -4[rbp], eax
cmp DWORD PTR -4[rbp], 0
je .L2561
.L2560:
mov eax, DWORD PTR -4[rbp]
jmp .L2569
.L2561:
mov rax, QWORD PTR -40[rbp]
mov rax, QWORD PTR 96[rax]
test rax, rax
jne .L2562
mov rax, QWORD PTR -16[rbp]
lea rcx, 20[rax]
mov rax, QWORD PTR -40[rbp]
mov rax, QWORD PTR 80[rax]
lea rdx, -32[rbp]
mov rsi, rcx
mov rdi, rax
call read32bits
mov DWORD PTR -4[rbp], eax
cmp DWORD PTR -4[rbp], 0
jne .L2563
mov rax, QWORD PTR -16[rbp]
lea rcx, 24[rax]
mov rax, QWORD PTR -40[rbp]
mov rax, QWORD PTR 80[rax]
lea rdx, -28[rbp]
mov rsi, rcx
mov rdi, rax
call read32bits
mov DWORD PTR -4[rbp], eax
cmp DWORD PTR -4[rbp], 0
je .L2564
.L2563:
mov eax, DWORD PTR -4[rbp]
jmp .L2569
.L2564:
mov eax, DWORD PTR -28[rbp]
test eax, eax
jne .L2566
mov rax, QWORD PTR -40[rbp]
mov eax, DWORD PTR 188[rax]
mov DWORD PTR -28[rbp], eax
.L2566:
mov eax, DWORD PTR -28[rbp]
cmp eax, 511
jbe .L2567
mov eax, DWORD PTR -32[rbp]
cmp eax, 31
jbe .L2567
mov eax, DWORD PTR -28[rbp]
cmp eax, 65536
ja .L2567
mov eax, DWORD PTR -32[rbp]
cmp eax, 65536
ja .L2567
mov eax, DWORD PTR -28[rbp]
lea edx, -1[rax]
mov eax, DWORD PTR -28[rbp]
and eax, edx
test eax, eax
jne .L2567
mov eax, DWORD PTR -32[rbp]
lea edx, -1[rax]
mov eax, DWORD PTR -32[rbp]
and eax, edx
test eax, eax
je .L2568
.L2567:
mov eax, 101
jmp .L2569
.L2568:
lea rcx, -28[rbp]
mov rax, QWORD PTR -40[rbp]
mov edx, -1
mov rsi, rcx
mov rdi, rax
call sqlite3PagerSetPagesize
mov DWORD PTR -4[rbp], eax
mov edx, DWORD PTR -32[rbp]
mov rax, QWORD PTR -40[rbp]
mov DWORD PTR 184[rax], edx
.L2562:
mov rax, QWORD PTR -40[rbp]
mov rdx, QWORD PTR 96[rax]
mov rax, QWORD PTR -40[rbp]
mov eax, DWORD PTR 184[rax]
mov eax, eax
add rdx, rax
mov rax, QWORD PTR -40[rbp]
mov QWORD PTR 96[rax], rdx
mov eax, DWORD PTR -4[rbp]
.L2569:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE428:
.size readJournalHdr, .-readJournalHdr
.type writeMasterJournal, @function
writeMasterJournal:
.LFB429:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 48
mov QWORD PTR -40[rbp], rdi
mov QWORD PTR -48[rbp], rsi
mov DWORD PTR -12[rbp], 0
cmp QWORD PTR -48[rbp], 0
je .L2571
mov rax, QWORD PTR -40[rbp]
movzx eax, BYTE PTR 9[rax]
cmp al, 4
je .L2571
mov rax, QWORD PTR -40[rbp]
mov rax, QWORD PTR 80[rax]
mov rax, QWORD PTR [rax]
test rax, rax
jne .L2572
.L2571:
mov eax, 0
jmp .L2580
.L2572:
mov rax, QWORD PTR -40[rbp]
mov BYTE PTR 23[rax], 1
mov DWORD PTR -8[rbp], 0
jmp .L2574
.L2575:
mov eax, DWORD PTR -8[rbp]
movsx rdx, eax
mov rax, QWORD PTR -48[rbp]
add rax, rdx
movzx eax, BYTE PTR [rax]
movsx eax, al
add DWORD PTR -12[rbp], eax
add DWORD PTR -8[rbp], 1
.L2574:
mov eax, DWORD PTR -8[rbp]
movsx rdx, eax
mov rax, QWORD PTR -48[rbp]
add rax, rdx
movzx eax, BYTE PTR [rax]
test al, al
jne .L2575
mov rax, QWORD PTR -40[rbp]
movzx eax, BYTE PTR 12[rax]
test al, al
je .L2576
mov rax, QWORD PTR -40[rbp]
mov rdi, rax
call journalHdrOffset
mov rdx, rax
mov rax, QWORD PTR -40[rbp]
mov QWORD PTR 96[rax], rdx
.L2576:
mov rax, QWORD PTR -40[rbp]
mov rax, QWORD PTR 96[rax]
mov QWORD PTR -24[rbp], rax
mov eax, DWORD PTR sqlite3PendingByte[rip]
mov rdx, QWORD PTR -40[rbp]
mov edi, DWORD PTR 188[rdx]
cdq
idiv edi
add eax, 1
mov edx, eax
mov rax, QWORD PTR -40[rbp]
mov rax, QWORD PTR 80[rax]
mov rcx, QWORD PTR -24[rbp]
mov rsi, rcx
mov rdi, rax
call write32bits
mov DWORD PTR -4[rbp], eax
cmp DWORD PTR -4[rbp], 0
jne .L2577
mov rax, QWORD PTR -24[rbp]
lea rcx, 4[rax]
mov rax, QWORD PTR -40[rbp]
mov rax, QWORD PTR 80[rax]
mov edx, DWORD PTR -8[rbp]
mov rsi, QWORD PTR -48[rbp]
mov rdi, rax
call sqlite3OsWrite
mov DWORD PTR -4[rbp], eax
cmp DWORD PTR -4[rbp], 0
jne .L2577
mov edx, DWORD PTR -8[rbp]
mov rax, QWORD PTR -24[rbp]
lea rcx, 4[rax]
mov eax, DWORD PTR -8[rbp]
cdqe
add rcx, rax
mov rax, QWORD PTR -40[rbp]
mov rax, QWORD PTR 80[rax]
mov rsi, rcx
mov rdi, rax
call write32bits
mov DWORD PTR -4[rbp], eax
cmp DWORD PTR -4[rbp], 0
jne .L2577
mov rax, QWORD PTR -24[rbp]
lea rdx, 4[rax]
mov eax, DWORD PTR -8[rbp]
cdqe
add rax, rdx
lea rcx, 4[rax]
mov rax, QWORD PTR -40[rbp]
mov rax, QWORD PTR 80[rax]
mov edx, DWORD PTR -12[rbp]
mov rsi, rcx
mov rdi, rax
call write32bits
mov DWORD PTR -4[rbp], eax
cmp DWORD PTR -4[rbp], 0
jne .L2577
mov rax, QWORD PTR -24[rbp]
lea rdx, 4[rax]
mov eax, DWORD PTR -8[rbp]
cdqe
add rax, rdx
lea rdx, 8[rax]
mov rax, QWORD PTR -40[rbp]
mov rax, QWORD PTR 80[rax]
mov rcx, rdx
mov edx, 8
lea rsi, aJournalMagic[rip]
mov rdi, rax
call sqlite3OsWrite
mov DWORD PTR -4[rbp], eax
cmp DWORD PTR -4[rbp], 0
je .L2578
.L2577:
mov eax, DWORD PTR -4[rbp]
jmp .L2580
.L2578:
mov rax, QWORD PTR -40[rbp]
mov rdx, QWORD PTR 96[rax]
mov eax, DWORD PTR -8[rbp]
add eax, 20
cdqe
add rdx, rax
mov rax, QWORD PTR -40[rbp]
mov QWORD PTR 96[rax], rdx
mov rax, QWORD PTR -40[rbp]
mov rax, QWORD PTR 80[rax]
lea rdx, -32[rbp]
mov rsi, rdx
mov rdi, rax
call sqlite3OsFileSize
mov DWORD PTR -4[rbp], eax
cmp DWORD PTR -4[rbp], 0
jne .L2579
mov rax, QWORD PTR -40[rbp]
mov rdx, QWORD PTR 96[rax]
mov rax, QWORD PTR -32[rbp]
cmp rdx, rax
jge .L2579
mov rax, QWORD PTR -40[rbp]
mov rdx, QWORD PTR 96[rax]
mov rax, QWORD PTR -40[rbp]
mov rax, QWORD PTR 80[rax]
mov rsi, rdx
mov rdi, rax
call sqlite3OsTruncate
mov DWORD PTR -4[rbp], eax
.L2579:
mov eax, DWORD PTR -4[rbp]
.L2580:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE429:
.size writeMasterJournal, .-writeMasterJournal
.type pager_reset, @function
pager_reset:
.LFB430:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 16
mov QWORD PTR -8[rbp], rdi
mov rax, QWORD PTR -8[rbp]
mov eax, DWORD PTR 132[rax]
lea edx, 1[rax]
mov rax, QWORD PTR -8[rbp]
mov DWORD PTR 132[rax], edx
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR 112[rax]
mov rdi, rax
call sqlite3BackupRestart
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR 280[rax]
mov rdi, rax
call sqlite3PcacheClear
nop
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE430:
.size pager_reset, .-pager_reset
.type sqlite3PagerDataVersion, @function
sqlite3PagerDataVersion:
.LFB431:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
mov QWORD PTR -8[rbp], rdi
mov rax, QWORD PTR -8[rbp]
mov eax, DWORD PTR 132[rax]
pop rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE431:
.size sqlite3PagerDataVersion, .-sqlite3PagerDataVersion
.type releaseAllSavepoints, @function
releaseAllSavepoints:
.LFB432:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 32
mov QWORD PTR -24[rbp], rdi
mov DWORD PTR -4[rbp], 0
jmp .L2585
.L2586:
mov rax, QWORD PTR -24[rbp]
mov rcx, QWORD PTR 120[rax]
mov eax, DWORD PTR -4[rbp]
movsx rdx, eax
mov rax, rdx
add rax, rax
add rax, rdx
sal rax, 4
add rax, rcx
mov rax, QWORD PTR 16[rax]
mov rdi, rax
call sqlite3BitvecDestroy
add DWORD PTR -4[rbp], 1
.L2585:
mov rax, QWORD PTR -24[rbp]
mov eax, DWORD PTR 128[rax]
cmp eax, DWORD PTR -4[rbp]
jg .L2586
mov rax, QWORD PTR -24[rbp]
movzx eax, BYTE PTR 8[rax]
test al, al
je .L2587
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 88[rax]
mov rdi, rax
call sqlite3JournalIsInMemory
test eax, eax
je .L2588
.L2587:
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 88[rax]
mov rdi, rax
call sqlite3OsClose
.L2588:
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 120[rax]
mov rdi, rax
call sqlite3_free
mov rax, QWORD PTR -24[rbp]
mov QWORD PTR 120[rax], 0
mov rax, QWORD PTR -24[rbp]
mov DWORD PTR 128[rax], 0
mov rax, QWORD PTR -24[rbp]
mov DWORD PTR 56[rax], 0
nop
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE432:
.size releaseAllSavepoints, .-releaseAllSavepoints
.type addToSavepointBitvecs, @function
addToSavepointBitvecs:
.LFB433:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 32
mov QWORD PTR -24[rbp], rdi
mov DWORD PTR -28[rbp], esi
mov DWORD PTR -8[rbp], 0
mov DWORD PTR -4[rbp], 0
jmp .L2590
.L2592:
mov rax, QWORD PTR -24[rbp]
mov rcx, QWORD PTR 120[rax]
mov eax, DWORD PTR -4[rbp]
movsx rdx, eax
mov rax, rdx
add rax, rax
add rax, rdx
sal rax, 4
add rax, rcx
mov QWORD PTR -16[rbp], rax
mov rax, QWORD PTR -16[rbp]
mov eax, DWORD PTR 24[rax]
cmp eax, DWORD PTR -28[rbp]
jb .L2591
mov rax, QWORD PTR -16[rbp]
mov rax, QWORD PTR 16[rax]
mov edx, DWORD PTR -28[rbp]
mov esi, edx
mov rdi, rax
call sqlite3BitvecSet
or DWORD PTR -8[rbp], eax
.L2591:
add DWORD PTR -4[rbp], 1
.L2590:
mov rax, QWORD PTR -24[rbp]
mov eax, DWORD PTR 128[rax]
cmp eax, DWORD PTR -4[rbp]
jg .L2592
mov eax, DWORD PTR -8[rbp]
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE433:
.size addToSavepointBitvecs, .-addToSavepointBitvecs
.type pager_unlock, @function
pager_unlock:
.LFB434:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 32
mov QWORD PTR -24[rbp], rdi
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 64[rax]
mov rdi, rax
call sqlite3BitvecDestroy
mov rax, QWORD PTR -24[rbp]
mov QWORD PTR 64[rax], 0
mov rax, QWORD PTR -24[rbp]
mov rdi, rax
call releaseAllSavepoints
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 288[rax]
test rax, rax
je .L2595
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 288[rax]
mov rdi, rax
call sqlite3WalEndReadTransaction
mov rax, QWORD PTR -24[rbp]
mov BYTE PTR 20[rax], 0
jmp .L2596
.L2595:
mov rax, QWORD PTR -24[rbp]
movzx eax, BYTE PTR 8[rax]
test al, al
jne .L2596
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 72[rax]
mov rax, QWORD PTR [rax]
test rax, rax
je .L2597
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 72[rax]
mov rdi, rax
call sqlite3OsDeviceCharacteristics
jmp .L2598
.L2597:
mov eax, 0
.L2598:
mov DWORD PTR -4[rbp], eax
mov eax, DWORD PTR -4[rbp]
and eax, 2048
test eax, eax
je .L2599
mov rax, QWORD PTR -24[rbp]
movzx eax, BYTE PTR 9[rax]
movzx eax, al
and eax, 5
cmp eax, 1
je .L2600
.L2599:
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 80[rax]
mov rdi, rax
call sqlite3OsClose
.L2600:
mov rax, QWORD PTR -24[rbp]
mov esi, 0
mov rdi, rax
call pagerUnlockDb
mov DWORD PTR -8[rbp], eax
cmp DWORD PTR -8[rbp], 0
je .L2601
mov rax, QWORD PTR -24[rbp]
movzx eax, BYTE PTR 20[rax]
cmp al, 6
jne .L2601
mov rax, QWORD PTR -24[rbp]
mov BYTE PTR 21[rax], 5
.L2601:
mov rax, QWORD PTR -24[rbp]
mov BYTE PTR 22[rax], 0
mov rax, QWORD PTR -24[rbp]
mov BYTE PTR 20[rax], 0
.L2596:
mov rax, QWORD PTR -24[rbp]
mov eax, DWORD PTR 44[rax]
test eax, eax
je .L2602
mov rax, QWORD PTR -24[rbp]
movzx eax, BYTE PTR 16[rax]
test al, al
jne .L2603
mov rax, QWORD PTR -24[rbp]
mov rdi, rax
call pager_reset
mov rax, QWORD PTR -24[rbp]
mov BYTE PTR 22[rax], 0
mov rax, QWORD PTR -24[rbp]
mov BYTE PTR 20[rax], 0
jmp .L2604
.L2603:
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 80[rax]
mov rax, QWORD PTR [rax]
test rax, rax
sete al
mov edx, eax
mov rax, QWORD PTR -24[rbp]
mov BYTE PTR 20[rax], dl
.L2604:
mov rax, QWORD PTR -24[rbp]
movzx eax, BYTE PTR 26[rax]
test al, al
je .L2605
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 72[rax]
mov edx, 0
mov esi, 0
mov rdi, rax
call sqlite3OsUnfetch
.L2605:
mov rax, QWORD PTR -24[rbp]
mov DWORD PTR 44[rax], 0
mov rax, QWORD PTR -24[rbp]
mov rdi, rax
call setGetterMethod
.L2602:
mov rax, QWORD PTR -24[rbp]
mov QWORD PTR 96[rax], 0
mov rax, QWORD PTR -24[rbp]
mov QWORD PTR 104[rax], 0
mov rax, QWORD PTR -24[rbp]
mov BYTE PTR 23[rax], 0
nop
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE434:
.size pager_unlock, .-pager_unlock
.type pager_error, @function
pager_error:
.LFB435:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 32
mov QWORD PTR -24[rbp], rdi
mov DWORD PTR -28[rbp], esi
mov eax, DWORD PTR -28[rbp]
movzx eax, al
mov DWORD PTR -4[rbp], eax
cmp DWORD PTR -4[rbp], 13
je .L2607
cmp DWORD PTR -4[rbp], 10
jne .L2608
.L2607:
mov rax, QWORD PTR -24[rbp]
mov edx, DWORD PTR -28[rbp]
mov DWORD PTR 44[rax], edx
mov rax, QWORD PTR -24[rbp]
mov BYTE PTR 20[rax], 6
mov rax, QWORD PTR -24[rbp]
mov rdi, rax
call setGetterMethod
.L2608:
mov eax, DWORD PTR -28[rbp]
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE435:
.size pager_error, .-pager_error
.type pagerFlushOnCommit, @function
pagerFlushOnCommit:
.LFB436:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 16
mov QWORD PTR -8[rbp], rdi
mov DWORD PTR -12[rbp], esi
mov rax, QWORD PTR -8[rbp]
movzx eax, BYTE PTR 16[rax]
test al, al
jne .L2611
mov eax, 1
jmp .L2612
.L2611:
cmp DWORD PTR -12[rbp], 0
jne .L2613
mov eax, 0
jmp .L2612
.L2613:
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR 72[rax]
mov rax, QWORD PTR [rax]
test rax, rax
jne .L2614
mov eax, 0
jmp .L2612
.L2614:
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR 280[rax]
mov rdi, rax
call sqlite3PCachePercentDirty
cmp eax, 24
setg al
movzx eax, al
.L2612:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE436:
.size pagerFlushOnCommit, .-pagerFlushOnCommit
.type pager_end_transaction, @function
pager_end_transaction:
.LFB437:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 32
mov QWORD PTR -24[rbp], rdi
mov DWORD PTR -28[rbp], esi
mov DWORD PTR -32[rbp], edx
mov DWORD PTR -4[rbp], 0
mov DWORD PTR -8[rbp], 0
mov rax, QWORD PTR -24[rbp]
movzx eax, BYTE PTR 20[rax]
cmp al, 1
ja .L2616
mov rax, QWORD PTR -24[rbp]
movzx eax, BYTE PTR 21[rax]
cmp al, 1
ja .L2616
mov eax, 0
jmp .L2617
.L2616:
mov rax, QWORD PTR -24[rbp]
mov rdi, rax
call releaseAllSavepoints
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 80[rax]
mov rax, QWORD PTR [rax]
test rax, rax
je .L2618
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 80[rax]
mov rdi, rax
call sqlite3JournalIsInMemory
test eax, eax
je .L2619
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 80[rax]
mov rdi, rax
call sqlite3OsClose
jmp .L2618
.L2619:
mov rax, QWORD PTR -24[rbp]
movzx eax, BYTE PTR 9[rax]
cmp al, 3
jne .L2620
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 96[rax]
test rax, rax
jne .L2621
mov DWORD PTR -4[rbp], 0
jmp .L2622
.L2621:
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 80[rax]
mov esi, 0
mov rdi, rax
call sqlite3OsTruncate
mov DWORD PTR -4[rbp], eax
cmp DWORD PTR -4[rbp], 0
jne .L2622
mov rax, QWORD PTR -24[rbp]
movzx eax, BYTE PTR 12[rax]
test al, al
je .L2622
mov rax, QWORD PTR -24[rbp]
movzx eax, BYTE PTR 14[rax]
movzx edx, al
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 80[rax]
mov esi, edx
mov rdi, rax
call sqlite3OsSync
mov DWORD PTR -4[rbp], eax
.L2622:
mov rax, QWORD PTR -24[rbp]
mov QWORD PTR 96[rax], 0
jmp .L2618
.L2620:
mov rax, QWORD PTR -24[rbp]
movzx eax, BYTE PTR 9[rax]
cmp al, 1
je .L2623
mov rax, QWORD PTR -24[rbp]
movzx eax, BYTE PTR 8[rax]
test al, al
je .L2624
mov rax, QWORD PTR -24[rbp]
movzx eax, BYTE PTR 9[rax]
cmp al, 5
je .L2624
.L2623:
cmp DWORD PTR -28[rbp], 0
jne .L2625
mov rax, QWORD PTR -24[rbp]
movzx eax, BYTE PTR 16[rax]
test al, al
je .L2626
.L2625:
mov edx, 1
jmp .L2627
.L2626:
mov edx, 0
.L2627:
mov rax, QWORD PTR -24[rbp]
mov esi, edx
mov rdi, rax
call zeroJournalHdr
mov DWORD PTR -4[rbp], eax
mov rax, QWORD PTR -24[rbp]
mov QWORD PTR 96[rax], 0
jmp .L2618
.L2624:
mov rax, QWORD PTR -24[rbp]
movzx eax, BYTE PTR 16[rax]
test al, al
sete al
movzx eax, al
mov DWORD PTR -12[rbp], eax
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 80[rax]
mov rdi, rax
call sqlite3OsClose
cmp DWORD PTR -12[rbp], 0
je .L2618
mov rax, QWORD PTR -24[rbp]
movzx eax, BYTE PTR 13[rax]
movzx edx, al
mov rax, QWORD PTR -24[rbp]
mov rcx, QWORD PTR 216[rax]
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR [rax]
mov rsi, rcx
mov rdi, rax
call sqlite3OsDelete
mov DWORD PTR -4[rbp], eax
.L2618:
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 64[rax]
mov rdi, rax
call sqlite3BitvecDestroy
mov rax, QWORD PTR -24[rbp]
mov QWORD PTR 64[rax], 0
mov rax, QWORD PTR -24[rbp]
mov DWORD PTR 48[rax], 0
cmp DWORD PTR -4[rbp], 0
jne .L2628
mov rax, QWORD PTR -24[rbp]
movzx eax, BYTE PTR 19[rax]
test al, al
jne .L2629
mov edx, DWORD PTR -32[rbp]
mov rax, QWORD PTR -24[rbp]
mov esi, edx
mov rdi, rax
call pagerFlushOnCommit
test eax, eax
je .L2630
.L2629:
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 280[rax]
mov rdi, rax
call sqlite3PcacheCleanAll
jmp .L2631
.L2630:
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 280[rax]
mov rdi, rax
call sqlite3PcacheClearWritable
.L2631:
mov rax, QWORD PTR -24[rbp]
mov edx, DWORD PTR 28[rax]
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 280[rax]
mov esi, edx
mov rdi, rax
call sqlite3PcacheTruncate
.L2628:
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 288[rax]
test rax, rax
je .L2632
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 288[rax]
mov rdi, rax
call sqlite3WalEndWriteTransaction
mov DWORD PTR -8[rbp], eax
jmp .L2633
.L2632:
cmp DWORD PTR -4[rbp], 0
jne .L2633
cmp DWORD PTR -32[rbp], 0
je .L2633
mov rax, QWORD PTR -24[rbp]
mov edx, DWORD PTR 36[rax]
mov rax, QWORD PTR -24[rbp]
mov eax, DWORD PTR 28[rax]
cmp edx, eax
jbe .L2633
mov rax, QWORD PTR -24[rbp]
mov edx, DWORD PTR 28[rax]
mov rax, QWORD PTR -24[rbp]
mov esi, edx
mov rdi, rax
call pager_truncate
mov DWORD PTR -4[rbp], eax
.L2633:
cmp DWORD PTR -4[rbp], 0
jne .L2634
cmp DWORD PTR -32[rbp], 0
je .L2634
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 72[rax]
mov rax, QWORD PTR [rax]
test rax, rax
je .L2634
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 72[rax]
mov edx, 0
mov esi, 22
mov rdi, rax
call sqlite3OsFileControl
mov DWORD PTR -4[rbp], eax
cmp DWORD PTR -4[rbp], 12
jne .L2634
mov DWORD PTR -4[rbp], 0
.L2634:
mov rax, QWORD PTR -24[rbp]
movzx eax, BYTE PTR 8[rax]
test al, al
jne .L2635
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 288[rax]
test rax, rax
je .L2636
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 288[rax]
mov esi, 0
mov rdi, rax
call sqlite3WalExclusiveMode
test eax, eax
je .L2635
.L2636:
mov rax, QWORD PTR -24[rbp]
mov esi, 1
mov rdi, rax
call pagerUnlockDb
mov DWORD PTR -8[rbp], eax
mov rax, QWORD PTR -24[rbp]
mov BYTE PTR 22[rax], 0
.L2635:
mov rax, QWORD PTR -24[rbp]
mov BYTE PTR 20[rax], 1
mov rax, QWORD PTR -24[rbp]
mov BYTE PTR 23[rax], 0
cmp DWORD PTR -4[rbp], 0
jne .L2637
mov eax, DWORD PTR -8[rbp]
jmp .L2617
.L2637:
mov eax, DWORD PTR -4[rbp]
.L2617:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE437:
.size pager_end_transaction, .-pager_end_transaction
.type pagerUnlockAndRollback, @function
pagerUnlockAndRollback:
.LFB438:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 16
mov QWORD PTR -8[rbp], rdi
mov rax, QWORD PTR -8[rbp]
movzx eax, BYTE PTR 20[rax]
cmp al, 6
je .L2640
mov rax, QWORD PTR -8[rbp]
movzx eax, BYTE PTR 20[rax]
test al, al
je .L2640
mov rax, QWORD PTR -8[rbp]
movzx eax, BYTE PTR 20[rax]
cmp al, 1
jbe .L2641
call sqlite3BeginBenignMalloc
mov rax, QWORD PTR -8[rbp]
mov rdi, rax
call sqlite3PagerRollback
call sqlite3EndBenignMalloc
jmp .L2640
.L2641:
mov rax, QWORD PTR -8[rbp]
movzx eax, BYTE PTR 8[rax]
test al, al
jne .L2640
mov rax, QWORD PTR -8[rbp]
mov edx, 0
mov esi, 0
mov rdi, rax
call pager_end_transaction
.L2640:
mov rax, QWORD PTR -8[rbp]
mov rdi, rax
call pager_unlock
nop
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE438:
.size pagerUnlockAndRollback, .-pagerUnlockAndRollback
.type pager_cksum, @function
pager_cksum:
.LFB439:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
mov QWORD PTR -24[rbp], rdi
mov QWORD PTR -32[rbp], rsi
mov rax, QWORD PTR -24[rbp]
mov eax, DWORD PTR 52[rax]
mov DWORD PTR -4[rbp], eax
mov rax, QWORD PTR -24[rbp]
mov eax, DWORD PTR 188[rax]
sub eax, 200
mov DWORD PTR -8[rbp], eax
jmp .L2643
.L2644:
mov eax, DWORD PTR -8[rbp]
movsx rdx, eax
mov rax, QWORD PTR -32[rbp]
add rax, rdx
movzx eax, BYTE PTR [rax]
movzx eax, al
add DWORD PTR -4[rbp], eax
sub DWORD PTR -8[rbp], 200
.L2643:
cmp DWORD PTR -8[rbp], 0
jg .L2644
mov eax, DWORD PTR -4[rbp]
pop rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE439:
.size pager_cksum, .-pager_cksum
.type pager_playback_one_page, @function
pager_playback_one_page:
.LFB440:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 96
mov QWORD PTR -72[rbp], rdi
mov QWORD PTR -80[rbp], rsi
mov QWORD PTR -88[rbp], rdx
mov DWORD PTR -92[rbp], ecx
mov DWORD PTR -96[rbp], r8d
mov rax, QWORD PTR -72[rbp]
mov rax, QWORD PTR 272[rax]
mov QWORD PTR -16[rbp], rax
cmp DWORD PTR -92[rbp], 0
je .L2647
mov rax, QWORD PTR -72[rbp]
mov rax, QWORD PTR 80[rax]
jmp .L2648
.L2647:
mov rax, QWORD PTR -72[rbp]
mov rax, QWORD PTR 88[rax]
.L2648:
mov QWORD PTR -24[rbp], rax
mov rax, QWORD PTR -80[rbp]
mov rcx, QWORD PTR [rax]
lea rdx, -52[rbp]
mov rax, QWORD PTR -24[rbp]
mov rsi, rcx
mov rdi, rax
call read32bits
mov DWORD PTR -4[rbp], eax
cmp DWORD PTR -4[rbp], 0
je .L2649
mov eax, DWORD PTR -4[rbp]
jmp .L2678
.L2649:
mov rax, QWORD PTR -80[rbp]
mov rax, QWORD PTR [rax]
lea rcx, 4[rax]
mov rax, QWORD PTR -72[rbp]
mov edx, DWORD PTR 188[rax]
mov rsi, QWORD PTR -16[rbp]
mov rax, QWORD PTR -24[rbp]
mov rdi, rax
call sqlite3OsRead
mov DWORD PTR -4[rbp], eax
cmp DWORD PTR -4[rbp], 0
je .L2651
mov eax, DWORD PTR -4[rbp]
jmp .L2678
.L2651:
mov rax, QWORD PTR -80[rbp]
mov rdx, QWORD PTR [rax]
mov rax, QWORD PTR -72[rbp]
mov eax, DWORD PTR 188[rax]
lea ecx, 4[rax]
mov eax, DWORD PTR -92[rbp]
sal eax, 2
add eax, ecx
cdqe
add rdx, rax
mov rax, QWORD PTR -80[rbp]
mov QWORD PTR [rax], rdx
mov eax, DWORD PTR -52[rbp]
test eax, eax
je .L2652
mov eax, DWORD PTR sqlite3PendingByte[rip]
mov rdx, QWORD PTR -72[rbp]
mov edi, DWORD PTR 188[rdx]
cdq
idiv edi
add eax, 1
mov edx, eax
mov eax, DWORD PTR -52[rbp]
cmp edx, eax
jne .L2653
.L2652:
mov eax, 101
jmp .L2678
.L2653:
mov rax, QWORD PTR -72[rbp]
mov edx, DWORD PTR 28[rax]
mov eax, DWORD PTR -52[rbp]
cmp edx, eax
jb .L2654
mov edx, DWORD PTR -52[rbp]
mov rax, QWORD PTR -88[rbp]
mov esi, edx
mov rdi, rax
call sqlite3BitvecTest
test eax, eax
je .L2655
.L2654:
mov eax, 0
jmp .L2678
.L2655:
cmp DWORD PTR -92[rbp], 0
je .L2656
mov rax, QWORD PTR -80[rbp]
mov rax, QWORD PTR [rax]
lea rcx, -4[rax]
lea rdx, -56[rbp]
mov rax, QWORD PTR -24[rbp]
mov rsi, rcx
mov rdi, rax
call read32bits
mov DWORD PTR -4[rbp], eax
cmp DWORD PTR -4[rbp], 0
je .L2657
mov eax, DWORD PTR -4[rbp]
jmp .L2678
.L2657:
cmp DWORD PTR -96[rbp], 0
jne .L2656
mov rdx, QWORD PTR -16[rbp]
mov rax, QWORD PTR -72[rbp]
mov rsi, rdx
mov rdi, rax
call pager_cksum
mov edx, eax
mov eax, DWORD PTR -56[rbp]
cmp edx, eax
je .L2656
mov eax, 101
jmp .L2678
.L2656:
cmp QWORD PTR -88[rbp], 0
je .L2658
mov edx, DWORD PTR -52[rbp]
mov rax, QWORD PTR -88[rbp]
mov esi, edx
mov rdi, rax
call sqlite3BitvecSet
mov DWORD PTR -4[rbp], eax
cmp DWORD PTR -4[rbp], 0
je .L2658
mov eax, DWORD PTR -4[rbp]
jmp .L2678
.L2658:
mov eax, DWORD PTR -52[rbp]
cmp eax, 1
jne .L2659
mov rax, QWORD PTR -72[rbp]
movzx eax, WORD PTR 178[rax]
movsx edx, ax
mov rax, QWORD PTR -16[rbp]
add rax, 20
movzx eax, BYTE PTR [rax]
movzx eax, al
cmp edx, eax
je .L2659
mov rax, QWORD PTR -16[rbp]
add rax, 20
movzx eax, BYTE PTR [rax]
movzx edx, al
mov rax, QWORD PTR -72[rbp]
mov WORD PTR 178[rax], dx
.L2659:
mov rax, QWORD PTR -72[rbp]
mov rax, QWORD PTR 288[rax]
test rax, rax
je .L2660
mov QWORD PTR -48[rbp], 0
jmp .L2661
.L2660:
mov edx, DWORD PTR -52[rbp]
mov rax, QWORD PTR -72[rbp]
mov esi, edx
mov rdi, rax
call sqlite3PagerLookup
mov QWORD PTR -48[rbp], rax
.L2661:
cmp DWORD PTR -92[rbp], 0
je .L2662
mov rax, QWORD PTR -72[rbp]
movzx eax, BYTE PTR 11[rax]
test al, al
jne .L2663
mov rax, QWORD PTR -80[rbp]
mov rdx, QWORD PTR [rax]
mov rax, QWORD PTR -72[rbp]
mov rax, QWORD PTR 104[rax]
cmp rdx, rax
jg .L2664
.L2663:
mov eax, 1
jmp .L2665
.L2664:
mov eax, 0
.L2665:
mov DWORD PTR -8[rbp], eax
jmp .L2666
.L2662:
mov rax, QWORD PTR -48[rbp]
test rax, rax
je .L2667
mov rax, QWORD PTR -48[rbp]
movzx eax, WORD PTR 52[rax]
movzx eax, ax
and eax, 8
test eax, eax
jne .L2668
.L2667:
mov eax, 1
jmp .L2669
.L2668:
mov eax, 0
.L2669:
mov DWORD PTR -8[rbp], eax
.L2666:
mov rax, QWORD PTR -72[rbp]
mov rax, QWORD PTR 72[rax]
mov rax, QWORD PTR [rax]
test rax, rax
je .L2670
mov rax, QWORD PTR -72[rbp]
movzx eax, BYTE PTR 20[rax]
cmp al, 3
ja .L2671
mov rax, QWORD PTR -72[rbp]
movzx eax, BYTE PTR 20[rax]
test al, al
jne .L2670
.L2671:
cmp DWORD PTR -8[rbp], 0
je .L2670
mov eax, DWORD PTR -52[rbp]
sub eax, 1
mov edx, eax
mov rax, QWORD PTR -72[rbp]
mov eax, DWORD PTR 188[rax]
cdqe
imul rax, rdx
mov QWORD PTR -32[rbp], rax
mov rax, QWORD PTR -72[rbp]
mov edx, DWORD PTR 188[rax]
mov rax, QWORD PTR -72[rbp]
mov rax, QWORD PTR 72[rax]
mov rcx, QWORD PTR -32[rbp]
mov rsi, QWORD PTR -16[rbp]
mov rdi, rax
call sqlite3OsWrite
mov DWORD PTR -4[rbp], eax
mov rax, QWORD PTR -72[rbp]
mov edx, DWORD PTR 36[rax]
mov eax, DWORD PTR -52[rbp]
cmp edx, eax
jnb .L2672
mov edx, DWORD PTR -52[rbp]
mov rax, QWORD PTR -72[rbp]
mov DWORD PTR 36[rax], edx
.L2672:
mov rax, QWORD PTR -72[rbp]
mov rax, QWORD PTR 112[rax]
test rax, rax
je .L2679
mov ecx, DWORD PTR -52[rbp]
mov rax, QWORD PTR -72[rbp]
mov rax, QWORD PTR 112[rax]
mov rdx, QWORD PTR -16[rbp]
mov esi, ecx
mov rdi, rax
call sqlite3BackupUpdate
jmp .L2679
.L2670:
cmp DWORD PTR -92[rbp], 0
jne .L2674
mov rax, QWORD PTR -48[rbp]
test rax, rax
jne .L2674
mov rax, QWORD PTR -72[rbp]
movzx eax, BYTE PTR 24[rax]
or eax, 2
mov edx, eax
mov rax, QWORD PTR -72[rbp]
mov BYTE PTR 24[rax], dl
mov esi, DWORD PTR -52[rbp]
lea rdx, -48[rbp]
mov rax, QWORD PTR -72[rbp]
mov ecx, 1
mov rdi, rax
call sqlite3PagerGet
mov DWORD PTR -4[rbp], eax
mov rax, QWORD PTR -72[rbp]
movzx eax, BYTE PTR 24[rax]
and eax, -3
mov edx, eax
mov rax, QWORD PTR -72[rbp]
mov BYTE PTR 24[rax], dl
cmp DWORD PTR -4[rbp], 0
je .L2675
mov eax, DWORD PTR -4[rbp]
jmp .L2678
.L2675:
mov rax, QWORD PTR -48[rbp]
mov rdi, rax
call sqlite3PcacheMakeDirty
jmp .L2674
.L2679:
nop
.L2674:
mov rax, QWORD PTR -48[rbp]
test rax, rax
je .L2676
mov rax, QWORD PTR -48[rbp]
mov rax, QWORD PTR 8[rax]
mov QWORD PTR -40[rbp], rax
mov rax, QWORD PTR -72[rbp]
mov eax, DWORD PTR 188[rax]
movsx rdx, eax
mov rcx, QWORD PTR -16[rbp]
mov rax, QWORD PTR -40[rbp]
mov rsi, rcx
mov rdi, rax
call memcpy@PLT
mov rax, QWORD PTR -72[rbp]
mov rax, QWORD PTR 256[rax]
mov rdx, QWORD PTR -48[rbp]
mov rdi, rdx
call rax
mov eax, DWORD PTR -52[rbp]
cmp eax, 1
jne .L2677
mov rax, QWORD PTR -40[rbp]
add rax, 24
mov rdx, QWORD PTR -72[rbp]
lea rcx, 136[rdx]
mov rdx, QWORD PTR 8[rax]
mov rax, QWORD PTR [rax]
mov QWORD PTR [rcx], rax
mov QWORD PTR 8[rcx], rdx
.L2677:
mov rax, QWORD PTR -48[rbp]
mov rdi, rax
call sqlite3PcacheRelease
.L2676:
mov eax, DWORD PTR -4[rbp]
.L2678:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE440:
.size pager_playback_one_page, .-pager_playback_one_page
.type pager_delmaster, @function
pager_delmaster:
.LFB441:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 112
mov QWORD PTR -104[rbp], rdi
mov QWORD PTR -112[rbp], rsi
mov rax, QWORD PTR -104[rbp]
mov rax, QWORD PTR [rax]
mov QWORD PTR -32[rbp], rax
mov QWORD PTR -16[rbp], 0
mov rax, QWORD PTR -32[rbp]
mov eax, DWORD PTR 4[rax]
add eax, eax
cdqe
mov rdi, rax
call sqlite3MallocZero
mov QWORD PTR -40[rbp], rax
mov rax, QWORD PTR -32[rbp]
mov eax, DWORD PTR 4[rax]
movsx rdx, eax
mov rax, QWORD PTR -40[rbp]
add rax, rdx
mov QWORD PTR -48[rbp], rax
cmp QWORD PTR -40[rbp], 0
jne .L2681
mov DWORD PTR -4[rbp], 7
jmp .L2682
.L2681:
mov DWORD PTR -52[rbp], 16385
mov ecx, DWORD PTR -52[rbp]
mov rdx, QWORD PTR -40[rbp]
mov rsi, QWORD PTR -112[rbp]
mov rax, QWORD PTR -32[rbp]
mov r8d, 0
mov rdi, rax
call sqlite3OsOpen
mov DWORD PTR -4[rbp], eax
.L2682:
cmp DWORD PTR -4[rbp], 0
jne .L2699
lea rdx, -80[rbp]
mov rax, QWORD PTR -40[rbp]
mov rsi, rdx
mov rdi, rax
call sqlite3OsFileSize
mov DWORD PTR -4[rbp], eax
cmp DWORD PTR -4[rbp], 0
jne .L2700
mov rax, QWORD PTR -32[rbp]
mov eax, DWORD PTR 8[rax]
add eax, 1
mov DWORD PTR -56[rbp], eax
mov eax, DWORD PTR -56[rbp]
movsx rdx, eax
mov rax, QWORD PTR -80[rbp]
add rax, rdx
add rax, 1
mov rdi, rax
call sqlite3Malloc
mov QWORD PTR -16[rbp], rax
cmp QWORD PTR -16[rbp], 0
jne .L2686
mov DWORD PTR -4[rbp], 7
jmp .L2684
.L2686:
mov rax, QWORD PTR -80[rbp]
lea rdx, 1[rax]
mov rax, QWORD PTR -16[rbp]
add rax, rdx
mov QWORD PTR -64[rbp], rax
mov rax, QWORD PTR -80[rbp]
mov edx, eax
mov rsi, QWORD PTR -16[rbp]
mov rax, QWORD PTR -40[rbp]
mov ecx, 0
mov rdi, rax
call sqlite3OsRead
mov DWORD PTR -4[rbp], eax
cmp DWORD PTR -4[rbp], 0
jne .L2701
mov rax, QWORD PTR -80[rbp]
mov rdx, rax
mov rax, QWORD PTR -16[rbp]
add rax, rdx
mov BYTE PTR [rax], 0
mov rax, QWORD PTR -16[rbp]
mov QWORD PTR -24[rbp], rax
jmp .L2688
.L2696:
lea rdx, -84[rbp]
mov rsi, QWORD PTR -24[rbp]
mov rax, QWORD PTR -32[rbp]
mov rcx, rdx
mov edx, 0
mov rdi, rax
call sqlite3OsAccess
mov DWORD PTR -4[rbp], eax
cmp DWORD PTR -4[rbp], 0
jne .L2702
mov eax, DWORD PTR -84[rbp]
test eax, eax
je .L2691
mov DWORD PTR -68[rbp], 2049
mov ecx, DWORD PTR -68[rbp]
mov rdx, QWORD PTR -48[rbp]
mov rsi, QWORD PTR -24[rbp]
mov rax, QWORD PTR -32[rbp]
mov r8d, 0
mov rdi, rax
call sqlite3OsOpen
mov DWORD PTR -4[rbp], eax
cmp DWORD PTR -4[rbp], 0
jne .L2703
mov edx, DWORD PTR -56[rbp]
mov rcx, QWORD PTR -64[rbp]
mov rax, QWORD PTR -48[rbp]
mov rsi, rcx
mov rdi, rax
call readMasterJournal
mov DWORD PTR -4[rbp], eax
mov rax, QWORD PTR -48[rbp]
mov rdi, rax
call sqlite3OsClose
cmp DWORD PTR -4[rbp], 0
jne .L2704
mov rax, QWORD PTR -64[rbp]
movzx eax, BYTE PTR [rax]
test al, al
je .L2694
mov rdx, QWORD PTR -112[rbp]
mov rax, QWORD PTR -64[rbp]
mov rsi, rdx
mov rdi, rax
call strcmp@PLT
test eax, eax
jne .L2694
mov eax, 1
jmp .L2695
.L2694:
mov eax, 0
.L2695:
mov DWORD PTR -72[rbp], eax
cmp DWORD PTR -72[rbp], 0
jne .L2705
.L2691:
mov rax, QWORD PTR -24[rbp]
mov rdi, rax
call sqlite3Strlen30
add eax, 1
cdqe
add QWORD PTR -24[rbp], rax
.L2688:
mov rdx, QWORD PTR -24[rbp]
mov rax, QWORD PTR -16[rbp]
sub rdx, rax
mov rax, QWORD PTR -80[rbp]
cmp rdx, rax
jl .L2696
mov rax, QWORD PTR -40[rbp]
mov rdi, rax
call sqlite3OsClose
mov rcx, QWORD PTR -112[rbp]
mov rax, QWORD PTR -32[rbp]
mov edx, 0
mov rsi, rcx
mov rdi, rax
call sqlite3OsDelete
mov DWORD PTR -4[rbp], eax
jmp .L2684
.L2699:
nop
jmp .L2684
.L2700:
nop
jmp .L2684
.L2701:
nop
jmp .L2684
.L2702:
nop
jmp .L2684
.L2703:
nop
jmp .L2684
.L2704:
nop
jmp .L2684
.L2705:
nop
.L2684:
mov rax, QWORD PTR -16[rbp]
mov rdi, rax
call sqlite3_free
cmp QWORD PTR -40[rbp], 0
je .L2697
mov rax, QWORD PTR -40[rbp]
mov rdi, rax
call sqlite3OsClose
mov rax, QWORD PTR -40[rbp]
mov rdi, rax
call sqlite3_free
.L2697:
mov eax, DWORD PTR -4[rbp]
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE441:
.size pager_delmaster, .-pager_delmaster
.type pager_truncate, @function
pager_truncate:
.LFB442:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 48
mov QWORD PTR -40[rbp], rdi
mov DWORD PTR -44[rbp], esi
mov DWORD PTR -4[rbp], 0
mov rax, QWORD PTR -40[rbp]
mov rax, QWORD PTR 72[rax]
mov rax, QWORD PTR [rax]
test rax, rax
je .L2707
mov rax, QWORD PTR -40[rbp]
movzx eax, BYTE PTR 20[rax]
cmp al, 3
ja .L2708
mov rax, QWORD PTR -40[rbp]
movzx eax, BYTE PTR 20[rax]
test al, al
jne .L2707
.L2708:
mov rax, QWORD PTR -40[rbp]
mov eax, DWORD PTR 188[rax]
mov DWORD PTR -8[rbp], eax
mov rax, QWORD PTR -40[rbp]
mov rax, QWORD PTR 72[rax]
lea rdx, -32[rbp]
mov rsi, rdx
mov rdi, rax
call sqlite3OsFileSize
mov DWORD PTR -4[rbp], eax
mov eax, DWORD PTR -8[rbp]
movsx rdx, eax
mov eax, DWORD PTR -44[rbp]
imul rax, rdx
mov QWORD PTR -16[rbp], rax
cmp DWORD PTR -4[rbp], 0
jne .L2707
mov rax, QWORD PTR -32[rbp]
cmp rax, QWORD PTR -16[rbp]
je .L2707
mov rax, QWORD PTR -32[rbp]
cmp rax, QWORD PTR -16[rbp]
jle .L2710
mov rax, QWORD PTR -40[rbp]
mov rax, QWORD PTR 72[rax]
mov rdx, QWORD PTR -16[rbp]
mov rsi, rdx
mov rdi, rax
call sqlite3OsTruncate
mov DWORD PTR -4[rbp], eax
jmp .L2711
.L2710:
mov eax, DWORD PTR -8[rbp]
movsx rdx, eax
mov rax, QWORD PTR -32[rbp]
add rax, rdx
cmp rax, QWORD PTR -16[rbp]
jg .L2711
mov rax, QWORD PTR -40[rbp]
mov rax, QWORD PTR 272[rax]
mov QWORD PTR -24[rbp], rax
mov eax, DWORD PTR -8[rbp]
movsx rdx, eax
mov rax, QWORD PTR -24[rbp]
mov esi, 0
mov rdi, rax
call memset@PLT
mov eax, DWORD PTR -8[rbp]
cdqe
mov rdx, QWORD PTR -16[rbp]
mov rcx, rdx
sub rcx, rax
mov rax, QWORD PTR -40[rbp]
mov rax, QWORD PTR 72[rax]
mov edx, DWORD PTR -8[rbp]
mov rsi, QWORD PTR -24[rbp]
mov rdi, rax
call sqlite3OsWrite
mov DWORD PTR -4[rbp], eax
.L2711:
cmp DWORD PTR -4[rbp], 0
jne .L2707
mov rax, QWORD PTR -40[rbp]
mov edx, DWORD PTR -44[rbp]
mov DWORD PTR 36[rax], edx
.L2707:
mov eax, DWORD PTR -4[rbp]
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE442:
.size pager_truncate, .-pager_truncate
.type sqlite3SectorSize, @function
sqlite3SectorSize:
.LFB443:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 32
mov QWORD PTR -24[rbp], rdi
mov rax, QWORD PTR -24[rbp]
mov rdi, rax
call sqlite3OsSectorSize
mov DWORD PTR -4[rbp], eax
cmp DWORD PTR -4[rbp], 31
jg .L2714
mov DWORD PTR -4[rbp], 512
jmp .L2715
.L2714:
cmp DWORD PTR -4[rbp], 65536
jle .L2715
mov DWORD PTR -4[rbp], 65536
.L2715:
mov eax, DWORD PTR -4[rbp]
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE443:
.size sqlite3SectorSize, .-sqlite3SectorSize
.type setSectorSize, @function
setSectorSize:
.LFB444:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 16
mov QWORD PTR -8[rbp], rdi
mov rax, QWORD PTR -8[rbp]
movzx eax, BYTE PTR 16[rax]
test al, al
jne .L2718
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR 72[rax]
mov rdi, rax
call sqlite3OsDeviceCharacteristics
and eax, 4096
test eax, eax
je .L2719
.L2718:
mov rax, QWORD PTR -8[rbp]
mov DWORD PTR 184[rax], 512
jmp .L2720
.L2719:
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR 72[rax]
mov rdi, rax
call sqlite3SectorSize
mov edx, eax
mov rax, QWORD PTR -8[rbp]
mov DWORD PTR 184[rax], edx
.L2720:
nop
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE444:
.size setSectorSize, .-setSectorSize
.section .rodata
.LC126:
.string "recovered %d pages from %s"
.text
.type pager_playback, @function
pager_playback:
.LFB445:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 80
mov QWORD PTR -72[rbp], rdi
mov DWORD PTR -76[rbp], esi
mov rax, QWORD PTR -72[rbp]
mov rax, QWORD PTR [rax]
mov QWORD PTR -32[rbp], rax
mov DWORD PTR -48[rbp], 0
mov DWORD PTR -52[rbp], 1
mov QWORD PTR -16[rbp], 0
mov DWORD PTR -24[rbp], 0
mov rax, QWORD PTR -72[rbp]
mov eax, DWORD PTR 188[rax]
mov DWORD PTR -56[rbp], eax
mov rax, QWORD PTR -72[rbp]
mov rax, QWORD PTR 80[rax]
lea rdx, -40[rbp]
mov rsi, rdx
mov rdi, rax
call sqlite3OsFileSize
mov DWORD PTR -8[rbp], eax
cmp DWORD PTR -8[rbp], 0
jne .L2749
mov rax, QWORD PTR -72[rbp]
mov rax, QWORD PTR 272[rax]
mov QWORD PTR -16[rbp], rax
mov rax, QWORD PTR -72[rbp]
mov rax, QWORD PTR [rax]
mov eax, DWORD PTR 8[rax]
add eax, 1
mov edx, eax
mov rax, QWORD PTR -72[rbp]
mov rax, QWORD PTR 80[rax]
mov rcx, QWORD PTR -16[rbp]
mov rsi, rcx
mov rdi, rax
call readMasterJournal
mov DWORD PTR -8[rbp], eax
cmp DWORD PTR -8[rbp], 0
jne .L2724
mov rax, QWORD PTR -16[rbp]
movzx eax, BYTE PTR [rax]
test al, al
je .L2724
lea rdx, -52[rbp]
mov rsi, QWORD PTR -16[rbp]
mov rax, QWORD PTR -32[rbp]
mov rcx, rdx
mov edx, 0
mov rdi, rax
call sqlite3OsAccess
mov DWORD PTR -8[rbp], eax
.L2724:
mov QWORD PTR -16[rbp], 0
cmp DWORD PTR -8[rbp], 0
jne .L2723
mov eax, DWORD PTR -52[rbp]
test eax, eax
je .L2723
mov rax, QWORD PTR -72[rbp]
mov QWORD PTR 96[rax], 0
mov eax, DWORD PTR -76[rbp]
mov DWORD PTR -20[rbp], eax
.L2739:
mov rdx, QWORD PTR -40[rbp]
lea rdi, -48[rbp]
lea rcx, -44[rbp]
mov esi, DWORD PTR -76[rbp]
mov rax, QWORD PTR -72[rbp]
mov r8, rdi
mov rdi, rax
call readJournalHdr
mov DWORD PTR -8[rbp], eax
cmp DWORD PTR -8[rbp], 0
je .L2725
cmp DWORD PTR -8[rbp], 101
jne .L2750
mov DWORD PTR -8[rbp], 0
jmp .L2750
.L2725:
mov eax, DWORD PTR -44[rbp]
cmp eax, -1
jne .L2727
mov rdx, QWORD PTR -40[rbp]
mov rax, QWORD PTR -72[rbp]
mov eax, DWORD PTR 184[rax]
mov eax, eax
mov rcx, rdx
sub rcx, rax
mov rax, QWORD PTR -72[rbp]
mov eax, DWORD PTR 188[rax]
add eax, 8
movsx rdi, eax
mov rax, rcx
cqo
idiv rdi
mov DWORD PTR -44[rbp], eax
.L2727:
mov eax, DWORD PTR -44[rbp]
test eax, eax
jne .L2728
cmp DWORD PTR -76[rbp], 0
jne .L2728
mov rax, QWORD PTR -72[rbp]
mov rdx, QWORD PTR 104[rax]
mov rax, QWORD PTR -72[rbp]
mov eax, DWORD PTR 184[rax]
mov eax, eax
add rdx, rax
mov rax, QWORD PTR -72[rbp]
mov rax, QWORD PTR 96[rax]
cmp rdx, rax
jne .L2728
mov rdx, QWORD PTR -40[rbp]
mov rax, QWORD PTR -72[rbp]
mov rax, QWORD PTR 96[rax]
mov rcx, rdx
sub rcx, rax
mov rax, QWORD PTR -72[rbp]
mov eax, DWORD PTR 188[rax]
add eax, 8
movsx rsi, eax
mov rax, rcx
cqo
idiv rsi
mov DWORD PTR -44[rbp], eax
.L2728:
mov rax, QWORD PTR -72[rbp]
mov rdx, QWORD PTR 96[rax]
mov rax, QWORD PTR -72[rbp]
mov eax, DWORD PTR 184[rax]
mov eax, eax
cmp rdx, rax
jne .L2729
mov edx, DWORD PTR -48[rbp]
mov rax, QWORD PTR -72[rbp]
mov esi, edx
mov rdi, rax
call pager_truncate
mov DWORD PTR -8[rbp], eax
cmp DWORD PTR -8[rbp], 0
jne .L2751
mov edx, DWORD PTR -48[rbp]
mov rax, QWORD PTR -72[rbp]
mov DWORD PTR 28[rax], edx
.L2729:
mov DWORD PTR -4[rbp], 0
jmp .L2731
.L2738:
cmp DWORD PTR -20[rbp], 0
je .L2732
mov rax, QWORD PTR -72[rbp]
mov rdi, rax
call pager_reset
mov DWORD PTR -20[rbp], 0
.L2732:
mov rax, QWORD PTR -72[rbp]
lea rsi, 96[rax]
mov rax, QWORD PTR -72[rbp]
mov r8d, 0
mov ecx, 1
mov edx, 0
mov rdi, rax
call pager_playback_one_page
mov DWORD PTR -8[rbp], eax
cmp DWORD PTR -8[rbp], 0
jne .L2733
add DWORD PTR -24[rbp], 1
jmp .L2748
.L2733:
cmp DWORD PTR -8[rbp], 101
jne .L2735
mov rdx, QWORD PTR -40[rbp]
mov rax, QWORD PTR -72[rbp]
mov QWORD PTR 96[rax], rdx
jmp .L2736
.L2735:
cmp DWORD PTR -8[rbp], 522
jne .L2752
mov DWORD PTR -8[rbp], 0
jmp .L2723
.L2748:
add DWORD PTR -4[rbp], 1
.L2731:
mov eax, DWORD PTR -44[rbp]
cmp DWORD PTR -4[rbp], eax
jb .L2738
.L2736:
jmp .L2739
.L2749:
nop
jmp .L2723
.L2750:
nop
jmp .L2723
.L2751:
nop
jmp .L2723
.L2752:
nop
.L2723:
cmp DWORD PTR -8[rbp], 0
jne .L2740
lea rcx, -56[rbp]
mov rax, QWORD PTR -72[rbp]
mov edx, -1
mov rsi, rcx
mov rdi, rax
call sqlite3PagerSetPagesize
mov DWORD PTR -8[rbp], eax
.L2740:
mov rax, QWORD PTR -72[rbp]
movzx edx, BYTE PTR 16[rax]
mov rax, QWORD PTR -72[rbp]
mov BYTE PTR 22[rax], dl
cmp DWORD PTR -8[rbp], 0
jne .L2741
mov rax, QWORD PTR -72[rbp]
mov rax, QWORD PTR 272[rax]
mov QWORD PTR -16[rbp], rax
mov rax, QWORD PTR -72[rbp]
mov rax, QWORD PTR [rax]
mov eax, DWORD PTR 8[rax]
add eax, 1
mov edx, eax
mov rax, QWORD PTR -72[rbp]
mov rax, QWORD PTR 80[rax]
mov rcx, QWORD PTR -16[rbp]
mov rsi, rcx
mov rdi, rax
call readMasterJournal
mov DWORD PTR -8[rbp], eax
.L2741:
cmp DWORD PTR -8[rbp], 0
jne .L2742
mov rax, QWORD PTR -72[rbp]
movzx eax, BYTE PTR 20[rax]
cmp al, 3
ja .L2743
mov rax, QWORD PTR -72[rbp]
movzx eax, BYTE PTR 20[rax]
test al, al
jne .L2742
.L2743:
mov rax, QWORD PTR -72[rbp]
mov esi, 0
mov rdi, rax
call sqlite3PagerSync
mov DWORD PTR -8[rbp], eax
.L2742:
cmp DWORD PTR -8[rbp], 0
jne .L2744
mov rax, QWORD PTR -16[rbp]
movzx eax, BYTE PTR [rax]
test al, al
setne al
movzx ecx, al
mov rax, QWORD PTR -72[rbp]
mov edx, 0
mov esi, ecx
mov rdi, rax
call pager_end_transaction
mov DWORD PTR -8[rbp], eax
.L2744:
cmp DWORD PTR -8[rbp], 0
jne .L2745
mov rax, QWORD PTR -16[rbp]
movzx eax, BYTE PTR [rax]
test al, al
je .L2745
mov eax, DWORD PTR -52[rbp]
test eax, eax
je .L2745
mov rdx, QWORD PTR -16[rbp]
mov rax, QWORD PTR -72[rbp]
mov rsi, rdx
mov rdi, rax
call pager_delmaster
mov DWORD PTR -8[rbp], eax
.L2745:
cmp DWORD PTR -76[rbp], 0
je .L2746
cmp DWORD PTR -24[rbp], 0
je .L2746
mov rax, QWORD PTR -72[rbp]
mov rdx, QWORD PTR 216[rax]
mov eax, DWORD PTR -24[rbp]
mov rcx, rdx
mov edx, eax
lea rsi, .LC126[rip]
mov edi, 539
mov eax, 0
call sqlite3_log
.L2746:
mov rax, QWORD PTR -72[rbp]
mov rdi, rax
call setSectorSize
mov eax, DWORD PTR -8[rbp]
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE445:
.size pager_playback, .-pager_playback
.type readDbPage, @function
readDbPage:
.LFB446:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 64
mov QWORD PTR -56[rbp], rdi
mov rax, QWORD PTR -56[rbp]
mov rax, QWORD PTR 40[rax]
mov QWORD PTR -16[rbp], rax
mov DWORD PTR -4[rbp], 0
mov DWORD PTR -36[rbp], 0
mov rax, QWORD PTR -16[rbp]
mov rax, QWORD PTR 288[rax]
test rax, rax
je .L2754
mov rax, QWORD PTR -56[rbp]
mov ecx, DWORD PTR 48[rax]
mov rax, QWORD PTR -16[rbp]
mov rax, QWORD PTR 288[rax]
lea rdx, -36[rbp]
mov esi, ecx
mov rdi, rax
call sqlite3WalFindFrame
mov DWORD PTR -4[rbp], eax
cmp DWORD PTR -4[rbp], 0
je .L2754
mov eax, DWORD PTR -4[rbp]
jmp .L2760
.L2754:
mov eax, DWORD PTR -36[rbp]
test eax, eax
je .L2756
mov rax, QWORD PTR -56[rbp]
mov rcx, QWORD PTR 8[rax]
mov rax, QWORD PTR -16[rbp]
mov edx, DWORD PTR 188[rax]
mov esi, DWORD PTR -36[rbp]
mov rax, QWORD PTR -16[rbp]
mov rax, QWORD PTR 288[rax]
mov rdi, rax
call sqlite3WalReadFrame
mov DWORD PTR -4[rbp], eax
jmp .L2757
.L2756:
mov rax, QWORD PTR -56[rbp]
mov eax, DWORD PTR 48[rax]
sub eax, 1
mov edx, eax
mov rax, QWORD PTR -16[rbp]
mov eax, DWORD PTR 188[rax]
cdqe
imul rax, rdx
mov QWORD PTR -24[rbp], rax
mov rax, QWORD PTR -16[rbp]
mov edx, DWORD PTR 188[rax]
mov rax, QWORD PTR -56[rbp]
mov rsi, QWORD PTR 8[rax]
mov rax, QWORD PTR -16[rbp]
mov rax, QWORD PTR 72[rax]
mov rcx, QWORD PTR -24[rbp]
mov rdi, rax
call sqlite3OsRead
mov DWORD PTR -4[rbp], eax
cmp DWORD PTR -4[rbp], 522
jne .L2757
mov DWORD PTR -4[rbp], 0
.L2757:
mov rax, QWORD PTR -56[rbp]
mov eax, DWORD PTR 48[rax]
cmp eax, 1
jne .L2758
cmp DWORD PTR -4[rbp], 0
je .L2759
mov rax, QWORD PTR -16[rbp]
add rax, 136
mov edx, 16
mov esi, 255
mov rdi, rax
call memset@PLT
jmp .L2758
.L2759:
mov rax, QWORD PTR -56[rbp]
mov rax, QWORD PTR 8[rax]
add rax, 24
mov QWORD PTR -32[rbp], rax
mov rax, QWORD PTR -16[rbp]
lea rcx, 136[rax]
mov rax, QWORD PTR -32[rbp]
mov rdx, QWORD PTR 8[rax]
mov rax, QWORD PTR [rax]
mov QWORD PTR [rcx], rax
mov QWORD PTR 8[rcx], rdx
.L2758:
mov eax, DWORD PTR -4[rbp]
.L2760:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE446:
.size readDbPage, .-readDbPage
.type pager_write_changecounter, @function
pager_write_changecounter:
.LFB447:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 24
mov QWORD PTR -24[rbp], rdi
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 40[rax]
add rax, 136
mov rdi, rax
call sqlite3Get4byte
add eax, 1
mov DWORD PTR -4[rbp], eax
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 8[rax]
lea rdx, 24[rax]
mov eax, DWORD PTR -4[rbp]
mov esi, eax
mov rdi, rdx
call sqlite3Put4byte
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 8[rax]
lea rdx, 92[rax]
mov eax, DWORD PTR -4[rbp]
mov esi, eax
mov rdi, rdx
call sqlite3Put4byte
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 8[rax]
add rax, 96
mov esi, 3022000
mov rdi, rax
call sqlite3Put4byte
nop
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE447:
.size pager_write_changecounter, .-pager_write_changecounter
.type pagerUndoCallback, @function
pagerUndoCallback:
.LFB448:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 48
mov QWORD PTR -40[rbp], rdi
mov DWORD PTR -44[rbp], esi
mov DWORD PTR -4[rbp], 0
mov rax, QWORD PTR -40[rbp]
mov QWORD PTR -16[rbp], rax
mov edx, DWORD PTR -44[rbp]
mov rax, QWORD PTR -16[rbp]
mov esi, edx
mov rdi, rax
call sqlite3PagerLookup
mov QWORD PTR -24[rbp], rax
cmp QWORD PTR -24[rbp], 0
je .L2763
mov rax, QWORD PTR -24[rbp]
mov rdi, rax
call sqlite3PcachePageRefcount
cmp eax, 1
jne .L2764
mov rax, QWORD PTR -24[rbp]
mov rdi, rax
call sqlite3PcacheDrop
jmp .L2763
.L2764:
mov rax, QWORD PTR -24[rbp]
mov rdi, rax
call readDbPage
mov DWORD PTR -4[rbp], eax
cmp DWORD PTR -4[rbp], 0
jne .L2765
mov rax, QWORD PTR -16[rbp]
mov rax, QWORD PTR 256[rax]
mov rdx, QWORD PTR -24[rbp]
mov rdi, rdx
call rax
.L2765:
mov rax, QWORD PTR -24[rbp]
mov rdi, rax
call sqlite3PagerUnrefNotNull
.L2763:
mov rax, QWORD PTR -16[rbp]
mov rax, QWORD PTR 112[rax]
mov rdi, rax
call sqlite3BackupRestart
mov eax, DWORD PTR -4[rbp]
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE448:
.size pagerUndoCallback, .-pagerUndoCallback
.type pagerRollbackWal, @function
pagerRollbackWal:
.LFB449:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 48
mov QWORD PTR -40[rbp], rdi
mov rax, QWORD PTR -40[rbp]
mov edx, DWORD PTR 32[rax]
mov rax, QWORD PTR -40[rbp]
mov DWORD PTR 28[rax], edx
mov rax, QWORD PTR -40[rbp]
mov rax, QWORD PTR 288[rax]
mov rdx, QWORD PTR -40[rbp]
lea rsi, pagerUndoCallback[rip]
mov rdi, rax
call sqlite3WalUndo
mov DWORD PTR -4[rbp], eax
mov rax, QWORD PTR -40[rbp]
mov rax, QWORD PTR 280[rax]
mov rdi, rax
call sqlite3PcacheDirtyList
mov QWORD PTR -16[rbp], rax
jmp .L2768
.L2770:
mov rax, QWORD PTR -16[rbp]
mov rax, QWORD PTR 32[rax]
mov QWORD PTR -24[rbp], rax
mov rax, QWORD PTR -16[rbp]
mov edx, DWORD PTR 48[rax]
mov rax, QWORD PTR -40[rbp]
mov esi, edx
mov rdi, rax
call pagerUndoCallback
mov DWORD PTR -4[rbp], eax
mov rax, QWORD PTR -24[rbp]
mov QWORD PTR -16[rbp], rax
.L2768:
cmp QWORD PTR -16[rbp], 0
je .L2769
cmp DWORD PTR -4[rbp], 0
je .L2770
.L2769:
mov eax, DWORD PTR -4[rbp]
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE449:
.size pagerRollbackWal, .-pagerRollbackWal
.type pagerWalFrames, @function
pagerWalFrames:
.LFB450:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 64
mov QWORD PTR -40[rbp], rdi
mov QWORD PTR -48[rbp], rsi
mov DWORD PTR -52[rbp], edx
mov DWORD PTR -56[rbp], ecx
cmp DWORD PTR -56[rbp], 0
je .L2773
lea rax, -48[rbp]
mov QWORD PTR -24[rbp], rax
mov DWORD PTR -4[rbp], 0
mov rax, QWORD PTR -48[rbp]
mov QWORD PTR -16[rbp], rax
jmp .L2774
.L2776:
mov rax, QWORD PTR -16[rbp]
mov eax, DWORD PTR 48[rax]
cmp eax, DWORD PTR -52[rbp]
ja .L2775
mov rax, QWORD PTR -16[rbp]
add rax, 32
mov QWORD PTR -24[rbp], rax
add DWORD PTR -4[rbp], 1
.L2775:
mov rax, QWORD PTR -16[rbp]
mov rax, QWORD PTR 32[rax]
mov QWORD PTR -16[rbp], rax
.L2774:
mov rax, QWORD PTR -24[rbp]
mov rdx, QWORD PTR -16[rbp]
mov QWORD PTR [rax], rdx
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR [rax]
test rax, rax
jne .L2776
jmp .L2777
.L2773:
mov DWORD PTR -4[rbp], 1
.L2777:
mov rax, QWORD PTR -40[rbp]
mov edx, DWORD PTR 248[rax]
mov eax, DWORD PTR -4[rbp]
add edx, eax
mov rax, QWORD PTR -40[rbp]
mov DWORD PTR 248[rax], edx
mov rax, QWORD PTR -48[rbp]
mov eax, DWORD PTR 48[rax]
cmp eax, 1
jne .L2778
mov rax, QWORD PTR -48[rbp]
mov rdi, rax
call pager_write_changecounter
.L2778:
mov rax, QWORD PTR -40[rbp]
movzx eax, BYTE PTR 15[rax]
movzx r8d, al
mov rdx, QWORD PTR -48[rbp]
mov rax, QWORD PTR -40[rbp]
mov esi, DWORD PTR 188[rax]
mov rax, QWORD PTR -40[rbp]
mov rax, QWORD PTR 288[rax]
mov edi, DWORD PTR -56[rbp]
mov ecx, DWORD PTR -52[rbp]
mov r9d, r8d
mov r8d, edi
mov rdi, rax
call sqlite3WalFrames
mov DWORD PTR -28[rbp], eax
cmp DWORD PTR -28[rbp], 0
jne .L2779
mov rax, QWORD PTR -40[rbp]
mov rax, QWORD PTR 112[rax]
test rax, rax
je .L2779
mov rax, QWORD PTR -48[rbp]
mov QWORD PTR -16[rbp], rax
jmp .L2780
.L2781:
mov rax, QWORD PTR -16[rbp]
mov rdx, QWORD PTR 8[rax]
mov rax, QWORD PTR -16[rbp]
mov ecx, DWORD PTR 48[rax]
mov rax, QWORD PTR -40[rbp]
mov rax, QWORD PTR 112[rax]
mov esi, ecx
mov rdi, rax
call sqlite3BackupUpdate
mov rax, QWORD PTR -16[rbp]
mov rax, QWORD PTR 32[rax]
mov QWORD PTR -16[rbp], rax
.L2780:
cmp QWORD PTR -16[rbp], 0
jne .L2781
.L2779:
mov eax, DWORD PTR -28[rbp]
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE450:
.size pagerWalFrames, .-pagerWalFrames
.type pagerBeginReadTransaction, @function
pagerBeginReadTransaction:
.LFB451:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 32
mov QWORD PTR -24[rbp], rdi
mov DWORD PTR -8[rbp], 0
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 288[rax]
mov rdi, rax
call sqlite3WalEndReadTransaction
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 288[rax]
lea rdx, -8[rbp]
mov rsi, rdx
mov rdi, rax
call sqlite3WalBeginReadTransaction
mov DWORD PTR -4[rbp], eax
cmp DWORD PTR -4[rbp], 0
jne .L2784
mov eax, DWORD PTR -8[rbp]
test eax, eax
je .L2785
.L2784:
mov rax, QWORD PTR -24[rbp]
mov rdi, rax
call pager_reset
mov rax, QWORD PTR -24[rbp]
movzx eax, BYTE PTR 26[rax]
test al, al
je .L2785
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 72[rax]
mov edx, 0
mov esi, 0
mov rdi, rax
call sqlite3OsUnfetch
.L2785:
mov eax, DWORD PTR -4[rbp]
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE451:
.size pagerBeginReadTransaction, .-pagerBeginReadTransaction
.type pagerPagecount, @function
pagerPagecount:
.LFB452:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 32
mov QWORD PTR -24[rbp], rdi
mov QWORD PTR -32[rbp], rsi
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 288[rax]
mov rdi, rax
call sqlite3WalDbsize
mov DWORD PTR -4[rbp], eax
cmp DWORD PTR -4[rbp], 0
jne .L2788
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 72[rax]
mov rax, QWORD PTR [rax]
test rax, rax
je .L2788
mov QWORD PTR -16[rbp], 0
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 72[rax]
lea rdx, -16[rbp]
mov rsi, rdx
mov rdi, rax
call sqlite3OsFileSize
mov DWORD PTR -8[rbp], eax
cmp DWORD PTR -8[rbp], 0
je .L2789
mov eax, DWORD PTR -8[rbp]
jmp .L2790
.L2789:
mov rax, QWORD PTR -24[rbp]
mov eax, DWORD PTR 188[rax]
movsx rdx, eax
mov rax, QWORD PTR -16[rbp]
add rax, rdx
lea rcx, -1[rax]
mov rax, QWORD PTR -24[rbp]
mov eax, DWORD PTR 188[rax]
movsx rsi, eax
mov rax, rcx
cqo
idiv rsi
mov DWORD PTR -4[rbp], eax
.L2788:
mov rax, QWORD PTR -24[rbp]
mov eax, DWORD PTR 192[rax]
cmp eax, DWORD PTR -4[rbp]
jnb .L2791
mov rax, QWORD PTR -24[rbp]
mov edx, DWORD PTR -4[rbp]
mov DWORD PTR 192[rax], edx
.L2791:
mov rax, QWORD PTR -32[rbp]
mov edx, DWORD PTR -4[rbp]
mov DWORD PTR [rax], edx
mov eax, 0
.L2790:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE452:
.size pagerPagecount, .-pagerPagecount
.type pagerOpenWalIfPresent, @function
pagerOpenWalIfPresent:
.LFB453:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 32
mov QWORD PTR -24[rbp], rdi
mov DWORD PTR -4[rbp], 0
mov rax, QWORD PTR -24[rbp]
movzx eax, BYTE PTR 16[rax]
test al, al
jne .L2793
mov rax, QWORD PTR -24[rbp]
mov rsi, QWORD PTR 296[rax]
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR [rax]
lea rdx, -8[rbp]
mov rcx, rdx
mov edx, 0
mov rdi, rax
call sqlite3OsAccess
mov DWORD PTR -4[rbp], eax
cmp DWORD PTR -4[rbp], 0
jne .L2793
mov eax, DWORD PTR -8[rbp]
test eax, eax
je .L2795
lea rdx, -12[rbp]
mov rax, QWORD PTR -24[rbp]
mov rsi, rdx
mov rdi, rax
call pagerPagecount
mov DWORD PTR -4[rbp], eax
cmp DWORD PTR -4[rbp], 0
je .L2796
mov eax, DWORD PTR -4[rbp]
jmp .L2797
.L2796:
mov eax, DWORD PTR -12[rbp]
test eax, eax
jne .L2798
mov rax, QWORD PTR -24[rbp]
mov rcx, QWORD PTR 296[rax]
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR [rax]
mov edx, 0
mov rsi, rcx
mov rdi, rax
call sqlite3OsDelete
mov DWORD PTR -4[rbp], eax
jmp .L2793
.L2798:
mov rax, QWORD PTR -24[rbp]
mov esi, 0
mov rdi, rax
call sqlite3PagerOpenWal
mov DWORD PTR -4[rbp], eax
jmp .L2793
.L2795:
mov rax, QWORD PTR -24[rbp]
movzx eax, BYTE PTR 9[rax]
cmp al, 5
jne .L2793
mov rax, QWORD PTR -24[rbp]
mov BYTE PTR 9[rax], 0
.L2793:
mov eax, DWORD PTR -4[rbp]
.L2797:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE453:
.size pagerOpenWalIfPresent, .-pagerOpenWalIfPresent
.type pagerPlaybackSavepoint, @function
pagerPlaybackSavepoint:
.LFB454:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 80
mov QWORD PTR -72[rbp], rdi
mov QWORD PTR -80[rbp], rsi
mov DWORD PTR -4[rbp], 0
mov QWORD PTR -16[rbp], 0
cmp QWORD PTR -80[rbp], 0
je .L2801
mov rax, QWORD PTR -80[rbp]
mov eax, DWORD PTR 24[rax]
mov edi, eax
call sqlite3BitvecCreate
mov QWORD PTR -16[rbp], rax
cmp QWORD PTR -16[rbp], 0
jne .L2801
mov eax, 7
jmp .L2802
.L2801:
cmp QWORD PTR -80[rbp], 0
je .L2803
mov rax, QWORD PTR -80[rbp]
mov eax, DWORD PTR 24[rax]
jmp .L2804
.L2803:
mov rax, QWORD PTR -72[rbp]
mov eax, DWORD PTR 32[rax]
.L2804:
mov rdx, QWORD PTR -72[rbp]
mov DWORD PTR 28[rdx], eax
mov rax, QWORD PTR -72[rbp]
movzx edx, BYTE PTR 16[rax]
mov rax, QWORD PTR -72[rbp]
mov BYTE PTR 22[rax], dl
cmp QWORD PTR -80[rbp], 0
jne .L2805
mov rax, QWORD PTR -72[rbp]
mov rax, QWORD PTR 288[rax]
test rax, rax
je .L2805
mov rax, QWORD PTR -72[rbp]
mov rdi, rax
call pagerRollbackWal
jmp .L2802
.L2805:
mov rax, QWORD PTR -72[rbp]
mov rax, QWORD PTR 96[rax]
mov QWORD PTR -32[rbp], rax
cmp QWORD PTR -80[rbp], 0
je .L2806
mov rax, QWORD PTR -72[rbp]
mov rax, QWORD PTR 288[rax]
test rax, rax
jne .L2806
mov rax, QWORD PTR -80[rbp]
mov rax, QWORD PTR 8[rax]
test rax, rax
je .L2807
mov rax, QWORD PTR -80[rbp]
mov rax, QWORD PTR 8[rax]
jmp .L2808
.L2807:
mov rax, QWORD PTR -32[rbp]
.L2808:
mov QWORD PTR -40[rbp], rax
mov rax, QWORD PTR -80[rbp]
mov rdx, QWORD PTR [rax]
mov rax, QWORD PTR -72[rbp]
mov QWORD PTR 96[rax], rdx
jmp .L2809
.L2811:
mov rax, QWORD PTR -72[rbp]
lea rsi, 96[rax]
mov rdx, QWORD PTR -16[rbp]
mov rax, QWORD PTR -72[rbp]
mov r8d, 1
mov ecx, 1
mov rdi, rax
call pager_playback_one_page
mov DWORD PTR -4[rbp], eax
.L2809:
cmp DWORD PTR -4[rbp], 0
jne .L2826
mov rax, QWORD PTR -72[rbp]
mov rax, QWORD PTR 96[rax]
cmp rax, QWORD PTR -40[rbp]
jl .L2811
jmp .L2826
.L2806:
mov rax, QWORD PTR -72[rbp]
mov QWORD PTR 96[rax], 0
jmp .L2813
.L2826:
nop
jmp .L2813
.L2819:
mov DWORD PTR -44[rbp], 0
lea rsi, -48[rbp]
lea rcx, -44[rbp]
mov rdx, QWORD PTR -32[rbp]
mov rax, QWORD PTR -72[rbp]
mov r8, rsi
mov esi, 0
mov rdi, rax
call readJournalHdr
mov DWORD PTR -4[rbp], eax
mov eax, DWORD PTR -44[rbp]
test eax, eax
jne .L2814
mov rax, QWORD PTR -72[rbp]
mov rdx, QWORD PTR 104[rax]
mov rax, QWORD PTR -72[rbp]
mov eax, DWORD PTR 184[rax]
mov eax, eax
add rdx, rax
mov rax, QWORD PTR -72[rbp]
mov rax, QWORD PTR 96[rax]
cmp rdx, rax
jne .L2814
mov rax, QWORD PTR -72[rbp]
mov rax, QWORD PTR 96[rax]
mov rdx, QWORD PTR -32[rbp]
mov rcx, rdx
sub rcx, rax
mov rax, QWORD PTR -72[rbp]
mov eax, DWORD PTR 188[rax]
add eax, 8
movsx rdi, eax
mov rax, rcx
cqo
idiv rdi
mov DWORD PTR -44[rbp], eax
.L2814:
mov DWORD PTR -20[rbp], 0
jmp .L2815
.L2817:
mov rax, QWORD PTR -72[rbp]
lea rsi, 96[rax]
mov rdx, QWORD PTR -16[rbp]
mov rax, QWORD PTR -72[rbp]
mov r8d, 1
mov ecx, 1
mov rdi, rax
call pager_playback_one_page
mov DWORD PTR -4[rbp], eax
add DWORD PTR -20[rbp], 1
.L2815:
cmp DWORD PTR -4[rbp], 0
jne .L2813
mov eax, DWORD PTR -44[rbp]
cmp DWORD PTR -20[rbp], eax
jnb .L2813
mov rax, QWORD PTR -72[rbp]
mov rax, QWORD PTR 96[rax]
cmp rax, QWORD PTR -32[rbp]
jl .L2817
.L2813:
cmp DWORD PTR -4[rbp], 0
jne .L2818
mov rax, QWORD PTR -72[rbp]
mov rax, QWORD PTR 96[rax]
cmp rax, QWORD PTR -32[rbp]
jl .L2819
.L2818:
cmp QWORD PTR -80[rbp], 0
je .L2820
mov rax, QWORD PTR -80[rbp]
mov eax, DWORD PTR 28[rax]
mov edx, eax
mov rax, QWORD PTR -72[rbp]
mov eax, DWORD PTR 188[rax]
add eax, 4
cdqe
imul rax, rdx
mov QWORD PTR -56[rbp], rax
mov rax, QWORD PTR -72[rbp]
mov rax, QWORD PTR 288[rax]
test rax, rax
je .L2821
mov rax, QWORD PTR -80[rbp]
lea rdx, 32[rax]
mov rax, QWORD PTR -72[rbp]
mov rax, QWORD PTR 288[rax]
mov rsi, rdx
mov rdi, rax
call sqlite3WalSavepointUndo
mov DWORD PTR -4[rbp], eax
.L2821:
mov rax, QWORD PTR -80[rbp]
mov eax, DWORD PTR 28[rax]
mov DWORD PTR -24[rbp], eax
jmp .L2822
.L2824:
mov rdx, QWORD PTR -16[rbp]
lea rsi, -56[rbp]
mov rax, QWORD PTR -72[rbp]
mov r8d, 1
mov ecx, 0
mov rdi, rax
call pager_playback_one_page
mov DWORD PTR -4[rbp], eax
add DWORD PTR -24[rbp], 1
.L2822:
cmp DWORD PTR -4[rbp], 0
jne .L2820
mov rax, QWORD PTR -72[rbp]
mov eax, DWORD PTR 56[rax]
cmp eax, DWORD PTR -24[rbp]
ja .L2824
.L2820:
mov rax, QWORD PTR -16[rbp]
mov rdi, rax
call sqlite3BitvecDestroy
cmp DWORD PTR -4[rbp], 0
jne .L2825
mov rax, QWORD PTR -72[rbp]
mov rdx, QWORD PTR -32[rbp]
mov QWORD PTR 96[rax], rdx
.L2825:
mov eax, DWORD PTR -4[rbp]
.L2802:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE454:
.size pagerPlaybackSavepoint, .-pagerPlaybackSavepoint
.type sqlite3PagerSetCachesize, @function
sqlite3PagerSetCachesize:
.LFB455:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 16
mov QWORD PTR -8[rbp], rdi
mov DWORD PTR -12[rbp], esi
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR 280[rax]
mov edx, DWORD PTR -12[rbp]
mov esi, edx
mov rdi, rax
call sqlite3PcacheSetCachesize
nop
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE455:
.size sqlite3PagerSetCachesize, .-sqlite3PagerSetCachesize
.type sqlite3PagerSetSpillsize, @function
sqlite3PagerSetSpillsize:
.LFB456:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 16
mov QWORD PTR -8[rbp], rdi
mov DWORD PTR -12[rbp], esi
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR 280[rax]
mov edx, DWORD PTR -12[rbp]
mov esi, edx
mov rdi, rax
call sqlite3PcacheSetSpillsize
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE456:
.size sqlite3PagerSetSpillsize, .-sqlite3PagerSetSpillsize
.type pagerFixMaplimit, @function
pagerFixMaplimit:
.LFB457:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 32
mov QWORD PTR -24[rbp], rdi
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 72[rax]
mov QWORD PTR -8[rbp], rax
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR [rax]
test rax, rax
je .L2832
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR [rax]
mov eax, DWORD PTR [rax]
cmp eax, 2
jle .L2832
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 160[rax]
mov QWORD PTR -16[rbp], rax
mov rax, QWORD PTR -16[rbp]
test rax, rax
setg al
mov edx, eax
mov rax, QWORD PTR -24[rbp]
mov BYTE PTR 26[rax], dl
mov rax, QWORD PTR -24[rbp]
mov rdi, rax
call setGetterMethod
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 72[rax]
lea rdx, -16[rbp]
mov esi, 18
mov rdi, rax
call sqlite3OsFileControlHint
.L2832:
nop
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE457:
.size pagerFixMaplimit, .-pagerFixMaplimit
.type sqlite3PagerSetMmapLimit, @function
sqlite3PagerSetMmapLimit:
.LFB458:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 16
mov QWORD PTR -8[rbp], rdi
mov QWORD PTR -16[rbp], rsi
mov rax, QWORD PTR -8[rbp]
mov rdx, QWORD PTR -16[rbp]
mov QWORD PTR 160[rax], rdx
mov rax, QWORD PTR -8[rbp]
mov rdi, rax
call pagerFixMaplimit
nop
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE458:
.size sqlite3PagerSetMmapLimit, .-sqlite3PagerSetMmapLimit
.type sqlite3PagerShrink, @function
sqlite3PagerShrink:
.LFB459:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 16
mov QWORD PTR -8[rbp], rdi
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR 280[rax]
mov rdi, rax
call sqlite3PcacheShrink
nop
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE459:
.size sqlite3PagerShrink, .-sqlite3PagerShrink
.type sqlite3PagerSetFlags, @function
sqlite3PagerSetFlags:
.LFB460:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
mov QWORD PTR -24[rbp], rdi
mov DWORD PTR -28[rbp], esi
mov eax, DWORD PTR -28[rbp]
and eax, 7
mov DWORD PTR -4[rbp], eax
mov rax, QWORD PTR -24[rbp]
movzx eax, BYTE PTR 16[rax]
test al, al
je .L2836
mov rax, QWORD PTR -24[rbp]
mov BYTE PTR 11[rax], 1
mov rax, QWORD PTR -24[rbp]
mov BYTE PTR 12[rax], 0
mov rax, QWORD PTR -24[rbp]
mov BYTE PTR 13[rax], 0
jmp .L2837
.L2836:
cmp DWORD PTR -4[rbp], 1
sete al
mov edx, eax
mov rax, QWORD PTR -24[rbp]
mov BYTE PTR 11[rax], dl
cmp DWORD PTR -4[rbp], 2
seta al
mov edx, eax
mov rax, QWORD PTR -24[rbp]
mov BYTE PTR 12[rax], dl
cmp DWORD PTR -4[rbp], 4
sete al
mov edx, eax
mov rax, QWORD PTR -24[rbp]
mov BYTE PTR 13[rax], dl
.L2837:
mov rax, QWORD PTR -24[rbp]
movzx eax, BYTE PTR 11[rax]
test al, al
je .L2838
mov rax, QWORD PTR -24[rbp]
mov BYTE PTR 14[rax], 0
jmp .L2839
.L2838:
mov eax, DWORD PTR -28[rbp]
and eax, 8
test eax, eax
je .L2840
mov rax, QWORD PTR -24[rbp]
mov BYTE PTR 14[rax], 3
jmp .L2839
.L2840:
mov rax, QWORD PTR -24[rbp]
mov BYTE PTR 14[rax], 2
.L2839:
mov rax, QWORD PTR -24[rbp]
movzx eax, BYTE PTR 14[rax]
lea edx, 0[0+rax*4]
mov rax, QWORD PTR -24[rbp]
mov BYTE PTR 15[rax], dl
mov rax, QWORD PTR -24[rbp]
movzx eax, BYTE PTR 12[rax]
test al, al
je .L2841
mov rax, QWORD PTR -24[rbp]
movzx edx, BYTE PTR 15[rax]
mov rax, QWORD PTR -24[rbp]
movzx eax, BYTE PTR 14[rax]
or edx, eax
mov rax, QWORD PTR -24[rbp]
mov BYTE PTR 15[rax], dl
.L2841:
mov eax, DWORD PTR -28[rbp]
and eax, 16
test eax, eax
je .L2842
mov rax, QWORD PTR -24[rbp]
movzx eax, BYTE PTR 11[rax]
test al, al
jne .L2842
mov rax, QWORD PTR -24[rbp]
movzx eax, BYTE PTR 15[rax]
or eax, 12
mov edx, eax
mov rax, QWORD PTR -24[rbp]
mov BYTE PTR 15[rax], dl
.L2842:
mov eax, DWORD PTR -28[rbp]
and eax, 32
test eax, eax
je .L2843
mov rax, QWORD PTR -24[rbp]
movzx eax, BYTE PTR 24[rax]
and eax, -2
mov edx, eax
mov rax, QWORD PTR -24[rbp]
mov BYTE PTR 24[rax], dl
jmp .L2845
.L2843:
mov rax, QWORD PTR -24[rbp]
movzx eax, BYTE PTR 24[rax]
or eax, 1
mov edx, eax
mov rax, QWORD PTR -24[rbp]
mov BYTE PTR 24[rax], dl
.L2845:
nop
pop rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE460:
.size sqlite3PagerSetFlags, .-sqlite3PagerSetFlags
.type pagerOpentemp, @function
pagerOpentemp:
.LFB461:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 48
mov QWORD PTR -24[rbp], rdi
mov QWORD PTR -32[rbp], rsi
mov DWORD PTR -36[rbp], edx
or DWORD PTR -36[rbp], 30
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR [rax]
mov ecx, DWORD PTR -36[rbp]
mov rdx, QWORD PTR -32[rbp]
mov r8d, 0
mov esi, 0
mov rdi, rax
call sqlite3OsOpen
mov DWORD PTR -4[rbp], eax
mov eax, DWORD PTR -4[rbp]
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE461:
.size pagerOpentemp, .-pagerOpentemp
.type sqlite3PagerSetBusyhandler, @function
sqlite3PagerSetBusyhandler:
.LFB462:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 48
mov QWORD PTR -24[rbp], rdi
mov QWORD PTR -32[rbp], rsi
mov QWORD PTR -40[rbp], rdx
mov rax, QWORD PTR -24[rbp]
mov rdx, QWORD PTR -32[rbp]
mov QWORD PTR 224[rax], rdx
mov rax, QWORD PTR -24[rbp]
mov rdx, QWORD PTR -40[rbp]
mov QWORD PTR 232[rax], rdx
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 72[rax]
mov rax, QWORD PTR [rax]
test rax, rax
je .L2850
mov rax, QWORD PTR -24[rbp]
add rax, 224
mov QWORD PTR -8[rbp], rax
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 72[rax]
mov rdx, QWORD PTR -8[rbp]
mov esi, 15
mov rdi, rax
call sqlite3OsFileControlHint
.L2850:
nop
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE462:
.size sqlite3PagerSetBusyhandler, .-sqlite3PagerSetBusyhandler
.type sqlite3PagerSetPagesize, @function
sqlite3PagerSetPagesize:
.LFB463:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 64
mov QWORD PTR -40[rbp], rdi
mov QWORD PTR -48[rbp], rsi
mov DWORD PTR -52[rbp], edx
mov DWORD PTR -4[rbp], 0
mov rax, QWORD PTR -48[rbp]
mov eax, DWORD PTR [rax]
mov DWORD PTR -20[rbp], eax
mov rax, QWORD PTR -40[rbp]
movzx eax, BYTE PTR 19[rax]
test al, al
je .L2852
mov rax, QWORD PTR -40[rbp]
mov eax, DWORD PTR 28[rax]
test eax, eax
jne .L2853
.L2852:
mov rax, QWORD PTR -40[rbp]
mov rax, QWORD PTR 280[rax]
mov rdi, rax
call sqlite3PcacheRefCount
test eax, eax
jne .L2853
cmp DWORD PTR -20[rbp], 0
je .L2853
mov rax, QWORD PTR -40[rbp]
mov eax, DWORD PTR 188[rax]
cmp eax, DWORD PTR -20[rbp]
je .L2853
mov QWORD PTR -16[rbp], 0
mov QWORD PTR -32[rbp], 0
mov rax, QWORD PTR -40[rbp]
movzx eax, BYTE PTR 20[rax]
test al, al
je .L2854
mov rax, QWORD PTR -40[rbp]
mov rax, QWORD PTR 72[rax]
mov rax, QWORD PTR [rax]
test rax, rax
je .L2854
mov rax, QWORD PTR -40[rbp]
mov rax, QWORD PTR 72[rax]
lea rdx, -32[rbp]
mov rsi, rdx
mov rdi, rax
call sqlite3OsFileSize
mov DWORD PTR -4[rbp], eax
.L2854:
cmp DWORD PTR -4[rbp], 0
jne .L2855
mov eax, DWORD PTR -20[rbp]
mov edi, eax
call sqlite3PageMalloc
mov QWORD PTR -16[rbp], rax
cmp QWORD PTR -16[rbp], 0
jne .L2855
mov DWORD PTR -4[rbp], 7
.L2855:
cmp DWORD PTR -4[rbp], 0
jne .L2856
mov rax, QWORD PTR -40[rbp]
mov rdi, rax
call pager_reset
mov edx, DWORD PTR -20[rbp]
mov rax, QWORD PTR -40[rbp]
mov rax, QWORD PTR 280[rax]
mov esi, edx
mov rdi, rax
call sqlite3PcacheSetPageSize
mov DWORD PTR -4[rbp], eax
.L2856:
cmp DWORD PTR -4[rbp], 0
jne .L2857
mov rax, QWORD PTR -40[rbp]
mov rax, QWORD PTR 272[rax]
mov rdi, rax
call sqlite3PageFree
mov rax, QWORD PTR -40[rbp]
mov rdx, QWORD PTR -16[rbp]
mov QWORD PTR 272[rax], rdx
mov edx, DWORD PTR -20[rbp]
mov rax, QWORD PTR -32[rbp]
add rax, rdx
sub rax, 1
mov ecx, DWORD PTR -20[rbp]
cqo
idiv rcx
mov edx, eax
mov rax, QWORD PTR -40[rbp]
mov DWORD PTR 28[rax], edx
mov edx, DWORD PTR -20[rbp]
mov rax, QWORD PTR -40[rbp]
mov DWORD PTR 188[rax], edx
jmp .L2853
.L2857:
mov rax, QWORD PTR -16[rbp]
mov rdi, rax
call sqlite3PageFree
.L2853:
mov rax, QWORD PTR -40[rbp]
mov eax, DWORD PTR 188[rax]
mov edx, eax
mov rax, QWORD PTR -48[rbp]
mov DWORD PTR [rax], edx
cmp DWORD PTR -4[rbp], 0
jne .L2859
cmp DWORD PTR -52[rbp], 0
jns .L2860
mov rax, QWORD PTR -40[rbp]
movzx eax, WORD PTR 178[rax]
cwde
mov DWORD PTR -52[rbp], eax
.L2860:
mov eax, DWORD PTR -52[rbp]
mov edx, eax
mov rax, QWORD PTR -40[rbp]
mov WORD PTR 178[rax], dx
mov rax, QWORD PTR -40[rbp]
mov rdi, rax
call pagerFixMaplimit
.L2859:
mov eax, DWORD PTR -4[rbp]
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE463:
.size sqlite3PagerSetPagesize, .-sqlite3PagerSetPagesize
.type sqlite3PagerTempSpace, @function
sqlite3PagerTempSpace:
.LFB464:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
mov QWORD PTR -8[rbp], rdi
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR 272[rax]
pop rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE464:
.size sqlite3PagerTempSpace, .-sqlite3PagerTempSpace
.type sqlite3PagerMaxPageCount, @function
sqlite3PagerMaxPageCount:
.LFB465:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
mov QWORD PTR -8[rbp], rdi
mov DWORD PTR -12[rbp], esi
cmp DWORD PTR -12[rbp], 0
jle .L2865
mov edx, DWORD PTR -12[rbp]
mov rax, QWORD PTR -8[rbp]
mov DWORD PTR 192[rax], edx
.L2865:
mov rax, QWORD PTR -8[rbp]
mov eax, DWORD PTR 192[rax]
pop rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE465:
.size sqlite3PagerMaxPageCount, .-sqlite3PagerMaxPageCount
.type sqlite3PagerReadFileheader, @function
sqlite3PagerReadFileheader:
.LFB466:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 48
mov QWORD PTR -24[rbp], rdi
mov DWORD PTR -28[rbp], esi
mov QWORD PTR -40[rbp], rdx
mov DWORD PTR -4[rbp], 0
mov eax, DWORD PTR -28[rbp]
movsx rdx, eax
mov rax, QWORD PTR -40[rbp]
mov esi, 0
mov rdi, rax
call memset@PLT
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 72[rax]
mov rax, QWORD PTR [rax]
test rax, rax
je .L2868
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 72[rax]
mov edx, DWORD PTR -28[rbp]
mov rsi, QWORD PTR -40[rbp]
mov ecx, 0
mov rdi, rax
call sqlite3OsRead
mov DWORD PTR -4[rbp], eax
cmp DWORD PTR -4[rbp], 522
jne .L2868
mov DWORD PTR -4[rbp], 0
.L2868:
mov eax, DWORD PTR -4[rbp]
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE466:
.size sqlite3PagerReadFileheader, .-sqlite3PagerReadFileheader
.type sqlite3PagerPagecount, @function
sqlite3PagerPagecount:
.LFB467:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
mov QWORD PTR -8[rbp], rdi
mov QWORD PTR -16[rbp], rsi
mov rax, QWORD PTR -8[rbp]
mov eax, DWORD PTR 28[rax]
mov edx, eax
mov rax, QWORD PTR -16[rbp]
mov DWORD PTR [rax], edx
nop
pop rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE467:
.size sqlite3PagerPagecount, .-sqlite3PagerPagecount
.type pager_wait_on_lock, @function
pager_wait_on_lock:
.LFB468:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 32
mov QWORD PTR -24[rbp], rdi
mov DWORD PTR -28[rbp], esi
.L2873:
mov edx, DWORD PTR -28[rbp]
mov rax, QWORD PTR -24[rbp]
mov esi, edx
mov rdi, rax
call pagerLockDb
mov DWORD PTR -4[rbp], eax
cmp DWORD PTR -4[rbp], 5
jne .L2872
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 224[rax]
mov rdx, QWORD PTR -24[rbp]
mov rdx, QWORD PTR 232[rdx]
mov rdi, rdx
call rax
test eax, eax
jne .L2873
.L2872:
mov eax, DWORD PTR -4[rbp]
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE468:
.size pager_wait_on_lock, .-pager_wait_on_lock
.type sqlite3PagerTruncateImage, @function
sqlite3PagerTruncateImage:
.LFB469:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
mov QWORD PTR -8[rbp], rdi
mov DWORD PTR -12[rbp], esi
mov rax, QWORD PTR -8[rbp]
mov edx, DWORD PTR -12[rbp]
mov DWORD PTR 28[rax], edx
nop
pop rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE469:
.size sqlite3PagerTruncateImage, .-sqlite3PagerTruncateImage
.type pagerSyncHotJournal, @function
pagerSyncHotJournal:
.LFB470:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 32
mov QWORD PTR -24[rbp], rdi
mov DWORD PTR -4[rbp], 0
mov rax, QWORD PTR -24[rbp]
movzx eax, BYTE PTR 11[rax]
test al, al
jne .L2877
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 80[rax]
mov esi, 2
mov rdi, rax
call sqlite3OsSync
mov DWORD PTR -4[rbp], eax
.L2877:
cmp DWORD PTR -4[rbp], 0
jne .L2878
mov rax, QWORD PTR -24[rbp]
lea rdx, 104[rax]
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 80[rax]
mov rsi, rdx
mov rdi, rax
call sqlite3OsFileSize
mov DWORD PTR -4[rbp], eax
.L2878:
mov eax, DWORD PTR -4[rbp]
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE470:
.size pagerSyncHotJournal, .-pagerSyncHotJournal
.type pagerAcquireMapPage, @function
pagerAcquireMapPage:
.LFB471:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 48
mov QWORD PTR -24[rbp], rdi
mov DWORD PTR -28[rbp], esi
mov QWORD PTR -40[rbp], rdx
mov QWORD PTR -48[rbp], rcx
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 168[rax]
test rax, rax
je .L2881
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 168[rax]
mov QWORD PTR -8[rbp], rax
mov rax, QWORD PTR -48[rbp]
mov rdx, QWORD PTR -8[rbp]
mov QWORD PTR [rax], rdx
mov rax, QWORD PTR -8[rbp]
mov rdx, QWORD PTR 32[rax]
mov rax, QWORD PTR -24[rbp]
mov QWORD PTR 168[rax], rdx
mov rax, QWORD PTR -8[rbp]
mov QWORD PTR 32[rax], 0
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR 16[rax]
mov edx, 8
mov esi, 0
mov rdi, rax
call memset@PLT
jmp .L2882
.L2881:
mov rax, QWORD PTR -24[rbp]
movzx eax, WORD PTR 176[rax]
movzx eax, ax
add rax, 72
mov rdi, rax
call sqlite3MallocZero
mov QWORD PTR -8[rbp], rax
mov rax, QWORD PTR -48[rbp]
mov rdx, QWORD PTR -8[rbp]
mov QWORD PTR [rax], rdx
cmp QWORD PTR -8[rbp], 0
jne .L2883
mov eax, DWORD PTR -28[rbp]
sub eax, 1
mov edx, eax
mov rax, QWORD PTR -24[rbp]
mov eax, DWORD PTR 188[rax]
cdqe
mov rcx, rdx
imul rcx, rax
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 72[rax]
mov rdx, QWORD PTR -40[rbp]
mov rsi, rcx
mov rdi, rax
call sqlite3OsUnfetch
mov eax, 7
jmp .L2884
.L2883:
mov rax, QWORD PTR -8[rbp]
lea rdx, 72[rax]
mov rax, QWORD PTR -8[rbp]
mov QWORD PTR 16[rax], rdx
mov rax, QWORD PTR -8[rbp]
mov WORD PTR 52[rax], 32
mov rax, QWORD PTR -8[rbp]
mov WORD PTR 54[rax], 1
mov rax, QWORD PTR -8[rbp]
mov rdx, QWORD PTR -24[rbp]
mov QWORD PTR 40[rax], rdx
.L2882:
mov rax, QWORD PTR -8[rbp]
mov edx, DWORD PTR -28[rbp]
mov DWORD PTR 48[rax], edx
mov rax, QWORD PTR -8[rbp]
mov rdx, QWORD PTR -40[rbp]
mov QWORD PTR 8[rax], rdx
mov rax, QWORD PTR -24[rbp]
mov eax, DWORD PTR 152[rax]
lea edx, 1[rax]
mov rax, QWORD PTR -24[rbp]
mov DWORD PTR 152[rax], edx
mov eax, 0
.L2884:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE471:
.size pagerAcquireMapPage, .-pagerAcquireMapPage
.type pagerReleaseMapPage, @function
pagerReleaseMapPage:
.LFB472:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 32
mov QWORD PTR -24[rbp], rdi
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 40[rax]
mov QWORD PTR -8[rbp], rax
mov rax, QWORD PTR -8[rbp]
mov eax, DWORD PTR 152[rax]
lea edx, -1[rax]
mov rax, QWORD PTR -8[rbp]
mov DWORD PTR 152[rax], edx
mov rax, QWORD PTR -8[rbp]
mov rdx, QWORD PTR 168[rax]
mov rax, QWORD PTR -24[rbp]
mov QWORD PTR 32[rax], rdx
mov rax, QWORD PTR -8[rbp]
mov rdx, QWORD PTR -24[rbp]
mov QWORD PTR 168[rax], rdx
mov rax, QWORD PTR -24[rbp]
mov rdx, QWORD PTR 8[rax]
mov rax, QWORD PTR -24[rbp]
mov eax, DWORD PTR 48[rax]
sub eax, 1
mov ecx, eax
mov rax, QWORD PTR -8[rbp]
mov eax, DWORD PTR 188[rax]
cdqe
imul rcx, rax
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR 72[rax]
mov rsi, rcx
mov rdi, rax
call sqlite3OsUnfetch
nop
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE472:
.size pagerReleaseMapPage, .-pagerReleaseMapPage
.type pagerFreeMapHdrs, @function
pagerFreeMapHdrs:
.LFB473:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 32
mov QWORD PTR -24[rbp], rdi
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 168[rax]
mov QWORD PTR -8[rbp], rax
jmp .L2887
.L2888:
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR 32[rax]
mov QWORD PTR -16[rbp], rax
mov rax, QWORD PTR -8[rbp]
mov rdi, rax
call sqlite3_free
mov rax, QWORD PTR -16[rbp]
mov QWORD PTR -8[rbp], rax
.L2887:
cmp QWORD PTR -8[rbp], 0
jne .L2888
nop
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE473:
.size pagerFreeMapHdrs, .-pagerFreeMapHdrs
.type sqlite3PagerClose, @function
sqlite3PagerClose:
.LFB474:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 32
mov QWORD PTR -24[rbp], rdi
mov QWORD PTR -32[rbp], rsi
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 272[rax]
mov QWORD PTR -8[rbp], rax
call sqlite3BeginBenignMalloc
mov rax, QWORD PTR -24[rbp]
mov rdi, rax
call pagerFreeMapHdrs
mov rax, QWORD PTR -24[rbp]
mov BYTE PTR 8[rax], 0
cmp QWORD PTR -32[rbp], 0
je .L2890
mov rax, QWORD PTR -32[rbp]
mov eax, DWORD PTR 48[rax]
and eax, 2048
test eax, eax
jne .L2891
.L2890:
mov rdi, QWORD PTR -8[rbp]
jmp .L2892
.L2891:
mov edi, 0
.L2892:
mov rax, QWORD PTR -24[rbp]
mov ecx, DWORD PTR 188[rax]
mov rax, QWORD PTR -24[rbp]
movzx eax, BYTE PTR 15[rax]
movzx edx, al
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 288[rax]
mov rsi, QWORD PTR -32[rbp]
mov r8, rdi
mov rdi, rax
call sqlite3WalClose
mov rax, QWORD PTR -24[rbp]
mov QWORD PTR 288[rax], 0
mov rax, QWORD PTR -24[rbp]
mov rdi, rax
call pager_reset
mov rax, QWORD PTR -24[rbp]
movzx eax, BYTE PTR 19[rax]
test al, al
je .L2893
mov rax, QWORD PTR -24[rbp]
mov rdi, rax
call pager_unlock
jmp .L2894
.L2893:
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 80[rax]
mov rax, QWORD PTR [rax]
test rax, rax
je .L2895
mov rax, QWORD PTR -24[rbp]
mov rdi, rax
call pagerSyncHotJournal
mov edx, eax
mov rax, QWORD PTR -24[rbp]
mov esi, edx
mov rdi, rax
call pager_error
.L2895:
mov rax, QWORD PTR -24[rbp]
mov rdi, rax
call pagerUnlockAndRollback
.L2894:
call sqlite3EndBenignMalloc
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 80[rax]
mov rdi, rax
call sqlite3OsClose
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 72[rax]
mov rdi, rax
call sqlite3OsClose
mov rax, QWORD PTR -8[rbp]
mov rdi, rax
call sqlite3PageFree
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 280[rax]
mov rdi, rax
call sqlite3PcacheClose
mov rax, QWORD PTR -24[rbp]
mov rdi, rax
call sqlite3_free
mov eax, 0
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE474:
.size sqlite3PagerClose, .-sqlite3PagerClose
.type sqlite3PagerRef, @function
sqlite3PagerRef:
.LFB475:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 8
mov QWORD PTR -8[rbp], rdi
mov rax, QWORD PTR -8[rbp]
mov rdi, rax
call sqlite3PcacheRef
nop
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE475:
.size sqlite3PagerRef, .-sqlite3PagerRef
.type syncJournal, @function
syncJournal:
.LFB476:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 64
mov QWORD PTR -56[rbp], rdi
mov DWORD PTR -60[rbp], esi
mov rax, QWORD PTR -56[rbp]
mov rdi, rax
call sqlite3PagerExclusiveLock
mov DWORD PTR -4[rbp], eax
cmp DWORD PTR -4[rbp], 0
je .L2899
mov eax, DWORD PTR -4[rbp]
jmp .L2900
.L2899:
mov rax, QWORD PTR -56[rbp]
movzx eax, BYTE PTR 11[rax]
test al, al
jne .L2901
mov rax, QWORD PTR -56[rbp]
mov rax, QWORD PTR 80[rax]
mov rax, QWORD PTR [rax]
test rax, rax
je .L2902
mov rax, QWORD PTR -56[rbp]
movzx eax, BYTE PTR 9[rax]
cmp al, 4
je .L2902
mov rax, QWORD PTR -56[rbp]
mov rax, QWORD PTR 72[rax]
mov rdi, rax
call sqlite3OsDeviceCharacteristics
mov DWORD PTR -8[rbp], eax
mov eax, DWORD PTR -8[rbp]
and eax, 512
test eax, eax
jne .L2903
mov rax, QWORD PTR aJournalMagic[rip]
mov QWORD PTR -36[rbp], rax
mov rax, QWORD PTR -56[rbp]
mov eax, DWORD PTR 48[rax]
mov edx, eax
lea rax, -36[rbp]
add rax, 8
mov esi, edx
mov rdi, rax
call sqlite3Put4byte
mov rax, QWORD PTR -56[rbp]
mov rdi, rax
call journalHdrOffset
mov QWORD PTR -16[rbp], rax
mov rax, QWORD PTR -56[rbp]
mov rax, QWORD PTR 80[rax]
mov rdx, QWORD PTR -16[rbp]
lea rsi, -24[rbp]
mov rcx, rdx
mov edx, 8
mov rdi, rax
call sqlite3OsRead
mov DWORD PTR -4[rbp], eax
cmp DWORD PTR -4[rbp], 0
jne .L2904
lea rax, -24[rbp]
mov edx, 8
lea rsi, aJournalMagic[rip]
mov rdi, rax
call memcmp@PLT
test eax, eax
jne .L2904
mov rax, QWORD PTR -56[rbp]
mov rax, QWORD PTR 80[rax]
mov rdx, QWORD PTR -16[rbp]
mov rcx, rdx
mov edx, 1
lea rsi, zerobyte.14089[rip]
mov rdi, rax
call sqlite3OsWrite
mov DWORD PTR -4[rbp], eax
.L2904:
cmp DWORD PTR -4[rbp], 0
je .L2905
cmp DWORD PTR -4[rbp], 522
je .L2905
mov eax, DWORD PTR -4[rbp]
jmp .L2900
.L2905:
mov rax, QWORD PTR -56[rbp]
movzx eax, BYTE PTR 12[rax]
test al, al
je .L2907
mov eax, DWORD PTR -8[rbp]
and eax, 1024
test eax, eax
jne .L2907
mov rax, QWORD PTR -56[rbp]
movzx eax, BYTE PTR 14[rax]
movzx edx, al
mov rax, QWORD PTR -56[rbp]
mov rax, QWORD PTR 80[rax]
mov esi, edx
mov rdi, rax
call sqlite3OsSync
mov DWORD PTR -4[rbp], eax
cmp DWORD PTR -4[rbp], 0
je .L2907
mov eax, DWORD PTR -4[rbp]
jmp .L2900
.L2907:
mov rax, QWORD PTR -56[rbp]
mov rdx, QWORD PTR 104[rax]
mov rax, QWORD PTR -56[rbp]
mov rax, QWORD PTR 80[rax]
lea rsi, -36[rbp]
mov rcx, rdx
mov edx, 12
mov rdi, rax
call sqlite3OsWrite
mov DWORD PTR -4[rbp], eax
cmp DWORD PTR -4[rbp], 0
je .L2903
mov eax, DWORD PTR -4[rbp]
jmp .L2900
.L2903:
mov eax, DWORD PTR -8[rbp]
and eax, 1024
test eax, eax
jne .L2909
mov rax, QWORD PTR -56[rbp]
movzx eax, BYTE PTR 14[rax]
movzx edx, al
mov rax, QWORD PTR -56[rbp]
movzx eax, BYTE PTR 14[rax]
cmp al, 3
jne .L2910
mov eax, 16
jmp .L2911
.L2910:
mov eax, 0
.L2911:
or edx, eax
mov rax, QWORD PTR -56[rbp]
mov rax, QWORD PTR 80[rax]
mov esi, edx
mov rdi, rax
call sqlite3OsSync
mov DWORD PTR -4[rbp], eax
cmp DWORD PTR -4[rbp], 0
je .L2909
mov eax, DWORD PTR -4[rbp]
jmp .L2900
.L2909:
mov rax, QWORD PTR -56[rbp]
mov rdx, QWORD PTR 96[rax]
mov rax, QWORD PTR -56[rbp]
mov QWORD PTR 104[rax], rdx
cmp DWORD PTR -60[rbp], 0
je .L2913
mov eax, DWORD PTR -8[rbp]
and eax, 512
test eax, eax
jne .L2913
mov rax, QWORD PTR -56[rbp]
mov DWORD PTR 48[rax], 0
mov rax, QWORD PTR -56[rbp]
mov rdi, rax
call writeJournalHdr
mov DWORD PTR -4[rbp], eax
cmp DWORD PTR -4[rbp], 0
je .L2913
mov eax, DWORD PTR -4[rbp]
jmp .L2900
.L2902:
mov rax, QWORD PTR -56[rbp]
mov rdx, QWORD PTR 96[rax]
mov rax, QWORD PTR -56[rbp]
mov QWORD PTR 104[rax], rdx
jmp .L2901
.L2913:
nop
.L2901:
mov rax, QWORD PTR -56[rbp]
mov rax, QWORD PTR 280[rax]
mov rdi, rax
call sqlite3PcacheClearSyncFlags
mov rax, QWORD PTR -56[rbp]
mov BYTE PTR 20[rax], 4
mov eax, 0
.L2900:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE476:
.size syncJournal, .-syncJournal
.type pager_write_pagelist, @function
pager_write_pagelist:
.LFB477:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 48
mov QWORD PTR -40[rbp], rdi
mov QWORD PTR -48[rbp], rsi
mov DWORD PTR -4[rbp], 0
mov rax, QWORD PTR -40[rbp]
mov rax, QWORD PTR 72[rax]
mov rax, QWORD PTR [rax]
test rax, rax
jne .L2915
mov rax, QWORD PTR -40[rbp]
mov eax, DWORD PTR 180[rax]
mov edx, eax
mov rax, QWORD PTR -40[rbp]
mov rcx, QWORD PTR 72[rax]
mov rax, QWORD PTR -40[rbp]
mov rsi, rcx
mov rdi, rax
call pagerOpentemp
mov DWORD PTR -4[rbp], eax
.L2915:
cmp DWORD PTR -4[rbp], 0
jne .L2918
mov rax, QWORD PTR -40[rbp]
mov edx, DWORD PTR 40[rax]
mov rax, QWORD PTR -40[rbp]
mov eax, DWORD PTR 28[rax]
cmp edx, eax
jnb .L2918
mov rax, QWORD PTR -48[rbp]
mov rax, QWORD PTR 32[rax]
test rax, rax
jne .L2917
mov rax, QWORD PTR -48[rbp]
mov edx, DWORD PTR 48[rax]
mov rax, QWORD PTR -40[rbp]
mov eax, DWORD PTR 40[rax]
cmp edx, eax
jbe .L2918
.L2917:
mov rax, QWORD PTR -40[rbp]
mov eax, DWORD PTR 188[rax]
movsx rdx, eax
mov rax, QWORD PTR -40[rbp]
mov eax, DWORD PTR 28[rax]
mov eax, eax
imul rax, rdx
mov QWORD PTR -32[rbp], rax
mov rax, QWORD PTR -40[rbp]
mov rax, QWORD PTR 72[rax]
lea rdx, -32[rbp]
mov esi, 5
mov rdi, rax
call sqlite3OsFileControlHint
mov rax, QWORD PTR -40[rbp]
mov edx, DWORD PTR 28[rax]
mov rax, QWORD PTR -40[rbp]
mov DWORD PTR 40[rax], edx
jmp .L2918
.L2924:
mov rax, QWORD PTR -48[rbp]
mov eax, DWORD PTR 48[rax]
mov DWORD PTR -8[rbp], eax
mov rax, QWORD PTR -40[rbp]
mov eax, DWORD PTR 28[rax]
cmp eax, DWORD PTR -8[rbp]
jb .L2919
mov rax, QWORD PTR -48[rbp]
movzx eax, WORD PTR 52[rax]
movzx eax, ax
and eax, 16
test eax, eax
jne .L2919
mov eax, DWORD PTR -8[rbp]
sub eax, 1
mov edx, eax
mov rax, QWORD PTR -40[rbp]
mov eax, DWORD PTR 188[rax]
cdqe
imul rax, rdx
mov QWORD PTR -16[rbp], rax
mov rax, QWORD PTR -48[rbp]
mov eax, DWORD PTR 48[rax]
cmp eax, 1
jne .L2920
mov rax, QWORD PTR -48[rbp]
mov rdi, rax
call pager_write_changecounter
.L2920:
mov rax, QWORD PTR -48[rbp]
mov rax, QWORD PTR 8[rax]
mov QWORD PTR -24[rbp], rax
mov rax, QWORD PTR -40[rbp]
mov edx, DWORD PTR 188[rax]
mov rax, QWORD PTR -40[rbp]
mov rax, QWORD PTR 72[rax]
mov rcx, QWORD PTR -16[rbp]
mov rsi, QWORD PTR -24[rbp]
mov rdi, rax
call sqlite3OsWrite
mov DWORD PTR -4[rbp], eax
cmp DWORD PTR -8[rbp], 1
jne .L2921
mov rax, QWORD PTR -24[rbp]
add rax, 24
mov rdx, QWORD PTR -40[rbp]
lea rcx, 136[rdx]
mov rdx, QWORD PTR 8[rax]
mov rax, QWORD PTR [rax]
mov QWORD PTR [rcx], rax
mov QWORD PTR 8[rcx], rdx
.L2921:
mov rax, QWORD PTR -40[rbp]
mov eax, DWORD PTR 36[rax]
cmp eax, DWORD PTR -8[rbp]
jnb .L2922
mov rax, QWORD PTR -40[rbp]
mov edx, DWORD PTR -8[rbp]
mov DWORD PTR 36[rax], edx
.L2922:
mov rax, QWORD PTR -40[rbp]
mov eax, DWORD PTR 248[rax]
lea edx, 1[rax]
mov rax, QWORD PTR -40[rbp]
mov DWORD PTR 248[rax], edx
mov rax, QWORD PTR -48[rbp]
mov rdx, QWORD PTR 8[rax]
mov rax, QWORD PTR -40[rbp]
mov rax, QWORD PTR 112[rax]
mov ecx, DWORD PTR -8[rbp]
mov esi, ecx
mov rdi, rax
call sqlite3BackupUpdate
.L2919:
mov rax, QWORD PTR -48[rbp]
mov rax, QWORD PTR 32[rax]
mov QWORD PTR -48[rbp], rax
.L2918:
cmp DWORD PTR -4[rbp], 0
jne .L2923
cmp QWORD PTR -48[rbp], 0
jne .L2924
.L2923:
mov eax, DWORD PTR -4[rbp]
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE477:
.size pager_write_pagelist, .-pager_write_pagelist
.type openSubJournal, @function
openSubJournal:
.LFB478:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 32
mov QWORD PTR -24[rbp], rdi
mov DWORD PTR -4[rbp], 0
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 88[rax]
mov rax, QWORD PTR [rax]
test rax, rax
jne .L2927
mov DWORD PTR -12[rbp], 8222
mov eax, DWORD PTR sqlite3Config[rip+40]
mov DWORD PTR -8[rbp], eax
mov rax, QWORD PTR -24[rbp]
movzx eax, BYTE PTR 9[rax]
cmp al, 4
je .L2928
mov rax, QWORD PTR -24[rbp]
movzx eax, BYTE PTR 25[rax]
test al, al
je .L2929
.L2928:
mov DWORD PTR -8[rbp], -1
.L2929:
mov rax, QWORD PTR -24[rbp]
mov rdx, QWORD PTR 88[rax]
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR [rax]
mov esi, DWORD PTR -8[rbp]
mov ecx, DWORD PTR -12[rbp]
mov r8d, esi
mov esi, 0
mov rdi, rax
call sqlite3JournalOpen
mov DWORD PTR -4[rbp], eax
.L2927:
mov eax, DWORD PTR -4[rbp]
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE478:
.size openSubJournal, .-openSubJournal
.type subjournalPage, @function
subjournalPage:
.LFB479:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 64
mov QWORD PTR -56[rbp], rdi
mov DWORD PTR -4[rbp], 0
mov rax, QWORD PTR -56[rbp]
mov rax, QWORD PTR 40[rax]
mov QWORD PTR -16[rbp], rax
mov rax, QWORD PTR -16[rbp]
movzx eax, BYTE PTR 9[rax]
cmp al, 2
je .L2932
mov rax, QWORD PTR -16[rbp]
mov rdi, rax
call openSubJournal
mov DWORD PTR -4[rbp], eax
cmp DWORD PTR -4[rbp], 0
jne .L2932
mov rax, QWORD PTR -56[rbp]
mov rax, QWORD PTR 8[rax]
mov QWORD PTR -24[rbp], rax
mov rax, QWORD PTR -16[rbp]
mov eax, DWORD PTR 56[rax]
mov edx, eax
mov rax, QWORD PTR -16[rbp]
mov eax, DWORD PTR 188[rax]
add eax, 4
cdqe
imul rax, rdx
mov QWORD PTR -32[rbp], rax
mov rax, QWORD PTR -24[rbp]
mov QWORD PTR -40[rbp], rax
mov rax, QWORD PTR -56[rbp]
mov edx, DWORD PTR 48[rax]
mov rax, QWORD PTR -16[rbp]
mov rax, QWORD PTR 88[rax]
mov rcx, QWORD PTR -32[rbp]
mov rsi, rcx
mov rdi, rax
call write32bits
mov DWORD PTR -4[rbp], eax
cmp DWORD PTR -4[rbp], 0
jne .L2932
mov rax, QWORD PTR -32[rbp]
lea rcx, 4[rax]
mov rax, QWORD PTR -16[rbp]
mov edx, DWORD PTR 188[rax]
mov rax, QWORD PTR -16[rbp]
mov rax, QWORD PTR 88[rax]
mov rsi, QWORD PTR -40[rbp]
mov rdi, rax
call sqlite3OsWrite
mov DWORD PTR -4[rbp], eax
.L2932:
cmp DWORD PTR -4[rbp], 0
jne .L2933
mov rax, QWORD PTR -16[rbp]
mov eax, DWORD PTR 56[rax]
lea edx, 1[rax]
mov rax, QWORD PTR -16[rbp]
mov DWORD PTR 56[rax], edx
mov rax, QWORD PTR -56[rbp]
mov edx, DWORD PTR 48[rax]
mov rax, QWORD PTR -16[rbp]
mov esi, edx
mov rdi, rax
call addToSavepointBitvecs
mov DWORD PTR -4[rbp], eax
.L2933:
mov eax, DWORD PTR -4[rbp]
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE479:
.size subjournalPage, .-subjournalPage
.type subjournalPageIfRequired, @function
subjournalPageIfRequired:
.LFB480:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 16
mov QWORD PTR -8[rbp], rdi
mov rax, QWORD PTR -8[rbp]
mov rdi, rax
call subjRequiresPage
test eax, eax
je .L2936
mov rax, QWORD PTR -8[rbp]
mov rdi, rax
call subjournalPage
jmp .L2937
.L2936:
mov eax, 0
.L2937:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE480:
.size subjournalPageIfRequired, .-subjournalPageIfRequired
.type pagerStress, @function
pagerStress:
.LFB481:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 32
mov QWORD PTR -24[rbp], rdi
mov QWORD PTR -32[rbp], rsi
mov rax, QWORD PTR -24[rbp]
mov QWORD PTR -16[rbp], rax
mov DWORD PTR -4[rbp], 0
mov rax, QWORD PTR -16[rbp]
mov eax, DWORD PTR 44[rax]
test eax, eax
je .L2939
mov eax, 0
jmp .L2940
.L2939:
mov rax, QWORD PTR -16[rbp]
movzx eax, BYTE PTR 24[rax]
test al, al
je .L2941
mov rax, QWORD PTR -16[rbp]
movzx eax, BYTE PTR 24[rax]
movzx eax, al
and eax, 3
test eax, eax
jne .L2942
mov rax, QWORD PTR -32[rbp]
movzx eax, WORD PTR 52[rax]
movzx eax, ax
and eax, 8
test eax, eax
je .L2941
.L2942:
mov eax, 0
jmp .L2940
.L2941:
mov rax, QWORD PTR -32[rbp]
mov QWORD PTR 32[rax], 0
mov rax, QWORD PTR -16[rbp]
mov rax, QWORD PTR 288[rax]
test rax, rax
je .L2943
mov rax, QWORD PTR -32[rbp]
mov rdi, rax
call subjournalPageIfRequired
mov DWORD PTR -4[rbp], eax
cmp DWORD PTR -4[rbp], 0
jne .L2945
mov rsi, QWORD PTR -32[rbp]
mov rax, QWORD PTR -16[rbp]
mov ecx, 0
mov edx, 0
mov rdi, rax
call pagerWalFrames
mov DWORD PTR -4[rbp], eax
jmp .L2945
.L2943:
mov rax, QWORD PTR -32[rbp]
movzx eax, WORD PTR 52[rax]
movzx eax, ax
and eax, 8
test eax, eax
jne .L2946
mov rax, QWORD PTR -16[rbp]
movzx eax, BYTE PTR 20[rax]
cmp al, 3
jne .L2947
.L2946:
mov rax, QWORD PTR -16[rbp]
mov esi, 1
mov rdi, rax
call syncJournal
mov DWORD PTR -4[rbp], eax
.L2947:
cmp DWORD PTR -4[rbp], 0
jne .L2945
mov rdx, QWORD PTR -32[rbp]
mov rax, QWORD PTR -16[rbp]
mov rsi, rdx
mov rdi, rax
call pager_write_pagelist
mov DWORD PTR -4[rbp], eax
.L2945:
cmp DWORD PTR -4[rbp], 0
jne .L2948
mov rax, QWORD PTR -32[rbp]
mov rdi, rax
call sqlite3PcacheMakeClean
.L2948:
mov edx, DWORD PTR -4[rbp]
mov rax, QWORD PTR -16[rbp]
mov esi, edx
mov rdi, rax
call pager_error
.L2940:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE481:
.size pagerStress, .-pagerStress
.type sqlite3PagerFlush, @function
sqlite3PagerFlush:
.LFB482:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 48
mov QWORD PTR -40[rbp], rdi
mov rax, QWORD PTR -40[rbp]
mov eax, DWORD PTR 44[rax]
mov DWORD PTR -4[rbp], eax
mov rax, QWORD PTR -40[rbp]
movzx eax, BYTE PTR 19[rax]
test al, al
jne .L2950
mov rax, QWORD PTR -40[rbp]
mov rax, QWORD PTR 280[rax]
mov rdi, rax
call sqlite3PcacheDirtyList
mov QWORD PTR -16[rbp], rax
jmp .L2951
.L2953:
mov rax, QWORD PTR -16[rbp]
mov rax, QWORD PTR 32[rax]
mov QWORD PTR -24[rbp], rax
mov rax, QWORD PTR -16[rbp]
movzx eax, WORD PTR 54[rax]
test ax, ax
jne .L2952
mov rdx, QWORD PTR -16[rbp]
mov rax, QWORD PTR -40[rbp]
mov rsi, rdx
mov rdi, rax
call pagerStress
mov DWORD PTR -4[rbp], eax
.L2952:
mov rax, QWORD PTR -24[rbp]
mov QWORD PTR -16[rbp], rax
.L2951:
cmp DWORD PTR -4[rbp], 0
jne .L2950
cmp QWORD PTR -16[rbp], 0
jne .L2953
.L2950:
mov eax, DWORD PTR -4[rbp]
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE482:
.size sqlite3PagerFlush, .-sqlite3PagerFlush
.section .rodata
.LC127:
.string "-journal"
.string ""
.LC128:
.string "-wal"
.string ""
.LC129:
.string "nolock"
.LC130:
.string "immutable"
.text
.type sqlite3PagerOpen, @function
sqlite3PagerOpen:
.LFB483:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 160
mov QWORD PTR -120[rbp], rdi
mov QWORD PTR -128[rbp], rsi
mov QWORD PTR -136[rbp], rdx
mov DWORD PTR -140[rbp], ecx
mov DWORD PTR -144[rbp], r8d
mov DWORD PTR -148[rbp], r9d
mov QWORD PTR -64[rbp], 0
mov DWORD PTR -4[rbp], 0
mov DWORD PTR -8[rbp], 0
mov DWORD PTR -12[rbp], 0
mov DWORD PTR -16[rbp], 0
mov QWORD PTR -24[rbp], 0
mov DWORD PTR -28[rbp], 0
mov eax, DWORD PTR -144[rbp]
and eax, 1
test eax, eax
sete al
movzx eax, al
mov DWORD PTR -68[rbp], eax
call sqlite3PcacheSize
mov DWORD PTR -72[rbp], eax
mov DWORD PTR -96[rbp], 4096
mov QWORD PTR -40[rbp], 0
mov DWORD PTR -44[rbp], 0
mov rax, QWORD PTR -120[rbp]
mov rdi, rax
call sqlite3JournalSize
add eax, 7
and eax, -8
mov DWORD PTR -76[rbp], eax
mov rax, QWORD PTR -128[rbp]
mov QWORD PTR [rax], 0
mov eax, DWORD PTR -144[rbp]
and eax, 2
test eax, eax
je .L2956
mov DWORD PTR -12[rbp], 1
cmp QWORD PTR -136[rbp], 0
je .L2956
mov rax, QWORD PTR -136[rbp]
movzx eax, BYTE PTR [rax]
test al, al
je .L2956
mov rax, QWORD PTR -136[rbp]
mov rsi, rax
mov edi, 0
call sqlite3DbStrDup
mov QWORD PTR -24[rbp], rax
cmp QWORD PTR -24[rbp], 0
jne .L2957
mov eax, 7
jmp .L2982
.L2957:
mov rax, QWORD PTR -24[rbp]
mov rdi, rax
call sqlite3Strlen30
mov DWORD PTR -28[rbp], eax
mov QWORD PTR -136[rbp], 0
.L2956:
cmp QWORD PTR -136[rbp], 0
je .L2959
mov rax, QWORD PTR -136[rbp]
movzx eax, BYTE PTR [rax]
test al, al
je .L2959
mov rax, QWORD PTR -120[rbp]
mov eax, DWORD PTR 8[rax]
add eax, 1
mov DWORD PTR -28[rbp], eax
mov eax, DWORD PTR -28[rbp]
add eax, eax
cdqe
mov rsi, rax
mov edi, 0
call sqlite3DbMallocRaw
mov QWORD PTR -24[rbp], rax
cmp QWORD PTR -24[rbp], 0
jne .L2960
mov eax, 7
jmp .L2982
.L2960:
mov rax, QWORD PTR -24[rbp]
mov BYTE PTR [rax], 0
mov rcx, QWORD PTR -24[rbp]
mov edx, DWORD PTR -28[rbp]
mov rsi, QWORD PTR -136[rbp]
mov rax, QWORD PTR -120[rbp]
mov rdi, rax
call sqlite3OsFullPathname
mov DWORD PTR -4[rbp], eax
mov rax, QWORD PTR -24[rbp]
mov rdi, rax
call sqlite3Strlen30
mov DWORD PTR -28[rbp], eax
mov rax, QWORD PTR -136[rbp]
mov rdi, rax
call sqlite3Strlen30
cdqe
lea rdx, 1[rax]
mov rax, QWORD PTR -136[rbp]
add rax, rdx
mov QWORD PTR -40[rbp], rax
mov rax, QWORD PTR -40[rbp]
mov QWORD PTR -56[rbp], rax
jmp .L2961
.L2962:
mov rax, QWORD PTR -56[rbp]
mov rdi, rax
call sqlite3Strlen30
add eax, 1
cdqe
add QWORD PTR -56[rbp], rax
mov rax, QWORD PTR -56[rbp]
mov rdi, rax
call sqlite3Strlen30
add eax, 1
cdqe
add QWORD PTR -56[rbp], rax
.L2961:
mov rax, QWORD PTR -56[rbp]
movzx eax, BYTE PTR [rax]
test al, al
jne .L2962
mov rax, QWORD PTR -56[rbp]
add rax, 1
mov rdx, rax
mov rax, QWORD PTR -40[rbp]
sub rdx, rax
mov rax, rdx
mov DWORD PTR -44[rbp], eax
cmp DWORD PTR -4[rbp], 0
jne .L2963
mov eax, DWORD PTR -28[rbp]
lea edx, 8[rax]
mov rax, QWORD PTR -120[rbp]
mov eax, DWORD PTR 8[rax]
cmp edx, eax
jle .L2963
mov edi, 52720
call sqlite3CantopenError
mov DWORD PTR -4[rbp], eax
.L2963:
cmp DWORD PTR -4[rbp], 0
je .L2959
mov rax, QWORD PTR -24[rbp]
mov rsi, rax
mov edi, 0
call sqlite3DbFree
mov eax, DWORD PTR -4[rbp]
jmp .L2982
.L2959:
mov eax, DWORD PTR -72[rbp]
add eax, 7
and eax, -8
movsx rdx, eax
mov rax, QWORD PTR -120[rbp]
mov eax, DWORD PTR 4[rax]
add eax, 7
and eax, -8
cdqe
add rdx, rax
mov eax, DWORD PTR -76[rbp]
add eax, eax
cdqe
add rdx, rax
mov eax, DWORD PTR -28[rbp]
cdqe
add rdx, rax
mov eax, DWORD PTR -44[rbp]
cdqe
add rdx, rax
mov eax, DWORD PTR -28[rbp]
cdqe
add rdx, rax
mov eax, DWORD PTR -28[rbp]
cdqe
add rax, rdx
add rax, 321
mov rdi, rax
call sqlite3MallocZero
mov QWORD PTR -88[rbp], rax
cmp QWORD PTR -88[rbp], 0
jne .L2964
mov rax, QWORD PTR -24[rbp]
mov rsi, rax
mov edi, 0
call sqlite3DbFree
mov eax, 7
jmp .L2982
.L2964:
mov rax, QWORD PTR -88[rbp]
mov QWORD PTR -64[rbp], rax
add QWORD PTR -88[rbp], 304
mov rax, QWORD PTR -64[rbp]
mov rdx, QWORD PTR -88[rbp]
mov QWORD PTR 280[rax], rdx
mov eax, DWORD PTR -72[rbp]
add eax, 7
and eax, -8
cdqe
add QWORD PTR -88[rbp], rax
mov rax, QWORD PTR -64[rbp]
mov rdx, QWORD PTR -88[rbp]
mov QWORD PTR 72[rax], rdx
mov rax, QWORD PTR -120[rbp]
mov eax, DWORD PTR 4[rax]
add eax, 7
and eax, -8
cdqe
add QWORD PTR -88[rbp], rax
mov rax, QWORD PTR -64[rbp]
mov rdx, QWORD PTR -88[rbp]
mov QWORD PTR 88[rax], rdx
mov eax, DWORD PTR -76[rbp]
cdqe
add QWORD PTR -88[rbp], rax
mov rax, QWORD PTR -64[rbp]
mov rdx, QWORD PTR -88[rbp]
mov QWORD PTR 80[rax], rdx
mov eax, DWORD PTR -76[rbp]
cdqe
add QWORD PTR -88[rbp], rax
mov rax, QWORD PTR -64[rbp]
mov rdx, QWORD PTR -88[rbp]
mov QWORD PTR 208[rax], rdx
cmp QWORD PTR -24[rbp], 0
je .L2965
mov eax, DWORD PTR -28[rbp]
lea edx, 1[rax]
mov eax, DWORD PTR -44[rbp]
add eax, edx
cdqe
add QWORD PTR -88[rbp], rax
mov rax, QWORD PTR -64[rbp]
mov rdx, QWORD PTR -88[rbp]
mov QWORD PTR 216[rax], rdx
mov eax, DWORD PTR -28[rbp]
movsx rdx, eax
mov rax, QWORD PTR -64[rbp]
mov rax, QWORD PTR 208[rax]
mov rcx, QWORD PTR -24[rbp]
mov rsi, rcx
mov rdi, rax
call memcpy@PLT
cmp DWORD PTR -44[rbp], 0
je .L2966
mov eax, DWORD PTR -44[rbp]
movsx rdx, eax
mov rax, QWORD PTR -64[rbp]
mov rax, QWORD PTR 208[rax]
mov ecx, DWORD PTR -28[rbp]
movsx rcx, ecx
add rcx, 1
add rcx, rax
mov rax, QWORD PTR -40[rbp]
mov rsi, rax
mov rdi, rcx
call memcpy@PLT
.L2966:
mov eax, DWORD PTR -28[rbp]
movsx rdx, eax
mov rax, QWORD PTR -64[rbp]
mov rax, QWORD PTR 216[rax]
mov rcx, QWORD PTR -24[rbp]
mov rsi, rcx
mov rdi, rax
call memcpy@PLT
mov rax, QWORD PTR -64[rbp]
mov rdx, QWORD PTR 216[rax]
mov eax, DWORD PTR -28[rbp]
cdqe
add rax, rdx
mov edx, 10
lea rsi, .LC127[rip]
mov rdi, rax
call memcpy@PLT
mov rax, QWORD PTR -64[rbp]
mov rax, QWORD PTR 216[rax]
mov edx, DWORD PTR -28[rbp]
add edx, 8
movsx rdx, edx
add rdx, 1
add rdx, rax
mov rax, QWORD PTR -64[rbp]
mov QWORD PTR 296[rax], rdx
mov eax, DWORD PTR -28[rbp]
movsx rdx, eax
mov rax, QWORD PTR -64[rbp]
mov rax, QWORD PTR 296[rax]
mov rcx, QWORD PTR -24[rbp]
mov rsi, rcx
mov rdi, rax
call memcpy@PLT
mov rax, QWORD PTR -64[rbp]
mov rdx, QWORD PTR 296[rax]
mov eax, DWORD PTR -28[rbp]
cdqe
add rax, rdx
mov edx, 5
lea rsi, .LC128[rip]
mov rdi, rax
call memcpy@PLT
mov rax, QWORD PTR -24[rbp]
mov rsi, rax
mov edi, 0
call sqlite3DbFree
.L2965:
mov rax, QWORD PTR -64[rbp]
mov rdx, QWORD PTR -120[rbp]
mov QWORD PTR [rax], rdx
mov edx, DWORD PTR -148[rbp]
mov rax, QWORD PTR -64[rbp]
mov DWORD PTR 180[rax], edx
cmp QWORD PTR -136[rbp], 0
je .L2967
mov rax, QWORD PTR -136[rbp]
movzx eax, BYTE PTR [rax]
test al, al
je .L2967
mov DWORD PTR -100[rbp], 0
mov rax, QWORD PTR -64[rbp]
mov rdx, QWORD PTR 72[rax]
mov rax, QWORD PTR -64[rbp]
mov rsi, QWORD PTR 208[rax]
lea rdi, -100[rbp]
mov ecx, DWORD PTR -148[rbp]
mov rax, QWORD PTR -120[rbp]
mov r8, rdi
mov rdi, rax
call sqlite3OsOpen
mov DWORD PTR -4[rbp], eax
mov eax, DWORD PTR -100[rbp]
and eax, 1
mov DWORD PTR -16[rbp], eax
cmp DWORD PTR -4[rbp], 0
jne .L2983
mov rax, QWORD PTR -64[rbp]
mov rax, QWORD PTR 72[rax]
mov rdi, rax
call sqlite3OsDeviceCharacteristics
mov DWORD PTR -92[rbp], eax
cmp DWORD PTR -16[rbp], 0
jne .L2969
mov rax, QWORD PTR -64[rbp]
mov rdi, rax
call setSectorSize
mov rax, QWORD PTR -64[rbp]
mov edx, DWORD PTR 184[rax]
mov eax, DWORD PTR -96[rbp]
cmp edx, eax
jbe .L2969
mov rax, QWORD PTR -64[rbp]
mov eax, DWORD PTR 184[rax]
cmp eax, 8192
jbe .L2970
mov DWORD PTR -96[rbp], 8192
jmp .L2969
.L2970:
mov rax, QWORD PTR -64[rbp]
mov eax, DWORD PTR 184[rax]
mov DWORD PTR -96[rbp], eax
.L2969:
mov rax, QWORD PTR -136[rbp]
mov edx, 0
lea rsi, .LC129[rip]
mov rdi, rax
call sqlite3_uri_boolean
mov edx, eax
mov rax, QWORD PTR -64[rbp]
mov BYTE PTR 17[rax], dl
mov eax, DWORD PTR -92[rbp]
and eax, 8192
test eax, eax
jne .L2971
mov rax, QWORD PTR -136[rbp]
mov edx, 0
lea rsi, .LC130[rip]
mov rdi, rax
call sqlite3_uri_boolean
test eax, eax
je .L2983
.L2971:
or DWORD PTR -148[rbp], 1
nop
.L2967:
mov DWORD PTR -8[rbp], 1
mov rax, QWORD PTR -64[rbp]
mov BYTE PTR 20[rax], 1
mov rax, QWORD PTR -64[rbp]
mov BYTE PTR 21[rax], 4
mov rax, QWORD PTR -64[rbp]
mov BYTE PTR 17[rax], 1
mov eax, DWORD PTR -148[rbp]
and eax, 1
mov DWORD PTR -16[rbp], eax
jmp .L2973
.L2983:
nop
.L2973:
cmp DWORD PTR -4[rbp], 0
jne .L2974
lea rcx, -96[rbp]
mov rax, QWORD PTR -64[rbp]
mov edx, -1
mov rsi, rcx
mov rdi, rax
call sqlite3PagerSetPagesize
mov DWORD PTR -4[rbp], eax
.L2974:
cmp DWORD PTR -4[rbp], 0
jne .L2975
mov eax, DWORD PTR -140[rbp]
add eax, 7
and eax, -8
mov DWORD PTR -140[rbp], eax
mov rax, QWORD PTR -64[rbp]
mov rdi, QWORD PTR 280[rax]
cmp DWORD PTR -12[rbp], 0
jne .L2976
lea rax, pagerStress[rip]
jmp .L2977
.L2976:
mov eax, 0
.L2977:
cmp DWORD PTR -12[rbp], 0
sete dl
movzx edx, dl
mov ecx, DWORD PTR -96[rbp]
mov r10d, ecx
mov rcx, QWORD PTR -64[rbp]
mov esi, DWORD PTR -140[rbp]
mov r9, rdi
mov r8, rcx
mov rcx, rax
mov edi, r10d
call sqlite3PcacheOpen
mov DWORD PTR -4[rbp], eax
.L2975:
cmp DWORD PTR -4[rbp], 0
je .L2978
mov rax, QWORD PTR -64[rbp]
mov rax, QWORD PTR 72[rax]
mov rdi, rax
call sqlite3OsClose
mov rax, QWORD PTR -64[rbp]
mov rax, QWORD PTR 272[rax]
mov rdi, rax
call sqlite3PageFree
mov rax, QWORD PTR -64[rbp]
mov rdi, rax
call sqlite3_free
mov eax, DWORD PTR -4[rbp]
jmp .L2982
.L2978:
mov eax, DWORD PTR -68[rbp]
mov edx, eax
mov rax, QWORD PTR -64[rbp]
mov BYTE PTR 10[rax], dl
mov rax, QWORD PTR -64[rbp]
mov DWORD PTR 192[rax], 1073741823
mov eax, DWORD PTR -8[rbp]
mov edx, eax
mov rax, QWORD PTR -64[rbp]
mov BYTE PTR 16[rax], dl
mov eax, DWORD PTR -8[rbp]
mov edx, eax
mov rax, QWORD PTR -64[rbp]
mov BYTE PTR 8[rax], dl
mov rax, QWORD PTR -64[rbp]
movzx edx, BYTE PTR 16[rax]
mov rax, QWORD PTR -64[rbp]
mov BYTE PTR 22[rax], dl
mov eax, DWORD PTR -12[rbp]
mov edx, eax
mov rax, QWORD PTR -64[rbp]
mov BYTE PTR 19[rax], dl
mov eax, DWORD PTR -16[rbp]
mov edx, eax
mov rax, QWORD PTR -64[rbp]
mov BYTE PTR 18[rax], dl
mov rax, QWORD PTR -64[rbp]
movzx edx, BYTE PTR 16[rax]
mov rax, QWORD PTR -64[rbp]
mov BYTE PTR 11[rax], dl
mov rax, QWORD PTR -64[rbp]
movzx eax, BYTE PTR 11[rax]
test al, al
jne .L2979
mov rax, QWORD PTR -64[rbp]
mov BYTE PTR 12[rax], 1
mov rax, QWORD PTR -64[rbp]
mov BYTE PTR 13[rax], 0
mov rax, QWORD PTR -64[rbp]
mov BYTE PTR 14[rax], 2
mov rax, QWORD PTR -64[rbp]
mov BYTE PTR 15[rax], 10
.L2979:
mov eax, DWORD PTR -140[rbp]
mov edx, eax
mov rax, QWORD PTR -64[rbp]
mov WORD PTR 176[rax], dx
mov rax, QWORD PTR -64[rbp]
mov QWORD PTR 200[rax], -1
mov rax, QWORD PTR -64[rbp]
mov rdi, rax
call setSectorSize
cmp DWORD PTR -68[rbp], 0
jne .L2980
mov rax, QWORD PTR -64[rbp]
mov BYTE PTR 9[rax], 2
jmp .L2981
.L2980:
cmp DWORD PTR -12[rbp], 0
je .L2981
mov rax, QWORD PTR -64[rbp]
mov BYTE PTR 9[rax], 4
.L2981:
mov rax, QWORD PTR -64[rbp]
mov rdx, QWORD PTR 16[rbp]
mov QWORD PTR 256[rax], rdx
mov rax, QWORD PTR -64[rbp]
mov rdi, rax
call setGetterMethod
mov rax, QWORD PTR -128[rbp]
mov rdx, QWORD PTR -64[rbp]
mov QWORD PTR [rax], rdx
mov eax, 0
.L2982:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE483:
.size sqlite3PagerOpen, .-sqlite3PagerOpen
.type databaseIsUnmoved, @function
databaseIsUnmoved:
.LFB484:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 32
mov QWORD PTR -24[rbp], rdi
mov DWORD PTR -8[rbp], 0
mov rax, QWORD PTR -24[rbp]
movzx eax, BYTE PTR 16[rax]
test al, al
je .L2985
mov eax, 0
jmp .L2990
.L2985:
mov rax, QWORD PTR -24[rbp]
mov eax, DWORD PTR 28[rax]
test eax, eax
jne .L2987
mov eax, 0
jmp .L2990
.L2987:
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 72[rax]
lea rdx, -8[rbp]
mov esi, 20
mov rdi, rax
call sqlite3OsFileControl
mov DWORD PTR -4[rbp], eax
cmp DWORD PTR -4[rbp], 12
jne .L2988
mov DWORD PTR -4[rbp], 0
jmp .L2989
.L2988:
cmp DWORD PTR -4[rbp], 0
jne .L2989
mov eax, DWORD PTR -8[rbp]
test eax, eax
je .L2989
mov DWORD PTR -4[rbp], 1032
.L2989:
mov eax, DWORD PTR -4[rbp]
.L2990:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE484:
.size databaseIsUnmoved, .-databaseIsUnmoved
.type hasHotJournal, @function
hasHotJournal:
.LFB485:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 64
mov QWORD PTR -56[rbp], rdi
mov QWORD PTR -64[rbp], rsi
mov rax, QWORD PTR -56[rbp]
mov rax, QWORD PTR [rax]
mov QWORD PTR -16[rbp], rax
mov DWORD PTR -4[rbp], 0
mov DWORD PTR -24[rbp], 1
mov rax, QWORD PTR -56[rbp]
mov rax, QWORD PTR 80[rax]
mov rax, QWORD PTR [rax]
test rax, rax
setne al
movzx eax, al
mov DWORD PTR -20[rbp], eax
mov rax, QWORD PTR -64[rbp]
mov DWORD PTR [rax], 0
cmp DWORD PTR -20[rbp], 0
jne .L2992
mov rax, QWORD PTR -56[rbp]
mov rsi, QWORD PTR 216[rax]
lea rdx, -24[rbp]
mov rax, QWORD PTR -16[rbp]
mov rcx, rdx
mov edx, 0
mov rdi, rax
call sqlite3OsAccess
mov DWORD PTR -4[rbp], eax
.L2992:
cmp DWORD PTR -4[rbp], 0
jne .L2993
mov eax, DWORD PTR -24[rbp]
test eax, eax
je .L2993
mov DWORD PTR -28[rbp], 0
mov rax, QWORD PTR -56[rbp]
mov rax, QWORD PTR 72[rax]
lea rdx, -28[rbp]
mov rsi, rdx
mov rdi, rax
call sqlite3OsCheckReservedLock
mov DWORD PTR -4[rbp], eax
cmp DWORD PTR -4[rbp], 0
jne .L2993
mov eax, DWORD PTR -28[rbp]
test eax, eax
jne .L2993
lea rdx, -32[rbp]
mov rax, QWORD PTR -56[rbp]
mov rsi, rdx
mov rdi, rax
call pagerPagecount
mov DWORD PTR -4[rbp], eax
cmp DWORD PTR -4[rbp], 0
jne .L2993
mov eax, DWORD PTR -32[rbp]
test eax, eax
jne .L2996
cmp DWORD PTR -20[rbp], 0
jne .L2996
call sqlite3BeginBenignMalloc
mov rax, QWORD PTR -56[rbp]
mov esi, 2
mov rdi, rax
call pagerLockDb
test eax, eax
jne .L2997
mov rax, QWORD PTR -56[rbp]
mov rcx, QWORD PTR 216[rax]
mov rax, QWORD PTR -16[rbp]
mov edx, 0
mov rsi, rcx
mov rdi, rax
call sqlite3OsDelete
mov rax, QWORD PTR -56[rbp]
movzx eax, BYTE PTR 8[rax]
test al, al
jne .L2997
mov rax, QWORD PTR -56[rbp]
mov esi, 1
mov rdi, rax
call pagerUnlockDb
.L2997:
call sqlite3EndBenignMalloc
jmp .L2993
.L2996:
cmp DWORD PTR -20[rbp], 0
jne .L2998
mov DWORD PTR -36[rbp], 2049
mov ecx, DWORD PTR -36[rbp]
mov rax, QWORD PTR -56[rbp]
mov rdx, QWORD PTR 80[rax]
mov rax, QWORD PTR -56[rbp]
mov rsi, QWORD PTR 216[rax]
lea rdi, -36[rbp]
mov rax, QWORD PTR -16[rbp]
mov r8, rdi
mov rdi, rax
call sqlite3OsOpen
mov DWORD PTR -4[rbp], eax
.L2998:
cmp DWORD PTR -4[rbp], 0
jne .L2999
mov BYTE PTR -37[rbp], 0
mov rax, QWORD PTR -56[rbp]
mov rax, QWORD PTR 80[rax]
lea rsi, -37[rbp]
mov ecx, 0
mov edx, 1
mov rdi, rax
call sqlite3OsRead
mov DWORD PTR -4[rbp], eax
cmp DWORD PTR -4[rbp], 522
jne .L3000
mov DWORD PTR -4[rbp], 0
.L3000:
cmp DWORD PTR -20[rbp], 0
jne .L3001
mov rax, QWORD PTR -56[rbp]
mov rax, QWORD PTR 80[rax]
mov rdi, rax
call sqlite3OsClose
.L3001:
movzx eax, BYTE PTR -37[rbp]
test al, al
setne al
movzx edx, al
mov rax, QWORD PTR -64[rbp]
mov DWORD PTR [rax], edx
jmp .L2993
.L2999:
cmp DWORD PTR -4[rbp], 14
jne .L2993
mov rax, QWORD PTR -64[rbp]
mov DWORD PTR [rax], 1
mov DWORD PTR -4[rbp], 0
.L2993:
mov eax, DWORD PTR -4[rbp]
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE485:
.size hasHotJournal, .-hasHotJournal
.type sqlite3PagerSharedLock, @function
sqlite3PagerSharedLock:
.LFB486:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 64
mov QWORD PTR -56[rbp], rdi
mov DWORD PTR -4[rbp], 0
mov rax, QWORD PTR -56[rbp]
mov rax, QWORD PTR 288[rax]
test rax, rax
jne .L3004
mov rax, QWORD PTR -56[rbp]
movzx eax, BYTE PTR 20[rax]
test al, al
jne .L3004
mov DWORD PTR -24[rbp], 1
mov rax, QWORD PTR -56[rbp]
mov esi, 1
mov rdi, rax
call pager_wait_on_lock
mov DWORD PTR -4[rbp], eax
cmp DWORD PTR -4[rbp], 0
jne .L3027
mov rax, QWORD PTR -56[rbp]
movzx eax, BYTE PTR 21[rax]
cmp al, 1
ja .L3007
lea rdx, -24[rbp]
mov rax, QWORD PTR -56[rbp]
mov rsi, rdx
mov rdi, rax
call hasHotJournal
mov DWORD PTR -4[rbp], eax
.L3007:
cmp DWORD PTR -4[rbp], 0
jne .L3028
mov eax, DWORD PTR -24[rbp]
test eax, eax
je .L3009
mov rax, QWORD PTR -56[rbp]
movzx eax, BYTE PTR 18[rax]
test al, al
je .L3010
mov DWORD PTR -4[rbp], 776
jmp .L3022
.L3010:
mov rax, QWORD PTR -56[rbp]
mov esi, 4
mov rdi, rax
call pagerLockDb
mov DWORD PTR -4[rbp], eax
cmp DWORD PTR -4[rbp], 0
jne .L3029
mov rax, QWORD PTR -56[rbp]
mov rax, QWORD PTR 80[rax]
mov rax, QWORD PTR [rax]
test rax, rax
jne .L3012
mov rax, QWORD PTR -56[rbp]
mov rax, QWORD PTR [rax]
mov QWORD PTR -16[rbp], rax
mov rax, QWORD PTR -56[rbp]
mov rsi, QWORD PTR 216[rax]
lea rdx, -28[rbp]
mov rax, QWORD PTR -16[rbp]
mov rcx, rdx
mov edx, 0
mov rdi, rax
call sqlite3OsAccess
mov DWORD PTR -4[rbp], eax
cmp DWORD PTR -4[rbp], 0
jne .L3012
mov eax, DWORD PTR -28[rbp]
test eax, eax
je .L3012
mov DWORD PTR -32[rbp], 0
mov DWORD PTR -20[rbp], 2050
mov rax, QWORD PTR -56[rbp]
mov rdx, QWORD PTR 80[rax]
mov rax, QWORD PTR -56[rbp]
mov rsi, QWORD PTR 216[rax]
lea rdi, -32[rbp]
mov ecx, DWORD PTR -20[rbp]
mov rax, QWORD PTR -16[rbp]
mov r8, rdi
mov rdi, rax
call sqlite3OsOpen
mov DWORD PTR -4[rbp], eax
cmp DWORD PTR -4[rbp], 0
jne .L3012
mov eax, DWORD PTR -32[rbp]
and eax, 1
test eax, eax
je .L3012
mov edi, 53196
call sqlite3CantopenError
mov DWORD PTR -4[rbp], eax
mov rax, QWORD PTR -56[rbp]
mov rax, QWORD PTR 80[rax]
mov rdi, rax
call sqlite3OsClose
.L3012:
mov rax, QWORD PTR -56[rbp]
mov rax, QWORD PTR 80[rax]
mov rax, QWORD PTR [rax]
test rax, rax
je .L3015
mov rax, QWORD PTR -56[rbp]
mov rdi, rax
call pagerSyncHotJournal
mov DWORD PTR -4[rbp], eax
cmp DWORD PTR -4[rbp], 0
jne .L3017
mov rax, QWORD PTR -56[rbp]
movzx eax, BYTE PTR 16[rax]
test al, al
sete al
movzx edx, al
mov rax, QWORD PTR -56[rbp]
mov esi, edx
mov rdi, rax
call pager_playback
mov DWORD PTR -4[rbp], eax
mov rax, QWORD PTR -56[rbp]
mov BYTE PTR 20[rax], 0
jmp .L3017
.L3015:
mov rax, QWORD PTR -56[rbp]
movzx eax, BYTE PTR 8[rax]
test al, al
jne .L3017
mov rax, QWORD PTR -56[rbp]
mov esi, 1
mov rdi, rax
call pagerUnlockDb
.L3017:
cmp DWORD PTR -4[rbp], 0
je .L3009
mov edx, DWORD PTR -4[rbp]
mov rax, QWORD PTR -56[rbp]
mov esi, edx
mov rdi, rax
call pager_error
nop
jmp .L3022
.L3009:
mov rax, QWORD PTR -56[rbp]
movzx eax, BYTE PTR 16[rax]
test al, al
jne .L3018
mov rax, QWORD PTR -56[rbp]
movzx eax, BYTE PTR 27[rax]
test al, al
je .L3018
mov rax, QWORD PTR -56[rbp]
mov rax, QWORD PTR 72[rax]
lea rsi, -48[rbp]
mov ecx, 24
mov edx, 16
mov rdi, rax
call sqlite3OsRead
mov DWORD PTR -4[rbp], eax
cmp DWORD PTR -4[rbp], 0
je .L3019
cmp DWORD PTR -4[rbp], 522
je .L3020
nop
jmp .L3027
.L3020:
lea rax, -48[rbp]
mov edx, 16
mov esi, 0
mov rdi, rax
call memset@PLT
.L3019:
mov rax, QWORD PTR -56[rbp]
lea rcx, 136[rax]
lea rax, -48[rbp]
mov edx, 16
mov rsi, rax
mov rdi, rcx
call memcmp@PLT
test eax, eax
je .L3018
mov rax, QWORD PTR -56[rbp]
mov rdi, rax
call pager_reset
mov rax, QWORD PTR -56[rbp]
movzx eax, BYTE PTR 26[rax]
test al, al
je .L3018
mov rax, QWORD PTR -56[rbp]
mov rax, QWORD PTR 72[rax]
mov edx, 0
mov esi, 0
mov rdi, rax
call sqlite3OsUnfetch
.L3018:
mov rax, QWORD PTR -56[rbp]
mov rdi, rax
call pagerOpenWalIfPresent
mov DWORD PTR -4[rbp], eax
.L3004:
mov rax, QWORD PTR -56[rbp]
mov rax, QWORD PTR 288[rax]
test rax, rax
je .L3023
mov rax, QWORD PTR -56[rbp]
mov rdi, rax
call pagerBeginReadTransaction
mov DWORD PTR -4[rbp], eax
.L3023:
mov rax, QWORD PTR -56[rbp]
movzx eax, BYTE PTR 16[rax]
test al, al
jne .L3022
mov rax, QWORD PTR -56[rbp]
movzx eax, BYTE PTR 20[rax]
test al, al
jne .L3022
cmp DWORD PTR -4[rbp], 0
jne .L3022
mov rax, QWORD PTR -56[rbp]
lea rdx, 28[rax]
mov rax, QWORD PTR -56[rbp]
mov rsi, rdx
mov rdi, rax
call pagerPagecount
mov DWORD PTR -4[rbp], eax
jmp .L3022
.L3027:
nop
jmp .L3022
.L3028:
nop
jmp .L3022
.L3029:
nop
.L3022:
cmp DWORD PTR -4[rbp], 0
je .L3024
mov rax, QWORD PTR -56[rbp]
mov rdi, rax
call pager_unlock
jmp .L3025
.L3024:
mov rax, QWORD PTR -56[rbp]
mov BYTE PTR 20[rax], 1
mov rax, QWORD PTR -56[rbp]
mov BYTE PTR 27[rax], 1
.L3025:
mov eax, DWORD PTR -4[rbp]
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE486:
.size sqlite3PagerSharedLock, .-sqlite3PagerSharedLock
.type pagerUnlockIfUnused, @function
pagerUnlockIfUnused:
.LFB487:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 16
mov QWORD PTR -8[rbp], rdi
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR 280[rax]
mov rdi, rax
call sqlite3PcacheRefCount
test eax, eax
jne .L3032
mov rax, QWORD PTR -8[rbp]
mov rdi, rax
call pagerUnlockAndRollback
.L3032:
nop
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE487:
.size pagerUnlockIfUnused, .-pagerUnlockIfUnused
.type getPageNormal, @function
getPageNormal:
.LFB488:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 64
mov QWORD PTR -40[rbp], rdi
mov DWORD PTR -44[rbp], esi
mov QWORD PTR -56[rbp], rdx
mov DWORD PTR -48[rbp], ecx
mov DWORD PTR -4[rbp], 0
cmp DWORD PTR -44[rbp], 0
jne .L3034
mov edi, 53409
call sqlite3CorruptError
jmp .L3049
.L3034:
mov rax, QWORD PTR -40[rbp]
mov rax, QWORD PTR 280[rax]
mov ecx, DWORD PTR -44[rbp]
mov edx, 3
mov esi, ecx
mov rdi, rax
call sqlite3PcacheFetch
mov QWORD PTR -32[rbp], rax
mov rax, QWORD PTR -32[rbp]
test rax, rax
jne .L3036
mov QWORD PTR -16[rbp], 0
mov rax, QWORD PTR -40[rbp]
mov rax, QWORD PTR 280[rax]
lea rdx, -32[rbp]
mov ecx, DWORD PTR -44[rbp]
mov esi, ecx
mov rdi, rax
call sqlite3PcacheFetchStress
mov DWORD PTR -4[rbp], eax
cmp DWORD PTR -4[rbp], 0
jne .L3050
mov rax, QWORD PTR -32[rbp]
test rax, rax
jne .L3036
mov DWORD PTR -4[rbp], 7
jmp .L3038
.L3036:
mov rdx, QWORD PTR -32[rbp]
mov rax, QWORD PTR -40[rbp]
mov rax, QWORD PTR 280[rax]
mov ecx, DWORD PTR -44[rbp]
mov esi, ecx
mov rdi, rax
call sqlite3PcacheFetchFinish
mov rdx, rax
mov rax, QWORD PTR -56[rbp]
mov QWORD PTR [rax], rdx
mov rax, QWORD PTR -56[rbp]
mov rax, QWORD PTR [rax]
mov QWORD PTR -16[rbp], rax
mov eax, DWORD PTR -48[rbp]
and eax, 1
test eax, eax
setne al
mov BYTE PTR -17[rbp], al
mov rax, QWORD PTR -16[rbp]
mov rax, QWORD PTR 40[rax]
test rax, rax
je .L3039
cmp BYTE PTR -17[rbp], 0
jne .L3039
mov rax, QWORD PTR -40[rbp]
mov eax, DWORD PTR 240[rax]
lea edx, 1[rax]
mov rax, QWORD PTR -40[rbp]
mov DWORD PTR 240[rax], edx
mov eax, 0
jmp .L3049
.L3039:
mov eax, DWORD PTR -44[rbp]
test eax, eax
js .L3040
mov eax, DWORD PTR sqlite3PendingByte[rip]
mov rdx, QWORD PTR -40[rbp]
mov ecx, DWORD PTR 188[rdx]
cdq
idiv ecx
add eax, 1
cmp eax, DWORD PTR -44[rbp]
jne .L3041
.L3040:
mov edi, 53441
call sqlite3CorruptError
mov DWORD PTR -4[rbp], eax
jmp .L3038
.L3041:
mov rax, QWORD PTR -16[rbp]
mov rdx, QWORD PTR -40[rbp]
mov QWORD PTR 40[rax], rdx
mov rax, QWORD PTR -40[rbp]
mov rax, QWORD PTR 72[rax]
mov rax, QWORD PTR [rax]
test rax, rax
je .L3042
mov rax, QWORD PTR -40[rbp]
mov eax, DWORD PTR 28[rax]
cmp eax, DWORD PTR -44[rbp]
jb .L3042
cmp BYTE PTR -17[rbp], 0
je .L3043
.L3042:
mov rax, QWORD PTR -40[rbp]
mov eax, DWORD PTR 192[rax]
cmp eax, DWORD PTR -44[rbp]
jnb .L3044
mov DWORD PTR -4[rbp], 13
jmp .L3038
.L3044:
cmp BYTE PTR -17[rbp], 0
je .L3045
call sqlite3BeginBenignMalloc
mov rax, QWORD PTR -40[rbp]
mov eax, DWORD PTR 32[rax]
cmp eax, DWORD PTR -44[rbp]
jb .L3046
mov rax, QWORD PTR -40[rbp]
mov rax, QWORD PTR 64[rax]
mov edx, DWORD PTR -44[rbp]
mov esi, edx
mov rdi, rax
call sqlite3BitvecSet
.L3046:
mov edx, DWORD PTR -44[rbp]
mov rax, QWORD PTR -40[rbp]
mov esi, edx
mov rdi, rax
call addToSavepointBitvecs
call sqlite3EndBenignMalloc
.L3045:
mov rax, QWORD PTR -40[rbp]
mov eax, DWORD PTR 188[rax]
movsx rdx, eax
mov rax, QWORD PTR -16[rbp]
mov rax, QWORD PTR 8[rax]
mov esi, 0
mov rdi, rax
call memset@PLT
jmp .L3047
.L3043:
mov rax, QWORD PTR -40[rbp]
mov eax, DWORD PTR 244[rax]
lea edx, 1[rax]
mov rax, QWORD PTR -40[rbp]
mov DWORD PTR 244[rax], edx
mov rax, QWORD PTR -16[rbp]
mov rdi, rax
call readDbPage
mov DWORD PTR -4[rbp], eax
cmp DWORD PTR -4[rbp], 0
jne .L3051
.L3047:
mov eax, 0
jmp .L3049
.L3050:
nop
jmp .L3038
.L3051:
nop
.L3038:
cmp QWORD PTR -16[rbp], 0
je .L3048
mov rax, QWORD PTR -16[rbp]
mov rdi, rax
call sqlite3PcacheDrop
.L3048:
mov rax, QWORD PTR -40[rbp]
mov rdi, rax
call pagerUnlockIfUnused
mov rax, QWORD PTR -56[rbp]
mov QWORD PTR [rax], 0
mov eax, DWORD PTR -4[rbp]
.L3049:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE488:
.size getPageNormal, .-getPageNormal
.type getPageMMap, @function
getPageMMap:
.LFB489:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 64
mov QWORD PTR -40[rbp], rdi
mov DWORD PTR -44[rbp], esi
mov QWORD PTR -56[rbp], rdx
mov DWORD PTR -48[rbp], ecx
mov DWORD PTR -4[rbp], 0
mov QWORD PTR -16[rbp], 0
mov DWORD PTR -20[rbp], 0
cmp DWORD PTR -44[rbp], 1
jbe .L3053
mov rax, QWORD PTR -40[rbp]
movzx eax, BYTE PTR 20[rax]
cmp al, 1
je .L3054
mov eax, DWORD PTR -48[rbp]
and eax, 2
test eax, eax
je .L3053
.L3054:
mov eax, 1
jmp .L3055
.L3053:
mov eax, 0
.L3055:
mov DWORD PTR -8[rbp], eax
cmp DWORD PTR -44[rbp], 1
ja .L3056
cmp DWORD PTR -44[rbp], 0
jne .L3056
mov edi, 53523
call sqlite3CorruptError
jmp .L3067
.L3056:
cmp DWORD PTR -8[rbp], 0
je .L3058
mov rax, QWORD PTR -40[rbp]
mov rax, QWORD PTR 288[rax]
test rax, rax
je .L3058
mov rax, QWORD PTR -40[rbp]
mov rax, QWORD PTR 288[rax]
lea rdx, -20[rbp]
mov ecx, DWORD PTR -44[rbp]
mov esi, ecx
mov rdi, rax
call sqlite3WalFindFrame
mov DWORD PTR -4[rbp], eax
cmp DWORD PTR -4[rbp], 0
je .L3058
mov rax, QWORD PTR -56[rbp]
mov QWORD PTR [rax], 0
mov eax, DWORD PTR -4[rbp]
jmp .L3067
.L3058:
cmp DWORD PTR -8[rbp], 0
je .L3059
mov eax, DWORD PTR -20[rbp]
test eax, eax
jne .L3059
mov QWORD PTR -32[rbp], 0
mov rax, QWORD PTR -40[rbp]
mov edx, DWORD PTR 188[rax]
mov eax, DWORD PTR -44[rbp]
sub eax, 1
mov ecx, eax
mov rax, QWORD PTR -40[rbp]
mov eax, DWORD PTR 188[rax]
cdqe
mov rsi, rcx
imul rsi, rax
mov rax, QWORD PTR -40[rbp]
mov rax, QWORD PTR 72[rax]
lea rcx, -32[rbp]
mov rdi, rax
call sqlite3OsFetch
mov DWORD PTR -4[rbp], eax
cmp DWORD PTR -4[rbp], 0
jne .L3060
mov rax, QWORD PTR -32[rbp]
test rax, rax
je .L3060
mov rax, QWORD PTR -40[rbp]
movzx eax, BYTE PTR 20[rax]
cmp al, 1
ja .L3061
mov rax, QWORD PTR -40[rbp]
movzx eax, BYTE PTR 16[rax]
test al, al
je .L3062
.L3061:
mov edx, DWORD PTR -44[rbp]
mov rax, QWORD PTR -40[rbp]
mov esi, edx
mov rdi, rax
call sqlite3PagerLookup
mov QWORD PTR -16[rbp], rax
.L3062:
mov rax, QWORD PTR -16[rbp]
test rax, rax
jne .L3063
mov rdx, QWORD PTR -32[rbp]
lea rcx, -16[rbp]
mov esi, DWORD PTR -44[rbp]
mov rax, QWORD PTR -40[rbp]
mov rdi, rax
call pagerAcquireMapPage
mov DWORD PTR -4[rbp], eax
jmp .L3064
.L3063:
mov rdx, QWORD PTR -32[rbp]
mov eax, DWORD PTR -44[rbp]
sub eax, 1
mov ecx, eax
mov rax, QWORD PTR -40[rbp]
mov eax, DWORD PTR 188[rax]
cdqe
imul rcx, rax
mov rax, QWORD PTR -40[rbp]
mov rax, QWORD PTR 72[rax]
mov rsi, rcx
mov rdi, rax
call sqlite3OsUnfetch
.L3064:
mov rax, QWORD PTR -16[rbp]
test rax, rax
je .L3060
mov rdx, QWORD PTR -16[rbp]
mov rax, QWORD PTR -56[rbp]
mov QWORD PTR [rax], rdx
mov eax, 0
jmp .L3067
.L3060:
cmp DWORD PTR -4[rbp], 0
je .L3059
mov rax, QWORD PTR -56[rbp]
mov QWORD PTR [rax], 0
mov eax, DWORD PTR -4[rbp]
jmp .L3067
.L3059:
mov ecx, DWORD PTR -48[rbp]
mov rdx, QWORD PTR -56[rbp]
mov esi, DWORD PTR -44[rbp]
mov rax, QWORD PTR -40[rbp]
mov rdi, rax
call getPageNormal
.L3067:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE489:
.size getPageMMap, .-getPageMMap
.type getPageError, @function
getPageError:
.LFB490:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
mov QWORD PTR -8[rbp], rdi
mov DWORD PTR -12[rbp], esi
mov QWORD PTR -24[rbp], rdx
mov DWORD PTR -16[rbp], ecx
mov rax, QWORD PTR -24[rbp]
mov QWORD PTR [rax], 0
mov rax, QWORD PTR -8[rbp]
mov eax, DWORD PTR 44[rax]
pop rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE490:
.size getPageError, .-getPageError
.type sqlite3PagerGet, @function
sqlite3PagerGet:
.LFB491:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 32
mov QWORD PTR -8[rbp], rdi
mov DWORD PTR -12[rbp], esi
mov QWORD PTR -24[rbp], rdx
mov DWORD PTR -16[rbp], ecx
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR 264[rax]
mov ecx, DWORD PTR -16[rbp]
mov rdx, QWORD PTR -24[rbp]
mov esi, DWORD PTR -12[rbp]
mov rdi, QWORD PTR -8[rbp]
call rax
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE491:
.size sqlite3PagerGet, .-sqlite3PagerGet
.type sqlite3PagerLookup, @function
sqlite3PagerLookup:
.LFB492:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 32
mov QWORD PTR -24[rbp], rdi
mov DWORD PTR -28[rbp], esi
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 280[rax]
mov ecx, DWORD PTR -28[rbp]
mov edx, 0
mov esi, ecx
mov rdi, rax
call sqlite3PcacheFetch
mov QWORD PTR -8[rbp], rax
cmp QWORD PTR -8[rbp], 0
jne .L3073
mov eax, 0
jmp .L3074
.L3073:
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 280[rax]
mov rdx, QWORD PTR -8[rbp]
mov ecx, DWORD PTR -28[rbp]
mov esi, ecx
mov rdi, rax
call sqlite3PcacheFetchFinish
.L3074:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE492:
.size sqlite3PagerLookup, .-sqlite3PagerLookup
.type sqlite3PagerUnrefNotNull, @function
sqlite3PagerUnrefNotNull:
.LFB493:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 16
mov QWORD PTR -8[rbp], rdi
mov rax, QWORD PTR -8[rbp]
movzx eax, WORD PTR 52[rax]
movzx eax, ax
and eax, 32
test eax, eax
je .L3076
mov rax, QWORD PTR -8[rbp]
mov rdi, rax
call pagerReleaseMapPage
jmp .L3078
.L3076:
mov rax, QWORD PTR -8[rbp]
mov rdi, rax
call sqlite3PcacheRelease
.L3078:
nop
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE493:
.size sqlite3PagerUnrefNotNull, .-sqlite3PagerUnrefNotNull
.type sqlite3PagerUnref, @function
sqlite3PagerUnref:
.LFB494:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 16
mov QWORD PTR -8[rbp], rdi
cmp QWORD PTR -8[rbp], 0
je .L3081
mov rax, QWORD PTR -8[rbp]
mov rdi, rax
call sqlite3PagerUnrefNotNull
.L3081:
nop
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE494:
.size sqlite3PagerUnref, .-sqlite3PagerUnref
.type sqlite3PagerUnrefPageOne, @function
sqlite3PagerUnrefPageOne:
.LFB495:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 32
mov QWORD PTR -24[rbp], rdi
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 40[rax]
mov QWORD PTR -8[rbp], rax
mov rax, QWORD PTR -24[rbp]
mov rdi, rax
call sqlite3PcacheRelease
mov rax, QWORD PTR -8[rbp]
mov rdi, rax
call pagerUnlockIfUnused
nop
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE495:
.size sqlite3PagerUnrefPageOne, .-sqlite3PagerUnrefPageOne
.type pager_open_journal, @function
pager_open_journal:
.LFB496:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 48
mov QWORD PTR -40[rbp], rdi
mov DWORD PTR -4[rbp], 0
mov rax, QWORD PTR -40[rbp]
mov rax, QWORD PTR [rax]
mov QWORD PTR -24[rbp], rax
mov rax, QWORD PTR -40[rbp]
mov eax, DWORD PTR 44[rax]
test eax, eax
je .L3084
mov rax, QWORD PTR -40[rbp]
mov eax, DWORD PTR 44[rax]
jmp .L3085
.L3084:
mov rax, QWORD PTR -40[rbp]
mov rax, QWORD PTR 288[rax]
test rax, rax
jne .L3086
mov rax, QWORD PTR -40[rbp]
movzx eax, BYTE PTR 9[rax]
cmp al, 2
je .L3086
mov rax, QWORD PTR -40[rbp]
mov eax, DWORD PTR 28[rax]
mov edi, eax
call sqlite3BitvecCreate
mov rdx, rax
mov rax, QWORD PTR -40[rbp]
mov QWORD PTR 64[rax], rdx
mov rax, QWORD PTR -40[rbp]
mov rax, QWORD PTR 64[rax]
test rax, rax
jne .L3087
mov eax, 7
jmp .L3085
.L3087:
mov rax, QWORD PTR -40[rbp]
mov rax, QWORD PTR 80[rax]
mov rax, QWORD PTR [rax]
test rax, rax
jne .L3088
mov rax, QWORD PTR -40[rbp]
movzx eax, BYTE PTR 9[rax]
cmp al, 4
jne .L3089
mov rax, QWORD PTR -40[rbp]
mov rax, QWORD PTR 80[rax]
mov rdi, rax
call sqlite3MemJournalOpen
jmp .L3088
.L3089:
mov DWORD PTR -8[rbp], 6
mov rax, QWORD PTR -40[rbp]
movzx eax, BYTE PTR 16[rax]
test al, al
je .L3090
or DWORD PTR -8[rbp], 4104
mov eax, DWORD PTR sqlite3Config[rip+40]
mov DWORD PTR -12[rbp], eax
jmp .L3091
.L3090:
or DWORD PTR -8[rbp], 2048
mov rax, QWORD PTR -40[rbp]
mov rdi, rax
call jrnlBufferSize
mov DWORD PTR -12[rbp], eax
.L3091:
mov rax, QWORD PTR -40[rbp]
mov rdi, rax
call databaseIsUnmoved
mov DWORD PTR -4[rbp], eax
cmp DWORD PTR -4[rbp], 0
jne .L3088
mov rax, QWORD PTR -40[rbp]
mov rdx, QWORD PTR 80[rax]
mov rax, QWORD PTR -40[rbp]
mov rsi, QWORD PTR 216[rax]
mov edi, DWORD PTR -12[rbp]
mov ecx, DWORD PTR -8[rbp]
mov rax, QWORD PTR -24[rbp]
mov r8d, edi
mov rdi, rax
call sqlite3JournalOpen
mov DWORD PTR -4[rbp], eax
.L3088:
cmp DWORD PTR -4[rbp], 0
jne .L3086
mov rax, QWORD PTR -40[rbp]
mov DWORD PTR 48[rax], 0
mov rax, QWORD PTR -40[rbp]
mov QWORD PTR 96[rax], 0
mov rax, QWORD PTR -40[rbp]
mov BYTE PTR 23[rax], 0
mov rax, QWORD PTR -40[rbp]
mov QWORD PTR 104[rax], 0
mov rax, QWORD PTR -40[rbp]
mov rdi, rax
call writeJournalHdr
mov DWORD PTR -4[rbp], eax
.L3086:
cmp DWORD PTR -4[rbp], 0
je .L3092
mov rax, QWORD PTR -40[rbp]
mov rax, QWORD PTR 64[rax]
mov rdi, rax
call sqlite3BitvecDestroy
mov rax, QWORD PTR -40[rbp]
mov QWORD PTR 64[rax], 0
jmp .L3093
.L3092:
mov rax, QWORD PTR -40[rbp]
mov BYTE PTR 20[rax], 3
.L3093:
mov eax, DWORD PTR -4[rbp]
.L3085:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE496:
.size pager_open_journal, .-pager_open_journal
.type sqlite3PagerBegin, @function
sqlite3PagerBegin:
.LFB497:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 32
mov QWORD PTR -24[rbp], rdi
mov DWORD PTR -28[rbp], esi
mov DWORD PTR -32[rbp], edx
mov DWORD PTR -4[rbp], 0
mov rax, QWORD PTR -24[rbp]
mov eax, DWORD PTR 44[rax]
test eax, eax
je .L3095
mov rax, QWORD PTR -24[rbp]
mov eax, DWORD PTR 44[rax]
jmp .L3096
.L3095:
mov eax, DWORD PTR -32[rbp]
mov edx, eax
mov rax, QWORD PTR -24[rbp]
mov BYTE PTR 25[rax], dl
mov rax, QWORD PTR -24[rbp]
movzx eax, BYTE PTR 20[rax]
cmp al, 1
jne .L3097
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 288[rax]
test rax, rax
je .L3098
mov rax, QWORD PTR -24[rbp]
movzx eax, BYTE PTR 8[rax]
test al, al
je .L3099
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 288[rax]
mov esi, -1
mov rdi, rax
call sqlite3WalExclusiveMode
test eax, eax
je .L3099
mov rax, QWORD PTR -24[rbp]
mov esi, 4
mov rdi, rax
call pagerLockDb
mov DWORD PTR -4[rbp], eax
cmp DWORD PTR -4[rbp], 0
je .L3100
mov eax, DWORD PTR -4[rbp]
jmp .L3096
.L3100:
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 288[rax]
mov esi, 1
mov rdi, rax
call sqlite3WalExclusiveMode
.L3099:
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 288[rax]
mov rdi, rax
call sqlite3WalBeginWriteTransaction
mov DWORD PTR -4[rbp], eax
jmp .L3101
.L3098:
mov rax, QWORD PTR -24[rbp]
mov esi, 2
mov rdi, rax
call pagerLockDb
mov DWORD PTR -4[rbp], eax
cmp DWORD PTR -4[rbp], 0
jne .L3101
cmp DWORD PTR -28[rbp], 0
je .L3101
mov rax, QWORD PTR -24[rbp]
mov esi, 4
mov rdi, rax
call pager_wait_on_lock
mov DWORD PTR -4[rbp], eax
.L3101:
cmp DWORD PTR -4[rbp], 0
jne .L3097
mov rax, QWORD PTR -24[rbp]
mov BYTE PTR 20[rax], 2
mov rax, QWORD PTR -24[rbp]
mov edx, DWORD PTR 28[rax]
mov rax, QWORD PTR -24[rbp]
mov DWORD PTR 40[rax], edx
mov rax, QWORD PTR -24[rbp]
mov edx, DWORD PTR 28[rax]
mov rax, QWORD PTR -24[rbp]
mov DWORD PTR 36[rax], edx
mov rax, QWORD PTR -24[rbp]
mov edx, DWORD PTR 28[rax]
mov rax, QWORD PTR -24[rbp]
mov DWORD PTR 32[rax], edx
mov rax, QWORD PTR -24[rbp]
mov QWORD PTR 96[rax], 0
.L3097:
mov eax, DWORD PTR -4[rbp]
.L3096:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE497:
.size sqlite3PagerBegin, .-sqlite3PagerBegin
.type pagerAddPageToRollbackJournal, @function
pagerAddPageToRollbackJournal:
.LFB498:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 48
mov QWORD PTR -40[rbp], rdi
mov rax, QWORD PTR -40[rbp]
mov rax, QWORD PTR 40[rax]
mov QWORD PTR -8[rbp], rax
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR 96[rax]
mov QWORD PTR -16[rbp], rax
mov rax, QWORD PTR -40[rbp]
mov rax, QWORD PTR 8[rax]
mov QWORD PTR -24[rbp], rax
mov rdx, QWORD PTR -24[rbp]
mov rax, QWORD PTR -8[rbp]
mov rsi, rdx
mov rdi, rax
call pager_cksum
mov DWORD PTR -28[rbp], eax
mov rax, QWORD PTR -40[rbp]
movzx eax, WORD PTR 52[rax]
or eax, 8
mov edx, eax
mov rax, QWORD PTR -40[rbp]
mov WORD PTR 52[rax], dx
mov rax, QWORD PTR -40[rbp]
mov edx, DWORD PTR 48[rax]
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR 80[rax]
mov rcx, QWORD PTR -16[rbp]
mov rsi, rcx
mov rdi, rax
call write32bits
mov DWORD PTR -32[rbp], eax
cmp DWORD PTR -32[rbp], 0
je .L3103
mov eax, DWORD PTR -32[rbp]
jmp .L3104
.L3103:
mov rax, QWORD PTR -16[rbp]
lea rcx, 4[rax]
mov rax, QWORD PTR -8[rbp]
mov edx, DWORD PTR 188[rax]
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR 80[rax]
mov rsi, QWORD PTR -24[rbp]
mov rdi, rax
call sqlite3OsWrite
mov DWORD PTR -32[rbp], eax
cmp DWORD PTR -32[rbp], 0
je .L3105
mov eax, DWORD PTR -32[rbp]
jmp .L3104
.L3105:
mov rax, QWORD PTR -8[rbp]
mov eax, DWORD PTR 188[rax]
movsx rdx, eax
mov rax, QWORD PTR -16[rbp]
add rax, rdx
lea rcx, 4[rax]
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR 80[rax]
mov edx, DWORD PTR -28[rbp]
mov rsi, rcx
mov rdi, rax
call write32bits
mov DWORD PTR -32[rbp], eax
cmp DWORD PTR -32[rbp], 0
je .L3106
mov eax, DWORD PTR -32[rbp]
jmp .L3104
.L3106:
mov rax, QWORD PTR -8[rbp]
mov rdx, QWORD PTR 96[rax]
mov rax, QWORD PTR -8[rbp]
mov eax, DWORD PTR 188[rax]
add eax, 8
cdqe
add rdx, rax
mov rax, QWORD PTR -8[rbp]
mov QWORD PTR 96[rax], rdx
mov rax, QWORD PTR -8[rbp]
mov eax, DWORD PTR 48[rax]
lea edx, 1[rax]
mov rax, QWORD PTR -8[rbp]
mov DWORD PTR 48[rax], edx
mov rax, QWORD PTR -40[rbp]
mov edx, DWORD PTR 48[rax]
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR 64[rax]
mov esi, edx
mov rdi, rax
call sqlite3BitvecSet
mov DWORD PTR -32[rbp], eax
mov rax, QWORD PTR -40[rbp]
mov edx, DWORD PTR 48[rax]
mov rax, QWORD PTR -8[rbp]
mov esi, edx
mov rdi, rax
call addToSavepointBitvecs
or DWORD PTR -32[rbp], eax
mov eax, DWORD PTR -32[rbp]
.L3104:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE498:
.size pagerAddPageToRollbackJournal, .-pagerAddPageToRollbackJournal
.type pager_write, @function
pager_write:
.LFB499:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 32
mov QWORD PTR -24[rbp], rdi
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 40[rax]
mov QWORD PTR -16[rbp], rax
mov DWORD PTR -4[rbp], 0
mov rax, QWORD PTR -16[rbp]
movzx eax, BYTE PTR 20[rax]
cmp al, 2
jne .L3108
mov rax, QWORD PTR -16[rbp]
mov rdi, rax
call pager_open_journal
mov DWORD PTR -4[rbp], eax
cmp DWORD PTR -4[rbp], 0
je .L3108
mov eax, DWORD PTR -4[rbp]
jmp .L3109
.L3108:
mov rax, QWORD PTR -24[rbp]
mov rdi, rax
call sqlite3PcacheMakeDirty
mov rax, QWORD PTR -16[rbp]
mov rax, QWORD PTR 64[rax]
test rax, rax
je .L3110
mov rax, QWORD PTR -24[rbp]
mov edx, DWORD PTR 48[rax]
mov rax, QWORD PTR -16[rbp]
mov rax, QWORD PTR 64[rax]
mov esi, edx
mov rdi, rax
call sqlite3BitvecTestNotNull
test eax, eax
jne .L3110
mov rax, QWORD PTR -24[rbp]
mov edx, DWORD PTR 48[rax]
mov rax, QWORD PTR -16[rbp]
mov eax, DWORD PTR 32[rax]
cmp edx, eax
ja .L3111
mov rax, QWORD PTR -24[rbp]
mov rdi, rax
call pagerAddPageToRollbackJournal
mov DWORD PTR -4[rbp], eax
cmp DWORD PTR -4[rbp], 0
je .L3110
mov eax, DWORD PTR -4[rbp]
jmp .L3109
.L3111:
mov rax, QWORD PTR -16[rbp]
movzx eax, BYTE PTR 20[rax]
cmp al, 4
je .L3110
mov rax, QWORD PTR -24[rbp]
movzx eax, WORD PTR 52[rax]
or eax, 8
mov edx, eax
mov rax, QWORD PTR -24[rbp]
mov WORD PTR 52[rax], dx
.L3110:
mov rax, QWORD PTR -24[rbp]
movzx eax, WORD PTR 52[rax]
or eax, 4
mov edx, eax
mov rax, QWORD PTR -24[rbp]
mov WORD PTR 52[rax], dx
mov rax, QWORD PTR -16[rbp]
mov eax, DWORD PTR 128[rax]
test eax, eax
jle .L3112
mov rax, QWORD PTR -24[rbp]
mov rdi, rax
call subjournalPageIfRequired
mov DWORD PTR -4[rbp], eax
.L3112:
mov rax, QWORD PTR -16[rbp]
mov edx, DWORD PTR 28[rax]
mov rax, QWORD PTR -24[rbp]
mov eax, DWORD PTR 48[rax]
cmp edx, eax
jnb .L3113
mov rax, QWORD PTR -24[rbp]
mov edx, DWORD PTR 48[rax]
mov rax, QWORD PTR -16[rbp]
mov DWORD PTR 28[rax], edx
.L3113:
mov eax, DWORD PTR -4[rbp]
.L3109:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE499:
.size pager_write, .-pager_write
.type pagerWriteLargeSector, @function
pagerWriteLargeSector:
.LFB500:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 80
mov QWORD PTR -72[rbp], rdi
mov DWORD PTR -4[rbp], 0
mov DWORD PTR -8[rbp], 0
mov DWORD PTR -16[rbp], 0
mov rax, QWORD PTR -72[rbp]
mov rax, QWORD PTR 40[rax]
mov QWORD PTR -24[rbp], rax
mov rax, QWORD PTR -24[rbp]
mov eax, DWORD PTR 184[rax]
mov rdx, QWORD PTR -24[rbp]
mov edx, DWORD PTR 188[rdx]
mov ecx, edx
mov edx, 0
div ecx
mov DWORD PTR -28[rbp], eax
mov rax, QWORD PTR -24[rbp]
movzx eax, BYTE PTR 24[rax]
or eax, 4
mov edx, eax
mov rax, QWORD PTR -24[rbp]
mov BYTE PTR 24[rax], dl
mov rax, QWORD PTR -72[rbp]
mov eax, DWORD PTR 48[rax]
lea edx, -1[rax]
mov eax, DWORD PTR -28[rbp]
neg eax
and eax, edx
add eax, 1
mov DWORD PTR -32[rbp], eax
mov rax, QWORD PTR -24[rbp]
mov eax, DWORD PTR 28[rax]
mov DWORD PTR -36[rbp], eax
mov rax, QWORD PTR -72[rbp]
mov eax, DWORD PTR 48[rax]
cmp eax, DWORD PTR -36[rbp]
jbe .L3115
mov rax, QWORD PTR -72[rbp]
mov eax, DWORD PTR 48[rax]
sub eax, DWORD PTR -32[rbp]
add eax, 1
mov DWORD PTR -8[rbp], eax
jmp .L3116
.L3115:
mov edx, DWORD PTR -32[rbp]
mov eax, DWORD PTR -28[rbp]
add eax, edx
sub eax, 1
cmp eax, DWORD PTR -36[rbp]
jbe .L3117
mov eax, DWORD PTR -36[rbp]
sub eax, DWORD PTR -32[rbp]
add eax, 1
mov DWORD PTR -8[rbp], eax
jmp .L3116
.L3117:
mov eax, DWORD PTR -28[rbp]
mov DWORD PTR -8[rbp], eax
.L3116:
mov DWORD PTR -12[rbp], 0
jmp .L3118
.L3126:
mov edx, DWORD PTR -12[rbp]
mov eax, DWORD PTR -32[rbp]
add eax, edx
mov DWORD PTR -40[rbp], eax
mov rax, QWORD PTR -72[rbp]
mov eax, DWORD PTR 48[rax]
cmp eax, DWORD PTR -40[rbp]
je .L3119
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 64[rax]
mov edx, DWORD PTR -40[rbp]
mov esi, edx
mov rdi, rax
call sqlite3BitvecTest
test eax, eax
jne .L3120
.L3119:
mov eax, DWORD PTR sqlite3PendingByte[rip]
mov rdx, QWORD PTR -24[rbp]
mov ecx, DWORD PTR 188[rdx]
cdq
idiv ecx
add eax, 1
cmp eax, DWORD PTR -40[rbp]
je .L3132
lea rdx, -56[rbp]
mov esi, DWORD PTR -40[rbp]
mov rax, QWORD PTR -24[rbp]
mov ecx, 0
mov rdi, rax
call sqlite3PagerGet
mov DWORD PTR -4[rbp], eax
cmp DWORD PTR -4[rbp], 0
jne .L3132
mov rax, QWORD PTR -56[rbp]
mov rdi, rax
call pager_write
mov DWORD PTR -4[rbp], eax
mov rax, QWORD PTR -56[rbp]
movzx eax, WORD PTR 52[rax]
movzx eax, ax
and eax, 8
test eax, eax
je .L3122
mov DWORD PTR -16[rbp], 1
.L3122:
mov rax, QWORD PTR -56[rbp]
mov rdi, rax
call sqlite3PagerUnrefNotNull
jmp .L3132
.L3120:
mov edx, DWORD PTR -40[rbp]
mov rax, QWORD PTR -24[rbp]
mov esi, edx
mov rdi, rax
call sqlite3PagerLookup
mov QWORD PTR -56[rbp], rax
mov rax, QWORD PTR -56[rbp]
test rax, rax
je .L3123
mov rax, QWORD PTR -56[rbp]
movzx eax, WORD PTR 52[rax]
movzx eax, ax
and eax, 8
test eax, eax
je .L3124
mov DWORD PTR -16[rbp], 1
.L3124:
mov rax, QWORD PTR -56[rbp]
mov rdi, rax
call sqlite3PagerUnrefNotNull
jmp .L3123
.L3132:
nop
.L3123:
add DWORD PTR -12[rbp], 1
.L3118:
mov eax, DWORD PTR -12[rbp]
cmp eax, DWORD PTR -8[rbp]
jge .L3125
cmp DWORD PTR -4[rbp], 0
je .L3126
.L3125:
cmp DWORD PTR -4[rbp], 0
jne .L3127
cmp DWORD PTR -16[rbp], 0
je .L3127
mov DWORD PTR -12[rbp], 0
jmp .L3128
.L3130:
mov edx, DWORD PTR -12[rbp]
mov eax, DWORD PTR -32[rbp]
add edx, eax
mov rax, QWORD PTR -24[rbp]
mov esi, edx
mov rdi, rax
call sqlite3PagerLookup
mov QWORD PTR -48[rbp], rax
cmp QWORD PTR -48[rbp], 0
je .L3129
mov rax, QWORD PTR -48[rbp]
movzx eax, WORD PTR 52[rax]
or eax, 8
mov edx, eax
mov rax, QWORD PTR -48[rbp]
mov WORD PTR 52[rax], dx
mov rax, QWORD PTR -48[rbp]
mov rdi, rax
call sqlite3PagerUnrefNotNull
.L3129:
add DWORD PTR -12[rbp], 1
.L3128:
mov eax, DWORD PTR -12[rbp]
cmp eax, DWORD PTR -8[rbp]
jl .L3130
.L3127:
mov rax, QWORD PTR -24[rbp]
movzx eax, BYTE PTR 24[rax]
and eax, -5
mov edx, eax
mov rax, QWORD PTR -24[rbp]
mov BYTE PTR 24[rax], dl
mov eax, DWORD PTR -4[rbp]
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE500:
.size pagerWriteLargeSector, .-pagerWriteLargeSector
.type sqlite3PagerWrite, @function
sqlite3PagerWrite:
.LFB501:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 32
mov QWORD PTR -24[rbp], rdi
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 40[rax]
mov QWORD PTR -8[rbp], rax
mov rax, QWORD PTR -24[rbp]
movzx eax, WORD PTR 52[rax]
movzx eax, ax
and eax, 4
test eax, eax
je .L3134
mov rax, QWORD PTR -8[rbp]
mov edx, DWORD PTR 28[rax]
mov rax, QWORD PTR -24[rbp]
mov eax, DWORD PTR 48[rax]
cmp edx, eax
jb .L3134
mov rax, QWORD PTR -8[rbp]
mov eax, DWORD PTR 128[rax]
test eax, eax
je .L3135
mov rax, QWORD PTR -24[rbp]
mov rdi, rax
call subjournalPageIfRequired
jmp .L3136
.L3135:
mov eax, 0
jmp .L3136
.L3134:
mov rax, QWORD PTR -8[rbp]
mov eax, DWORD PTR 44[rax]
test eax, eax
je .L3137
mov rax, QWORD PTR -8[rbp]
mov eax, DWORD PTR 44[rax]
jmp .L3136
.L3137:
mov rax, QWORD PTR -8[rbp]
mov edx, DWORD PTR 184[rax]
mov rax, QWORD PTR -8[rbp]
mov eax, DWORD PTR 188[rax]
cmp edx, eax
jbe .L3138
mov rax, QWORD PTR -24[rbp]
mov rdi, rax
call pagerWriteLargeSector
jmp .L3136
.L3138:
mov rax, QWORD PTR -24[rbp]
mov rdi, rax
call pager_write
.L3136:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE501:
.size sqlite3PagerWrite, .-sqlite3PagerWrite
.type sqlite3PagerDontWrite, @function
sqlite3PagerDontWrite:
.LFB502:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
mov QWORD PTR -24[rbp], rdi
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 40[rax]
mov QWORD PTR -8[rbp], rax
mov rax, QWORD PTR -8[rbp]
movzx eax, BYTE PTR 16[rax]
test al, al
jne .L3141
mov rax, QWORD PTR -24[rbp]
movzx eax, WORD PTR 52[rax]
movzx eax, ax
and eax, 2
test eax, eax
je .L3141
mov rax, QWORD PTR -8[rbp]
mov eax, DWORD PTR 128[rax]
test eax, eax
jne .L3141
mov rax, QWORD PTR -24[rbp]
movzx eax, WORD PTR 52[rax]
or eax, 16
mov edx, eax
mov rax, QWORD PTR -24[rbp]
mov WORD PTR 52[rax], dx
mov rax, QWORD PTR -24[rbp]
movzx eax, WORD PTR 52[rax]
and eax, -5
mov edx, eax
mov rax, QWORD PTR -24[rbp]
mov WORD PTR 52[rax], dx
.L3141:
nop
pop rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE502:
.size sqlite3PagerDontWrite, .-sqlite3PagerDontWrite
.type pager_incr_changecounter, @function
pager_incr_changecounter:
.LFB503:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 32
mov QWORD PTR -24[rbp], rdi
mov DWORD PTR -28[rbp], esi
mov DWORD PTR -4[rbp], 0
mov rax, QWORD PTR -24[rbp]
movzx eax, BYTE PTR 22[rax]
test al, al
jne .L3143
mov rax, QWORD PTR -24[rbp]
mov eax, DWORD PTR 28[rax]
test eax, eax
je .L3143
lea rdx, -16[rbp]
mov rax, QWORD PTR -24[rbp]
mov ecx, 0
mov esi, 1
mov rdi, rax
call sqlite3PagerGet
mov DWORD PTR -4[rbp], eax
cmp DWORD PTR -4[rbp], 0
jne .L3144
mov rax, QWORD PTR -16[rbp]
mov rdi, rax
call sqlite3PagerWrite
mov DWORD PTR -4[rbp], eax
.L3144:
cmp DWORD PTR -4[rbp], 0
jne .L3145
mov rax, QWORD PTR -16[rbp]
mov rdi, rax
call pager_write_changecounter
mov rax, QWORD PTR -24[rbp]
mov BYTE PTR 22[rax], 1
.L3145:
mov rax, QWORD PTR -16[rbp]
mov rdi, rax
call sqlite3PagerUnref
.L3143:
mov eax, DWORD PTR -4[rbp]
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE503:
.size pager_incr_changecounter, .-pager_incr_changecounter
.type sqlite3PagerSync, @function
sqlite3PagerSync:
.LFB504:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 32
mov QWORD PTR -24[rbp], rdi
mov QWORD PTR -32[rbp], rsi
mov DWORD PTR -4[rbp], 0
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 72[rax]
mov rax, QWORD PTR [rax]
test rax, rax
je .L3148
mov rax, QWORD PTR -32[rbp]
mov QWORD PTR -16[rbp], rax
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 72[rax]
mov rdx, QWORD PTR -16[rbp]
mov esi, 21
mov rdi, rax
call sqlite3OsFileControl
mov DWORD PTR -4[rbp], eax
cmp DWORD PTR -4[rbp], 12
jne .L3148
mov DWORD PTR -4[rbp], 0
.L3148:
cmp DWORD PTR -4[rbp], 0
jne .L3149
mov rax, QWORD PTR -24[rbp]
movzx eax, BYTE PTR 11[rax]
test al, al
jne .L3149
mov rax, QWORD PTR -24[rbp]
movzx eax, BYTE PTR 14[rax]
movzx edx, al
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 72[rax]
mov esi, edx
mov rdi, rax
call sqlite3OsSync
mov DWORD PTR -4[rbp], eax
.L3149:
mov eax, DWORD PTR -4[rbp]
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE504:
.size sqlite3PagerSync, .-sqlite3PagerSync
.type sqlite3PagerExclusiveLock, @function
sqlite3PagerExclusiveLock:
.LFB505:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 32
mov QWORD PTR -24[rbp], rdi
mov rax, QWORD PTR -24[rbp]
mov eax, DWORD PTR 44[rax]
mov DWORD PTR -4[rbp], eax
cmp DWORD PTR -4[rbp], 0
jne .L3152
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 288[rax]
test rax, rax
jne .L3152
mov rax, QWORD PTR -24[rbp]
mov esi, 4
mov rdi, rax
call pager_wait_on_lock
mov DWORD PTR -4[rbp], eax
.L3152:
mov eax, DWORD PTR -4[rbp]
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE505:
.size sqlite3PagerExclusiveLock, .-sqlite3PagerExclusiveLock
.type sqlite3PagerCommitPhaseOne, @function
sqlite3PagerCommitPhaseOne:
.LFB506:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 80
mov QWORD PTR -56[rbp], rdi
mov QWORD PTR -64[rbp], rsi
mov DWORD PTR -68[rbp], edx
mov DWORD PTR -4[rbp], 0
mov rax, QWORD PTR -56[rbp]
mov eax, DWORD PTR 44[rax]
test eax, eax
je .L3155
mov rax, QWORD PTR -56[rbp]
mov eax, DWORD PTR 44[rax]
jmp .L3156
.L3155:
mov edi, 400
call sqlite3FaultSim
test eax, eax
je .L3157
mov eax, 10
jmp .L3156
.L3157:
mov rax, QWORD PTR -56[rbp]
movzx eax, BYTE PTR 20[rax]
cmp al, 2
ja .L3158
mov eax, 0
jmp .L3156
.L3158:
mov rax, QWORD PTR -56[rbp]
mov esi, 1
mov rdi, rax
call pagerFlushOnCommit
test eax, eax
jne .L3159
mov rax, QWORD PTR -56[rbp]
mov rax, QWORD PTR 112[rax]
mov rdi, rax
call sqlite3BackupRestart
jmp .L3160
.L3159:
mov rax, QWORD PTR -56[rbp]
mov rax, QWORD PTR 288[rax]
test rax, rax
je .L3161
mov rax, QWORD PTR -56[rbp]
mov rax, QWORD PTR 280[rax]
mov rdi, rax
call sqlite3PcacheDirtyList
mov QWORD PTR -16[rbp], rax
mov QWORD PTR -40[rbp], 0
cmp QWORD PTR -16[rbp], 0
jne .L3162
lea rdx, -40[rbp]
mov rax, QWORD PTR -56[rbp]
mov ecx, 0
mov esi, 1
mov rdi, rax
call sqlite3PagerGet
mov DWORD PTR -4[rbp], eax
mov rax, QWORD PTR -40[rbp]
mov QWORD PTR -16[rbp], rax
mov rax, QWORD PTR -16[rbp]
mov QWORD PTR 32[rax], 0
.L3162:
cmp QWORD PTR -16[rbp], 0
je .L3163
mov rax, QWORD PTR -56[rbp]
mov edx, DWORD PTR 28[rax]
mov rsi, QWORD PTR -16[rbp]
mov rax, QWORD PTR -56[rbp]
mov ecx, 1
mov rdi, rax
call pagerWalFrames
mov DWORD PTR -4[rbp], eax
.L3163:
mov rax, QWORD PTR -40[rbp]
mov rdi, rax
call sqlite3PagerUnref
cmp DWORD PTR -4[rbp], 0
jne .L3160
mov rax, QWORD PTR -56[rbp]
mov rax, QWORD PTR 280[rax]
mov rdi, rax
call sqlite3PcacheCleanAll
jmp .L3160
.L3161:
mov rax, QWORD PTR -56[rbp]
mov rax, QWORD PTR 72[rax]
mov QWORD PTR -24[rbp], rax
mov rax, QWORD PTR -56[rbp]
mov esi, 0
mov rdi, rax
call pager_incr_changecounter
mov DWORD PTR -4[rbp], eax
cmp DWORD PTR -4[rbp], 0
jne .L3171
mov rdx, QWORD PTR -64[rbp]
mov rax, QWORD PTR -56[rbp]
mov rsi, rdx
mov rdi, rax
call writeMasterJournal
mov DWORD PTR -4[rbp], eax
cmp DWORD PTR -4[rbp], 0
jne .L3172
mov rax, QWORD PTR -56[rbp]
mov esi, 0
mov rdi, rax
call syncJournal
mov DWORD PTR -4[rbp], eax
cmp DWORD PTR -4[rbp], 0
jne .L3173
mov rax, QWORD PTR -56[rbp]
mov rax, QWORD PTR 280[rax]
mov rdi, rax
call sqlite3PcacheDirtyList
mov rdx, rax
mov rax, QWORD PTR -56[rbp]
mov rsi, rdx
mov rdi, rax
call pager_write_pagelist
mov DWORD PTR -4[rbp], eax
cmp DWORD PTR -4[rbp], 0
jne .L3174
mov rax, QWORD PTR -56[rbp]
mov rax, QWORD PTR 280[rax]
mov rdi, rax
call sqlite3PcacheCleanAll
mov rax, QWORD PTR -56[rbp]
mov edx, DWORD PTR 28[rax]
mov rax, QWORD PTR -56[rbp]
mov eax, DWORD PTR 36[rax]
cmp edx, eax
jbe .L3169
mov rax, QWORD PTR -56[rbp]
mov ecx, DWORD PTR 28[rax]
mov rax, QWORD PTR -56[rbp]
mov esi, DWORD PTR 28[rax]
mov eax, DWORD PTR sqlite3PendingByte[rip]
mov rdx, QWORD PTR -56[rbp]
mov edi, DWORD PTR 188[rdx]
cdq
idiv edi
add eax, 1
cmp esi, eax
sete al
movzx eax, al
sub ecx, eax
mov eax, ecx
mov DWORD PTR -28[rbp], eax
mov edx, DWORD PTR -28[rbp]
mov rax, QWORD PTR -56[rbp]
mov esi, edx
mov rdi, rax
call pager_truncate
mov DWORD PTR -4[rbp], eax
cmp DWORD PTR -4[rbp], 0
jne .L3175
.L3169:
cmp DWORD PTR -68[rbp], 0
jne .L3160
mov rdx, QWORD PTR -64[rbp]
mov rax, QWORD PTR -56[rbp]
mov rsi, rdx
mov rdi, rax
call sqlite3PagerSync
mov DWORD PTR -4[rbp], eax
jmp .L3160
.L3171:
nop
jmp .L3160
.L3172:
nop
jmp .L3160
.L3173:
nop
jmp .L3160
.L3174:
nop
jmp .L3160
.L3175:
nop
.L3160:
cmp DWORD PTR -4[rbp], 0
jne .L3170
mov rax, QWORD PTR -56[rbp]
mov rax, QWORD PTR 288[rax]
test rax, rax
jne .L3170
mov rax, QWORD PTR -56[rbp]
mov BYTE PTR 20[rax], 5
.L3170:
mov eax, DWORD PTR -4[rbp]
.L3156:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE506:
.size sqlite3PagerCommitPhaseOne, .-sqlite3PagerCommitPhaseOne
.type sqlite3PagerCommitPhaseTwo, @function
sqlite3PagerCommitPhaseTwo:
.LFB507:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 32
mov QWORD PTR -24[rbp], rdi
mov DWORD PTR -4[rbp], 0
mov rax, QWORD PTR -24[rbp]
mov eax, DWORD PTR 44[rax]
test eax, eax
je .L3177
mov rax, QWORD PTR -24[rbp]
mov eax, DWORD PTR 44[rax]
jmp .L3178
.L3177:
mov rax, QWORD PTR -24[rbp]
movzx eax, BYTE PTR 20[rax]
cmp al, 2
jne .L3179
mov rax, QWORD PTR -24[rbp]
movzx eax, BYTE PTR 8[rax]
test al, al
je .L3179
mov rax, QWORD PTR -24[rbp]
movzx eax, BYTE PTR 9[rax]
cmp al, 1
jne .L3179
mov rax, QWORD PTR -24[rbp]
mov BYTE PTR 20[rax], 1
mov eax, 0
jmp .L3178
.L3179:
mov rax, QWORD PTR -24[rbp]
mov eax, DWORD PTR 132[rax]
lea edx, 1[rax]
mov rax, QWORD PTR -24[rbp]
mov DWORD PTR 132[rax], edx
mov rax, QWORD PTR -24[rbp]
movzx eax, BYTE PTR 23[rax]
movzx ecx, al
mov rax, QWORD PTR -24[rbp]
mov edx, 1
mov esi, ecx
mov rdi, rax
call pager_end_transaction
mov DWORD PTR -4[rbp], eax
mov edx, DWORD PTR -4[rbp]
mov rax, QWORD PTR -24[rbp]
mov esi, edx
mov rdi, rax
call pager_error
.L3178:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE507:
.size sqlite3PagerCommitPhaseTwo, .-sqlite3PagerCommitPhaseTwo
.type sqlite3PagerRollback, @function
sqlite3PagerRollback:
.LFB508:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 32
mov QWORD PTR -24[rbp], rdi
mov DWORD PTR -4[rbp], 0
mov rax, QWORD PTR -24[rbp]
movzx eax, BYTE PTR 20[rax]
cmp al, 6
jne .L3181
mov rax, QWORD PTR -24[rbp]
mov eax, DWORD PTR 44[rax]
jmp .L3182
.L3181:
mov rax, QWORD PTR -24[rbp]
movzx eax, BYTE PTR 20[rax]
cmp al, 1
ja .L3183
mov eax, 0
jmp .L3182
.L3183:
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 288[rax]
test rax, rax
je .L3184
mov rax, QWORD PTR -24[rbp]
mov edx, -1
mov esi, 2
mov rdi, rax
call sqlite3PagerSavepoint
mov DWORD PTR -4[rbp], eax
mov rax, QWORD PTR -24[rbp]
movzx eax, BYTE PTR 23[rax]
movzx ecx, al
mov rax, QWORD PTR -24[rbp]
mov edx, 0
mov esi, ecx
mov rdi, rax
call pager_end_transaction
mov DWORD PTR -12[rbp], eax
cmp DWORD PTR -4[rbp], 0
jne .L3186
mov eax, DWORD PTR -12[rbp]
mov DWORD PTR -4[rbp], eax
jmp .L3186
.L3184:
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 80[rax]
mov rax, QWORD PTR [rax]
test rax, rax
je .L3187
mov rax, QWORD PTR -24[rbp]
movzx eax, BYTE PTR 20[rax]
cmp al, 2
jne .L3188
.L3187:
mov rax, QWORD PTR -24[rbp]
movzx eax, BYTE PTR 20[rax]
movzx eax, al
mov DWORD PTR -8[rbp], eax
mov rax, QWORD PTR -24[rbp]
mov edx, 0
mov esi, 0
mov rdi, rax
call pager_end_transaction
mov DWORD PTR -4[rbp], eax
mov rax, QWORD PTR -24[rbp]
movzx eax, BYTE PTR 19[rax]
test al, al
jne .L3190
cmp DWORD PTR -8[rbp], 2
jle .L3190
mov rax, QWORD PTR -24[rbp]
mov DWORD PTR 44[rax], 4
mov rax, QWORD PTR -24[rbp]
mov BYTE PTR 20[rax], 6
mov rax, QWORD PTR -24[rbp]
mov rdi, rax
call setGetterMethod
mov eax, DWORD PTR -4[rbp]
jmp .L3182
.L3188:
mov rax, QWORD PTR -24[rbp]
mov esi, 0
mov rdi, rax
call pager_playback
mov DWORD PTR -4[rbp], eax
jmp .L3186
.L3190:
nop
.L3186:
mov edx, DWORD PTR -4[rbp]
mov rax, QWORD PTR -24[rbp]
mov esi, edx
mov rdi, rax
call pager_error
.L3182:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE508:
.size sqlite3PagerRollback, .-sqlite3PagerRollback
.type sqlite3PagerIsreadonly, @function
sqlite3PagerIsreadonly:
.LFB509:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
mov QWORD PTR -8[rbp], rdi
mov rax, QWORD PTR -8[rbp]
movzx eax, BYTE PTR 18[rax]
pop rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE509:
.size sqlite3PagerIsreadonly, .-sqlite3PagerIsreadonly
.type sqlite3PagerMemUsed, @function
sqlite3PagerMemUsed:
.LFB510:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
push rbx
sub rsp, 40
.cfi_offset 3, -24
mov QWORD PTR -40[rbp], rdi
mov rax, QWORD PTR -40[rbp]
mov edx, DWORD PTR 188[rax]
mov rax, QWORD PTR -40[rbp]
movzx eax, WORD PTR 176[rax]
movzx eax, ax
add eax, edx
add eax, 112
mov DWORD PTR -20[rbp], eax
mov rax, QWORD PTR -40[rbp]
mov rax, QWORD PTR 280[rax]
mov rdi, rax
call sqlite3PcachePagecount
imul eax, DWORD PTR -20[rbp]
mov ebx, eax
mov rax, QWORD PTR -40[rbp]
mov rdi, rax
call sqlite3MallocSize
lea edx, [rbx+rax]
mov rax, QWORD PTR -40[rbp]
mov eax, DWORD PTR 188[rax]
add eax, edx
add rsp, 40
pop rbx
pop rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE510:
.size sqlite3PagerMemUsed, .-sqlite3PagerMemUsed
.type sqlite3PagerPageRefcount, @function
sqlite3PagerPageRefcount:
.LFB511:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 8
mov QWORD PTR -8[rbp], rdi
mov rax, QWORD PTR -8[rbp]
mov rdi, rax
call sqlite3PcachePageRefcount
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE511:
.size sqlite3PagerPageRefcount, .-sqlite3PagerPageRefcount
.type sqlite3PagerCacheStat, @function
sqlite3PagerCacheStat:
.LFB512:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
mov QWORD PTR -8[rbp], rdi
mov DWORD PTR -12[rbp], esi
mov DWORD PTR -16[rbp], edx
mov QWORD PTR -24[rbp], rcx
mov rax, QWORD PTR -24[rbp]
mov edx, DWORD PTR [rax]
mov eax, DWORD PTR -12[rbp]
lea ecx, -7[rax]
mov rax, QWORD PTR -8[rbp]
movsx rcx, ecx
add rcx, 60
mov eax, DWORD PTR [rax+rcx*4]
add edx, eax
mov rax, QWORD PTR -24[rbp]
mov DWORD PTR [rax], edx
cmp DWORD PTR -16[rbp], 0
je .L3199
mov eax, DWORD PTR -12[rbp]
lea edx, -7[rax]
mov rax, QWORD PTR -8[rbp]
movsx rdx, edx
add rdx, 60
mov DWORD PTR [rax+rdx*4], 0
.L3199:
nop
pop rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE512:
.size sqlite3PagerCacheStat, .-sqlite3PagerCacheStat
.type sqlite3PagerIsMemdb, @function
sqlite3PagerIsMemdb:
.LFB513:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
mov QWORD PTR -8[rbp], rdi
mov rax, QWORD PTR -8[rbp]
movzx eax, BYTE PTR 16[rax]
movzx eax, al
pop rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE513:
.size sqlite3PagerIsMemdb, .-sqlite3PagerIsMemdb
.type pagerOpenSavepoint, @function
pagerOpenSavepoint:
.LFB514:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
push rbx
sub rsp, 56
.cfi_offset 3, -24
mov QWORD PTR -56[rbp], rdi
mov DWORD PTR -60[rbp], esi
mov DWORD PTR -24[rbp], 0
mov rax, QWORD PTR -56[rbp]
mov eax, DWORD PTR 128[rax]
mov DWORD PTR -28[rbp], eax
mov eax, DWORD PTR -60[rbp]
movsx rdx, eax
mov rax, rdx
add rax, rax
add rax, rdx
sal rax, 4
mov rdx, rax
mov rax, QWORD PTR -56[rbp]
mov rax, QWORD PTR 120[rax]
mov rsi, rdx
mov rdi, rax
call sqlite3Realloc
mov QWORD PTR -40[rbp], rax
cmp QWORD PTR -40[rbp], 0
jne .L3203
mov eax, 7
jmp .L3204
.L3203:
mov eax, DWORD PTR -60[rbp]
sub eax, DWORD PTR -28[rbp]
movsx rdx, eax
mov rax, rdx
add rax, rax
add rax, rdx
sal rax, 4
mov rcx, rax
mov eax, DWORD PTR -28[rbp]
movsx rdx, eax
mov rax, rdx
add rax, rax
add rax, rdx
sal rax, 4
mov rdx, rax
mov rax, QWORD PTR -40[rbp]
add rax, rdx
mov rdx, rcx
mov esi, 0
mov rdi, rax
call memset@PLT
mov rax, QWORD PTR -56[rbp]
mov rdx, QWORD PTR -40[rbp]
mov QWORD PTR 120[rax], rdx
mov eax, DWORD PTR -28[rbp]
mov DWORD PTR -20[rbp], eax
jmp .L3205
.L3210:
mov eax, DWORD PTR -20[rbp]
movsx rdx, eax
mov rax, rdx
add rax, rax
add rax, rdx
sal rax, 4
mov rdx, rax
mov rax, QWORD PTR -40[rbp]
add rdx, rax
mov rax, QWORD PTR -56[rbp]
mov eax, DWORD PTR 28[rax]
mov DWORD PTR 24[rdx], eax
mov rax, QWORD PTR -56[rbp]
mov rax, QWORD PTR 80[rax]
mov rax, QWORD PTR [rax]
test rax, rax
je .L3206
mov rax, QWORD PTR -56[rbp]
mov rax, QWORD PTR 96[rax]
test rax, rax
jle .L3206
mov eax, DWORD PTR -20[rbp]
movsx rdx, eax
mov rax, rdx
add rax, rax
add rax, rdx
sal rax, 4
mov rdx, rax
mov rax, QWORD PTR -40[rbp]
add rdx, rax
mov rax, QWORD PTR -56[rbp]
mov rax, QWORD PTR 96[rax]
mov QWORD PTR [rdx], rax
jmp .L3207
.L3206:
mov eax, DWORD PTR -20[rbp]
movsx rdx, eax
mov rax, rdx
add rax, rax
add rax, rdx
sal rax, 4
mov rdx, rax
mov rax, QWORD PTR -40[rbp]
add rdx, rax
mov rax, QWORD PTR -56[rbp]
mov eax, DWORD PTR 184[rax]
mov eax, eax
mov QWORD PTR [rdx], rax
.L3207:
mov eax, DWORD PTR -20[rbp]
movsx rdx, eax
mov rax, rdx
add rax, rax
add rax, rdx
sal rax, 4
mov rdx, rax
mov rax, QWORD PTR -40[rbp]
add rdx, rax
mov rax, QWORD PTR -56[rbp]
mov eax, DWORD PTR 56[rax]
mov DWORD PTR 28[rdx], eax
mov eax, DWORD PTR -20[rbp]
movsx rdx, eax
mov rax, rdx
add rax, rax
add rax, rdx
sal rax, 4
mov rdx, rax
mov rax, QWORD PTR -40[rbp]
lea rbx, [rdx+rax]
mov rax, QWORD PTR -56[rbp]
mov eax, DWORD PTR 28[rax]
mov edi, eax
call sqlite3BitvecCreate
mov QWORD PTR 16[rbx], rax
mov eax, DWORD PTR -20[rbp]
movsx rdx, eax
mov rax, rdx
add rax, rax
add rax, rdx
sal rax, 4
mov rdx, rax
mov rax, QWORD PTR -40[rbp]
add rax, rdx
mov rax, QWORD PTR 16[rax]
test rax, rax
jne .L3208
mov eax, 7
jmp .L3204
.L3208:
mov rax, QWORD PTR -56[rbp]
mov rax, QWORD PTR 288[rax]
test rax, rax
je .L3209
mov eax, DWORD PTR -20[rbp]
movsx rdx, eax
mov rax, rdx
add rax, rax
add rax, rdx
sal rax, 4
mov rdx, rax
mov rax, QWORD PTR -40[rbp]
add rax, rdx
lea rdx, 32[rax]
mov rax, QWORD PTR -56[rbp]
mov rax, QWORD PTR 288[rax]
mov rsi, rdx
mov rdi, rax
call sqlite3WalSavepoint
.L3209:
mov eax, DWORD PTR -20[rbp]
lea edx, 1[rax]
mov rax, QWORD PTR -56[rbp]
mov DWORD PTR 128[rax], edx
add DWORD PTR -20[rbp], 1
.L3205:
mov eax, DWORD PTR -20[rbp]
cmp eax, DWORD PTR -60[rbp]
jl .L3210
mov eax, DWORD PTR -24[rbp]
.L3204:
add rsp, 56
pop rbx
pop rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE514:
.size pagerOpenSavepoint, .-pagerOpenSavepoint
.type sqlite3PagerOpenSavepoint, @function
sqlite3PagerOpenSavepoint:
.LFB515:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 16
mov QWORD PTR -8[rbp], rdi
mov DWORD PTR -12[rbp], esi
mov rax, QWORD PTR -8[rbp]
mov eax, DWORD PTR 128[rax]
cmp eax, DWORD PTR -12[rbp]
jge .L3212
mov rax, QWORD PTR -8[rbp]
movzx eax, BYTE PTR 10[rax]
test al, al
je .L3212
mov edx, DWORD PTR -12[rbp]
mov rax, QWORD PTR -8[rbp]
mov esi, edx
mov rdi, rax
call pagerOpenSavepoint
jmp .L3213
.L3212:
mov eax, 0
.L3213:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE515:
.size sqlite3PagerOpenSavepoint, .-sqlite3PagerOpenSavepoint
.type sqlite3PagerSavepoint, @function
sqlite3PagerSavepoint:
.LFB516:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 48
mov QWORD PTR -40[rbp], rdi
mov DWORD PTR -44[rbp], esi
mov DWORD PTR -48[rbp], edx
mov rax, QWORD PTR -40[rbp]
mov eax, DWORD PTR 44[rax]
mov DWORD PTR -4[rbp], eax
cmp DWORD PTR -4[rbp], 0
jne .L3215
mov rax, QWORD PTR -40[rbp]
mov eax, DWORD PTR 128[rax]
cmp eax, DWORD PTR -48[rbp]
jle .L3215
cmp DWORD PTR -44[rbp], 1
setne al
movzx edx, al
mov eax, DWORD PTR -48[rbp]
add eax, edx
mov DWORD PTR -12[rbp], eax
mov eax, DWORD PTR -12[rbp]
mov DWORD PTR -8[rbp], eax
jmp .L3216
.L3217:
mov rax, QWORD PTR -40[rbp]
mov rcx, QWORD PTR 120[rax]
mov eax, DWORD PTR -8[rbp]
movsx rdx, eax
mov rax, rdx
add rax, rax
add rax, rdx
sal rax, 4
add rax, rcx
mov rax, QWORD PTR 16[rax]
mov rdi, rax
call sqlite3BitvecDestroy
add DWORD PTR -8[rbp], 1
.L3216:
mov rax, QWORD PTR -40[rbp]
mov eax, DWORD PTR 128[rax]
cmp eax, DWORD PTR -8[rbp]
jg .L3217
mov rax, QWORD PTR -40[rbp]
mov edx, DWORD PTR -12[rbp]
mov DWORD PTR 128[rax], edx
cmp DWORD PTR -44[rbp], 1
jne .L3218
cmp DWORD PTR -12[rbp], 0
jne .L3215
mov rax, QWORD PTR -40[rbp]
mov rax, QWORD PTR 88[rax]
mov rax, QWORD PTR [rax]
test rax, rax
je .L3215
mov rax, QWORD PTR -40[rbp]
mov rax, QWORD PTR 88[rax]
mov rdi, rax
call sqlite3JournalIsInMemory
test eax, eax
je .L3220
mov rax, QWORD PTR -40[rbp]
mov rax, QWORD PTR 88[rax]
mov esi, 0
mov rdi, rax
call sqlite3OsTruncate
mov DWORD PTR -4[rbp], eax
.L3220:
mov rax, QWORD PTR -40[rbp]
mov DWORD PTR 56[rax], 0
jmp .L3215
.L3218:
mov rax, QWORD PTR -40[rbp]
mov rax, QWORD PTR 288[rax]
test rax, rax
jne .L3221
mov rax, QWORD PTR -40[rbp]
mov rax, QWORD PTR 80[rax]
mov rax, QWORD PTR [rax]
test rax, rax
je .L3215
.L3221:
cmp DWORD PTR -12[rbp], 0
je .L3222
mov rax, QWORD PTR -40[rbp]
mov rcx, QWORD PTR 120[rax]
mov eax, DWORD PTR -12[rbp]
movsx rdx, eax
mov rax, rdx
add rax, rax
add rax, rdx
sal rax, 4
sub rax, 48
add rax, rcx
jmp .L3223
.L3222:
mov eax, 0
.L3223:
mov QWORD PTR -24[rbp], rax
mov rdx, QWORD PTR -24[rbp]
mov rax, QWORD PTR -40[rbp]
mov rsi, rdx
mov rdi, rax
call pagerPlaybackSavepoint
mov DWORD PTR -4[rbp], eax
.L3215:
mov eax, DWORD PTR -4[rbp]
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE516:
.size sqlite3PagerSavepoint, .-sqlite3PagerSavepoint
.type sqlite3PagerFilename, @function
sqlite3PagerFilename:
.LFB517:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
mov QWORD PTR -8[rbp], rdi
mov DWORD PTR -12[rbp], esi
cmp DWORD PTR -12[rbp], 0
je .L3226
mov rax, QWORD PTR -8[rbp]
movzx eax, BYTE PTR 19[rax]
test al, al
jne .L3227
.L3226:
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR 208[rax]
jmp .L3229
.L3227:
lea rax, .LC65[rip]
.L3229:
pop rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE517:
.size sqlite3PagerFilename, .-sqlite3PagerFilename
.type sqlite3PagerVfs, @function
sqlite3PagerVfs:
.LFB518:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
mov QWORD PTR -8[rbp], rdi
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR [rax]
pop rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE518:
.size sqlite3PagerVfs, .-sqlite3PagerVfs
.type sqlite3PagerFile, @function
sqlite3PagerFile:
.LFB519:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
mov QWORD PTR -8[rbp], rdi
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR 72[rax]
pop rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE519:
.size sqlite3PagerFile, .-sqlite3PagerFile
.type sqlite3PagerJrnlFile, @function
sqlite3PagerJrnlFile:
.LFB520:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 16
mov QWORD PTR -8[rbp], rdi
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR 288[rax]
test rax, rax
je .L3235
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR 288[rax]
mov rdi, rax
call sqlite3WalFile
jmp .L3237
.L3235:
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR 80[rax]
.L3237:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE520:
.size sqlite3PagerJrnlFile, .-sqlite3PagerJrnlFile
.type sqlite3PagerJournalname, @function
sqlite3PagerJournalname:
.LFB521:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
mov QWORD PTR -8[rbp], rdi
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR 216[rax]
pop rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE521:
.size sqlite3PagerJournalname, .-sqlite3PagerJournalname
.type sqlite3PagerMovepage, @function
sqlite3PagerMovepage:
.LFB522:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 64
mov QWORD PTR -40[rbp], rdi
mov QWORD PTR -48[rbp], rsi
mov DWORD PTR -52[rbp], edx
mov DWORD PTR -56[rbp], ecx
mov DWORD PTR -4[rbp], 0
mov rax, QWORD PTR -40[rbp]
movzx eax, BYTE PTR 16[rax]
test al, al
je .L3241
mov rax, QWORD PTR -48[rbp]
mov rdi, rax
call sqlite3PagerWrite
mov DWORD PTR -8[rbp], eax
cmp DWORD PTR -8[rbp], 0
je .L3241
mov eax, DWORD PTR -8[rbp]
jmp .L3242
.L3241:
mov rax, QWORD PTR -48[rbp]
movzx eax, WORD PTR 52[rax]
movzx eax, ax
and eax, 2
test eax, eax
je .L3243
mov rax, QWORD PTR -48[rbp]
mov rdi, rax
call subjournalPageIfRequired
mov DWORD PTR -8[rbp], eax
cmp DWORD PTR -8[rbp], 0
je .L3243
mov eax, DWORD PTR -8[rbp]
jmp .L3242
.L3243:
mov rax, QWORD PTR -48[rbp]
movzx eax, WORD PTR 52[rax]
movzx eax, ax
and eax, 8
test eax, eax
je .L3244
cmp DWORD PTR -56[rbp], 0
jne .L3244
mov rax, QWORD PTR -48[rbp]
mov eax, DWORD PTR 48[rax]
mov DWORD PTR -4[rbp], eax
.L3244:
mov rax, QWORD PTR -48[rbp]
movzx eax, WORD PTR 52[rax]
and eax, -9
mov edx, eax
mov rax, QWORD PTR -48[rbp]
mov WORD PTR 52[rax], dx
mov edx, DWORD PTR -52[rbp]
mov rax, QWORD PTR -40[rbp]
mov esi, edx
mov rdi, rax
call sqlite3PagerLookup
mov QWORD PTR -16[rbp], rax
cmp QWORD PTR -16[rbp], 0
je .L3245
mov rax, QWORD PTR -48[rbp]
movzx eax, WORD PTR 52[rax]
mov edx, eax
mov rax, QWORD PTR -16[rbp]
movzx eax, WORD PTR 52[rax]
and eax, 8
or eax, edx
mov edx, eax
mov rax, QWORD PTR -48[rbp]
mov WORD PTR 52[rax], dx
mov rax, QWORD PTR -40[rbp]
movzx eax, BYTE PTR 16[rax]
test al, al
je .L3246
mov rax, QWORD PTR -40[rbp]
mov eax, DWORD PTR 28[rax]
lea edx, 1[rax]
mov rax, QWORD PTR -16[rbp]
mov esi, edx
mov rdi, rax
call sqlite3PcacheMove
jmp .L3245
.L3246:
mov rax, QWORD PTR -16[rbp]
mov rdi, rax
call sqlite3PcacheDrop
.L3245:
mov rax, QWORD PTR -48[rbp]
mov eax, DWORD PTR 48[rax]
mov DWORD PTR -20[rbp], eax
mov edx, DWORD PTR -52[rbp]
mov rax, QWORD PTR -48[rbp]
mov esi, edx
mov rdi, rax
call sqlite3PcacheMove
mov rax, QWORD PTR -48[rbp]
mov rdi, rax
call sqlite3PcacheMakeDirty
mov rax, QWORD PTR -40[rbp]
movzx eax, BYTE PTR 16[rax]
test al, al
je .L3247
cmp QWORD PTR -16[rbp], 0
je .L3247
mov edx, DWORD PTR -20[rbp]
mov rax, QWORD PTR -16[rbp]
mov esi, edx
mov rdi, rax
call sqlite3PcacheMove
mov rax, QWORD PTR -16[rbp]
mov rdi, rax
call sqlite3PagerUnrefNotNull
.L3247:
cmp DWORD PTR -4[rbp], 0
je .L3248
lea rdx, -32[rbp]
mov esi, DWORD PTR -4[rbp]
mov rax, QWORD PTR -40[rbp]
mov ecx, 0
mov rdi, rax
call sqlite3PagerGet
mov DWORD PTR -8[rbp], eax
cmp DWORD PTR -8[rbp], 0
je .L3249
mov rax, QWORD PTR -40[rbp]
mov eax, DWORD PTR 32[rax]
cmp eax, DWORD PTR -4[rbp]
jb .L3250
mov rax, QWORD PTR -40[rbp]
mov rdx, QWORD PTR 272[rax]
mov rax, QWORD PTR -40[rbp]
mov rax, QWORD PTR 64[rax]
mov ecx, DWORD PTR -4[rbp]
mov esi, ecx
mov rdi, rax
call sqlite3BitvecClear
.L3250:
mov eax, DWORD PTR -8[rbp]
jmp .L3242
.L3249:
mov rax, QWORD PTR -32[rbp]
mov rdx, QWORD PTR -32[rbp]
movzx edx, WORD PTR 52[rdx]
or edx, 8
mov WORD PTR 52[rax], dx
mov rax, QWORD PTR -32[rbp]
mov rdi, rax
call sqlite3PcacheMakeDirty
mov rax, QWORD PTR -32[rbp]
mov rdi, rax
call sqlite3PagerUnrefNotNull
.L3248:
mov eax, 0
.L3242:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE522:
.size sqlite3PagerMovepage, .-sqlite3PagerMovepage
.type sqlite3PagerRekey, @function
sqlite3PagerRekey:
.LFB523:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 16
mov QWORD PTR -8[rbp], rdi
mov DWORD PTR -12[rbp], esi
mov eax, edx
mov WORD PTR -16[rbp], ax
mov rax, QWORD PTR -8[rbp]
movzx edx, WORD PTR -16[rbp]
mov WORD PTR 52[rax], dx
mov edx, DWORD PTR -12[rbp]
mov rax, QWORD PTR -8[rbp]
mov esi, edx
mov rdi, rax
call sqlite3PcacheMove
nop
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE523:
.size sqlite3PagerRekey, .-sqlite3PagerRekey
.type sqlite3PagerGetData, @function
sqlite3PagerGetData:
.LFB524:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
mov QWORD PTR -8[rbp], rdi
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR 8[rax]
pop rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE524:
.size sqlite3PagerGetData, .-sqlite3PagerGetData
.type sqlite3PagerGetExtra, @function
sqlite3PagerGetExtra:
.LFB525:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
mov QWORD PTR -8[rbp], rdi
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR 16[rax]
pop rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE525:
.size sqlite3PagerGetExtra, .-sqlite3PagerGetExtra
.type sqlite3PagerLockingMode, @function
sqlite3PagerLockingMode:
.LFB526:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 16
mov QWORD PTR -8[rbp], rdi
mov DWORD PTR -12[rbp], esi
cmp DWORD PTR -12[rbp], 0
js .L3257
mov rax, QWORD PTR -8[rbp]
movzx eax, BYTE PTR 16[rax]
test al, al
jne .L3257
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR 288[rax]
mov rdi, rax
call sqlite3WalHeapMemory
test eax, eax
jne .L3257
mov eax, DWORD PTR -12[rbp]
mov edx, eax
mov rax, QWORD PTR -8[rbp]
mov BYTE PTR 8[rax], dl
.L3257:
mov rax, QWORD PTR -8[rbp]
movzx eax, BYTE PTR 8[rax]
movzx eax, al
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE526:
.size sqlite3PagerLockingMode, .-sqlite3PagerLockingMode
.type sqlite3PagerSetJournalMode, @function
sqlite3PagerSetJournalMode:
.LFB527:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 32
mov QWORD PTR -24[rbp], rdi
mov DWORD PTR -28[rbp], esi
mov rax, QWORD PTR -24[rbp]
movzx eax, BYTE PTR 9[rax]
mov BYTE PTR -5[rbp], al
mov rax, QWORD PTR -24[rbp]
movzx eax, BYTE PTR 19[rax]
test al, al
je .L3260
cmp DWORD PTR -28[rbp], 4
je .L3260
cmp DWORD PTR -28[rbp], 2
je .L3260
movzx eax, BYTE PTR -5[rbp]
mov DWORD PTR -28[rbp], eax
.L3260:
movzx eax, BYTE PTR -5[rbp]
cmp eax, DWORD PTR -28[rbp]
je .L3261
mov eax, DWORD PTR -28[rbp]
mov edx, eax
mov rax, QWORD PTR -24[rbp]
mov BYTE PTR 9[rax], dl
mov rax, QWORD PTR -24[rbp]
movzx eax, BYTE PTR 8[rax]
test al, al
jne .L3262
movzx eax, BYTE PTR -5[rbp]
and eax, 5
cmp eax, 1
jne .L3262
mov eax, DWORD PTR -28[rbp]
and eax, 1
test eax, eax
jne .L3262
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 80[rax]
mov rdi, rax
call sqlite3OsClose
mov rax, QWORD PTR -24[rbp]
movzx eax, BYTE PTR 21[rax]
cmp al, 1
jbe .L3263
mov rax, QWORD PTR -24[rbp]
mov rcx, QWORD PTR 216[rax]
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR [rax]
mov edx, 0
mov rsi, rcx
mov rdi, rax
call sqlite3OsDelete
jmp .L3270
.L3263:
mov DWORD PTR -4[rbp], 0
mov rax, QWORD PTR -24[rbp]
movzx eax, BYTE PTR 20[rax]
movzx eax, al
mov DWORD PTR -12[rbp], eax
cmp DWORD PTR -12[rbp], 0
jne .L3265
mov rax, QWORD PTR -24[rbp]
mov rdi, rax
call sqlite3PagerSharedLock
mov DWORD PTR -4[rbp], eax
.L3265:
mov rax, QWORD PTR -24[rbp]
movzx eax, BYTE PTR 20[rax]
cmp al, 1
jne .L3266
mov rax, QWORD PTR -24[rbp]
mov esi, 2
mov rdi, rax
call pagerLockDb
mov DWORD PTR -4[rbp], eax
.L3266:
cmp DWORD PTR -4[rbp], 0
jne .L3267
mov rax, QWORD PTR -24[rbp]
mov rcx, QWORD PTR 216[rax]
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR [rax]
mov edx, 0
mov rsi, rcx
mov rdi, rax
call sqlite3OsDelete
.L3267:
cmp DWORD PTR -4[rbp], 0
jne .L3268
cmp DWORD PTR -12[rbp], 1
jne .L3268
mov rax, QWORD PTR -24[rbp]
mov esi, 1
mov rdi, rax
call pagerUnlockDb
jmp .L3270
.L3268:
cmp DWORD PTR -12[rbp], 0
jne .L3270
mov rax, QWORD PTR -24[rbp]
mov rdi, rax
call pager_unlock
jmp .L3270
.L3262:
cmp DWORD PTR -28[rbp], 2
jne .L3261
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 80[rax]
mov rdi, rax
call sqlite3OsClose
jmp .L3261
.L3270:
nop
.L3261:
mov rax, QWORD PTR -24[rbp]
movzx eax, BYTE PTR 9[rax]
movzx eax, al
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE527:
.size sqlite3PagerSetJournalMode, .-sqlite3PagerSetJournalMode
.type sqlite3PagerGetJournalMode, @function
sqlite3PagerGetJournalMode:
.LFB528:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
mov QWORD PTR -8[rbp], rdi
mov rax, QWORD PTR -8[rbp]
movzx eax, BYTE PTR 9[rax]
movzx eax, al
pop rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE528:
.size sqlite3PagerGetJournalMode, .-sqlite3PagerGetJournalMode
.type sqlite3PagerOkToChangeJournalMode, @function
sqlite3PagerOkToChangeJournalMode:
.LFB529:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
mov QWORD PTR -8[rbp], rdi
mov rax, QWORD PTR -8[rbp]
movzx eax, BYTE PTR 20[rax]
cmp al, 2
jbe .L3274
mov eax, 0
jmp .L3275
.L3274:
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR 80[rax]
mov rax, QWORD PTR [rax]
test rax, rax
je .L3276
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR 96[rax]
test rax, rax
jle .L3276
mov eax, 0
jmp .L3275
.L3276:
mov eax, 1
.L3275:
pop rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE529:
.size sqlite3PagerOkToChangeJournalMode, .-sqlite3PagerOkToChangeJournalMode
.type sqlite3PagerJournalSizeLimit, @function
sqlite3PagerJournalSizeLimit:
.LFB530:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 16
mov QWORD PTR -8[rbp], rdi
mov QWORD PTR -16[rbp], rsi
cmp QWORD PTR -16[rbp], -1
jl .L3278
mov rax, QWORD PTR -8[rbp]
mov rdx, QWORD PTR -16[rbp]
mov QWORD PTR 200[rax], rdx
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR 288[rax]
mov rdx, QWORD PTR -16[rbp]
mov rsi, rdx
mov rdi, rax
call sqlite3WalLimit
.L3278:
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR 200[rax]
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE530:
.size sqlite3PagerJournalSizeLimit, .-sqlite3PagerJournalSizeLimit
.type sqlite3PagerBackupPtr, @function
sqlite3PagerBackupPtr:
.LFB531:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
mov QWORD PTR -8[rbp], rdi
mov rax, QWORD PTR -8[rbp]
add rax, 112
pop rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE531:
.size sqlite3PagerBackupPtr, .-sqlite3PagerBackupPtr
.type sqlite3PagerClearCache, @function
sqlite3PagerClearCache:
.LFB532:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 16
mov QWORD PTR -8[rbp], rdi
mov rax, QWORD PTR -8[rbp]
movzx eax, BYTE PTR 16[rax]
test al, al
jne .L3284
mov rax, QWORD PTR -8[rbp]
mov rdi, rax
call pager_reset
.L3284:
nop
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE532:
.size sqlite3PagerClearCache, .-sqlite3PagerClearCache
.type sqlite3PagerCheckpoint, @function
sqlite3PagerCheckpoint:
.LFB533:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 64
mov QWORD PTR -24[rbp], rdi
mov QWORD PTR -32[rbp], rsi
mov DWORD PTR -36[rbp], edx
mov QWORD PTR -48[rbp], rcx
mov QWORD PTR -56[rbp], r8
mov DWORD PTR -4[rbp], 0
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 288[rax]
test rax, rax
je .L3286
mov rax, QWORD PTR -24[rbp]
mov r8, QWORD PTR 272[rax]
mov rax, QWORD PTR -24[rbp]
mov ecx, DWORD PTR 188[rax]
mov rax, QWORD PTR -24[rbp]
movzx eax, BYTE PTR 15[rax]
movzx r9d, al
mov rax, QWORD PTR -24[rbp]
mov r10, QWORD PTR 232[rax]
cmp DWORD PTR -36[rbp], 0
je .L3287
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 224[rax]
jmp .L3288
.L3287:
mov eax, 0
.L3288:
mov rdx, QWORD PTR -24[rbp]
mov rdi, QWORD PTR 288[rdx]
mov edx, DWORD PTR -36[rbp]
mov rsi, QWORD PTR -32[rbp]
push QWORD PTR -56[rbp]
push QWORD PTR -48[rbp]
push r8
push rcx
mov r8, r10
mov rcx, rax
call sqlite3WalCheckpoint
add rsp, 32
mov DWORD PTR -4[rbp], eax
.L3286:
mov eax, DWORD PTR -4[rbp]
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE533:
.size sqlite3PagerCheckpoint, .-sqlite3PagerCheckpoint
.type sqlite3PagerWalCallback, @function
sqlite3PagerWalCallback:
.LFB534:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 16
mov QWORD PTR -8[rbp], rdi
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR 288[rax]
mov rdi, rax
call sqlite3WalCallback
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE534:
.size sqlite3PagerWalCallback, .-sqlite3PagerWalCallback
.type sqlite3PagerWalSupported, @function
sqlite3PagerWalSupported:
.LFB535:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
mov QWORD PTR -24[rbp], rdi
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 72[rax]
mov rax, QWORD PTR [rax]
mov QWORD PTR -8[rbp], rax
mov rax, QWORD PTR -24[rbp]
movzx eax, BYTE PTR 17[rax]
test al, al
je .L3293
mov eax, 0
jmp .L3294
.L3293:
mov rax, QWORD PTR -24[rbp]
movzx eax, BYTE PTR 8[rax]
test al, al
jne .L3295
mov rax, QWORD PTR -8[rbp]
mov eax, DWORD PTR [rax]
cmp eax, 1
jle .L3296
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR 104[rax]
test rax, rax
je .L3296
.L3295:
mov eax, 1
jmp .L3294
.L3296:
mov eax, 0
.L3294:
pop rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE535:
.size sqlite3PagerWalSupported, .-sqlite3PagerWalSupported
.type pagerExclusiveLock, @function
pagerExclusiveLock:
.LFB536:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 32
mov QWORD PTR -24[rbp], rdi
mov rax, QWORD PTR -24[rbp]
mov esi, 4
mov rdi, rax
call pagerLockDb
mov DWORD PTR -4[rbp], eax
cmp DWORD PTR -4[rbp], 0
je .L3299
mov rax, QWORD PTR -24[rbp]
mov esi, 1
mov rdi, rax
call pagerUnlockDb
.L3299:
mov eax, DWORD PTR -4[rbp]
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE536:
.size pagerExclusiveLock, .-pagerExclusiveLock
.type pagerOpenWal, @function
pagerOpenWal:
.LFB537:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 32
mov QWORD PTR -24[rbp], rdi
mov DWORD PTR -4[rbp], 0
mov rax, QWORD PTR -24[rbp]
movzx eax, BYTE PTR 8[rax]
test al, al
je .L3302
mov rax, QWORD PTR -24[rbp]
mov rdi, rax
call pagerExclusiveLock
mov DWORD PTR -4[rbp], eax
.L3302:
cmp DWORD PTR -4[rbp], 0
jne .L3303
mov rax, QWORD PTR -24[rbp]
lea r8, 288[rax]
mov rax, QWORD PTR -24[rbp]
mov rdi, QWORD PTR 200[rax]
mov rax, QWORD PTR -24[rbp]
movzx eax, BYTE PTR 8[rax]
movzx ecx, al
mov rax, QWORD PTR -24[rbp]
mov rdx, QWORD PTR 296[rax]
mov rax, QWORD PTR -24[rbp]
mov rsi, QWORD PTR 72[rax]
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR [rax]
mov r9, r8
mov r8, rdi
mov rdi, rax
call sqlite3WalOpen
mov DWORD PTR -4[rbp], eax
.L3303:
mov rax, QWORD PTR -24[rbp]
mov rdi, rax
call pagerFixMaplimit
mov eax, DWORD PTR -4[rbp]
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE537:
.size pagerOpenWal, .-pagerOpenWal
.type sqlite3PagerOpenWal, @function
sqlite3PagerOpenWal:
.LFB538:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 32
mov QWORD PTR -24[rbp], rdi
mov QWORD PTR -32[rbp], rsi
mov DWORD PTR -4[rbp], 0
mov rax, QWORD PTR -24[rbp]
movzx eax, BYTE PTR 16[rax]
test al, al
jne .L3306
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 288[rax]
test rax, rax
jne .L3306
mov rax, QWORD PTR -24[rbp]
mov rdi, rax
call sqlite3PagerWalSupported
test eax, eax
jne .L3307
mov eax, 14
jmp .L3308
.L3307:
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 80[rax]
mov rdi, rax
call sqlite3OsClose
mov rax, QWORD PTR -24[rbp]
mov rdi, rax
call pagerOpenWal
mov DWORD PTR -4[rbp], eax
cmp DWORD PTR -4[rbp], 0
jne .L3310
mov rax, QWORD PTR -24[rbp]
mov BYTE PTR 9[rax], 5
mov rax, QWORD PTR -24[rbp]
mov BYTE PTR 20[rax], 0
jmp .L3310
.L3306:
mov rax, QWORD PTR -32[rbp]
mov DWORD PTR [rax], 1
.L3310:
mov eax, DWORD PTR -4[rbp]
.L3308:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE538:
.size sqlite3PagerOpenWal, .-sqlite3PagerOpenWal
.type sqlite3PagerCloseWal, @function
sqlite3PagerCloseWal:
.LFB539:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 32
mov QWORD PTR -24[rbp], rdi
mov QWORD PTR -32[rbp], rsi
mov DWORD PTR -4[rbp], 0
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 288[rax]
test rax, rax
jne .L3312
mov DWORD PTR -8[rbp], 0
mov rax, QWORD PTR -24[rbp]
mov esi, 1
mov rdi, rax
call pagerLockDb
mov DWORD PTR -4[rbp], eax
cmp DWORD PTR -4[rbp], 0
jne .L3313
mov rax, QWORD PTR -24[rbp]
mov rsi, QWORD PTR 296[rax]
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR [rax]
lea rdx, -8[rbp]
mov rcx, rdx
mov edx, 0
mov rdi, rax
call sqlite3OsAccess
mov DWORD PTR -4[rbp], eax
.L3313:
cmp DWORD PTR -4[rbp], 0
jne .L3312
mov eax, DWORD PTR -8[rbp]
test eax, eax
je .L3312
mov rax, QWORD PTR -24[rbp]
mov rdi, rax
call pagerOpenWal
mov DWORD PTR -4[rbp], eax
.L3312:
cmp DWORD PTR -4[rbp], 0
jne .L3315
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 288[rax]
test rax, rax
je .L3315
mov rax, QWORD PTR -24[rbp]
mov rdi, rax
call pagerExclusiveLock
mov DWORD PTR -4[rbp], eax
cmp DWORD PTR -4[rbp], 0
jne .L3315
mov rax, QWORD PTR -24[rbp]
mov rdi, QWORD PTR 272[rax]
mov rax, QWORD PTR -24[rbp]
mov ecx, DWORD PTR 188[rax]
mov rax, QWORD PTR -24[rbp]
movzx eax, BYTE PTR 15[rax]
movzx edx, al
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 288[rax]
mov rsi, QWORD PTR -32[rbp]
mov r8, rdi
mov rdi, rax
call sqlite3WalClose
mov DWORD PTR -4[rbp], eax
mov rax, QWORD PTR -24[rbp]
mov QWORD PTR 288[rax], 0
mov rax, QWORD PTR -24[rbp]
mov rdi, rax
call pagerFixMaplimit
cmp DWORD PTR -4[rbp], 0
je .L3315
mov rax, QWORD PTR -24[rbp]
movzx eax, BYTE PTR 8[rax]
test al, al
jne .L3315
mov rax, QWORD PTR -24[rbp]
mov esi, 1
mov rdi, rax
call pagerUnlockDb
.L3315:
mov eax, DWORD PTR -4[rbp]
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE539:
.size sqlite3PagerCloseWal, .-sqlite3PagerCloseWal
.type walIndexPage, @function
walIndexPage:
.LFB540:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
push rbx
sub rsp, 56
.cfi_offset 3, -24
mov QWORD PTR -40[rbp], rdi
mov DWORD PTR -44[rbp], esi
mov QWORD PTR -56[rbp], rdx
mov DWORD PTR -20[rbp], 0
mov rax, QWORD PTR -40[rbp]
mov eax, DWORD PTR 40[rax]
cmp eax, DWORD PTR -44[rbp]
jg .L3318
mov eax, DWORD PTR -44[rbp]
add eax, 1
sal eax, 3
mov DWORD PTR -24[rbp], eax
mov eax, DWORD PTR -24[rbp]
movsx rdx, eax
mov rax, QWORD PTR -40[rbp]
mov rax, QWORD PTR 48[rax]
mov rsi, rdx
mov rdi, rax
call sqlite3_realloc64
mov QWORD PTR -32[rbp], rax
cmp QWORD PTR -32[rbp], 0
jne .L3319
mov rax, QWORD PTR -56[rbp]
mov QWORD PTR [rax], 0
mov eax, 7
jmp .L3320
.L3319:
mov eax, DWORD PTR -44[rbp]
lea edx, 1[rax]
mov rax, QWORD PTR -40[rbp]
mov eax, DWORD PTR 40[rax]
sub edx, eax
mov eax, edx
cdqe
lea rdx, 0[0+rax*8]
mov rax, QWORD PTR -40[rbp]
mov eax, DWORD PTR 40[rax]
cdqe
lea rcx, 0[0+rax*8]
mov rax, QWORD PTR -32[rbp]
add rax, rcx
mov esi, 0
mov rdi, rax
call memset@PLT
mov rax, QWORD PTR -40[rbp]
mov rdx, QWORD PTR -32[rbp]
mov QWORD PTR 48[rax], rdx
mov eax, DWORD PTR -44[rbp]
lea edx, 1[rax]
mov rax, QWORD PTR -40[rbp]
mov DWORD PTR 40[rax], edx
.L3318:
mov rax, QWORD PTR -40[rbp]
mov rax, QWORD PTR 48[rax]
mov edx, DWORD PTR -44[rbp]
movsx rdx, edx
sal rdx, 3
add rax, rdx
mov rax, QWORD PTR [rax]
test rax, rax
jne .L3321
mov rax, QWORD PTR -40[rbp]
movzx eax, BYTE PTR 63[rax]
cmp al, 2
jne .L3322
mov rax, QWORD PTR -40[rbp]
mov rax, QWORD PTR 48[rax]
mov edx, DWORD PTR -44[rbp]
movsx rdx, edx
sal rdx, 3
lea rbx, [rax+rdx]
mov edi, 32768
call sqlite3MallocZero
mov QWORD PTR [rbx], rax
mov rax, QWORD PTR -40[rbp]
mov rax, QWORD PTR 48[rax]
mov edx, DWORD PTR -44[rbp]
movsx rdx, edx
sal rdx, 3
add rax, rdx
mov rax, QWORD PTR [rax]
test rax, rax
jne .L3321
mov DWORD PTR -20[rbp], 7
jmp .L3321
.L3322:
mov rax, QWORD PTR -40[rbp]
mov rax, QWORD PTR 48[rax]
mov edx, DWORD PTR -44[rbp]
movsx rdx, edx
sal rdx, 3
lea rcx, [rax+rdx]
mov rax, QWORD PTR -40[rbp]
movzx eax, BYTE PTR 64[rax]
movzx edx, al
mov rax, QWORD PTR -40[rbp]
mov rax, QWORD PTR 8[rax]
mov esi, DWORD PTR -44[rbp]
mov r8, rcx
mov ecx, edx
mov edx, 32768
mov rdi, rax
call sqlite3OsShmMap
mov DWORD PTR -20[rbp], eax
mov eax, DWORD PTR -20[rbp]
movzx eax, al
cmp eax, 8
jne .L3321
mov rax, QWORD PTR -40[rbp]
movzx eax, BYTE PTR 66[rax]
or eax, 2
mov edx, eax
mov rax, QWORD PTR -40[rbp]
mov BYTE PTR 66[rax], dl
cmp DWORD PTR -20[rbp], 8
jne .L3321
mov DWORD PTR -20[rbp], 0
.L3321:
mov rax, QWORD PTR -40[rbp]
mov rax, QWORD PTR 48[rax]
mov edx, DWORD PTR -44[rbp]
movsx rdx, edx
sal rdx, 3
add rax, rdx
mov rdx, QWORD PTR [rax]
mov rax, QWORD PTR -56[rbp]
mov QWORD PTR [rax], rdx
mov eax, DWORD PTR -20[rbp]
.L3320:
add rsp, 56
pop rbx
pop rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE540:
.size walIndexPage, .-walIndexPage
.type walCkptInfo, @function
walCkptInfo:
.LFB541:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
mov QWORD PTR -8[rbp], rdi
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR 48[rax]
mov rax, QWORD PTR [rax]
add rax, 96
pop rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE541:
.size walCkptInfo, .-walCkptInfo
.type walIndexHdr, @function
walIndexHdr:
.LFB542:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
mov QWORD PTR -8[rbp], rdi
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR 48[rax]
mov rax, QWORD PTR [rax]
pop rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE542:
.size walIndexHdr, .-walIndexHdr
.type walChecksumBytes, @function
walChecksumBytes:
.LFB543:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
mov DWORD PTR -36[rbp], edi
mov QWORD PTR -48[rbp], rsi
mov DWORD PTR -40[rbp], edx
mov QWORD PTR -56[rbp], rcx
mov QWORD PTR -64[rbp], r8
mov rax, QWORD PTR -48[rbp]
mov QWORD PTR -16[rbp], rax
mov eax, DWORD PTR -40[rbp]
movsx rdx, eax
mov rax, QWORD PTR -48[rbp]
add rax, rdx
mov QWORD PTR -24[rbp], rax
cmp QWORD PTR -56[rbp], 0
je .L3329
mov rax, QWORD PTR -56[rbp]
mov eax, DWORD PTR [rax]
mov DWORD PTR -4[rbp], eax
mov rax, QWORD PTR -56[rbp]
mov eax, DWORD PTR 4[rax]
mov DWORD PTR -8[rbp], eax
jmp .L3330
.L3329:
mov DWORD PTR -8[rbp], 0
mov eax, DWORD PTR -8[rbp]
mov DWORD PTR -4[rbp], eax
.L3330:
cmp DWORD PTR -36[rbp], 0
je .L3331
.L3332:
mov rax, QWORD PTR -16[rbp]
lea rdx, 4[rax]
mov QWORD PTR -16[rbp], rdx
mov edx, DWORD PTR [rax]
mov eax, DWORD PTR -8[rbp]
add eax, edx
add DWORD PTR -4[rbp], eax
mov rax, QWORD PTR -16[rbp]
lea rdx, 4[rax]
mov QWORD PTR -16[rbp], rdx
mov edx, DWORD PTR [rax]
mov eax, DWORD PTR -4[rbp]
add eax, edx
add DWORD PTR -8[rbp], eax
mov rax, QWORD PTR -16[rbp]
cmp rax, QWORD PTR -24[rbp]
jb .L3332
jmp .L3333
.L3331:
mov rax, QWORD PTR -16[rbp]
mov eax, DWORD PTR [rax]
sal eax, 24
mov edx, eax
mov rax, QWORD PTR -16[rbp]
mov eax, DWORD PTR [rax]
sal eax, 8
and eax, 16711680
add edx, eax
mov rax, QWORD PTR -16[rbp]
mov eax, DWORD PTR [rax]
shr eax, 8
and eax, 65280
add edx, eax
mov rax, QWORD PTR -16[rbp]
mov eax, DWORD PTR [rax]
shr eax, 24
add edx, eax
mov eax, DWORD PTR -8[rbp]
add eax, edx
add DWORD PTR -4[rbp], eax
mov rax, QWORD PTR -16[rbp]
add rax, 4
mov eax, DWORD PTR [rax]
sal eax, 24
mov edx, eax
mov rax, QWORD PTR -16[rbp]
add rax, 4
mov eax, DWORD PTR [rax]
sal eax, 8
and eax, 16711680
add edx, eax
mov rax, QWORD PTR -16[rbp]
add rax, 4
mov eax, DWORD PTR [rax]
shr eax, 8
and eax, 65280
add edx, eax
mov rax, QWORD PTR -16[rbp]
add rax, 4
mov eax, DWORD PTR [rax]
shr eax, 24
add edx, eax
mov eax, DWORD PTR -4[rbp]
add eax, edx
add DWORD PTR -8[rbp], eax
add QWORD PTR -16[rbp], 8
mov rax, QWORD PTR -16[rbp]
cmp rax, QWORD PTR -24[rbp]
jb .L3331
.L3333:
mov rax, QWORD PTR -64[rbp]
mov edx, DWORD PTR -4[rbp]
mov DWORD PTR [rax], edx
mov rax, QWORD PTR -64[rbp]
lea rdx, 4[rax]
mov eax, DWORD PTR -8[rbp]
mov DWORD PTR [rdx], eax
nop
pop rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE543:
.size walChecksumBytes, .-walChecksumBytes
.type walShmBarrier, @function
walShmBarrier:
.LFB544:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 16
mov QWORD PTR -8[rbp], rdi
mov rax, QWORD PTR -8[rbp]
movzx eax, BYTE PTR 63[rax]
cmp al, 2
je .L3336
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR 8[rax]
mov rdi, rax
call sqlite3OsShmBarrier
.L3336:
nop
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE544:
.size walShmBarrier, .-walShmBarrier
.type walIndexWriteHdr, @function
walIndexWriteHdr:
.LFB545:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 32
mov QWORD PTR -24[rbp], rdi
mov rax, QWORD PTR -24[rbp]
mov rdi, rax
call walIndexHdr
mov QWORD PTR -8[rbp], rax
mov DWORD PTR -12[rbp], 40
mov rax, QWORD PTR -24[rbp]
mov BYTE PTR 84[rax], 1
mov rax, QWORD PTR -24[rbp]
mov DWORD PTR 72[rax], 3007000
mov rax, QWORD PTR -24[rbp]
lea rdx, 112[rax]
mov rax, QWORD PTR -24[rbp]
lea rsi, 72[rax]
mov eax, DWORD PTR -12[rbp]
mov r8, rdx
mov ecx, 0
mov edx, eax
mov edi, 1
call walChecksumBytes
mov rax, QWORD PTR -24[rbp]
lea rcx, 72[rax]
mov rax, QWORD PTR -8[rbp]
add rax, 48
mov edx, 48
mov rsi, rcx
mov rdi, rax
call memcpy@PLT
mov rax, QWORD PTR -24[rbp]
mov rdi, rax
call walShmBarrier
mov rax, QWORD PTR -24[rbp]
lea rcx, 72[rax]
mov rax, QWORD PTR -8[rbp]
mov edx, 48
mov rsi, rcx
mov rdi, rax
call memcpy@PLT
nop
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE545:
.size walIndexWriteHdr, .-walIndexWriteHdr
.type walEncodeFrame, @function
walEncodeFrame:
.LFB546:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 48
mov QWORD PTR -24[rbp], rdi
mov DWORD PTR -28[rbp], esi
mov DWORD PTR -32[rbp], edx
mov QWORD PTR -40[rbp], rcx
mov QWORD PTR -48[rbp], r8
mov rax, QWORD PTR -24[rbp]
add rax, 96
mov QWORD PTR -8[rbp], rax
mov edx, DWORD PTR -28[rbp]
mov rax, QWORD PTR -48[rbp]
mov esi, edx
mov rdi, rax
call sqlite3Put4byte
mov rax, QWORD PTR -48[rbp]
lea rdx, 4[rax]
mov eax, DWORD PTR -32[rbp]
mov esi, eax
mov rdi, rdx
call sqlite3Put4byte
mov rax, QWORD PTR -24[rbp]
mov eax, DWORD PTR 124[rax]
test eax, eax
jne .L3339
mov rax, QWORD PTR -24[rbp]
add rax, 104
mov rdx, QWORD PTR -48[rbp]
add rdx, 8
mov rax, QWORD PTR [rax]
mov QWORD PTR [rdx], rax
mov rax, QWORD PTR -24[rbp]
movzx eax, BYTE PTR 85[rax]
test al, al
sete al
movzx eax, al
mov DWORD PTR -12[rbp], eax
mov rcx, QWORD PTR -8[rbp]
mov rdx, QWORD PTR -8[rbp]
mov rsi, QWORD PTR -48[rbp]
mov eax, DWORD PTR -12[rbp]
mov r8, rcx
mov rcx, rdx
mov edx, 8
mov edi, eax
call walChecksumBytes
mov rax, QWORD PTR -24[rbp]
mov eax, DWORD PTR 56[rax]
mov edi, eax
mov rcx, QWORD PTR -8[rbp]
mov rdx, QWORD PTR -8[rbp]
mov rsi, QWORD PTR -40[rbp]
mov eax, DWORD PTR -12[rbp]
mov r8, rcx
mov rcx, rdx
mov edx, edi
mov edi, eax
call walChecksumBytes
mov rax, QWORD PTR -8[rbp]
mov eax, DWORD PTR [rax]
mov rdx, QWORD PTR -48[rbp]
add rdx, 16
mov esi, eax
mov rdi, rdx
call sqlite3Put4byte
mov rax, QWORD PTR -8[rbp]
add rax, 4
mov eax, DWORD PTR [rax]
mov rdx, QWORD PTR -48[rbp]
add rdx, 20
mov esi, eax
mov rdi, rdx
call sqlite3Put4byte
jmp .L3341
.L3339:
mov rax, QWORD PTR -48[rbp]
add rax, 8
mov edx, 16
mov esi, 0
mov rdi, rax
call memset@PLT
.L3341:
nop
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE546:
.size walEncodeFrame, .-walEncodeFrame
.type walDecodeFrame, @function
walDecodeFrame:
.LFB547:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
push rbx
sub rsp, 72
.cfi_offset 3, -24
mov QWORD PTR -40[rbp], rdi
mov QWORD PTR -48[rbp], rsi
mov QWORD PTR -56[rbp], rdx
mov QWORD PTR -64[rbp], rcx
mov QWORD PTR -72[rbp], r8
mov rax, QWORD PTR -40[rbp]
add rax, 96
mov QWORD PTR -24[rbp], rax
mov rax, QWORD PTR -72[rbp]
lea rcx, 8[rax]
mov rax, QWORD PTR -40[rbp]
add rax, 104
mov edx, 8
mov rsi, rcx
mov rdi, rax
call memcmp@PLT
test eax, eax
je .L3343
mov eax, 0
jmp .L3344
.L3343:
mov rax, QWORD PTR -72[rbp]
mov rdi, rax
call sqlite3Get4byte
mov DWORD PTR -28[rbp], eax
cmp DWORD PTR -28[rbp], 0
jne .L3345
mov eax, 0
jmp .L3344
.L3345:
mov rax, QWORD PTR -40[rbp]
movzx eax, BYTE PTR 85[rax]
test al, al
sete al
movzx eax, al
mov DWORD PTR -32[rbp], eax
mov rcx, QWORD PTR -24[rbp]
mov rdx, QWORD PTR -24[rbp]
mov rsi, QWORD PTR -72[rbp]
mov eax, DWORD PTR -32[rbp]
mov r8, rcx
mov rcx, rdx
mov edx, 8
mov edi, eax
call walChecksumBytes
mov rax, QWORD PTR -40[rbp]
mov eax, DWORD PTR 56[rax]
mov edi, eax
mov rcx, QWORD PTR -24[rbp]
mov rdx, QWORD PTR -24[rbp]
mov rsi, QWORD PTR -64[rbp]
mov eax, DWORD PTR -32[rbp]
mov r8, rcx
mov rcx, rdx
mov edx, edi
mov edi, eax
call walChecksumBytes
mov rax, QWORD PTR -24[rbp]
mov ebx, DWORD PTR [rax]
mov rax, QWORD PTR -72[rbp]
add rax, 16
mov rdi, rax
call sqlite3Get4byte
cmp ebx, eax
jne .L3346
mov rax, QWORD PTR -24[rbp]
add rax, 4
mov ebx, DWORD PTR [rax]
mov rax, QWORD PTR -72[rbp]
add rax, 20
mov rdi, rax
call sqlite3Get4byte
cmp ebx, eax
je .L3347
.L3346:
mov eax, 0
jmp .L3344
.L3347:
mov rax, QWORD PTR -48[rbp]
mov edx, DWORD PTR -28[rbp]
mov DWORD PTR [rax], edx
mov rax, QWORD PTR -72[rbp]
add rax, 4
mov rdi, rax
call sqlite3Get4byte
mov edx, eax
mov rax, QWORD PTR -56[rbp]
mov DWORD PTR [rax], edx
mov eax, 1
.L3344:
add rsp, 72
pop rbx
pop rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE547:
.size walDecodeFrame, .-walDecodeFrame
.type walLockShared, @function
walLockShared:
.LFB548:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 32
mov QWORD PTR -24[rbp], rdi
mov DWORD PTR -28[rbp], esi
mov rax, QWORD PTR -24[rbp]
movzx eax, BYTE PTR 63[rax]
test al, al
je .L3349
mov eax, 0
jmp .L3350
.L3349:
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 8[rax]
mov esi, DWORD PTR -28[rbp]
mov ecx, 6
mov edx, 1
mov rdi, rax
call sqlite3OsShmLock
mov DWORD PTR -4[rbp], eax
mov eax, DWORD PTR -4[rbp]
.L3350:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE548:
.size walLockShared, .-walLockShared
.type walUnlockShared, @function
walUnlockShared:
.LFB549:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 16
mov QWORD PTR -8[rbp], rdi
mov DWORD PTR -12[rbp], esi
mov rax, QWORD PTR -8[rbp]
movzx eax, BYTE PTR 63[rax]
test al, al
jne .L3354
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR 8[rax]
mov esi, DWORD PTR -12[rbp]
mov ecx, 5
mov edx, 1
mov rdi, rax
call sqlite3OsShmLock
jmp .L3351
.L3354:
nop
.L3351:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE549:
.size walUnlockShared, .-walUnlockShared
.type walLockExclusive, @function
walLockExclusive:
.LFB550:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 32
mov QWORD PTR -24[rbp], rdi
mov DWORD PTR -28[rbp], esi
mov DWORD PTR -32[rbp], edx
mov rax, QWORD PTR -24[rbp]
movzx eax, BYTE PTR 63[rax]
test al, al
je .L3356
mov eax, 0
jmp .L3357
.L3356:
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 8[rax]
mov edx, DWORD PTR -32[rbp]
mov esi, DWORD PTR -28[rbp]
mov ecx, 10
mov rdi, rax
call sqlite3OsShmLock
mov DWORD PTR -4[rbp], eax
mov eax, DWORD PTR -4[rbp]
.L3357:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE550:
.size walLockExclusive, .-walLockExclusive
.type walUnlockExclusive, @function
walUnlockExclusive:
.LFB551:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 16
mov QWORD PTR -8[rbp], rdi
mov DWORD PTR -12[rbp], esi
mov DWORD PTR -16[rbp], edx
mov rax, QWORD PTR -8[rbp]
movzx eax, BYTE PTR 63[rax]
test al, al
jne .L3361
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR 8[rax]
mov edx, DWORD PTR -16[rbp]
mov esi, DWORD PTR -12[rbp]
mov ecx, 9
mov rdi, rax
call sqlite3OsShmLock
jmp .L3358
.L3361:
nop
.L3358:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE551:
.size walUnlockExclusive, .-walUnlockExclusive
.type walHash, @function
walHash:
.LFB552:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
mov DWORD PTR -4[rbp], edi
mov eax, DWORD PTR -4[rbp]
imul eax, eax, 383
and eax, 8191
pop rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE552:
.size walHash, .-walHash
.type walNextHash, @function
walNextHash:
.LFB553:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
mov DWORD PTR -4[rbp], edi
mov eax, DWORD PTR -4[rbp]
add eax, 1
and eax, 8191
pop rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE553:
.size walNextHash, .-walNextHash
.type walHashGet, @function
walHashGet:
.LFB554:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 80
mov QWORD PTR -40[rbp], rdi
mov DWORD PTR -44[rbp], esi
mov QWORD PTR -56[rbp], rdx
mov QWORD PTR -64[rbp], rcx
mov QWORD PTR -72[rbp], r8
lea rdx, -24[rbp]
mov ecx, DWORD PTR -44[rbp]
mov rax, QWORD PTR -40[rbp]
mov esi, ecx
mov rdi, rax
call walIndexPage
mov DWORD PTR -8[rbp], eax
cmp DWORD PTR -8[rbp], 0
jne .L3367
mov rax, QWORD PTR -24[rbp]
add rax, 16384
mov QWORD PTR -16[rbp], rax
cmp DWORD PTR -44[rbp], 0
jne .L3368
mov rax, QWORD PTR -24[rbp]
add rax, 136
mov QWORD PTR -24[rbp], rax
mov DWORD PTR -4[rbp], 0
jmp .L3369
.L3368:
mov eax, DWORD PTR -44[rbp]
sub eax, 1
sal eax, 12
add eax, 4062
mov DWORD PTR -4[rbp], eax
.L3369:
mov rax, QWORD PTR -24[rbp]
lea rdx, -4[rax]
mov rax, QWORD PTR -64[rbp]
mov QWORD PTR [rax], rdx
mov rax, QWORD PTR -56[rbp]
mov rdx, QWORD PTR -16[rbp]
mov QWORD PTR [rax], rdx
mov rax, QWORD PTR -72[rbp]
mov edx, DWORD PTR -4[rbp]
mov DWORD PTR [rax], edx
.L3367:
mov eax, DWORD PTR -8[rbp]
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE554:
.size walHashGet, .-walHashGet
.type walFramePage, @function
walFramePage:
.LFB555:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
mov DWORD PTR -20[rbp], edi
mov eax, DWORD PTR -20[rbp]
add eax, 4096
mov eax, eax
sub rax, 4063
shr rax, 12
mov DWORD PTR -4[rbp], eax
mov eax, DWORD PTR -4[rbp]
pop rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE555:
.size walFramePage, .-walFramePage
.type walFramePgno, @function
walFramePgno:
.LFB556:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 32
mov QWORD PTR -24[rbp], rdi
mov DWORD PTR -28[rbp], esi
mov eax, DWORD PTR -28[rbp]
mov edi, eax
call walFramePage
mov DWORD PTR -4[rbp], eax
cmp DWORD PTR -4[rbp], 0
jne .L3374
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 48[rax]
mov rax, QWORD PTR [rax]
mov edx, DWORD PTR -28[rbp]
add rdx, 34
sal rdx, 2
sub rdx, 4
add rax, rdx
mov eax, DWORD PTR [rax]
jmp .L3375
.L3374:
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 48[rax]
mov edx, DWORD PTR -4[rbp]
movsx rdx, edx
sal rdx, 3
add rax, rdx
mov rax, QWORD PTR [rax]
mov edx, DWORD PTR -28[rbp]
sub edx, 1
mov edx, edx
sub rdx, 4062
and edx, 4095
sal rdx, 2
add rax, rdx
mov eax, DWORD PTR [rax]
.L3375:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE556:
.size walFramePgno, .-walFramePgno
.type walCleanupHash, @function
walCleanupHash:
.LFB557:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 64
mov QWORD PTR -56[rbp], rdi
mov QWORD PTR -24[rbp], 0
mov QWORD PTR -32[rbp], 0
mov DWORD PTR -36[rbp], 0
mov DWORD PTR -8[rbp], 0
mov rax, QWORD PTR -56[rbp]
mov eax, DWORD PTR 88[rax]
test eax, eax
je .L3382
mov rax, QWORD PTR -56[rbp]
mov eax, DWORD PTR 88[rax]
mov edi, eax
call walFramePage
mov edi, eax
lea rsi, -36[rbp]
lea rcx, -32[rbp]
lea rdx, -24[rbp]
mov rax, QWORD PTR -56[rbp]
mov r8, rsi
mov esi, edi
mov rdi, rax
call walHashGet
mov rax, QWORD PTR -56[rbp]
mov edx, DWORD PTR 88[rax]
mov eax, DWORD PTR -36[rbp]
sub edx, eax
mov eax, edx
mov DWORD PTR -8[rbp], eax
mov DWORD PTR -4[rbp], 0
jmp .L3379
.L3381:
mov rax, QWORD PTR -24[rbp]
mov edx, DWORD PTR -4[rbp]
movsx rdx, edx
add rdx, rdx
add rax, rdx
movzx eax, WORD PTR [rax]
movzx eax, ax
cmp eax, DWORD PTR -8[rbp]
jle .L3380
mov rax, QWORD PTR -24[rbp]
mov edx, DWORD PTR -4[rbp]
movsx rdx, edx
add rdx, rdx
add rax, rdx
mov WORD PTR [rax], 0
.L3380:
add DWORD PTR -4[rbp], 1
.L3379:
cmp DWORD PTR -4[rbp], 8191
jle .L3381
mov rax, QWORD PTR -24[rbp]
mov rcx, rax
mov rax, QWORD PTR -32[rbp]
mov edx, DWORD PTR -8[rbp]
movsx rdx, edx
add rdx, 1
sal rdx, 2
add rax, rdx
sub rcx, rax
mov rax, rcx
mov DWORD PTR -12[rbp], eax
mov eax, DWORD PTR -12[rbp]
cdqe
mov rdx, QWORD PTR -32[rbp]
mov ecx, DWORD PTR -8[rbp]
movsx rcx, ecx
add rcx, 1
sal rcx, 2
add rcx, rdx
mov rdx, rax
mov esi, 0
mov rdi, rcx
call memset@PLT
jmp .L3376
.L3382:
nop
.L3376:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE557:
.size walCleanupHash, .-walCleanupHash
.type walIndexAppend, @function
walIndexAppend:
.LFB558:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 64
mov QWORD PTR -56[rbp], rdi
mov DWORD PTR -60[rbp], esi
mov DWORD PTR -64[rbp], edx
mov DWORD PTR -24[rbp], 0
mov QWORD PTR -32[rbp], 0
mov QWORD PTR -40[rbp], 0
mov eax, DWORD PTR -60[rbp]
mov edi, eax
call walFramePage
mov edi, eax
lea rsi, -24[rbp]
lea rcx, -32[rbp]
lea rdx, -40[rbp]
mov rax, QWORD PTR -56[rbp]
mov r8, rsi
mov esi, edi
mov rdi, rax
call walHashGet
mov DWORD PTR -12[rbp], eax
cmp DWORD PTR -12[rbp], 0
jne .L3384
mov eax, DWORD PTR -24[rbp]
mov edx, DWORD PTR -60[rbp]
sub edx, eax
mov eax, edx
mov DWORD PTR -16[rbp], eax
cmp DWORD PTR -16[rbp], 1
jne .L3385
mov rax, QWORD PTR -40[rbp]
add rax, 16384
mov rdx, rax
mov rax, QWORD PTR -32[rbp]
add rax, 4
sub rdx, rax
mov rax, rdx
mov DWORD PTR -20[rbp], eax
mov eax, DWORD PTR -20[rbp]
cdqe
mov rdx, QWORD PTR -32[rbp]
lea rcx, 4[rdx]
mov rdx, rax
mov esi, 0
mov rdi, rcx
call memset@PLT
.L3385:
mov rax, QWORD PTR -32[rbp]
mov edx, DWORD PTR -16[rbp]
movsx rdx, edx
sal rdx, 2
add rax, rdx
mov eax, DWORD PTR [rax]
test eax, eax
je .L3386
mov rax, QWORD PTR -56[rbp]
mov rdi, rax
call walCleanupHash
.L3386:
mov eax, DWORD PTR -16[rbp]
mov DWORD PTR -8[rbp], eax
mov eax, DWORD PTR -64[rbp]
mov edi, eax
call walHash
mov DWORD PTR -4[rbp], eax
jmp .L3387
.L3390:
mov eax, DWORD PTR -8[rbp]
lea edx, -1[rax]
mov DWORD PTR -8[rbp], edx
test eax, eax
jne .L3388
mov edi, 56660
call sqlite3CorruptError
jmp .L3391
.L3388:
mov eax, DWORD PTR -4[rbp]
mov edi, eax
call walNextHash
mov DWORD PTR -4[rbp], eax
.L3387:
mov rax, QWORD PTR -40[rbp]
mov edx, DWORD PTR -4[rbp]
movsx rdx, edx
add rdx, rdx
add rax, rdx
movzx eax, WORD PTR [rax]
test ax, ax
jne .L3390
mov rax, QWORD PTR -32[rbp]
mov edx, DWORD PTR -16[rbp]
movsx rdx, edx
sal rdx, 2
add rdx, rax
mov eax, DWORD PTR -64[rbp]
mov DWORD PTR [rdx], eax
mov rax, QWORD PTR -40[rbp]
mov edx, DWORD PTR -4[rbp]
movsx rdx, edx
add rdx, rdx
add rax, rdx
mov edx, DWORD PTR -16[rbp]
mov WORD PTR [rax], dx
.L3384:
mov eax, DWORD PTR -12[rbp]
.L3391:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE558:
.size walIndexAppend, .-walIndexAppend
.section .rodata
.align 8
.LC131:
.string "recovered %d frames from WAL file %s"
.text
.type walIndexRecover, @function
walIndexRecover:
.LFB559:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
push rbx
sub rsp, 152
.cfi_offset 3, -24
mov QWORD PTR -152[rbp], rdi
mov DWORD PTR -104[rbp], 0
mov DWORD PTR -100[rbp], 0
mov rax, QWORD PTR -152[rbp]
movzx eax, BYTE PTR 65[rax]
movzx eax, al
add eax, 1
mov DWORD PTR -40[rbp], eax
mov eax, 3
sub eax, DWORD PTR -40[rbp]
mov edx, eax
mov ecx, DWORD PTR -40[rbp]
mov rax, QWORD PTR -152[rbp]
mov esi, ecx
mov rdi, rax
call walLockExclusive
mov DWORD PTR -20[rbp], eax
cmp DWORD PTR -20[rbp], 0
jne .L3393
mov rax, QWORD PTR -152[rbp]
mov edx, 4
mov esi, 4
mov rdi, rax
call walLockExclusive
mov DWORD PTR -20[rbp], eax
cmp DWORD PTR -20[rbp], 0
je .L3393
mov eax, 3
sub eax, DWORD PTR -40[rbp]
mov edx, eax
mov ecx, DWORD PTR -40[rbp]
mov rax, QWORD PTR -152[rbp]
mov esi, ecx
mov rdi, rax
call walUnlockExclusive
.L3393:
cmp DWORD PTR -20[rbp], 0
je .L3394
mov eax, DWORD PTR -20[rbp]
jmp .L3415
.L3394:
mov rax, QWORD PTR -152[rbp]
add rax, 72
mov edx, 48
mov esi, 0
mov rdi, rax
call memset@PLT
mov rax, QWORD PTR -152[rbp]
mov rax, QWORD PTR 16[rax]
lea rdx, -96[rbp]
mov rsi, rdx
mov rdi, rax
call sqlite3OsFileSize
mov DWORD PTR -20[rbp], eax
cmp DWORD PTR -20[rbp], 0
jne .L3416
mov rax, QWORD PTR -96[rbp]
cmp rax, 32
jle .L3398
mov QWORD PTR -48[rbp], 0
mov rax, QWORD PTR -152[rbp]
mov rax, QWORD PTR 16[rax]
lea rsi, -144[rbp]
mov ecx, 0
mov edx, 32
mov rdi, rax
call sqlite3OsRead
mov DWORD PTR -20[rbp], eax
cmp DWORD PTR -20[rbp], 0
jne .L3417
lea rax, -144[rbp]
mov rdi, rax
call sqlite3Get4byte
mov DWORD PTR -52[rbp], eax
lea rax, -144[rbp]
add rax, 8
mov rdi, rax
call sqlite3Get4byte
mov DWORD PTR -56[rbp], eax
mov eax, DWORD PTR -52[rbp]
and eax, -2
cmp eax, 931071618
jne .L3398
mov eax, DWORD PTR -56[rbp]
sub eax, 1
and eax, DWORD PTR -56[rbp]
test eax, eax
jne .L3398
cmp DWORD PTR -56[rbp], 65536
jg .L3398
cmp DWORD PTR -56[rbp], 511
jle .L3398
mov eax, DWORD PTR -52[rbp]
and eax, 1
mov edx, eax
mov rax, QWORD PTR -152[rbp]
mov BYTE PTR 85[rax], dl
mov edx, DWORD PTR -56[rbp]
mov rax, QWORD PTR -152[rbp]
mov DWORD PTR 56[rax], edx
lea rax, -144[rbp]
add rax, 12
mov rdi, rax
call sqlite3Get4byte
mov edx, eax
mov rax, QWORD PTR -152[rbp]
mov DWORD PTR 136[rax], edx
mov rax, QWORD PTR -152[rbp]
lea rdx, 104[rax]
mov rax, QWORD PTR -128[rbp]
mov QWORD PTR [rdx], rax
mov rax, QWORD PTR -152[rbp]
lea rdx, 96[rax]
mov rax, QWORD PTR -152[rbp]
movzx eax, BYTE PTR 85[rax]
test al, al
sete al
movzx eax, al
lea rsi, -144[rbp]
mov r8, rdx
mov ecx, 0
mov edx, 24
mov edi, eax
call walChecksumBytes
mov rax, QWORD PTR -152[rbp]
mov ebx, DWORD PTR 96[rax]
lea rax, -144[rbp]
add rax, 24
mov rdi, rax
call sqlite3Get4byte
cmp ebx, eax
jne .L3398
mov rax, QWORD PTR -152[rbp]
mov ebx, DWORD PTR 100[rax]
lea rax, -144[rbp]
add rax, 28
mov rdi, rax
call sqlite3Get4byte
cmp ebx, eax
jne .L3398
lea rax, -144[rbp]
add rax, 4
mov rdi, rax
call sqlite3Get4byte
mov DWORD PTR -60[rbp], eax
cmp DWORD PTR -60[rbp], 3007000
je .L3402
mov edi, 56796
call sqlite3CantopenError
mov DWORD PTR -20[rbp], eax
jmp .L3398
.L3402:
mov eax, DWORD PTR -56[rbp]
add eax, 24
mov DWORD PTR -64[rbp], eax
mov eax, DWORD PTR -64[rbp]
cdqe
mov rdi, rax
call sqlite3_malloc64
mov QWORD PTR -48[rbp], rax
cmp QWORD PTR -48[rbp], 0
jne .L3403
mov DWORD PTR -20[rbp], 7
nop
jmp .L3397
.L3403:
mov rax, QWORD PTR -48[rbp]
add rax, 24
mov QWORD PTR -72[rbp], rax
mov DWORD PTR -24[rbp], 0
mov QWORD PTR -32[rbp], 32
jmp .L3404
.L3411:
add DWORD PTR -24[rbp], 1
mov rax, QWORD PTR -152[rbp]
mov rax, QWORD PTR 16[rax]
mov rcx, QWORD PTR -32[rbp]
mov edx, DWORD PTR -64[rbp]
mov rsi, QWORD PTR -48[rbp]
mov rdi, rax
call sqlite3OsRead
mov DWORD PTR -20[rbp], eax
cmp DWORD PTR -20[rbp], 0
jne .L3418
mov rdi, QWORD PTR -48[rbp]
mov rcx, QWORD PTR -72[rbp]
lea rdx, -112[rbp]
lea rsi, -108[rbp]
mov rax, QWORD PTR -152[rbp]
mov r8, rdi
mov rdi, rax
call walDecodeFrame
mov DWORD PTR -76[rbp], eax
cmp DWORD PTR -76[rbp], 0
je .L3419
mov edx, DWORD PTR -108[rbp]
mov ecx, DWORD PTR -24[rbp]
mov rax, QWORD PTR -152[rbp]
mov esi, ecx
mov rdi, rax
call walIndexAppend
mov DWORD PTR -20[rbp], eax
cmp DWORD PTR -20[rbp], 0
jne .L3420
mov eax, DWORD PTR -112[rbp]
test eax, eax
je .L3409
mov edx, DWORD PTR -24[rbp]
mov rax, QWORD PTR -152[rbp]
mov DWORD PTR 88[rax], edx
mov edx, DWORD PTR -112[rbp]
mov rax, QWORD PTR -152[rbp]
mov DWORD PTR 92[rax], edx
mov eax, DWORD PTR -56[rbp]
mov al, 0
mov edx, eax
mov eax, DWORD PTR -56[rbp]
sar eax, 16
or eax, edx
mov edx, eax
mov rax, QWORD PTR -152[rbp]
mov WORD PTR 86[rax], dx
mov rax, QWORD PTR -152[rbp]
mov eax, DWORD PTR 96[rax]
mov DWORD PTR -104[rbp], eax
mov rax, QWORD PTR -152[rbp]
mov eax, DWORD PTR 100[rax]
mov DWORD PTR -100[rbp], eax
.L3409:
mov eax, DWORD PTR -64[rbp]
cdqe
add QWORD PTR -32[rbp], rax
.L3404:
mov eax, DWORD PTR -64[rbp]
movsx rdx, eax
mov rax, QWORD PTR -32[rbp]
add rdx, rax
mov rax, QWORD PTR -96[rbp]
cmp rdx, rax
jle .L3411
jmp .L3410
.L3418:
nop
jmp .L3410
.L3419:
nop
jmp .L3410
.L3420:
nop
.L3410:
mov rax, QWORD PTR -48[rbp]
mov rdi, rax
call sqlite3_free
.L3398:
cmp DWORD PTR -20[rbp], 0
jne .L3397
mov edx, DWORD PTR -104[rbp]
mov rax, QWORD PTR -152[rbp]
mov DWORD PTR 96[rax], edx
mov edx, DWORD PTR -100[rbp]
mov rax, QWORD PTR -152[rbp]
mov DWORD PTR 100[rax], edx
mov rax, QWORD PTR -152[rbp]
mov rdi, rax
call walIndexWriteHdr
mov rax, QWORD PTR -152[rbp]
mov rdi, rax
call walCkptInfo
mov QWORD PTR -88[rbp], rax
mov rax, QWORD PTR -88[rbp]
mov DWORD PTR [rax], 0
mov rax, QWORD PTR -152[rbp]
mov edx, DWORD PTR 88[rax]
mov rax, QWORD PTR -88[rbp]
mov DWORD PTR 32[rax], edx
mov rax, QWORD PTR -88[rbp]
mov DWORD PTR 4[rax], 0
mov DWORD PTR -36[rbp], 1
jmp .L3412
.L3413:
mov rax, QWORD PTR -88[rbp]
mov edx, DWORD PTR -36[rbp]
movsx rdx, edx
mov DWORD PTR 4[rax+rdx*4], -1
add DWORD PTR -36[rbp], 1
.L3412:
cmp DWORD PTR -36[rbp], 4
jle .L3413
mov rax, QWORD PTR -152[rbp]
mov eax, DWORD PTR 88[rax]
test eax, eax
je .L3414
mov rax, QWORD PTR -152[rbp]
mov edx, DWORD PTR 88[rax]
mov rax, QWORD PTR -88[rbp]
mov DWORD PTR 8[rax], edx
.L3414:
mov rax, QWORD PTR -152[rbp]
mov eax, DWORD PTR 92[rax]
test eax, eax
je .L3397
mov rax, QWORD PTR -152[rbp]
mov rdx, QWORD PTR 128[rax]
mov rax, QWORD PTR -152[rbp]
mov eax, DWORD PTR 88[rax]
mov rcx, rdx
mov edx, eax
lea rsi, .LC131[rip]
mov edi, 283
mov eax, 0
call sqlite3_log
jmp .L3397
.L3416:
nop
jmp .L3397
.L3417:
nop
.L3397:
mov eax, 3
sub eax, DWORD PTR -40[rbp]
mov edx, eax
mov ecx, DWORD PTR -40[rbp]
mov rax, QWORD PTR -152[rbp]
mov esi, ecx
mov rdi, rax
call walUnlockExclusive
mov rax, QWORD PTR -152[rbp]
mov edx, 4
mov esi, 4
mov rdi, rax
call walUnlockExclusive
mov eax, DWORD PTR -20[rbp]
.L3415:
add rsp, 152
pop rbx
pop rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE559:
.size walIndexRecover, .-walIndexRecover
.type walIndexClose, @function
walIndexClose:
.LFB560:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 32
mov QWORD PTR -24[rbp], rdi
mov DWORD PTR -28[rbp], esi
mov rax, QWORD PTR -24[rbp]
movzx eax, BYTE PTR 63[rax]
cmp al, 2
je .L3422
mov rax, QWORD PTR -24[rbp]
movzx eax, BYTE PTR 70[rax]
test al, al
je .L3423
.L3422:
mov DWORD PTR -4[rbp], 0
jmp .L3424
.L3425:
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 48[rax]
mov edx, DWORD PTR -4[rbp]
movsx rdx, edx
sal rdx, 3
add rax, rdx
mov rax, QWORD PTR [rax]
mov rdi, rax
call sqlite3_free
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 48[rax]
mov edx, DWORD PTR -4[rbp]
movsx rdx, edx
sal rdx, 3
add rax, rdx
mov QWORD PTR [rax], 0
add DWORD PTR -4[rbp], 1
.L3424:
mov rax, QWORD PTR -24[rbp]
mov eax, DWORD PTR 40[rax]
cmp eax, DWORD PTR -4[rbp]
jg .L3425
.L3423:
mov rax, QWORD PTR -24[rbp]
movzx eax, BYTE PTR 63[rax]
cmp al, 2
je .L3427
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 8[rax]
mov edx, DWORD PTR -28[rbp]
mov esi, edx
mov rdi, rax
call sqlite3OsShmUnmap
.L3427:
nop
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE560:
.size walIndexClose, .-walIndexClose
.type sqlite3WalOpen, @function
sqlite3WalOpen:
.LFB561:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 80
mov QWORD PTR -40[rbp], rdi
mov QWORD PTR -48[rbp], rsi
mov QWORD PTR -56[rbp], rdx
mov DWORD PTR -60[rbp], ecx
mov QWORD PTR -72[rbp], r8
mov QWORD PTR -80[rbp], r9
mov rax, QWORD PTR -80[rbp]
mov QWORD PTR [rax], 0
mov rax, QWORD PTR -40[rbp]
mov eax, DWORD PTR 4[rax]
cdqe
add rax, 144
mov rdi, rax
call sqlite3MallocZero
mov QWORD PTR -8[rbp], rax
cmp QWORD PTR -8[rbp], 0
jne .L3429
mov eax, 7
jmp .L3438
.L3429:
mov rax, QWORD PTR -8[rbp]
mov rdx, QWORD PTR -40[rbp]
mov QWORD PTR [rax], rdx
mov rax, QWORD PTR -8[rbp]
lea rdx, 144[rax]
mov rax, QWORD PTR -8[rbp]
mov QWORD PTR 16[rax], rdx
mov rax, QWORD PTR -8[rbp]
mov rdx, QWORD PTR -48[rbp]
mov QWORD PTR 8[rax], rdx
mov rax, QWORD PTR -8[rbp]
mov WORD PTR 60[rax], -1
mov rax, QWORD PTR -8[rbp]
mov rdx, QWORD PTR -72[rbp]
mov QWORD PTR 32[rax], rdx
mov rax, QWORD PTR -8[rbp]
mov rdx, QWORD PTR -56[rbp]
mov QWORD PTR 128[rax], rdx
mov rax, QWORD PTR -8[rbp]
mov BYTE PTR 68[rax], 1
mov rax, QWORD PTR -8[rbp]
mov BYTE PTR 69[rax], 1
cmp DWORD PTR -60[rbp], 0
je .L3431
mov edx, 2
jmp .L3432
.L3431:
mov edx, 0
.L3432:
mov rax, QWORD PTR -8[rbp]
mov BYTE PTR 63[rax], dl
mov DWORD PTR -20[rbp], 524294
mov ecx, DWORD PTR -20[rbp]
mov rax, QWORD PTR -8[rbp]
mov rdx, QWORD PTR 16[rax]
lea rdi, -20[rbp]
mov rsi, QWORD PTR -56[rbp]
mov rax, QWORD PTR -40[rbp]
mov r8, rdi
mov rdi, rax
call sqlite3OsOpen
mov DWORD PTR -12[rbp], eax
cmp DWORD PTR -12[rbp], 0
jne .L3433
mov eax, DWORD PTR -20[rbp]
and eax, 1
test eax, eax
je .L3433
mov rax, QWORD PTR -8[rbp]
mov BYTE PTR 66[rax], 1
.L3433:
cmp DWORD PTR -12[rbp], 0
je .L3434
mov rax, QWORD PTR -8[rbp]
mov esi, 0
mov rdi, rax
call walIndexClose
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR 16[rax]
mov rdi, rax
call sqlite3OsClose
mov rax, QWORD PTR -8[rbp]
mov rdi, rax
call sqlite3_free
jmp .L3435
.L3434:
mov rax, QWORD PTR -48[rbp]
mov rdi, rax
call sqlite3OsDeviceCharacteristics
mov DWORD PTR -16[rbp], eax
mov eax, DWORD PTR -16[rbp]
and eax, 1024
test eax, eax
je .L3436
mov rax, QWORD PTR -8[rbp]
mov BYTE PTR 68[rax], 0
.L3436:
mov eax, DWORD PTR -16[rbp]
and eax, 4096
test eax, eax
je .L3437
mov rax, QWORD PTR -8[rbp]
mov BYTE PTR 69[rax], 0
.L3437:
mov rax, QWORD PTR -80[rbp]
mov rdx, QWORD PTR -8[rbp]
mov QWORD PTR [rax], rdx
.L3435:
mov eax, DWORD PTR -12[rbp]
.L3438:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE561:
.size sqlite3WalOpen, .-sqlite3WalOpen
.type sqlite3WalLimit, @function
sqlite3WalLimit:
.LFB562:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
mov QWORD PTR -8[rbp], rdi
mov QWORD PTR -16[rbp], rsi
cmp QWORD PTR -8[rbp], 0
je .L3441
mov rax, QWORD PTR -8[rbp]
mov rdx, QWORD PTR -16[rbp]
mov QWORD PTR 32[rax], rdx
.L3441:
nop
pop rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE562:
.size sqlite3WalLimit, .-sqlite3WalLimit
.type walIteratorNext, @function
walIteratorNext:
.LFB563:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
mov QWORD PTR -40[rbp], rdi
mov QWORD PTR -48[rbp], rsi
mov QWORD PTR -56[rbp], rdx
mov DWORD PTR -4[rbp], -1
mov rax, QWORD PTR -40[rbp]
mov eax, DWORD PTR [rax]
mov DWORD PTR -12[rbp], eax
mov rax, QWORD PTR -40[rbp]
mov eax, DWORD PTR 4[rax]
sub eax, 1
mov DWORD PTR -8[rbp], eax
jmp .L3443
.L3449:
mov eax, DWORD PTR -8[rbp]
cdqe
sal rax, 5
mov rdx, rax
mov rax, QWORD PTR -40[rbp]
add rax, rdx
add rax, 8
mov QWORD PTR -24[rbp], rax
jmp .L3444
.L3448:
mov rax, QWORD PTR -24[rbp]
mov rdx, QWORD PTR 16[rax]
mov rax, QWORD PTR -24[rbp]
mov rcx, QWORD PTR 8[rax]
mov rax, QWORD PTR -24[rbp]
mov eax, DWORD PTR [rax]
cdqe
add rax, rax
add rax, rcx
movzx eax, WORD PTR [rax]
movzx eax, ax
sal rax, 2
add rax, rdx
mov eax, DWORD PTR [rax]
mov DWORD PTR -28[rbp], eax
mov eax, DWORD PTR -28[rbp]
cmp eax, DWORD PTR -12[rbp]
jbe .L3445
mov eax, DWORD PTR -28[rbp]
cmp eax, DWORD PTR -4[rbp]
jnb .L3451
mov eax, DWORD PTR -28[rbp]
mov DWORD PTR -4[rbp], eax
mov rax, QWORD PTR -24[rbp]
mov edx, DWORD PTR 28[rax]
mov rax, QWORD PTR -24[rbp]
mov rcx, QWORD PTR 8[rax]
mov rax, QWORD PTR -24[rbp]
mov eax, DWORD PTR [rax]
cdqe
add rax, rax
add rax, rcx
movzx eax, WORD PTR [rax]
movzx eax, ax
add eax, edx
mov edx, eax
mov rax, QWORD PTR -56[rbp]
mov DWORD PTR [rax], edx
jmp .L3451
.L3445:
mov rax, QWORD PTR -24[rbp]
mov eax, DWORD PTR [rax]
lea edx, 1[rax]
mov rax, QWORD PTR -24[rbp]
mov DWORD PTR [rax], edx
.L3444:
mov rax, QWORD PTR -24[rbp]
mov edx, DWORD PTR [rax]
mov rax, QWORD PTR -24[rbp]
mov eax, DWORD PTR 24[rax]
cmp edx, eax
jl .L3448
jmp .L3447
.L3451:
nop
.L3447:
sub DWORD PTR -8[rbp], 1
.L3443:
cmp DWORD PTR -8[rbp], 0
jns .L3449
mov edx, DWORD PTR -4[rbp]
mov rax, QWORD PTR -40[rbp]
mov DWORD PTR [rax], edx
mov rax, QWORD PTR -40[rbp]
mov eax, DWORD PTR [rax]
mov edx, eax
mov rax, QWORD PTR -48[rbp]
mov DWORD PTR [rax], edx
cmp DWORD PTR -4[rbp], -1
sete al
movzx eax, al
pop rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE563:
.size walIteratorNext, .-walIteratorNext
.type walMerge, @function
walMerge:
.LFB564:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 96
mov QWORD PTR -56[rbp], rdi
mov QWORD PTR -64[rbp], rsi
mov DWORD PTR -68[rbp], edx
mov QWORD PTR -80[rbp], rcx
mov QWORD PTR -88[rbp], r8
mov QWORD PTR -96[rbp], r9
mov DWORD PTR -4[rbp], 0
mov DWORD PTR -8[rbp], 0
mov DWORD PTR -12[rbp], 0
mov rax, QWORD PTR -88[rbp]
mov eax, DWORD PTR [rax]
mov DWORD PTR -20[rbp], eax
mov rax, QWORD PTR -80[rbp]
mov rax, QWORD PTR [rax]
mov QWORD PTR -32[rbp], rax
jmp .L3453
.L3457:
mov eax, DWORD PTR -4[rbp]
cmp eax, DWORD PTR -68[rbp]
jge .L3454
mov eax, DWORD PTR -8[rbp]
cmp eax, DWORD PTR -20[rbp]
jge .L3455
mov eax, DWORD PTR -4[rbp]
cdqe
lea rdx, [rax+rax]
mov rax, QWORD PTR -64[rbp]
add rax, rdx
movzx eax, WORD PTR [rax]
movzx eax, ax
lea rdx, 0[0+rax*4]
mov rax, QWORD PTR -56[rbp]
add rax, rdx
mov edx, DWORD PTR [rax]
mov eax, DWORD PTR -8[rbp]
cdqe
lea rcx, [rax+rax]
mov rax, QWORD PTR -32[rbp]
add rax, rcx
movzx eax, WORD PTR [rax]
movzx eax, ax
lea rcx, 0[0+rax*4]
mov rax, QWORD PTR -56[rbp]
add rax, rcx
mov eax, DWORD PTR [rax]
cmp edx, eax
jnb .L3454
.L3455:
mov eax, DWORD PTR -4[rbp]
lea edx, 1[rax]
mov DWORD PTR -4[rbp], edx
cdqe
lea rdx, [rax+rax]
mov rax, QWORD PTR -64[rbp]
add rax, rdx
movzx eax, WORD PTR [rax]
mov WORD PTR -14[rbp], ax
jmp .L3456
.L3454:
mov eax, DWORD PTR -8[rbp]
lea edx, 1[rax]
mov DWORD PTR -8[rbp], edx
cdqe
lea rdx, [rax+rax]
mov rax, QWORD PTR -32[rbp]
add rax, rdx
movzx eax, WORD PTR [rax]
mov WORD PTR -14[rbp], ax
.L3456:
movzx eax, WORD PTR -14[rbp]
lea rdx, 0[0+rax*4]
mov rax, QWORD PTR -56[rbp]
add rax, rdx
mov eax, DWORD PTR [rax]
mov DWORD PTR -36[rbp], eax
mov eax, DWORD PTR -12[rbp]
lea edx, 1[rax]
mov DWORD PTR -12[rbp], edx
cdqe
lea rdx, [rax+rax]
mov rax, QWORD PTR -96[rbp]
add rdx, rax
movzx eax, WORD PTR -14[rbp]
mov WORD PTR [rdx], ax
mov eax, DWORD PTR -4[rbp]
cmp eax, DWORD PTR -68[rbp]
jge .L3453
mov eax, DWORD PTR -4[rbp]
cdqe
lea rdx, [rax+rax]
mov rax, QWORD PTR -64[rbp]
add rax, rdx
movzx eax, WORD PTR [rax]
movzx eax, ax
lea rdx, 0[0+rax*4]
mov rax, QWORD PTR -56[rbp]
add rax, rdx
mov eax, DWORD PTR [rax]
cmp eax, DWORD PTR -36[rbp]
jne .L3453
add DWORD PTR -4[rbp], 1
.L3453:
mov eax, DWORD PTR -8[rbp]
cmp eax, DWORD PTR -20[rbp]
jl .L3457
mov eax, DWORD PTR -4[rbp]
cmp eax, DWORD PTR -68[rbp]
jl .L3457
mov rax, QWORD PTR -80[rbp]
mov rdx, QWORD PTR -64[rbp]
mov QWORD PTR [rax], rdx
mov rax, QWORD PTR -88[rbp]
mov edx, DWORD PTR -12[rbp]
mov DWORD PTR [rax], edx
mov eax, DWORD PTR -12[rbp]
cdqe
lea rdx, [rax+rax]
mov rcx, QWORD PTR -96[rbp]
mov rax, QWORD PTR -64[rbp]
mov rsi, rcx
mov rdi, rax
call memcpy@PLT
nop
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE564:
.size walMerge, .-walMerge
.type walMergesort, @function
walMergesort:
.LFB565:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 288
mov QWORD PTR -264[rbp], rdi
mov QWORD PTR -272[rbp], rsi
mov QWORD PTR -280[rbp], rdx
mov QWORD PTR -288[rbp], rcx
mov rax, QWORD PTR -288[rbp]
mov eax, DWORD PTR [rax]
mov DWORD PTR -12[rbp], eax
mov DWORD PTR -36[rbp], 0
mov QWORD PTR -48[rbp], 0
mov DWORD PTR -8[rbp], 0
lea rax, -256[rbp]
mov edx, 208
mov esi, 0
mov rdi, rax
call memset@PLT
mov DWORD PTR -4[rbp], 0
jmp .L3459
.L3462:
mov DWORD PTR -36[rbp], 1
mov eax, DWORD PTR -4[rbp]
cdqe
lea rdx, [rax+rax]
mov rax, QWORD PTR -280[rbp]
add rax, rdx
mov QWORD PTR -48[rbp], rax
mov DWORD PTR -8[rbp], 0
jmp .L3460
.L3461:
lea rax, -256[rbp]
mov edx, DWORD PTR -8[rbp]
sal rdx, 4
add rax, rdx
mov QWORD PTR -24[rbp], rax
mov rax, QWORD PTR -24[rbp]
mov edx, DWORD PTR [rax]
mov rax, QWORD PTR -24[rbp]
mov rsi, QWORD PTR 8[rax]
mov r8, QWORD PTR -272[rbp]
lea rdi, -36[rbp]
lea rcx, -48[rbp]
mov rax, QWORD PTR -264[rbp]
mov r9, r8
mov r8, rdi
mov rdi, rax
call walMerge
add DWORD PTR -8[rbp], 1
.L3460:
mov eax, DWORD PTR -8[rbp]
mov edx, DWORD PTR -4[rbp]
mov ecx, eax
sar edx, cl
mov eax, edx
and eax, 1
test eax, eax
jne .L3461
mov rax, QWORD PTR -48[rbp]
mov edx, DWORD PTR -8[rbp]
sal rdx, 4
add rdx, rbp
sub rdx, 248
mov QWORD PTR [rdx], rax
mov eax, DWORD PTR -36[rbp]
mov edx, DWORD PTR -8[rbp]
sal rdx, 4
add rdx, rbp
sub rdx, 256
mov DWORD PTR [rdx], eax
add DWORD PTR -4[rbp], 1
.L3459:
mov eax, DWORD PTR -4[rbp]
cmp eax, DWORD PTR -12[rbp]
jl .L3462
add DWORD PTR -8[rbp], 1
jmp .L3463
.L3465:
mov eax, DWORD PTR -8[rbp]
mov edx, DWORD PTR -12[rbp]
mov ecx, eax
sar edx, cl
mov eax, edx
and eax, 1
test eax, eax
je .L3464
lea rax, -256[rbp]
mov edx, DWORD PTR -8[rbp]
sal rdx, 4
add rax, rdx
mov QWORD PTR -32[rbp], rax
mov rax, QWORD PTR -32[rbp]
mov edx, DWORD PTR [rax]
mov rax, QWORD PTR -32[rbp]
mov rsi, QWORD PTR 8[rax]
mov r8, QWORD PTR -272[rbp]
lea rdi, -36[rbp]
lea rcx, -48[rbp]
mov rax, QWORD PTR -264[rbp]
mov r9, r8
mov r8, rdi
mov rdi, rax
call walMerge
.L3464:
add DWORD PTR -8[rbp], 1
.L3463:
cmp DWORD PTR -8[rbp], 12
jbe .L3465
mov edx, DWORD PTR -36[rbp]
mov rax, QWORD PTR -288[rbp]
mov DWORD PTR [rax], edx
nop
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE565:
.size walMergesort, .-walMergesort
.type walIteratorFree, @function
walIteratorFree:
.LFB566:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 16
mov QWORD PTR -8[rbp], rdi
mov rax, QWORD PTR -8[rbp]
mov rdi, rax
call sqlite3_free
nop
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE566:
.size walIteratorFree, .-walIteratorFree
.type walIteratorInit, @function
walIteratorInit:
.LFB567:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 96
mov QWORD PTR -88[rbp], rdi
mov QWORD PTR -96[rbp], rsi
mov DWORD PTR -8[rbp], 0
mov rax, QWORD PTR -88[rbp]
mov eax, DWORD PTR 88[rax]
mov DWORD PTR -16[rbp], eax
mov eax, DWORD PTR -16[rbp]
mov edi, eax
call walFramePage
add eax, 1
mov DWORD PTR -20[rbp], eax
mov eax, DWORD PTR -20[rbp]
sub eax, 1
cdqe
sal rax, 4
mov rdx, rax
mov eax, DWORD PTR -16[rbp]
add rax, rdx
add rax, 20
add eax, eax
mov DWORD PTR -24[rbp], eax
mov eax, DWORD PTR -24[rbp]
cdqe
mov rdi, rax
call sqlite3_malloc64
mov QWORD PTR -32[rbp], rax
cmp QWORD PTR -32[rbp], 0
jne .L3468
mov eax, 7
jmp .L3469
.L3468:
mov eax, DWORD PTR -24[rbp]
movsx rdx, eax
mov rax, QWORD PTR -32[rbp]
mov esi, 0
mov rdi, rax
call memset@PLT
mov rax, QWORD PTR -32[rbp]
mov edx, DWORD PTR -20[rbp]
mov DWORD PTR 4[rax], edx
cmp DWORD PTR -16[rbp], 4096
ja .L3470
mov eax, DWORD PTR -16[rbp]
add rax, rax
jmp .L3471
.L3470:
mov eax, 8192
.L3471:
mov rdi, rax
call sqlite3_malloc64
mov QWORD PTR -40[rbp], rax
cmp QWORD PTR -40[rbp], 0
jne .L3472
mov DWORD PTR -8[rbp], 7
.L3472:
mov DWORD PTR -4[rbp], 0
jmp .L3473
.L3480:
lea rdi, -60[rbp]
lea rcx, -72[rbp]
lea rdx, -56[rbp]
mov esi, DWORD PTR -4[rbp]
mov rax, QWORD PTR -88[rbp]
mov r8, rdi
mov rdi, rax
call walHashGet
mov DWORD PTR -8[rbp], eax
cmp DWORD PTR -8[rbp], 0
jne .L3474
mov rax, QWORD PTR -72[rbp]
add rax, 4
mov QWORD PTR -72[rbp], rax
mov eax, DWORD PTR -4[rbp]
add eax, 1
cmp eax, DWORD PTR -20[rbp]
jne .L3475
mov eax, DWORD PTR -60[rbp]
mov edx, DWORD PTR -16[rbp]
sub edx, eax
mov eax, edx
mov DWORD PTR -76[rbp], eax
jmp .L3476
.L3475:
mov rax, QWORD PTR -56[rbp]
mov rdx, rax
mov rax, QWORD PTR -72[rbp]
sub rdx, rax
mov rax, rdx
sar rax, 2
mov DWORD PTR -76[rbp], eax
.L3476:
mov rax, QWORD PTR -32[rbp]
mov eax, DWORD PTR 4[rax]
cdqe
sal rax, 5
mov rdx, rax
mov rax, QWORD PTR -32[rbp]
add rax, rdx
lea rdx, 8[rax]
mov eax, DWORD PTR -60[rbp]
mov eax, eax
add rax, rax
add rax, rdx
mov QWORD PTR -48[rbp], rax
mov eax, DWORD PTR -60[rbp]
add eax, 1
mov DWORD PTR -60[rbp], eax
mov DWORD PTR -12[rbp], 0
jmp .L3477
.L3478:
mov eax, DWORD PTR -12[rbp]
cdqe
lea rdx, [rax+rax]
mov rax, QWORD PTR -48[rbp]
add rax, rdx
mov edx, DWORD PTR -12[rbp]
mov WORD PTR [rax], dx
add DWORD PTR -12[rbp], 1
.L3477:
mov eax, DWORD PTR -76[rbp]
cmp DWORD PTR -12[rbp], eax
jl .L3478
mov rax, QWORD PTR -72[rbp]
lea rcx, -76[rbp]
mov rdx, QWORD PTR -48[rbp]
mov rsi, QWORD PTR -40[rbp]
mov rdi, rax
call walMergesort
mov eax, DWORD PTR -60[rbp]
mov ecx, eax
mov rax, QWORD PTR -32[rbp]
mov edx, DWORD PTR -4[rbp]
movsx rdx, edx
sal rdx, 5
add rax, rdx
add rax, 36
mov DWORD PTR [rax], ecx
mov eax, DWORD PTR -76[rbp]
mov rdx, QWORD PTR -32[rbp]
mov ecx, DWORD PTR -4[rbp]
movsx rcx, ecx
sal rcx, 5
add rdx, rcx
add rdx, 32
mov DWORD PTR [rdx], eax
mov rax, QWORD PTR -32[rbp]
mov edx, DWORD PTR -4[rbp]
movsx rdx, edx
sal rdx, 5
add rax, rdx
lea rdx, 16[rax]
mov rax, QWORD PTR -48[rbp]
mov QWORD PTR [rdx], rax
mov rax, QWORD PTR -72[rbp]
mov rdx, QWORD PTR -32[rbp]
mov ecx, DWORD PTR -4[rbp]
movsx rcx, ecx
sal rcx, 5
add rdx, rcx
add rdx, 24
mov QWORD PTR [rdx], rax
.L3474:
add DWORD PTR -4[rbp], 1
.L3473:
cmp DWORD PTR -8[rbp], 0
jne .L3479
mov eax, DWORD PTR -4[rbp]
cmp eax, DWORD PTR -20[rbp]
jl .L3480
.L3479:
mov rax, QWORD PTR -40[rbp]
mov rdi, rax
call sqlite3_free
cmp DWORD PTR -8[rbp], 0
je .L3481
mov rax, QWORD PTR -32[rbp]
mov rdi, rax
call walIteratorFree
.L3481:
mov rax, QWORD PTR -96[rbp]
mov rdx, QWORD PTR -32[rbp]
mov QWORD PTR [rax], rdx
mov eax, DWORD PTR -8[rbp]
.L3469:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE567:
.size walIteratorInit, .-walIteratorInit
.type walBusyLock, @function
walBusyLock:
.LFB568:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 48
mov QWORD PTR -24[rbp], rdi
mov QWORD PTR -32[rbp], rsi
mov QWORD PTR -40[rbp], rdx
mov DWORD PTR -44[rbp], ecx
mov DWORD PTR -48[rbp], r8d
.L3484:
mov edx, DWORD PTR -48[rbp]
mov ecx, DWORD PTR -44[rbp]
mov rax, QWORD PTR -24[rbp]
mov esi, ecx
mov rdi, rax
call walLockExclusive
mov DWORD PTR -4[rbp], eax
cmp QWORD PTR -32[rbp], 0
je .L3483
cmp DWORD PTR -4[rbp], 5
jne .L3483
mov rdx, QWORD PTR -40[rbp]
mov rax, QWORD PTR -32[rbp]
mov rdi, rdx
call rax
test eax, eax
jne .L3484
.L3483:
mov eax, DWORD PTR -4[rbp]
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE568:
.size walBusyLock, .-walBusyLock
.type walPagesize, @function
walPagesize:
.LFB569:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
mov QWORD PTR -8[rbp], rdi
mov rax, QWORD PTR -8[rbp]
movzx eax, WORD PTR 86[rax]
movzx eax, ax
and eax, 65024
mov edx, eax
mov rax, QWORD PTR -8[rbp]
movzx eax, WORD PTR 86[rax]
movzx eax, ax
sal eax, 16
and eax, 65536
or eax, edx
pop rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE569:
.size walPagesize, .-walPagesize
.type walRestartHdr, @function
walRestartHdr:
.LFB570:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 48
mov QWORD PTR -40[rbp], rdi
mov DWORD PTR -44[rbp], esi
mov rax, QWORD PTR -40[rbp]
mov rdi, rax
call walCkptInfo
mov QWORD PTR -16[rbp], rax
mov rax, QWORD PTR -40[rbp]
add rax, 104
mov QWORD PTR -24[rbp], rax
mov rax, QWORD PTR -40[rbp]
mov eax, DWORD PTR 136[rax]
lea edx, 1[rax]
mov rax, QWORD PTR -40[rbp]
mov DWORD PTR 136[rax], edx
mov rax, QWORD PTR -40[rbp]
mov DWORD PTR 88[rax], 0
mov rax, QWORD PTR -24[rbp]
mov rdi, rax
call sqlite3Get4byte
lea edx, 1[rax]
mov rax, QWORD PTR -24[rbp]
mov esi, edx
mov rdi, rax
call sqlite3Put4byte
mov rax, QWORD PTR -40[rbp]
lea rdx, 108[rax]
mov eax, DWORD PTR -44[rbp]
mov DWORD PTR [rdx], eax
mov rax, QWORD PTR -40[rbp]
mov rdi, rax
call walIndexWriteHdr
mov rax, QWORD PTR -16[rbp]
mov DWORD PTR [rax], 0
mov rax, QWORD PTR -16[rbp]
mov DWORD PTR 32[rax], 0
mov rax, QWORD PTR -16[rbp]
mov DWORD PTR 8[rax], 0
mov DWORD PTR -4[rbp], 2
jmp .L3489
.L3490:
mov rax, QWORD PTR -16[rbp]
mov edx, DWORD PTR -4[rbp]
movsx rdx, edx
mov DWORD PTR 4[rax+rdx*4], -1
add DWORD PTR -4[rbp], 1
.L3489:
cmp DWORD PTR -4[rbp], 4
jle .L3490
nop
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE570:
.size walRestartHdr, .-walRestartHdr
.type walCheckpoint, @function
walCheckpoint:
.LFB571:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 144
mov QWORD PTR -104[rbp], rdi
mov QWORD PTR -112[rbp], rsi
mov DWORD PTR -116[rbp], edx
mov QWORD PTR -128[rbp], rcx
mov QWORD PTR -136[rbp], r8
mov DWORD PTR -120[rbp], r9d
mov DWORD PTR -4[rbp], 0
mov QWORD PTR -64[rbp], 0
mov DWORD PTR -68[rbp], 0
mov DWORD PTR -72[rbp], 0
mov rax, QWORD PTR -104[rbp]
mov rdi, rax
call walPagesize
mov DWORD PTR -16[rbp], eax
mov rax, QWORD PTR -104[rbp]
mov rdi, rax
call walCkptInfo
mov QWORD PTR -24[rbp], rax
mov rax, QWORD PTR -24[rbp]
mov edx, DWORD PTR [rax]
mov rax, QWORD PTR -104[rbp]
mov eax, DWORD PTR 88[rax]
cmp edx, eax
jnb .L3492
lea rdx, -64[rbp]
mov rax, QWORD PTR -104[rbp]
mov rsi, rdx
mov rdi, rax
call walIteratorInit
mov DWORD PTR -4[rbp], eax
cmp DWORD PTR -4[rbp], 0
je .L3493
mov eax, DWORD PTR -4[rbp]
jmp .L3520
.L3493:
mov rax, QWORD PTR -104[rbp]
mov eax, DWORD PTR 88[rax]
mov DWORD PTR -8[rbp], eax
mov rax, QWORD PTR -104[rbp]
mov eax, DWORD PTR 92[rax]
mov DWORD PTR -28[rbp], eax
mov DWORD PTR -12[rbp], 1
jmp .L3495
.L3502:
mov rax, QWORD PTR -24[rbp]
mov edx, DWORD PTR -12[rbp]
movsx rdx, edx
mov eax, DWORD PTR 4[rax+rdx*4]
mov DWORD PTR -32[rbp], eax
mov eax, DWORD PTR -8[rbp]
cmp eax, DWORD PTR -32[rbp]
jbe .L3496
mov eax, DWORD PTR -12[rbp]
lea ecx, 3[rax]
mov rdx, QWORD PTR -136[rbp]
mov rsi, QWORD PTR -128[rbp]
mov rax, QWORD PTR -104[rbp]
mov r8d, 1
mov rdi, rax
call walBusyLock
mov DWORD PTR -4[rbp], eax
cmp DWORD PTR -4[rbp], 0
jne .L3497
cmp DWORD PTR -12[rbp], 1
jne .L3498
mov eax, DWORD PTR -8[rbp]
jmp .L3499
.L3498:
mov eax, -1
.L3499:
mov rdx, QWORD PTR -24[rbp]
mov ecx, DWORD PTR -12[rbp]
movsx rcx, ecx
mov DWORD PTR 4[rdx+rcx*4], eax
mov eax, DWORD PTR -12[rbp]
lea ecx, 3[rax]
mov rax, QWORD PTR -104[rbp]
mov edx, 1
mov esi, ecx
mov rdi, rax
call walUnlockExclusive
jmp .L3496
.L3497:
cmp DWORD PTR -4[rbp], 5
jne .L3521
mov eax, DWORD PTR -32[rbp]
mov DWORD PTR -8[rbp], eax
mov QWORD PTR -128[rbp], 0
.L3496:
add DWORD PTR -12[rbp], 1
.L3495:
cmp DWORD PTR -12[rbp], 4
jle .L3502
mov rax, QWORD PTR -24[rbp]
mov eax, DWORD PTR [rax]
cmp eax, DWORD PTR -8[rbp]
jnb .L3503
mov rdx, QWORD PTR -136[rbp]
mov rsi, QWORD PTR -128[rbp]
mov rax, QWORD PTR -104[rbp]
mov r8d, 1
mov ecx, 3
mov rdi, rax
call walBusyLock
mov DWORD PTR -4[rbp], eax
cmp DWORD PTR -4[rbp], 0
jne .L3503
mov rax, QWORD PTR -24[rbp]
mov eax, DWORD PTR [rax]
mov DWORD PTR -36[rbp], eax
mov rax, QWORD PTR -24[rbp]
mov edx, DWORD PTR -8[rbp]
mov DWORD PTR 32[rax], edx
mov eax, DWORD PTR -120[rbp]
sar eax, 2
and eax, 3
mov edx, eax
mov rax, QWORD PTR -104[rbp]
mov rax, QWORD PTR 16[rax]
mov esi, edx
mov rdi, rax
call sqlite3OsSync
mov DWORD PTR -4[rbp], eax
cmp DWORD PTR -4[rbp], 0
jne .L3506
mov edx, DWORD PTR -28[rbp]
mov eax, DWORD PTR -16[rbp]
cdqe
imul rax, rdx
mov QWORD PTR -88[rbp], rax
mov rax, QWORD PTR -104[rbp]
mov rax, QWORD PTR 8[rax]
lea rdx, -80[rbp]
mov rsi, rdx
mov rdi, rax
call sqlite3OsFileSize
mov DWORD PTR -4[rbp], eax
cmp DWORD PTR -4[rbp], 0
jne .L3506
mov rdx, QWORD PTR -80[rbp]
mov rax, QWORD PTR -88[rbp]
cmp rdx, rax
jge .L3506
mov rax, QWORD PTR -104[rbp]
mov rax, QWORD PTR 8[rax]
lea rdx, -88[rbp]
mov esi, 5
mov rdi, rax
call sqlite3OsFileControlHint
jmp .L3506
.L3514:
mov rax, QWORD PTR -112[rbp]
mov eax, DWORD PTR 344[rax]
test eax, eax
je .L3507
mov rax, QWORD PTR -112[rbp]
movzx eax, BYTE PTR 97[rax]
test al, al
je .L3508
mov eax, 7
jmp .L3509
.L3508:
mov eax, 9
.L3509:
mov DWORD PTR -4[rbp], eax
jmp .L3510
.L3507:
mov eax, DWORD PTR -72[rbp]
cmp eax, DWORD PTR -36[rbp]
jbe .L3506
mov eax, DWORD PTR -72[rbp]
cmp eax, DWORD PTR -8[rbp]
ja .L3506
mov eax, DWORD PTR -68[rbp]
cmp eax, DWORD PTR -28[rbp]
jbe .L3512
jmp .L3506
.L3512:
mov eax, DWORD PTR -72[rbp]
sub eax, 1
mov edx, eax
mov eax, DWORD PTR -16[rbp]
add eax, 24
cdqe
imul rax, rdx
add rax, 56
mov QWORD PTR -48[rbp], rax
mov rax, QWORD PTR -104[rbp]
mov rax, QWORD PTR 16[rax]
mov rcx, QWORD PTR -48[rbp]
mov edx, DWORD PTR -16[rbp]
mov rsi, QWORD PTR 16[rbp]
mov rdi, rax
call sqlite3OsRead
mov DWORD PTR -4[rbp], eax
cmp DWORD PTR -4[rbp], 0
jne .L3522
mov eax, DWORD PTR -68[rbp]
sub eax, 1
mov edx, eax
mov eax, DWORD PTR -16[rbp]
cdqe
imul rax, rdx
mov QWORD PTR -48[rbp], rax
mov rax, QWORD PTR -104[rbp]
mov rax, QWORD PTR 8[rax]
mov rcx, QWORD PTR -48[rbp]
mov edx, DWORD PTR -16[rbp]
mov rsi, QWORD PTR 16[rbp]
mov rdi, rax
call sqlite3OsWrite
mov DWORD PTR -4[rbp], eax
cmp DWORD PTR -4[rbp], 0
jne .L3523
.L3506:
cmp DWORD PTR -4[rbp], 0
jne .L3510
mov rax, QWORD PTR -64[rbp]
lea rdx, -72[rbp]
lea rcx, -68[rbp]
mov rsi, rcx
mov rdi, rax
call walIteratorNext
test eax, eax
je .L3514
jmp .L3510
.L3522:
nop
jmp .L3510
.L3523:
nop
.L3510:
cmp DWORD PTR -4[rbp], 0
jne .L3515
mov rax, QWORD PTR -104[rbp]
mov rdi, rax
call walIndexHdr
mov eax, DWORD PTR 16[rax]
cmp eax, DWORD PTR -8[rbp]
jne .L3516
mov rax, QWORD PTR -104[rbp]
mov eax, DWORD PTR 92[rax]
mov edx, eax
mov eax, DWORD PTR -16[rbp]
cdqe
imul rax, rdx
mov QWORD PTR -56[rbp], rax
mov rax, QWORD PTR -104[rbp]
mov rax, QWORD PTR 8[rax]
mov rdx, QWORD PTR -56[rbp]
mov rsi, rdx
mov rdi, rax
call sqlite3OsTruncate
mov DWORD PTR -4[rbp], eax
cmp DWORD PTR -4[rbp], 0
jne .L3516
mov eax, DWORD PTR -120[rbp]
sar eax, 2
and eax, 3
mov edx, eax
mov rax, QWORD PTR -104[rbp]
mov rax, QWORD PTR 8[rax]
mov esi, edx
mov rdi, rax
call sqlite3OsSync
mov DWORD PTR -4[rbp], eax
.L3516:
cmp DWORD PTR -4[rbp], 0
jne .L3515
mov rax, QWORD PTR -24[rbp]
mov edx, DWORD PTR -8[rbp]
mov DWORD PTR [rax], edx
.L3515:
mov rax, QWORD PTR -104[rbp]
mov edx, 1
mov esi, 3
mov rdi, rax
call walUnlockExclusive
.L3503:
cmp DWORD PTR -4[rbp], 5
jne .L3492
mov DWORD PTR -4[rbp], 0
.L3492:
cmp DWORD PTR -4[rbp], 0
jne .L3501
cmp DWORD PTR -116[rbp], 0
je .L3501
mov rax, QWORD PTR -24[rbp]
mov edx, DWORD PTR [rax]
mov rax, QWORD PTR -104[rbp]
mov eax, DWORD PTR 88[rax]
cmp edx, eax
jnb .L3517
mov DWORD PTR -4[rbp], 5
jmp .L3501
.L3517:
cmp DWORD PTR -116[rbp], 1
jle .L3501
lea rax, -92[rbp]
mov rsi, rax
mov edi, 4
call sqlite3_randomness
mov rdx, QWORD PTR -136[rbp]
mov rsi, QWORD PTR -128[rbp]
mov rax, QWORD PTR -104[rbp]
mov r8d, 4
mov ecx, 4
mov rdi, rax
call walBusyLock
mov DWORD PTR -4[rbp], eax
cmp DWORD PTR -4[rbp], 0
jne .L3501
cmp DWORD PTR -116[rbp], 3
jne .L3519
mov edx, DWORD PTR -92[rbp]
mov rax, QWORD PTR -104[rbp]
mov esi, edx
mov rdi, rax
call walRestartHdr
mov rax, QWORD PTR -104[rbp]
mov rax, QWORD PTR 16[rax]
mov esi, 0
mov rdi, rax
call sqlite3OsTruncate
mov DWORD PTR -4[rbp], eax
.L3519:
mov rax, QWORD PTR -104[rbp]
mov edx, 4
mov esi, 4
mov rdi, rax
call walUnlockExclusive
jmp .L3501
.L3521:
nop
.L3501:
mov rax, QWORD PTR -64[rbp]
mov rdi, rax
call walIteratorFree
mov eax, DWORD PTR -4[rbp]
.L3520:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE571:
.size walCheckpoint, .-walCheckpoint
.section .rodata
.LC132:
.string "cannot limit WAL size: %s"
.text
.type walLimitSize, @function
walLimitSize:
.LFB572:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 32
mov QWORD PTR -24[rbp], rdi
mov QWORD PTR -32[rbp], rsi
call sqlite3BeginBenignMalloc
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 16[rax]
lea rdx, -16[rbp]
mov rsi, rdx
mov rdi, rax
call sqlite3OsFileSize
mov DWORD PTR -4[rbp], eax
cmp DWORD PTR -4[rbp], 0
jne .L3525
mov rax, QWORD PTR -16[rbp]
cmp rax, QWORD PTR -32[rbp]
jle .L3525
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 16[rax]
mov rdx, QWORD PTR -32[rbp]
mov rsi, rdx
mov rdi, rax
call sqlite3OsTruncate
mov DWORD PTR -4[rbp], eax
.L3525:
call sqlite3EndBenignMalloc
cmp DWORD PTR -4[rbp], 0
je .L3527
mov rax, QWORD PTR -24[rbp]
mov rdx, QWORD PTR 128[rax]
mov eax, DWORD PTR -4[rbp]
lea rsi, .LC132[rip]
mov edi, eax
mov eax, 0
call sqlite3_log
.L3527:
nop
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE572:
.size walLimitSize, .-walLimitSize
.type sqlite3WalClose, @function
sqlite3WalClose:
.LFB573:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 48
mov QWORD PTR -24[rbp], rdi
mov QWORD PTR -32[rbp], rsi
mov DWORD PTR -36[rbp], edx
mov DWORD PTR -40[rbp], ecx
mov QWORD PTR -48[rbp], r8
mov DWORD PTR -4[rbp], 0
cmp QWORD PTR -24[rbp], 0
je .L3529
mov DWORD PTR -8[rbp], 0
cmp QWORD PTR -48[rbp], 0
je .L3530
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 8[rax]
mov esi, 4
mov rdi, rax
call sqlite3OsLock
mov DWORD PTR -4[rbp], eax
cmp DWORD PTR -4[rbp], 0
jne .L3530
mov rax, QWORD PTR -24[rbp]
movzx eax, BYTE PTR 63[rax]
test al, al
jne .L3531
mov rax, QWORD PTR -24[rbp]
mov BYTE PTR 63[rax], 1
.L3531:
mov ecx, DWORD PTR -36[rbp]
mov rsi, QWORD PTR -32[rbp]
mov rax, QWORD PTR -24[rbp]
push 0
push 0
push QWORD PTR -48[rbp]
mov edx, DWORD PTR -40[rbp]
push rdx
mov r9d, ecx
mov r8d, 0
mov ecx, 0
mov edx, 0
mov rdi, rax
call sqlite3WalCheckpoint
add rsp, 32
mov DWORD PTR -4[rbp], eax
cmp DWORD PTR -4[rbp], 0
jne .L3530
mov DWORD PTR -12[rbp], -1
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 8[rax]
lea rdx, -12[rbp]
mov esi, 10
mov rdi, rax
call sqlite3OsFileControlHint
mov eax, DWORD PTR -12[rbp]
cmp eax, 1
je .L3532
mov DWORD PTR -8[rbp], 1
jmp .L3530
.L3532:
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 32[rax]
test rax, rax
js .L3530
mov rax, QWORD PTR -24[rbp]
mov esi, 0
mov rdi, rax
call walLimitSize
.L3530:
mov edx, DWORD PTR -8[rbp]
mov rax, QWORD PTR -24[rbp]
mov esi, edx
mov rdi, rax
call walIndexClose
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 16[rax]
mov rdi, rax
call sqlite3OsClose
cmp DWORD PTR -8[rbp], 0
je .L3534
call sqlite3BeginBenignMalloc
mov rax, QWORD PTR -24[rbp]
mov rcx, QWORD PTR 128[rax]
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR [rax]
mov edx, 0
mov rsi, rcx
mov rdi, rax
call sqlite3OsDelete
call sqlite3EndBenignMalloc
.L3534:
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 48[rax]
mov rdi, rax
call sqlite3_free
mov rax, QWORD PTR -24[rbp]
mov rdi, rax
call sqlite3_free
.L3529:
mov eax, DWORD PTR -4[rbp]
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE573:
.size sqlite3WalClose, .-sqlite3WalClose
.type walIndexTryHdr, @function
walIndexTryHdr:
.LFB574:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
add rsp, -128
mov QWORD PTR -120[rbp], rdi
mov QWORD PTR -128[rbp], rsi
mov rax, QWORD PTR -120[rbp]
mov rdi, rax
call walIndexHdr
mov QWORD PTR -8[rbp], rax
mov rcx, QWORD PTR -8[rbp]
lea rax, -64[rbp]
mov edx, 48
mov rsi, rcx
mov rdi, rax
call memcpy@PLT
mov rax, QWORD PTR -120[rbp]
mov rdi, rax
call walShmBarrier
mov rax, QWORD PTR -8[rbp]
lea rcx, 48[rax]
lea rax, -112[rbp]
mov edx, 48
mov rsi, rcx
mov rdi, rax
call memcpy@PLT
lea rcx, -112[rbp]
lea rax, -64[rbp]
mov edx, 48
mov rsi, rcx
mov rdi, rax
call memcmp@PLT
test eax, eax
je .L3537
mov eax, 1
jmp .L3543
.L3537:
movzx eax, BYTE PTR -52[rbp]
test al, al
jne .L3539
mov eax, 1
jmp .L3543
.L3539:
lea rdx, -16[rbp]
lea rax, -64[rbp]
mov r8, rdx
mov ecx, 0
mov edx, 40
mov rsi, rax
mov edi, 1
call walChecksumBytes
mov edx, DWORD PTR -16[rbp]
mov eax, DWORD PTR -24[rbp]
cmp edx, eax
jne .L3540
mov edx, DWORD PTR -12[rbp]
mov eax, DWORD PTR -20[rbp]
cmp edx, eax
je .L3541
.L3540:
mov eax, 1
jmp .L3543
.L3541:
mov rax, QWORD PTR -120[rbp]
lea rcx, 72[rax]
lea rax, -64[rbp]
mov edx, 48
mov rsi, rax
mov rdi, rcx
call memcmp@PLT
test eax, eax
je .L3542
mov rax, QWORD PTR -128[rbp]
mov DWORD PTR [rax], 1
mov rax, QWORD PTR -120[rbp]
lea rcx, 72[rax]
lea rax, -64[rbp]
mov edx, 48
mov rsi, rax
mov rdi, rcx
call memcpy@PLT
mov rax, QWORD PTR -120[rbp]
movzx eax, WORD PTR 86[rax]
movzx eax, ax
and eax, 65024
mov edx, eax
mov rax, QWORD PTR -120[rbp]
movzx eax, WORD PTR 86[rax]
movzx eax, ax
sal eax, 16
and eax, 65536
or eax, edx
mov edx, eax
mov rax, QWORD PTR -120[rbp]
mov DWORD PTR 56[rax], edx
.L3542:
mov eax, 0
.L3543:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE574:
.size walIndexTryHdr, .-walIndexTryHdr
.type walIndexReadHdr, @function
walIndexReadHdr:
.LFB575:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 32
mov QWORD PTR -24[rbp], rdi
mov QWORD PTR -32[rbp], rsi
lea rdx, -16[rbp]
mov rax, QWORD PTR -24[rbp]
mov esi, 0
mov rdi, rax
call walIndexPage
mov DWORD PTR -4[rbp], eax
cmp DWORD PTR -4[rbp], 0
je .L3545
cmp DWORD PTR -4[rbp], 1288
jne .L3546
mov rax, QWORD PTR -24[rbp]
mov BYTE PTR 70[rax], 1
mov rax, QWORD PTR -24[rbp]
mov BYTE PTR 63[rax], 2
mov rax, QWORD PTR -32[rbp]
mov DWORD PTR [rax], 1
jmp .L3545
.L3546:
mov eax, DWORD PTR -4[rbp]
jmp .L3557
.L3545:
mov rax, QWORD PTR -16[rbp]
test rax, rax
je .L3548
mov rdx, QWORD PTR -32[rbp]
mov rax, QWORD PTR -24[rbp]
mov rsi, rdx
mov rdi, rax
call walIndexTryHdr
jmp .L3549
.L3548:
mov eax, 1
.L3549:
mov DWORD PTR -8[rbp], eax
cmp DWORD PTR -8[rbp], 0
je .L3550
mov rax, QWORD PTR -24[rbp]
movzx eax, BYTE PTR 70[rax]
test al, al
jne .L3551
mov rax, QWORD PTR -24[rbp]
movzx eax, BYTE PTR 66[rax]
movzx eax, al
and eax, 2
test eax, eax
je .L3551
mov rax, QWORD PTR -24[rbp]
mov esi, 0
mov rdi, rax
call walLockShared
mov DWORD PTR -4[rbp], eax
cmp DWORD PTR -4[rbp], 0
jne .L3550
mov rax, QWORD PTR -24[rbp]
mov esi, 0
mov rdi, rax
call walUnlockShared
mov DWORD PTR -4[rbp], 264
jmp .L3550
.L3551:
mov rax, QWORD PTR -24[rbp]
mov edx, 1
mov esi, 0
mov rdi, rax
call walLockExclusive
mov DWORD PTR -4[rbp], eax
cmp DWORD PTR -4[rbp], 0
jne .L3550
mov rax, QWORD PTR -24[rbp]
mov BYTE PTR 64[rax], 1
lea rdx, -16[rbp]
mov rax, QWORD PTR -24[rbp]
mov esi, 0
mov rdi, rax
call walIndexPage
mov DWORD PTR -4[rbp], eax
cmp DWORD PTR -4[rbp], 0
jne .L3553
mov rdx, QWORD PTR -32[rbp]
mov rax, QWORD PTR -24[rbp]
mov rsi, rdx
mov rdi, rax
call walIndexTryHdr
mov DWORD PTR -8[rbp], eax
cmp DWORD PTR -8[rbp], 0
je .L3553
mov rax, QWORD PTR -24[rbp]
mov rdi, rax
call walIndexRecover
mov DWORD PTR -4[rbp], eax
mov rax, QWORD PTR -32[rbp]
mov DWORD PTR [rax], 1
.L3553:
mov rax, QWORD PTR -24[rbp]
mov BYTE PTR 64[rax], 0
mov rax, QWORD PTR -24[rbp]
mov edx, 1
mov esi, 0
mov rdi, rax
call walUnlockExclusive
.L3550:
cmp DWORD PTR -8[rbp], 0
jne .L3554
mov rax, QWORD PTR -24[rbp]
mov eax, DWORD PTR 72[rax]
cmp eax, 3007000
je .L3554
mov edi, 57775
call sqlite3CantopenError
mov DWORD PTR -4[rbp], eax
.L3554:
mov rax, QWORD PTR -24[rbp]
movzx eax, BYTE PTR 70[rax]
test al, al
je .L3555
cmp DWORD PTR -4[rbp], 0
je .L3556
mov rax, QWORD PTR -24[rbp]
mov esi, 0
mov rdi, rax
call walIndexClose
mov rax, QWORD PTR -24[rbp]
mov BYTE PTR 70[rax], 0
cmp DWORD PTR -4[rbp], 522
jne .L3556
mov DWORD PTR -4[rbp], -1
.L3556:
mov rax, QWORD PTR -24[rbp]
mov BYTE PTR 63[rax], 0
.L3555:
mov eax, DWORD PTR -4[rbp]
.L3557:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE575:
.size walIndexReadHdr, .-walIndexReadHdr
.type walBeginShmUnreliable, @function
walBeginShmUnreliable:
.LFB576:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
add rsp, -128
mov QWORD PTR -120[rbp], rdi
mov QWORD PTR -128[rbp], rsi
mov QWORD PTR -16[rbp], 0
mov rax, QWORD PTR -120[rbp]
mov esi, 3
mov rdi, rax
call walLockShared
mov DWORD PTR -20[rbp], eax
cmp DWORD PTR -20[rbp], 0
je .L3559
cmp DWORD PTR -20[rbp], 5
jne .L3583
mov DWORD PTR -20[rbp], -1
jmp .L3583
.L3559:
mov rax, QWORD PTR -120[rbp]
mov WORD PTR 60[rax], 0
mov rax, QWORD PTR -120[rbp]
mov rax, QWORD PTR 8[rax]
lea rdx, -88[rbp]
mov r8, rdx
mov ecx, 0
mov edx, 32768
mov esi, 0
mov rdi, rax
call sqlite3OsShmMap
mov DWORD PTR -20[rbp], eax
cmp DWORD PTR -20[rbp], 1288
je .L3562
cmp DWORD PTR -20[rbp], 8
je .L3563
mov eax, DWORD PTR -20[rbp]
jmp .L3564
.L3563:
mov eax, -1
.L3564:
mov DWORD PTR -20[rbp], eax
jmp .L3561
.L3562:
mov rax, QWORD PTR -120[rbp]
mov rdi, rax
call walIndexHdr
mov rcx, rax
mov rax, QWORD PTR -120[rbp]
add rax, 72
mov edx, 48
mov rsi, rcx
mov rdi, rax
call memcpy@PLT
mov rax, QWORD PTR -120[rbp]
mov rax, QWORD PTR 16[rax]
lea rdx, -48[rbp]
mov rsi, rdx
mov rdi, rax
call sqlite3OsFileSize
mov DWORD PTR -20[rbp], eax
cmp DWORD PTR -20[rbp], 0
jne .L3584
mov rax, QWORD PTR -48[rbp]
cmp rax, 31
jg .L3566
mov rax, QWORD PTR -128[rbp]
mov DWORD PTR [rax], 1
mov rax, QWORD PTR -120[rbp]
mov eax, DWORD PTR 88[rax]
test eax, eax
jne .L3567
mov eax, 0
jmp .L3568
.L3567:
mov eax, -1
.L3568:
mov DWORD PTR -20[rbp], eax
jmp .L3561
.L3566:
mov rax, QWORD PTR -120[rbp]
mov rax, QWORD PTR 16[rax]
lea rsi, -80[rbp]
mov ecx, 0
mov edx, 32
mov rdi, rax
call sqlite3OsRead
mov DWORD PTR -20[rbp], eax
cmp DWORD PTR -20[rbp], 0
jne .L3585
mov rax, QWORD PTR -120[rbp]
add rax, 104
lea rdx, -80[rbp]
lea rcx, 16[rdx]
mov edx, 8
mov rsi, rcx
mov rdi, rax
call memcmp@PLT
test eax, eax
je .L3570
mov DWORD PTR -20[rbp], -1
jmp .L3561
.L3570:
mov rax, QWORD PTR -120[rbp]
movzx eax, WORD PTR 86[rax]
movzx eax, ax
add eax, 24
mov DWORD PTR -28[rbp], eax
mov eax, DWORD PTR -28[rbp]
cdqe
mov rdi, rax
call sqlite3_malloc64
mov QWORD PTR -16[rbp], rax
cmp QWORD PTR -16[rbp], 0
jne .L3571
mov DWORD PTR -20[rbp], 7
jmp .L3561
.L3571:
mov rax, QWORD PTR -16[rbp]
add rax, 24
mov QWORD PTR -40[rbp], rax
mov rax, QWORD PTR -120[rbp]
mov eax, DWORD PTR 96[rax]
mov DWORD PTR -96[rbp], eax
mov rax, QWORD PTR -120[rbp]
mov eax, DWORD PTR 100[rax]
mov DWORD PTR -92[rbp], eax
mov rax, QWORD PTR -120[rbp]
mov eax, DWORD PTR 88[rax]
mov edx, eax
mov rax, QWORD PTR -120[rbp]
movzx eax, WORD PTR 86[rax]
movzx eax, ax
add eax, 24
cdqe
imul rax, rdx
add rax, 32
mov QWORD PTR -8[rbp], rax
jmp .L3572
.L3578:
mov rax, QWORD PTR -120[rbp]
mov rax, QWORD PTR 16[rax]
mov rcx, QWORD PTR -8[rbp]
mov edx, DWORD PTR -28[rbp]
mov rsi, QWORD PTR -16[rbp]
mov rdi, rax
call sqlite3OsRead
mov DWORD PTR -20[rbp], eax
cmp DWORD PTR -20[rbp], 0
jne .L3586
mov rdi, QWORD PTR -16[rbp]
mov rcx, QWORD PTR -40[rbp]
lea rdx, -104[rbp]
lea rsi, -100[rbp]
mov rax, QWORD PTR -120[rbp]
mov r8, rdi
mov rdi, rax
call walDecodeFrame
test eax, eax
je .L3587
mov eax, DWORD PTR -104[rbp]
test eax, eax
je .L3576
mov DWORD PTR -20[rbp], -1
nop
jmp .L3577
.L3576:
mov eax, DWORD PTR -28[rbp]
cdqe
add QWORD PTR -8[rbp], rax
.L3572:
mov eax, DWORD PTR -28[rbp]
movsx rdx, eax
mov rax, QWORD PTR -8[rbp]
add rdx, rax
mov rax, QWORD PTR -48[rbp]
cmp rdx, rax
jle .L3578
jmp .L3577
.L3586:
nop
jmp .L3577
.L3587:
nop
.L3577:
mov edx, DWORD PTR -96[rbp]
mov rax, QWORD PTR -120[rbp]
mov DWORD PTR 96[rax], edx
mov edx, DWORD PTR -92[rbp]
mov rax, QWORD PTR -120[rbp]
mov DWORD PTR 100[rax], edx
jmp .L3561
.L3583:
nop
jmp .L3561
.L3584:
nop
jmp .L3561
.L3585:
nop
.L3561:
mov rax, QWORD PTR -16[rbp]
mov rdi, rax
call sqlite3_free
cmp DWORD PTR -20[rbp], 0
je .L3579
mov DWORD PTR -24[rbp], 0
jmp .L3580
.L3581:
mov rax, QWORD PTR -120[rbp]
mov rax, QWORD PTR 48[rax]
mov edx, DWORD PTR -24[rbp]
movsx rdx, edx
sal rdx, 3
add rax, rdx
mov rax, QWORD PTR [rax]
mov rdi, rax
call sqlite3_free
mov rax, QWORD PTR -120[rbp]
mov rax, QWORD PTR 48[rax]
mov edx, DWORD PTR -24[rbp]
movsx rdx, edx
sal rdx, 3
add rax, rdx
mov QWORD PTR [rax], 0
add DWORD PTR -24[rbp], 1
.L3580:
mov rax, QWORD PTR -120[rbp]
mov eax, DWORD PTR 40[rax]
cmp eax, DWORD PTR -24[rbp]
jg .L3581
mov rax, QWORD PTR -120[rbp]
mov BYTE PTR 70[rax], 0
mov rax, QWORD PTR -120[rbp]
mov rdi, rax
call sqlite3WalEndReadTransaction
mov rax, QWORD PTR -128[rbp]
mov DWORD PTR [rax], 1
.L3579:
mov eax, DWORD PTR -20[rbp]
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE576:
.size walBeginShmUnreliable, .-walBeginShmUnreliable
.type walTryBeginRead, @function
walTryBeginRead:
.LFB577:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
push rbx
sub rsp, 88
.cfi_offset 3, -24
mov QWORD PTR -72[rbp], rdi
mov QWORD PTR -80[rbp], rsi
mov DWORD PTR -84[rbp], edx
mov DWORD PTR -88[rbp], ecx
mov DWORD PTR -32[rbp], 0
cmp DWORD PTR -88[rbp], 5
jle .L3589
mov DWORD PTR -36[rbp], 1
cmp DWORD PTR -88[rbp], 100
jle .L3590
mov eax, 15
jmp .L3591
.L3590:
cmp DWORD PTR -88[rbp], 9
jle .L3592
mov eax, DWORD PTR -88[rbp]
lea edx, -9[rax]
mov eax, DWORD PTR -88[rbp]
sub eax, 9
imul eax, edx
imul eax, eax, 39
mov DWORD PTR -36[rbp], eax
.L3592:
mov rax, QWORD PTR -72[rbp]
mov rax, QWORD PTR [rax]
mov edx, DWORD PTR -36[rbp]
mov esi, edx
mov rdi, rax
call sqlite3OsSleep
.L3589:
cmp DWORD PTR -84[rbp], 0
jne .L3593
mov rax, QWORD PTR -72[rbp]
movzx eax, BYTE PTR 70[rax]
test al, al
jne .L3594
mov rdx, QWORD PTR -80[rbp]
mov rax, QWORD PTR -72[rbp]
mov rsi, rdx
mov rdi, rax
call walIndexReadHdr
mov DWORD PTR -32[rbp], eax
.L3594:
cmp DWORD PTR -32[rbp], 5
jne .L3595
mov rax, QWORD PTR -72[rbp]
mov rax, QWORD PTR 48[rax]
mov rax, QWORD PTR [rax]
test rax, rax
jne .L3596
mov DWORD PTR -32[rbp], -1
jmp .L3595
.L3596:
mov rax, QWORD PTR -72[rbp]
mov esi, 2
mov rdi, rax
call walLockShared
mov DWORD PTR -32[rbp], eax
cmp DWORD PTR -32[rbp], 0
jne .L3597
mov rax, QWORD PTR -72[rbp]
mov esi, 2
mov rdi, rax
call walUnlockShared
mov DWORD PTR -32[rbp], -1
jmp .L3595
.L3597:
cmp DWORD PTR -32[rbp], 5
jne .L3595
mov DWORD PTR -32[rbp], 261
.L3595:
cmp DWORD PTR -32[rbp], 0
je .L3598
mov eax, DWORD PTR -32[rbp]
jmp .L3591
.L3598:
mov rax, QWORD PTR -72[rbp]
movzx eax, BYTE PTR 70[rax]
test al, al
je .L3593
mov rdx, QWORD PTR -80[rbp]
mov rax, QWORD PTR -72[rbp]
mov rsi, rdx
mov rdi, rax
call walBeginShmUnreliable
jmp .L3591
.L3593:
mov rax, QWORD PTR -72[rbp]
mov rdi, rax
call walCkptInfo
mov QWORD PTR -48[rbp], rax
cmp DWORD PTR -84[rbp], 0
jne .L3599
mov rax, QWORD PTR -48[rbp]
mov edx, DWORD PTR [rax]
mov rax, QWORD PTR -72[rbp]
mov eax, DWORD PTR 88[rax]
cmp edx, eax
jne .L3599
mov rax, QWORD PTR -72[rbp]
mov esi, 3
mov rdi, rax
call walLockShared
mov DWORD PTR -32[rbp], eax
mov rax, QWORD PTR -72[rbp]
mov rdi, rax
call walShmBarrier
cmp DWORD PTR -32[rbp], 0
jne .L3600
mov rax, QWORD PTR -72[rbp]
lea rbx, 72[rax]
mov rax, QWORD PTR -72[rbp]
mov rdi, rax
call walIndexHdr
mov edx, 48
mov rsi, rbx
mov rdi, rax
call memcmp@PLT
test eax, eax
je .L3601
mov rax, QWORD PTR -72[rbp]
mov esi, 3
mov rdi, rax
call walUnlockShared
mov eax, -1
jmp .L3591
.L3601:
mov rax, QWORD PTR -72[rbp]
mov WORD PTR 60[rax], 0
mov eax, 0
jmp .L3591
.L3600:
cmp DWORD PTR -32[rbp], 5
je .L3599
mov eax, DWORD PTR -32[rbp]
jmp .L3591
.L3599:
mov DWORD PTR -20[rbp], 0
mov DWORD PTR -24[rbp], 0
mov rax, QWORD PTR -72[rbp]
mov eax, DWORD PTR 88[rax]
mov DWORD PTR -52[rbp], eax
mov DWORD PTR -28[rbp], 1
jmp .L3602
.L3604:
mov rax, QWORD PTR -48[rbp]
mov edx, DWORD PTR -28[rbp]
movsx rdx, edx
mov eax, DWORD PTR 4[rax+rdx*4]
mov DWORD PTR -56[rbp], eax
mov eax, DWORD PTR -20[rbp]
cmp eax, DWORD PTR -56[rbp]
ja .L3603
mov eax, DWORD PTR -56[rbp]
cmp eax, DWORD PTR -52[rbp]
ja .L3603
mov eax, DWORD PTR -56[rbp]
mov DWORD PTR -20[rbp], eax
mov eax, DWORD PTR -28[rbp]
mov DWORD PTR -24[rbp], eax
.L3603:
add DWORD PTR -28[rbp], 1
.L3602:
cmp DWORD PTR -28[rbp], 4
jle .L3604
mov rax, QWORD PTR -72[rbp]
movzx eax, BYTE PTR 66[rax]
movzx eax, al
and eax, 2
test eax, eax
jne .L3605
mov eax, DWORD PTR -20[rbp]
cmp eax, DWORD PTR -52[rbp]
jb .L3606
cmp DWORD PTR -24[rbp], 0
jne .L3605
.L3606:
mov DWORD PTR -28[rbp], 1
jmp .L3607
.L3610:
mov eax, DWORD PTR -28[rbp]
lea ecx, 3[rax]
mov rax, QWORD PTR -72[rbp]
mov edx, 1
mov esi, ecx
mov rdi, rax
call walLockExclusive
mov DWORD PTR -32[rbp], eax
cmp DWORD PTR -32[rbp], 0
jne .L3608
mov eax, DWORD PTR -52[rbp]
mov rdx, QWORD PTR -48[rbp]
mov ecx, DWORD PTR -28[rbp]
movsx rcx, ecx
mov DWORD PTR 4[rdx+rcx*4], eax
mov DWORD PTR -20[rbp], eax
mov eax, DWORD PTR -28[rbp]
mov DWORD PTR -24[rbp], eax
mov eax, DWORD PTR -28[rbp]
lea ecx, 3[rax]
mov rax, QWORD PTR -72[rbp]
mov edx, 1
mov esi, ecx
mov rdi, rax
call walUnlockExclusive
jmp .L3605
.L3608:
cmp DWORD PTR -32[rbp], 5
je .L3609
mov eax, DWORD PTR -32[rbp]
jmp .L3591
.L3609:
add DWORD PTR -28[rbp], 1
.L3607:
cmp DWORD PTR -28[rbp], 4
jle .L3610
.L3605:
cmp DWORD PTR -24[rbp], 0
jne .L3611
cmp DWORD PTR -32[rbp], 5
jne .L3612
mov eax, -1
jmp .L3591
.L3612:
mov eax, 1288
jmp .L3591
.L3611:
mov eax, DWORD PTR -24[rbp]
lea edx, 3[rax]
mov rax, QWORD PTR -72[rbp]
mov esi, edx
mov rdi, rax
call walLockShared
mov DWORD PTR -32[rbp], eax
cmp DWORD PTR -32[rbp], 0
je .L3614
cmp DWORD PTR -32[rbp], 5
je .L3615
mov eax, DWORD PTR -32[rbp]
jmp .L3591
.L3615:
mov eax, -1
jmp .L3591
.L3614:
mov rax, QWORD PTR -48[rbp]
mov eax, DWORD PTR [rax]
lea edx, 1[rax]
mov rax, QWORD PTR -72[rbp]
mov DWORD PTR 120[rax], edx
mov rax, QWORD PTR -72[rbp]
mov rdi, rax
call walShmBarrier
mov rax, QWORD PTR -48[rbp]
mov edx, DWORD PTR -24[rbp]
movsx rdx, edx
mov eax, DWORD PTR 4[rax+rdx*4]
cmp eax, DWORD PTR -20[rbp]
jne .L3617
mov rax, QWORD PTR -72[rbp]
lea rbx, 72[rax]
mov rax, QWORD PTR -72[rbp]
mov rdi, rax
call walIndexHdr
mov edx, 48
mov rsi, rbx
mov rdi, rax
call memcmp@PLT
test eax, eax
je .L3618
.L3617:
mov eax, DWORD PTR -24[rbp]
lea edx, 3[rax]
mov rax, QWORD PTR -72[rbp]
mov esi, edx
mov rdi, rax
call walUnlockShared
mov eax, -1
jmp .L3591
.L3618:
mov eax, DWORD PTR -24[rbp]
mov edx, eax
mov rax, QWORD PTR -72[rbp]
mov WORD PTR 60[rax], dx
mov eax, DWORD PTR -32[rbp]
.L3591:
add rsp, 88
pop rbx
pop rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE577:
.size walTryBeginRead, .-walTryBeginRead
.type sqlite3WalBeginReadTransaction, @function
sqlite3WalBeginReadTransaction:
.LFB578:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 32
mov QWORD PTR -24[rbp], rdi
mov QWORD PTR -32[rbp], rsi
mov DWORD PTR -4[rbp], 0
.L3620:
add DWORD PTR -4[rbp], 1
mov edx, DWORD PTR -4[rbp]
mov rsi, QWORD PTR -32[rbp]
mov rax, QWORD PTR -24[rbp]
mov ecx, edx
mov edx, 0
mov rdi, rax
call walTryBeginRead
mov DWORD PTR -8[rbp], eax
cmp DWORD PTR -8[rbp], -1
je .L3620
mov eax, DWORD PTR -8[rbp]
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE578:
.size sqlite3WalBeginReadTransaction, .-sqlite3WalBeginReadTransaction
.type sqlite3WalEndReadTransaction, @function
sqlite3WalEndReadTransaction:
.LFB579:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 16
mov QWORD PTR -8[rbp], rdi
mov rax, QWORD PTR -8[rbp]
mov rdi, rax
call sqlite3WalEndWriteTransaction
mov rax, QWORD PTR -8[rbp]
movzx eax, WORD PTR 60[rax]
test ax, ax
js .L3624
mov rax, QWORD PTR -8[rbp]
movzx eax, WORD PTR 60[rax]
cwde
lea edx, 3[rax]
mov rax, QWORD PTR -8[rbp]
mov esi, edx
mov rdi, rax
call walUnlockShared
mov rax, QWORD PTR -8[rbp]
mov WORD PTR 60[rax], -1
.L3624:
nop
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE579:
.size sqlite3WalEndReadTransaction, .-sqlite3WalEndReadTransaction
.type sqlite3WalFindFrame, @function
sqlite3WalFindFrame:
.LFB580:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 96
mov QWORD PTR -72[rbp], rdi
mov DWORD PTR -76[rbp], esi
mov QWORD PTR -88[rbp], rdx
mov DWORD PTR -4[rbp], 0
mov rax, QWORD PTR -72[rbp]
mov eax, DWORD PTR 88[rax]
mov DWORD PTR -20[rbp], eax
cmp DWORD PTR -20[rbp], 0
je .L3626
mov rax, QWORD PTR -72[rbp]
movzx eax, WORD PTR 60[rax]
test ax, ax
jne .L3627
mov rax, QWORD PTR -72[rbp]
movzx eax, BYTE PTR 70[rax]
test al, al
jne .L3627
.L3626:
mov rax, QWORD PTR -88[rbp]
mov DWORD PTR [rax], 0
mov eax, 0
jmp .L3628
.L3627:
mov rax, QWORD PTR -72[rbp]
mov eax, DWORD PTR 120[rax]
mov edi, eax
call walFramePage
mov DWORD PTR -24[rbp], eax
mov eax, DWORD PTR -20[rbp]
mov edi, eax
call walFramePage
mov DWORD PTR -8[rbp], eax
jmp .L3629
.L3637:
lea rdi, -52[rbp]
lea rcx, -48[rbp]
lea rdx, -40[rbp]
mov esi, DWORD PTR -8[rbp]
mov rax, QWORD PTR -72[rbp]
mov r8, rdi
mov rdi, rax
call walHashGet
mov DWORD PTR -28[rbp], eax
cmp DWORD PTR -28[rbp], 0
je .L3630
mov eax, DWORD PTR -28[rbp]
jmp .L3628
.L3630:
mov DWORD PTR -16[rbp], 8192
mov eax, DWORD PTR -76[rbp]
mov edi, eax
call walHash
mov DWORD PTR -12[rbp], eax
jmp .L3632
.L3635:
mov rax, QWORD PTR -40[rbp]
mov edx, DWORD PTR -12[rbp]
movsx rdx, edx
add rdx, rdx
add rax, rdx
movzx eax, WORD PTR [rax]
movzx edx, ax
mov eax, DWORD PTR -52[rbp]
add eax, edx
mov DWORD PTR -32[rbp], eax
mov eax, DWORD PTR -32[rbp]
cmp eax, DWORD PTR -20[rbp]
ja .L3633
mov rax, QWORD PTR -72[rbp]
mov eax, DWORD PTR 120[rax]
cmp eax, DWORD PTR -32[rbp]
ja .L3633
mov rax, QWORD PTR -48[rbp]
mov rdx, QWORD PTR -40[rbp]
mov ecx, DWORD PTR -12[rbp]
movsx rcx, ecx
add rcx, rcx
add rdx, rcx
movzx edx, WORD PTR [rdx]
movzx edx, dx
sal rdx, 2
add rax, rdx
mov eax, DWORD PTR [rax]
cmp eax, DWORD PTR -76[rbp]
jne .L3633
mov eax, DWORD PTR -32[rbp]
mov DWORD PTR -4[rbp], eax
.L3633:
mov eax, DWORD PTR -16[rbp]
lea edx, -1[rax]
mov DWORD PTR -16[rbp], edx
test eax, eax
jne .L3634
mov edi, 58492
call sqlite3CorruptError
jmp .L3628
.L3634:
mov eax, DWORD PTR -12[rbp]
mov edi, eax
call walNextHash
mov DWORD PTR -12[rbp], eax
.L3632:
mov rax, QWORD PTR -40[rbp]
mov edx, DWORD PTR -12[rbp]
movsx rdx, edx
add rdx, rdx
add rax, rdx
movzx eax, WORD PTR [rax]
test ax, ax
jne .L3635
sub DWORD PTR -8[rbp], 1
.L3629:
mov eax, DWORD PTR -8[rbp]
cmp eax, DWORD PTR -24[rbp]
jl .L3636
cmp DWORD PTR -4[rbp], 0
je .L3637
.L3636:
mov rax, QWORD PTR -88[rbp]
mov edx, DWORD PTR -4[rbp]
mov DWORD PTR [rax], edx
mov eax, 0
.L3628:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE580:
.size sqlite3WalFindFrame, .-sqlite3WalFindFrame
.type sqlite3WalReadFrame, @function
sqlite3WalReadFrame:
.LFB581:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 48
mov QWORD PTR -24[rbp], rdi
mov DWORD PTR -28[rbp], esi
mov DWORD PTR -32[rbp], edx
mov QWORD PTR -40[rbp], rcx
mov rax, QWORD PTR -24[rbp]
movzx eax, WORD PTR 86[rax]
movzx eax, ax
mov DWORD PTR -4[rbp], eax
mov eax, DWORD PTR -4[rbp]
and eax, 65024
mov edx, eax
mov eax, DWORD PTR -4[rbp]
sal eax, 16
and eax, 65536
or eax, edx
mov DWORD PTR -4[rbp], eax
mov eax, DWORD PTR -28[rbp]
sub eax, 1
mov edx, eax
mov eax, DWORD PTR -4[rbp]
add eax, 24
cdqe
imul rax, rdx
add rax, 56
mov QWORD PTR -16[rbp], rax
mov eax, DWORD PTR -4[rbp]
cmp DWORD PTR -32[rbp], eax
cmovle eax, DWORD PTR -32[rbp]
mov edx, eax
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 16[rax]
mov rcx, QWORD PTR -16[rbp]
mov rsi, QWORD PTR -40[rbp]
mov rdi, rax
call sqlite3OsRead
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE581:
.size sqlite3WalReadFrame, .-sqlite3WalReadFrame
.type sqlite3WalDbsize, @function
sqlite3WalDbsize:
.LFB582:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
mov QWORD PTR -8[rbp], rdi
cmp QWORD PTR -8[rbp], 0
je .L3641
mov rax, QWORD PTR -8[rbp]
movzx eax, WORD PTR 60[rax]
test ax, ax
js .L3641
mov rax, QWORD PTR -8[rbp]
mov eax, DWORD PTR 92[rax]
jmp .L3642
.L3641:
mov eax, 0
.L3642:
pop rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE582:
.size sqlite3WalDbsize, .-sqlite3WalDbsize
.type sqlite3WalBeginWriteTransaction, @function
sqlite3WalBeginWriteTransaction:
.LFB583:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 32
mov QWORD PTR -24[rbp], rdi
mov rax, QWORD PTR -24[rbp]
movzx eax, BYTE PTR 66[rax]
test al, al
je .L3644
mov eax, 8
jmp .L3645
.L3644:
mov rax, QWORD PTR -24[rbp]
mov edx, 1
mov esi, 0
mov rdi, rax
call walLockExclusive
mov DWORD PTR -4[rbp], eax
cmp DWORD PTR -4[rbp], 0
je .L3646
mov eax, DWORD PTR -4[rbp]
jmp .L3645
.L3646:
mov rax, QWORD PTR -24[rbp]
mov BYTE PTR 64[rax], 1
mov rax, QWORD PTR -24[rbp]
mov rdi, rax
call walIndexHdr
mov rcx, rax
mov rax, QWORD PTR -24[rbp]
add rax, 72
mov edx, 48
mov rsi, rcx
mov rdi, rax
call memcmp@PLT
test eax, eax
je .L3647
mov rax, QWORD PTR -24[rbp]
mov edx, 1
mov esi, 0
mov rdi, rax
call walUnlockExclusive
mov rax, QWORD PTR -24[rbp]
mov BYTE PTR 64[rax], 0
mov DWORD PTR -4[rbp], 517
.L3647:
mov eax, DWORD PTR -4[rbp]
.L3645:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE583:
.size sqlite3WalBeginWriteTransaction, .-sqlite3WalBeginWriteTransaction
.type sqlite3WalEndWriteTransaction, @function
sqlite3WalEndWriteTransaction:
.LFB584:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 16
mov QWORD PTR -8[rbp], rdi
mov rax, QWORD PTR -8[rbp]
movzx eax, BYTE PTR 64[rax]
test al, al
je .L3649
mov rax, QWORD PTR -8[rbp]
mov edx, 1
mov esi, 0
mov rdi, rax
call walUnlockExclusive
mov rax, QWORD PTR -8[rbp]
mov BYTE PTR 64[rax], 0
mov rax, QWORD PTR -8[rbp]
mov DWORD PTR 124[rax], 0
mov rax, QWORD PTR -8[rbp]
mov BYTE PTR 67[rax], 0
.L3649:
mov eax, 0
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE584:
.size sqlite3WalEndWriteTransaction, .-sqlite3WalEndWriteTransaction
.type sqlite3WalUndo, @function
sqlite3WalUndo:
.LFB585:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 48
mov QWORD PTR -24[rbp], rdi
mov QWORD PTR -32[rbp], rsi
mov QWORD PTR -40[rbp], rdx
mov DWORD PTR -4[rbp], 0
mov rax, QWORD PTR -24[rbp]
movzx eax, BYTE PTR 64[rax]
test al, al
je .L3652
mov rax, QWORD PTR -24[rbp]
mov eax, DWORD PTR 88[rax]
mov DWORD PTR -12[rbp], eax
mov rax, QWORD PTR -24[rbp]
mov rdi, rax
call walIndexHdr
mov rcx, rax
mov rax, QWORD PTR -24[rbp]
add rax, 72
mov edx, 48
mov rsi, rcx
mov rdi, rax
call memcpy@PLT
mov rax, QWORD PTR -24[rbp]
mov eax, DWORD PTR 88[rax]
add eax, 1
mov DWORD PTR -8[rbp], eax
jmp .L3653
.L3655:
mov edx, DWORD PTR -8[rbp]
mov rax, QWORD PTR -24[rbp]
mov esi, edx
mov rdi, rax
call walFramePgno
mov ecx, eax
mov rdx, QWORD PTR -40[rbp]
mov rax, QWORD PTR -32[rbp]
mov esi, ecx
mov rdi, rdx
call rax
mov DWORD PTR -4[rbp], eax
add DWORD PTR -8[rbp], 1
.L3653:
cmp DWORD PTR -4[rbp], 0
jne .L3654
mov eax, DWORD PTR -8[rbp]
cmp eax, DWORD PTR -12[rbp]
jbe .L3655
.L3654:
mov rax, QWORD PTR -24[rbp]
mov eax, DWORD PTR 88[rax]
cmp eax, DWORD PTR -12[rbp]
je .L3652
mov rax, QWORD PTR -24[rbp]
mov rdi, rax
call walCleanupHash
.L3652:
mov eax, DWORD PTR -4[rbp]
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE585:
.size sqlite3WalUndo, .-sqlite3WalUndo
.type sqlite3WalSavepoint, @function
sqlite3WalSavepoint:
.LFB586:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
mov QWORD PTR -8[rbp], rdi
mov QWORD PTR -16[rbp], rsi
mov rax, QWORD PTR -8[rbp]
mov edx, DWORD PTR 88[rax]
mov rax, QWORD PTR -16[rbp]
mov DWORD PTR [rax], edx
mov rax, QWORD PTR -16[rbp]
lea rdx, 4[rax]
mov rax, QWORD PTR -8[rbp]
mov eax, DWORD PTR 96[rax]
mov DWORD PTR [rdx], eax
mov rax, QWORD PTR -16[rbp]
lea rdx, 8[rax]
mov rax, QWORD PTR -8[rbp]
mov eax, DWORD PTR 100[rax]
mov DWORD PTR [rdx], eax
mov rax, QWORD PTR -16[rbp]
lea rdx, 12[rax]
mov rax, QWORD PTR -8[rbp]
mov eax, DWORD PTR 136[rax]
mov DWORD PTR [rdx], eax
nop
pop rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE586:
.size sqlite3WalSavepoint, .-sqlite3WalSavepoint
.type sqlite3WalSavepointUndo, @function
sqlite3WalSavepointUndo:
.LFB587:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 32
mov QWORD PTR -24[rbp], rdi
mov QWORD PTR -32[rbp], rsi
mov DWORD PTR -4[rbp], 0
mov rax, QWORD PTR -32[rbp]
add rax, 12
mov edx, DWORD PTR [rax]
mov rax, QWORD PTR -24[rbp]
mov eax, DWORD PTR 136[rax]
cmp edx, eax
je .L3659
mov rax, QWORD PTR -32[rbp]
mov DWORD PTR [rax], 0
mov rax, QWORD PTR -32[rbp]
lea rdx, 12[rax]
mov rax, QWORD PTR -24[rbp]
mov eax, DWORD PTR 136[rax]
mov DWORD PTR [rdx], eax
.L3659:
mov rax, QWORD PTR -32[rbp]
mov edx, DWORD PTR [rax]
mov rax, QWORD PTR -24[rbp]
mov eax, DWORD PTR 88[rax]
cmp edx, eax
jnb .L3660
mov rax, QWORD PTR -32[rbp]
mov edx, DWORD PTR [rax]
mov rax, QWORD PTR -24[rbp]
mov DWORD PTR 88[rax], edx
mov rax, QWORD PTR -32[rbp]
mov edx, DWORD PTR 4[rax]
mov rax, QWORD PTR -24[rbp]
mov DWORD PTR 96[rax], edx
mov rax, QWORD PTR -32[rbp]
mov edx, DWORD PTR 8[rax]
mov rax, QWORD PTR -24[rbp]
mov DWORD PTR 100[rax], edx
mov rax, QWORD PTR -24[rbp]
mov rdi, rax
call walCleanupHash
.L3660:
mov eax, DWORD PTR -4[rbp]
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE587:
.size sqlite3WalSavepointUndo, .-sqlite3WalSavepointUndo
.type walRestartLog, @function
walRestartLog:
.LFB588:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 48
mov QWORD PTR -40[rbp], rdi
mov DWORD PTR -4[rbp], 0
mov rax, QWORD PTR -40[rbp]
movzx eax, WORD PTR 60[rax]
test ax, ax
jne .L3663
mov rax, QWORD PTR -40[rbp]
mov rdi, rax
call walCkptInfo
mov QWORD PTR -16[rbp], rax
mov rax, QWORD PTR -16[rbp]
mov eax, DWORD PTR [rax]
test eax, eax
je .L3664
lea rax, -20[rbp]
mov rsi, rax
mov edi, 4
call sqlite3_randomness
mov rax, QWORD PTR -40[rbp]
mov edx, 4
mov esi, 4
mov rdi, rax
call walLockExclusive
mov DWORD PTR -4[rbp], eax
cmp DWORD PTR -4[rbp], 0
jne .L3665
mov edx, DWORD PTR -20[rbp]
mov rax, QWORD PTR -40[rbp]
mov esi, edx
mov rdi, rax
call walRestartHdr
mov rax, QWORD PTR -40[rbp]
mov edx, 4
mov esi, 4
mov rdi, rax
call walUnlockExclusive
jmp .L3664
.L3665:
cmp DWORD PTR -4[rbp], 5
je .L3664
mov eax, DWORD PTR -4[rbp]
jmp .L3667
.L3664:
mov rax, QWORD PTR -40[rbp]
mov esi, 3
mov rdi, rax
call walUnlockShared
mov rax, QWORD PTR -40[rbp]
mov WORD PTR 60[rax], -1
mov DWORD PTR -8[rbp], 0
.L3668:
add DWORD PTR -8[rbp], 1
mov edx, DWORD PTR -8[rbp]
lea rsi, -24[rbp]
mov rax, QWORD PTR -40[rbp]
mov ecx, edx
mov edx, 1
mov rdi, rax
call walTryBeginRead
mov DWORD PTR -4[rbp], eax
cmp DWORD PTR -4[rbp], -1
je .L3668
.L3663:
mov eax, DWORD PTR -4[rbp]
.L3667:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE588:
.size walRestartLog, .-walRestartLog
.type walWriteToLog, @function
walWriteToLog:
.LFB589:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 48
mov QWORD PTR -24[rbp], rdi
mov QWORD PTR -32[rbp], rsi
mov DWORD PTR -36[rbp], edx
mov QWORD PTR -48[rbp], rcx
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 16[rax]
cmp rax, QWORD PTR -48[rbp]
jle .L3670
mov eax, DWORD PTR -36[rbp]
movsx rdx, eax
mov rax, QWORD PTR -48[rbp]
add rdx, rax
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 16[rax]
cmp rdx, rax
jl .L3670
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 16[rax]
mov edx, eax
mov rax, QWORD PTR -48[rbp]
sub edx, eax
mov eax, edx
mov DWORD PTR -4[rbp], eax
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 8[rax]
mov rcx, QWORD PTR -48[rbp]
mov edx, DWORD PTR -4[rbp]
mov rsi, QWORD PTR -32[rbp]
mov rdi, rax
call sqlite3OsWrite
mov DWORD PTR -8[rbp], eax
cmp DWORD PTR -8[rbp], 0
je .L3671
mov eax, DWORD PTR -8[rbp]
jmp .L3672
.L3671:
mov eax, DWORD PTR -4[rbp]
cdqe
add QWORD PTR -48[rbp], rax
mov eax, DWORD PTR -4[rbp]
sub DWORD PTR -36[rbp], eax
mov eax, DWORD PTR -4[rbp]
cdqe
add QWORD PTR -32[rbp], rax
mov rax, QWORD PTR -24[rbp]
mov eax, DWORD PTR 24[rax]
and eax, 3
mov edx, eax
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 8[rax]
mov esi, edx
mov rdi, rax
call sqlite3OsSync
mov DWORD PTR -8[rbp], eax
cmp DWORD PTR -36[rbp], 0
je .L3673
cmp DWORD PTR -8[rbp], 0
je .L3670
.L3673:
mov eax, DWORD PTR -8[rbp]
jmp .L3672
.L3670:
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 8[rax]
mov rcx, QWORD PTR -48[rbp]
mov edx, DWORD PTR -36[rbp]
mov rsi, QWORD PTR -32[rbp]
mov rdi, rax
call sqlite3OsWrite
mov DWORD PTR -8[rbp], eax
mov eax, DWORD PTR -8[rbp]
.L3672:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE589:
.size walWriteToLog, .-walWriteToLog
.type walWriteOneFrame, @function
walWriteOneFrame:
.LFB590:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 80
mov QWORD PTR -56[rbp], rdi
mov QWORD PTR -64[rbp], rsi
mov DWORD PTR -68[rbp], edx
mov QWORD PTR -80[rbp], rcx
mov rax, QWORD PTR -64[rbp]
mov rax, QWORD PTR 8[rax]
mov QWORD PTR -8[rbp], rax
mov edx, DWORD PTR -68[rbp]
mov rax, QWORD PTR -64[rbp]
mov esi, DWORD PTR 48[rax]
mov rax, QWORD PTR -56[rbp]
mov rax, QWORD PTR [rax]
lea rdi, -48[rbp]
mov rcx, QWORD PTR -8[rbp]
mov r8, rdi
mov rdi, rax
call walEncodeFrame
mov rdx, QWORD PTR -80[rbp]
lea rsi, -48[rbp]
mov rax, QWORD PTR -56[rbp]
mov rcx, rdx
mov edx, 24
mov rdi, rax
call walWriteToLog
mov DWORD PTR -12[rbp], eax
cmp DWORD PTR -12[rbp], 0
je .L3675
mov eax, DWORD PTR -12[rbp]
jmp .L3677
.L3675:
mov rax, QWORD PTR -80[rbp]
add rax, 24
mov rcx, rax
mov rax, QWORD PTR -56[rbp]
mov edx, DWORD PTR 28[rax]
mov rsi, QWORD PTR -8[rbp]
mov rax, QWORD PTR -56[rbp]
mov rdi, rax
call walWriteToLog
mov DWORD PTR -12[rbp], eax
mov eax, DWORD PTR -12[rbp]
.L3677:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE590:
.size walWriteOneFrame, .-walWriteOneFrame
.type walRewriteChecksums, @function
walRewriteChecksums:
.LFB591:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 96
mov QWORD PTR -88[rbp], rdi
mov DWORD PTR -92[rbp], esi
mov rax, QWORD PTR -88[rbp]
mov eax, DWORD PTR 56[rax]
mov DWORD PTR -20[rbp], eax
mov DWORD PTR -4[rbp], 0
mov eax, DWORD PTR -20[rbp]
add eax, 24
mov edi, eax
call sqlite3_malloc
mov QWORD PTR -32[rbp], rax
cmp QWORD PTR -32[rbp], 0
jne .L3679
mov eax, 7
jmp .L3687
.L3679:
mov rax, QWORD PTR -88[rbp]
mov eax, DWORD PTR 124[rax]
cmp eax, 1
jne .L3681
mov QWORD PTR -16[rbp], 24
jmp .L3682
.L3681:
mov rax, QWORD PTR -88[rbp]
mov eax, DWORD PTR 124[rax]
sub eax, 2
mov edx, eax
mov eax, DWORD PTR -20[rbp]
add eax, 24
cdqe
imul rax, rdx
add rax, 48
mov QWORD PTR -16[rbp], rax
.L3682:
mov rax, QWORD PTR -88[rbp]
mov rax, QWORD PTR 16[rax]
mov rdx, QWORD PTR -16[rbp]
mov rsi, QWORD PTR -32[rbp]
mov rcx, rdx
mov edx, 8
mov rdi, rax
call sqlite3OsRead
mov DWORD PTR -4[rbp], eax
mov rax, QWORD PTR -32[rbp]
mov rdi, rax
call sqlite3Get4byte
mov edx, eax
mov rax, QWORD PTR -88[rbp]
mov DWORD PTR 96[rax], edx
mov rax, QWORD PTR -32[rbp]
add rax, 4
mov rdi, rax
call sqlite3Get4byte
mov edx, eax
mov rax, QWORD PTR -88[rbp]
mov DWORD PTR 100[rax], edx
mov rax, QWORD PTR -88[rbp]
mov eax, DWORD PTR 124[rax]
mov DWORD PTR -8[rbp], eax
mov rax, QWORD PTR -88[rbp]
mov DWORD PTR 124[rax], 0
jmp .L3683
.L3686:
mov eax, DWORD PTR -8[rbp]
sub eax, 1
mov edx, eax
mov eax, DWORD PTR -20[rbp]
add eax, 24
cdqe
imul rax, rdx
add rax, 32
mov QWORD PTR -40[rbp], rax
mov eax, DWORD PTR -20[rbp]
lea edi, 24[rax]
mov rax, QWORD PTR -88[rbp]
mov rax, QWORD PTR 16[rax]
mov rdx, QWORD PTR -40[rbp]
mov rsi, QWORD PTR -32[rbp]
mov rcx, rdx
mov edx, edi
mov rdi, rax
call sqlite3OsRead
mov DWORD PTR -4[rbp], eax
cmp DWORD PTR -4[rbp], 0
jne .L3684
mov rax, QWORD PTR -32[rbp]
mov rdi, rax
call sqlite3Get4byte
mov DWORD PTR -44[rbp], eax
mov rax, QWORD PTR -32[rbp]
add rax, 4
mov rdi, rax
call sqlite3Get4byte
mov DWORD PTR -48[rbp], eax
mov rax, QWORD PTR -32[rbp]
lea rcx, 24[rax]
lea rdi, -80[rbp]
mov edx, DWORD PTR -48[rbp]
mov esi, DWORD PTR -44[rbp]
mov rax, QWORD PTR -88[rbp]
mov r8, rdi
mov rdi, rax
call walEncodeFrame
mov rax, QWORD PTR -88[rbp]
mov rax, QWORD PTR 16[rax]
mov rdx, QWORD PTR -40[rbp]
lea rsi, -80[rbp]
mov rcx, rdx
mov edx, 24
mov rdi, rax
call sqlite3OsWrite
mov DWORD PTR -4[rbp], eax
.L3684:
add DWORD PTR -8[rbp], 1
.L3683:
cmp DWORD PTR -4[rbp], 0
jne .L3685
mov eax, DWORD PTR -8[rbp]
cmp eax, DWORD PTR -92[rbp]
jbe .L3686
.L3685:
mov rax, QWORD PTR -32[rbp]
mov rdi, rax
call sqlite3_free
mov eax, DWORD PTR -4[rbp]
.L3687:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE591:
.size walRewriteChecksums, .-walRewriteChecksums
.type sqlite3WalFrames, @function
sqlite3WalFrames:
.LFB592:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 208
mov QWORD PTR -184[rbp], rdi
mov DWORD PTR -188[rbp], esi
mov QWORD PTR -200[rbp], rdx
mov DWORD PTR -192[rbp], ecx
mov DWORD PTR -204[rbp], r8d
mov DWORD PTR -208[rbp], r9d
mov QWORD PTR -24[rbp], 0
mov DWORD PTR -28[rbp], 0
mov DWORD PTR -44[rbp], 0
mov rax, QWORD PTR -184[rbp]
mov rdi, rax
call walIndexHdr
mov QWORD PTR -64[rbp], rax
mov rax, QWORD PTR -184[rbp]
lea rcx, 72[rax]
mov rax, QWORD PTR -64[rbp]
mov edx, 48
mov rsi, rax
mov rdi, rcx
call memcmp@PLT
test eax, eax
je .L3689
mov rax, QWORD PTR -64[rbp]
mov eax, DWORD PTR 16[rax]
add eax, 1
mov DWORD PTR -44[rbp], eax
.L3689:
mov rax, QWORD PTR -184[rbp]
mov rdi, rax
call walRestartLog
mov DWORD PTR -4[rbp], eax
cmp DWORD PTR -4[rbp], 0
je .L3690
mov eax, DWORD PTR -4[rbp]
jmp .L3727
.L3690:
mov rax, QWORD PTR -184[rbp]
mov eax, DWORD PTR 88[rax]
mov DWORD PTR -8[rbp], eax
cmp DWORD PTR -8[rbp], 0
jne .L3692
lea rax, -176[rbp]
mov esi, 931071618
mov rdi, rax
call sqlite3Put4byte
lea rax, -176[rbp]
add rax, 4
mov esi, 3007000
mov rdi, rax
call sqlite3Put4byte
mov eax, DWORD PTR -188[rbp]
lea rdx, -176[rbp]
add rdx, 8
mov esi, eax
mov rdi, rdx
call sqlite3Put4byte
mov rax, QWORD PTR -184[rbp]
mov eax, DWORD PTR 136[rax]
lea rdx, -176[rbp]
add rdx, 12
mov esi, eax
mov rdi, rdx
call sqlite3Put4byte
mov rax, QWORD PTR -184[rbp]
mov eax, DWORD PTR 136[rax]
test eax, eax
jne .L3693
mov rax, QWORD PTR -184[rbp]
add rax, 104
mov rsi, rax
mov edi, 8
call sqlite3_randomness
.L3693:
mov rax, QWORD PTR -184[rbp]
add rax, 104
mov rax, QWORD PTR [rax]
mov QWORD PTR -160[rbp], rax
lea rdx, -136[rbp]
lea rax, -176[rbp]
mov r8, rdx
mov ecx, 0
mov edx, 24
mov rsi, rax
mov edi, 1
call walChecksumBytes
mov eax, DWORD PTR -136[rbp]
lea rdx, -176[rbp]
add rdx, 24
mov esi, eax
mov rdi, rdx
call sqlite3Put4byte
mov eax, DWORD PTR -132[rbp]
lea rdx, -176[rbp]
add rdx, 28
mov esi, eax
mov rdi, rdx
call sqlite3Put4byte
mov edx, DWORD PTR -188[rbp]
mov rax, QWORD PTR -184[rbp]
mov DWORD PTR 56[rax], edx
mov rax, QWORD PTR -184[rbp]
mov BYTE PTR 85[rax], 0
mov edx, DWORD PTR -136[rbp]
mov rax, QWORD PTR -184[rbp]
mov DWORD PTR 96[rax], edx
mov edx, DWORD PTR -132[rbp]
mov rax, QWORD PTR -184[rbp]
mov DWORD PTR 100[rax], edx
mov rax, QWORD PTR -184[rbp]
mov BYTE PTR 67[rax], 1
mov rax, QWORD PTR -184[rbp]
mov rax, QWORD PTR 16[rax]
lea rsi, -176[rbp]
mov ecx, 0
mov edx, 32
mov rdi, rax
call sqlite3OsWrite
mov DWORD PTR -4[rbp], eax
cmp DWORD PTR -4[rbp], 0
je .L3694
mov eax, DWORD PTR -4[rbp]
jmp .L3727
.L3694:
mov rax, QWORD PTR -184[rbp]
movzx eax, BYTE PTR 68[rax]
test al, al
je .L3692
mov eax, DWORD PTR -208[rbp]
sar eax, 2
and eax, 3
mov edx, eax
mov rax, QWORD PTR -184[rbp]
mov rax, QWORD PTR 16[rax]
mov esi, edx
mov rdi, rax
call sqlite3OsSync
mov DWORD PTR -4[rbp], eax
cmp DWORD PTR -4[rbp], 0
je .L3692
mov eax, DWORD PTR -4[rbp]
jmp .L3727
.L3692:
mov rax, QWORD PTR -184[rbp]
mov QWORD PTR -128[rbp], rax
mov rax, QWORD PTR -184[rbp]
mov rax, QWORD PTR 16[rax]
mov QWORD PTR -120[rbp], rax
mov QWORD PTR -112[rbp], 0
mov eax, DWORD PTR -208[rbp]
mov DWORD PTR -104[rbp], eax
mov eax, DWORD PTR -188[rbp]
mov DWORD PTR -100[rbp], eax
mov edx, DWORD PTR -8[rbp]
mov eax, DWORD PTR -188[rbp]
add eax, 24
cdqe
imul rax, rdx
add rax, 32
mov QWORD PTR -40[rbp], rax
mov eax, DWORD PTR -188[rbp]
add eax, 24
mov DWORD PTR -68[rbp], eax
mov rax, QWORD PTR -200[rbp]
mov QWORD PTR -16[rbp], rax
jmp .L3697
.L3708:
cmp DWORD PTR -44[rbp], 0
je .L3698
mov rax, QWORD PTR -16[rbp]
mov rax, QWORD PTR 32[rax]
test rax, rax
jne .L3699
cmp DWORD PTR -204[rbp], 0
jne .L3698
.L3699:
mov DWORD PTR -140[rbp], 0
mov rax, QWORD PTR -16[rbp]
mov ecx, DWORD PTR 48[rax]
lea rdx, -140[rbp]
mov rax, QWORD PTR -184[rbp]
mov esi, ecx
mov rdi, rax
call sqlite3WalFindFrame
mov eax, DWORD PTR -140[rbp]
cmp eax, DWORD PTR -44[rbp]
jb .L3698
mov eax, DWORD PTR -140[rbp]
sub eax, 1
mov edx, eax
mov eax, DWORD PTR -188[rbp]
add eax, 24
cdqe
imul rax, rdx
add rax, 56
mov QWORD PTR -80[rbp], rax
mov rax, QWORD PTR -184[rbp]
mov eax, DWORD PTR 124[rax]
test eax, eax
je .L3701
mov rax, QWORD PTR -184[rbp]
mov edx, DWORD PTR 124[rax]
mov eax, DWORD PTR -140[rbp]
cmp edx, eax
jbe .L3702
.L3701:
mov edx, DWORD PTR -140[rbp]
mov rax, QWORD PTR -184[rbp]
mov DWORD PTR 124[rax], edx
.L3702:
mov rax, QWORD PTR -16[rbp]
mov rax, QWORD PTR 8[rax]
mov QWORD PTR -88[rbp], rax
mov rax, QWORD PTR -184[rbp]
mov rax, QWORD PTR 16[rax]
mov rcx, QWORD PTR -80[rbp]
mov edx, DWORD PTR -188[rbp]
mov rsi, QWORD PTR -88[rbp]
mov rdi, rax
call sqlite3OsWrite
mov DWORD PTR -4[rbp], eax
cmp DWORD PTR -4[rbp], 0
je .L3703
mov eax, DWORD PTR -4[rbp]
jmp .L3727
.L3703:
mov rax, QWORD PTR -16[rbp]
movzx eax, WORD PTR 52[rax]
and eax, -65
mov edx, eax
mov rax, QWORD PTR -16[rbp]
mov WORD PTR 52[rax], dx
jmp .L3704
.L3698:
add DWORD PTR -8[rbp], 1
cmp DWORD PTR -204[rbp], 0
je .L3705
mov rax, QWORD PTR -16[rbp]
mov rax, QWORD PTR 32[rax]
test rax, rax
jne .L3705
mov eax, DWORD PTR -192[rbp]
jmp .L3706
.L3705:
mov eax, 0
.L3706:
mov DWORD PTR -72[rbp], eax
mov rcx, QWORD PTR -40[rbp]
mov edx, DWORD PTR -72[rbp]
mov rsi, QWORD PTR -16[rbp]
lea rax, -128[rbp]
mov rdi, rax
call walWriteOneFrame
mov DWORD PTR -4[rbp], eax
cmp DWORD PTR -4[rbp], 0
je .L3707
mov eax, DWORD PTR -4[rbp]
jmp .L3727
.L3707:
mov rax, QWORD PTR -16[rbp]
mov QWORD PTR -24[rbp], rax
mov eax, DWORD PTR -68[rbp]
cdqe
add QWORD PTR -40[rbp], rax
mov rax, QWORD PTR -16[rbp]
movzx eax, WORD PTR 52[rax]
or eax, 64
mov edx, eax
mov rax, QWORD PTR -16[rbp]
mov WORD PTR 52[rax], dx
.L3704:
mov rax, QWORD PTR -16[rbp]
mov rax, QWORD PTR 32[rax]
mov QWORD PTR -16[rbp], rax
.L3697:
cmp QWORD PTR -16[rbp], 0
jne .L3708
cmp DWORD PTR -204[rbp], 0
je .L3709
mov rax, QWORD PTR -184[rbp]
mov eax, DWORD PTR 124[rax]
test eax, eax
je .L3709
mov edx, DWORD PTR -8[rbp]
mov rax, QWORD PTR -184[rbp]
mov esi, edx
mov rdi, rax
call walRewriteChecksums
mov DWORD PTR -4[rbp], eax
cmp DWORD PTR -4[rbp], 0
je .L3709
mov eax, DWORD PTR -4[rbp]
jmp .L3727
.L3709:
cmp DWORD PTR -204[rbp], 0
je .L3710
mov eax, DWORD PTR -208[rbp]
and eax, 3
test eax, eax
je .L3710
mov DWORD PTR -48[rbp], 1
mov rax, QWORD PTR -184[rbp]
movzx eax, BYTE PTR 69[rax]
test al, al
je .L3711
mov rax, QWORD PTR -184[rbp]
mov rax, QWORD PTR 16[rax]
mov rdi, rax
call sqlite3SectorSize
mov DWORD PTR -92[rbp], eax
mov eax, DWORD PTR -92[rbp]
movsx rdx, eax
mov rax, QWORD PTR -40[rbp]
add rax, rdx
sub rax, 1
mov edx, DWORD PTR -92[rbp]
movsx rcx, edx
cqo
idiv rcx
mov rdx, rax
mov eax, DWORD PTR -92[rbp]
cdqe
imul rax, rdx
mov QWORD PTR -112[rbp], rax
mov rax, QWORD PTR -112[rbp]
cmp rax, QWORD PTR -40[rbp]
sete al
movzx eax, al
mov DWORD PTR -48[rbp], eax
jmp .L3712
.L3714:
mov edx, DWORD PTR -192[rbp]
mov rcx, QWORD PTR -40[rbp]
mov rsi, QWORD PTR -24[rbp]
lea rax, -128[rbp]
mov rdi, rax
call walWriteOneFrame
mov DWORD PTR -4[rbp], eax
cmp DWORD PTR -4[rbp], 0
je .L3713
mov eax, DWORD PTR -4[rbp]
jmp .L3727
.L3713:
mov eax, DWORD PTR -68[rbp]
cdqe
add QWORD PTR -40[rbp], rax
add DWORD PTR -28[rbp], 1
.L3712:
mov rax, QWORD PTR -112[rbp]
cmp rax, QWORD PTR -40[rbp]
jg .L3714
.L3711:
cmp DWORD PTR -48[rbp], 0
je .L3710
mov eax, DWORD PTR -208[rbp]
and eax, 3
mov edx, eax
mov rax, QWORD PTR -120[rbp]
mov esi, edx
mov rdi, rax
call sqlite3OsSync
mov DWORD PTR -4[rbp], eax
.L3710:
cmp DWORD PTR -204[rbp], 0
je .L3715
mov rax, QWORD PTR -184[rbp]
movzx eax, BYTE PTR 67[rax]
test al, al
je .L3715
mov rax, QWORD PTR -184[rbp]
mov rax, QWORD PTR 32[rax]
test rax, rax
js .L3715
mov rax, QWORD PTR -184[rbp]
mov rax, QWORD PTR 32[rax]
mov QWORD PTR -56[rbp], rax
mov edx, DWORD PTR -28[rbp]
mov eax, DWORD PTR -8[rbp]
add eax, edx
mov edx, eax
mov eax, DWORD PTR -188[rbp]
add eax, 24
cdqe
imul rax, rdx
lea rdx, 32[rax]
mov rax, QWORD PTR -184[rbp]
mov rax, QWORD PTR 32[rax]
cmp rdx, rax
jle .L3716
mov edx, DWORD PTR -28[rbp]
mov eax, DWORD PTR -8[rbp]
add eax, edx
mov edx, eax
mov eax, DWORD PTR -188[rbp]
add eax, 24
cdqe
imul rax, rdx
add rax, 32
mov QWORD PTR -56[rbp], rax
.L3716:
mov rdx, QWORD PTR -56[rbp]
mov rax, QWORD PTR -184[rbp]
mov rsi, rdx
mov rdi, rax
call walLimitSize
mov rax, QWORD PTR -184[rbp]
mov BYTE PTR 67[rax], 0
.L3715:
mov rax, QWORD PTR -184[rbp]
mov eax, DWORD PTR 88[rax]
mov DWORD PTR -8[rbp], eax
mov rax, QWORD PTR -200[rbp]
mov QWORD PTR -16[rbp], rax
jmp .L3717
.L3721:
mov rax, QWORD PTR -16[rbp]
movzx eax, WORD PTR 52[rax]
movzx eax, ax
and eax, 64
test eax, eax
je .L3728
add DWORD PTR -8[rbp], 1
mov rax, QWORD PTR -16[rbp]
mov edx, DWORD PTR 48[rax]
mov ecx, DWORD PTR -8[rbp]
mov rax, QWORD PTR -184[rbp]
mov esi, ecx
mov rdi, rax
call walIndexAppend
mov DWORD PTR -4[rbp], eax
jmp .L3719
.L3728:
nop
.L3719:
mov rax, QWORD PTR -16[rbp]
mov rax, QWORD PTR 32[rax]
mov QWORD PTR -16[rbp], rax
.L3717:
cmp QWORD PTR -16[rbp], 0
je .L3722
cmp DWORD PTR -4[rbp], 0
je .L3721
jmp .L3722
.L3724:
add DWORD PTR -8[rbp], 1
sub DWORD PTR -28[rbp], 1
mov rax, QWORD PTR -24[rbp]
mov edx, DWORD PTR 48[rax]
mov ecx, DWORD PTR -8[rbp]
mov rax, QWORD PTR -184[rbp]
mov esi, ecx
mov rdi, rax
call walIndexAppend
mov DWORD PTR -4[rbp], eax
.L3722:
cmp DWORD PTR -4[rbp], 0
jne .L3723
cmp DWORD PTR -28[rbp], 0
jg .L3724
.L3723:
cmp DWORD PTR -4[rbp], 0
jne .L3725
mov eax, DWORD PTR -188[rbp]
mov al, 0
mov edx, eax
mov eax, DWORD PTR -188[rbp]
sar eax, 16
or eax, edx
mov edx, eax
mov rax, QWORD PTR -184[rbp]
mov WORD PTR 86[rax], dx
mov rax, QWORD PTR -184[rbp]
mov edx, DWORD PTR -8[rbp]
mov DWORD PTR 88[rax], edx
cmp DWORD PTR -204[rbp], 0
je .L3726
mov rax, QWORD PTR -184[rbp]
mov eax, DWORD PTR 80[rax]
lea edx, 1[rax]
mov rax, QWORD PTR -184[rbp]
mov DWORD PTR 80[rax], edx
mov rax, QWORD PTR -184[rbp]
mov edx, DWORD PTR -192[rbp]
mov DWORD PTR 92[rax], edx
.L3726:
cmp DWORD PTR -204[rbp], 0
je .L3725
mov rax, QWORD PTR -184[rbp]
mov rdi, rax
call walIndexWriteHdr
mov rax, QWORD PTR -184[rbp]
mov edx, DWORD PTR -8[rbp]
mov DWORD PTR 24[rax], edx
.L3725:
mov eax, DWORD PTR -4[rbp]
.L3727:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE592:
.size sqlite3WalFrames, .-sqlite3WalFrames
.type sqlite3WalCheckpoint, @function
sqlite3WalCheckpoint:
.LFB593:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 80
mov QWORD PTR -40[rbp], rdi
mov QWORD PTR -48[rbp], rsi
mov DWORD PTR -52[rbp], edx
mov QWORD PTR -64[rbp], rcx
mov QWORD PTR -72[rbp], r8
mov DWORD PTR -56[rbp], r9d
mov DWORD PTR -20[rbp], 0
mov eax, DWORD PTR -52[rbp]
mov DWORD PTR -8[rbp], eax
mov rax, QWORD PTR -64[rbp]
mov QWORD PTR -16[rbp], rax
mov rax, QWORD PTR -40[rbp]
movzx eax, BYTE PTR 66[rax]
test al, al
je .L3730
mov eax, 8
jmp .L3745
.L3730:
mov rax, QWORD PTR -40[rbp]
mov edx, 1
mov esi, 1
mov rdi, rax
call walLockExclusive
mov DWORD PTR -4[rbp], eax
cmp DWORD PTR -4[rbp], 0
je .L3732
mov eax, DWORD PTR -4[rbp]
jmp .L3745
.L3732:
mov rax, QWORD PTR -40[rbp]
mov BYTE PTR 65[rax], 1
cmp DWORD PTR -52[rbp], 0
je .L3733
mov rdx, QWORD PTR -72[rbp]
mov rsi, QWORD PTR -64[rbp]
mov rax, QWORD PTR -40[rbp]
mov r8d, 1
mov ecx, 0
mov rdi, rax
call walBusyLock
mov DWORD PTR -4[rbp], eax
cmp DWORD PTR -4[rbp], 0
jne .L3734
mov rax, QWORD PTR -40[rbp]
mov BYTE PTR 64[rax], 1
jmp .L3733
.L3734:
cmp DWORD PTR -4[rbp], 5
jne .L3733
mov DWORD PTR -8[rbp], 0
mov QWORD PTR -16[rbp], 0
mov DWORD PTR -4[rbp], 0
.L3733:
cmp DWORD PTR -4[rbp], 0
jne .L3735
lea rdx, -20[rbp]
mov rax, QWORD PTR -40[rbp]
mov rsi, rdx
mov rdi, rax
call walIndexReadHdr
mov DWORD PTR -4[rbp], eax
mov eax, DWORD PTR -20[rbp]
test eax, eax
je .L3735
mov rax, QWORD PTR -40[rbp]
mov rax, QWORD PTR 8[rax]
mov rax, QWORD PTR [rax]
mov eax, DWORD PTR [rax]
cmp eax, 2
jle .L3735
mov rax, QWORD PTR -40[rbp]
mov rax, QWORD PTR 8[rax]
mov edx, 0
mov esi, 0
mov rdi, rax
call sqlite3OsUnfetch
.L3735:
cmp DWORD PTR -4[rbp], 0
jne .L3736
mov rax, QWORD PTR -40[rbp]
mov eax, DWORD PTR 88[rax]
test eax, eax
je .L3737
mov rax, QWORD PTR -40[rbp]
mov rdi, rax
call walPagesize
cmp eax, DWORD PTR 16[rbp]
je .L3737
mov edi, 59198
call sqlite3CorruptError
mov DWORD PTR -4[rbp], eax
jmp .L3738
.L3737:
mov r8d, DWORD PTR -56[rbp]
mov rdi, QWORD PTR -72[rbp]
mov rcx, QWORD PTR -16[rbp]
mov edx, DWORD PTR -8[rbp]
mov rsi, QWORD PTR -48[rbp]
mov rax, QWORD PTR -40[rbp]
sub rsp, 8
push QWORD PTR 24[rbp]
mov r9d, r8d
mov r8, rdi
mov rdi, rax
call walCheckpoint
add rsp, 16
mov DWORD PTR -4[rbp], eax
.L3738:
cmp DWORD PTR -4[rbp], 0
je .L3739
cmp DWORD PTR -4[rbp], 5
jne .L3736
.L3739:
cmp QWORD PTR 32[rbp], 0
je .L3740
mov rax, QWORD PTR -40[rbp]
mov eax, DWORD PTR 88[rax]
mov edx, eax
mov rax, QWORD PTR 32[rbp]
mov DWORD PTR [rax], edx
.L3740:
cmp QWORD PTR 40[rbp], 0
je .L3736
mov rax, QWORD PTR -40[rbp]
mov rdi, rax
call walCkptInfo
mov eax, DWORD PTR [rax]
mov edx, eax
mov rax, QWORD PTR 40[rbp]
mov DWORD PTR [rax], edx
.L3736:
mov eax, DWORD PTR -20[rbp]
test eax, eax
je .L3741
mov rax, QWORD PTR -40[rbp]
add rax, 72
mov edx, 48
mov esi, 0
mov rdi, rax
call memset@PLT
.L3741:
mov rax, QWORD PTR -40[rbp]
mov rdi, rax
call sqlite3WalEndWriteTransaction
mov rax, QWORD PTR -40[rbp]
mov edx, 1
mov esi, 1
mov rdi, rax
call walUnlockExclusive
mov rax, QWORD PTR -40[rbp]
mov BYTE PTR 65[rax], 0
cmp DWORD PTR -4[rbp], 0
jne .L3742
mov eax, DWORD PTR -52[rbp]
cmp eax, DWORD PTR -8[rbp]
jne .L3743
.L3742:
mov eax, DWORD PTR -4[rbp]
jmp .L3745
.L3743:
mov eax, 5
.L3745:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE593:
.size sqlite3WalCheckpoint, .-sqlite3WalCheckpoint
.type sqlite3WalCallback, @function
sqlite3WalCallback:
.LFB594:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
mov QWORD PTR -24[rbp], rdi
mov DWORD PTR -4[rbp], 0
cmp QWORD PTR -24[rbp], 0
je .L3747
mov rax, QWORD PTR -24[rbp]
mov eax, DWORD PTR 24[rax]
mov DWORD PTR -4[rbp], eax
mov rax, QWORD PTR -24[rbp]
mov DWORD PTR 24[rax], 0
.L3747:
mov eax, DWORD PTR -4[rbp]
pop rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE594:
.size sqlite3WalCallback, .-sqlite3WalCallback
.type sqlite3WalExclusiveMode, @function
sqlite3WalExclusiveMode:
.LFB595:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 32
mov QWORD PTR -24[rbp], rdi
mov DWORD PTR -28[rbp], esi
cmp DWORD PTR -28[rbp], 0
jne .L3750
mov rax, QWORD PTR -24[rbp]
movzx eax, BYTE PTR 63[rax]
test al, al
je .L3751
mov rax, QWORD PTR -24[rbp]
mov BYTE PTR 63[rax], 0
mov rax, QWORD PTR -24[rbp]
movzx eax, WORD PTR 60[rax]
cwde
lea edx, 3[rax]
mov rax, QWORD PTR -24[rbp]
mov esi, edx
mov rdi, rax
call walLockShared
test eax, eax
je .L3752
mov rax, QWORD PTR -24[rbp]
mov BYTE PTR 63[rax], 1
.L3752:
mov rax, QWORD PTR -24[rbp]
movzx eax, BYTE PTR 63[rax]
test al, al
sete al
movzx eax, al
mov DWORD PTR -4[rbp], eax
jmp .L3754
.L3751:
mov DWORD PTR -4[rbp], 0
jmp .L3754
.L3750:
cmp DWORD PTR -28[rbp], 0
jle .L3755
mov rax, QWORD PTR -24[rbp]
movzx eax, WORD PTR 60[rax]
cwde
lea edx, 3[rax]
mov rax, QWORD PTR -24[rbp]
mov esi, edx
mov rdi, rax
call walUnlockShared
mov rax, QWORD PTR -24[rbp]
mov BYTE PTR 63[rax], 1
mov DWORD PTR -4[rbp], 1
jmp .L3754
.L3755:
mov rax, QWORD PTR -24[rbp]
movzx eax, BYTE PTR 63[rax]
test al, al
sete al
movzx eax, al
mov DWORD PTR -4[rbp], eax
.L3754:
mov eax, DWORD PTR -4[rbp]
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE595:
.size sqlite3WalExclusiveMode, .-sqlite3WalExclusiveMode
.type sqlite3WalHeapMemory, @function
sqlite3WalHeapMemory:
.LFB596:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
mov QWORD PTR -8[rbp], rdi
cmp QWORD PTR -8[rbp], 0
je .L3758
mov rax, QWORD PTR -8[rbp]
movzx eax, BYTE PTR 63[rax]
cmp al, 2
jne .L3758
mov eax, 1
jmp .L3760
.L3758:
mov eax, 0
.L3760:
pop rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE596:
.size sqlite3WalHeapMemory, .-sqlite3WalHeapMemory
.type sqlite3WalFile, @function
sqlite3WalFile:
.LFB597:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
mov QWORD PTR -8[rbp], rdi
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR 16[rax]
pop rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE597:
.size sqlite3WalFile, .-sqlite3WalFile
.type lockBtreeMutex, @function
lockBtreeMutex:
.LFB598:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 16
mov QWORD PTR -8[rbp], rdi
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR 8[rax]
mov rax, QWORD PTR 80[rax]
mov rdi, rax
call sqlite3_mutex_enter
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR 8[rax]
mov rdx, QWORD PTR -8[rbp]
mov rdx, QWORD PTR [rdx]
mov QWORD PTR 8[rax], rdx
mov rax, QWORD PTR -8[rbp]
mov BYTE PTR 18[rax], 1
nop
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE598:
.size lockBtreeMutex, .-lockBtreeMutex
.type unlockBtreeMutex, @function
unlockBtreeMutex:
.LFB599:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 32
mov QWORD PTR -24[rbp], rdi
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 8[rax]
mov QWORD PTR -8[rbp], rax
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR 80[rax]
mov rdi, rax
call sqlite3_mutex_leave
mov rax, QWORD PTR -24[rbp]
mov BYTE PTR 18[rax], 0
nop
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE599:
.size unlockBtreeMutex, .-unlockBtreeMutex
.type sqlite3BtreeEnter, @function
sqlite3BtreeEnter:
.LFB600:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 16
mov QWORD PTR -8[rbp], rdi
mov rax, QWORD PTR -8[rbp]
movzx eax, BYTE PTR 17[rax]
test al, al
je .L3769
mov rax, QWORD PTR -8[rbp]
mov eax, DWORD PTR 20[rax]
lea edx, 1[rax]
mov rax, QWORD PTR -8[rbp]
mov DWORD PTR 20[rax], edx
mov rax, QWORD PTR -8[rbp]
movzx eax, BYTE PTR 18[rax]
test al, al
jne .L3770
mov rax, QWORD PTR -8[rbp]
mov rdi, rax
call btreeLockCarefully
jmp .L3765
.L3769:
nop
jmp .L3765
.L3770:
nop
.L3765:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE600:
.size sqlite3BtreeEnter, .-sqlite3BtreeEnter
.type btreeLockCarefully, @function
btreeLockCarefully:
.LFB601:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 32
mov QWORD PTR -24[rbp], rdi
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 8[rax]
mov rax, QWORD PTR 80[rax]
mov rdi, rax
call sqlite3_mutex_try
test eax, eax
jne .L3772
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 8[rax]
mov rdx, QWORD PTR -24[rbp]
mov rdx, QWORD PTR [rdx]
mov QWORD PTR 8[rax], rdx
mov rax, QWORD PTR -24[rbp]
mov BYTE PTR 18[rax], 1
jmp .L3771
.L3772:
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 32[rax]
mov QWORD PTR -8[rbp], rax
jmp .L3774
.L3776:
mov rax, QWORD PTR -8[rbp]
movzx eax, BYTE PTR 18[rax]
test al, al
je .L3775
mov rax, QWORD PTR -8[rbp]
mov rdi, rax
call unlockBtreeMutex
.L3775:
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR 32[rax]
mov QWORD PTR -8[rbp], rax
.L3774:
cmp QWORD PTR -8[rbp], 0
jne .L3776
mov rax, QWORD PTR -24[rbp]
mov rdi, rax
call lockBtreeMutex
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 32[rax]
mov QWORD PTR -8[rbp], rax
jmp .L3777
.L3779:
mov rax, QWORD PTR -8[rbp]
mov eax, DWORD PTR 20[rax]
test eax, eax
je .L3778
mov rax, QWORD PTR -8[rbp]
mov rdi, rax
call lockBtreeMutex
.L3778:
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR 32[rax]
mov QWORD PTR -8[rbp], rax
.L3777:
cmp QWORD PTR -8[rbp], 0
jne .L3779
.L3771:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE601:
.size btreeLockCarefully, .-btreeLockCarefully
.type sqlite3BtreeLeave, @function
sqlite3BtreeLeave:
.LFB602:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 16
mov QWORD PTR -8[rbp], rdi
mov rax, QWORD PTR -8[rbp]
movzx eax, BYTE PTR 17[rax]
test al, al
je .L3782
mov rax, QWORD PTR -8[rbp]
mov eax, DWORD PTR 20[rax]
lea edx, -1[rax]
mov rax, QWORD PTR -8[rbp]
mov DWORD PTR 20[rax], edx
mov rax, QWORD PTR -8[rbp]
mov eax, DWORD PTR 20[rax]
test eax, eax
jne .L3782
mov rax, QWORD PTR -8[rbp]
mov rdi, rax
call unlockBtreeMutex
.L3782:
nop
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE602:
.size sqlite3BtreeLeave, .-sqlite3BtreeLeave
.type btreeEnterAll, @function
btreeEnterAll:
.LFB603:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 32
mov QWORD PTR -24[rbp], rdi
mov DWORD PTR -8[rbp], 1
mov DWORD PTR -4[rbp], 0
jmp .L3784
.L3786:
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 32[rax]
mov edx, DWORD PTR -4[rbp]
movsx rdx, edx
sal rdx, 5
add rax, rdx
mov rax, QWORD PTR 8[rax]
mov QWORD PTR -16[rbp], rax
cmp QWORD PTR -16[rbp], 0
je .L3785
mov rax, QWORD PTR -16[rbp]
movzx eax, BYTE PTR 17[rax]
test al, al
je .L3785
mov rax, QWORD PTR -16[rbp]
mov rdi, rax
call sqlite3BtreeEnter
mov DWORD PTR -8[rbp], 0
.L3785:
add DWORD PTR -4[rbp], 1
.L3784:
mov rax, QWORD PTR -24[rbp]
mov eax, DWORD PTR 40[rax]
cmp eax, DWORD PTR -4[rbp]
jg .L3786
mov eax, DWORD PTR -8[rbp]
mov edx, eax
mov rax, QWORD PTR -24[rbp]
mov BYTE PTR 105[rax], dl
nop
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE603:
.size btreeEnterAll, .-btreeEnterAll
.type sqlite3BtreeEnterAll, @function
sqlite3BtreeEnterAll:
.LFB604:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 16
mov QWORD PTR -8[rbp], rdi
mov rax, QWORD PTR -8[rbp]
movzx eax, BYTE PTR 105[rax]
test al, al
jne .L3789
mov rax, QWORD PTR -8[rbp]
mov rdi, rax
call btreeEnterAll
.L3789:
nop
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE604:
.size sqlite3BtreeEnterAll, .-sqlite3BtreeEnterAll
.type btreeLeaveAll, @function
btreeLeaveAll:
.LFB605:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 32
mov QWORD PTR -24[rbp], rdi
mov DWORD PTR -4[rbp], 0
jmp .L3791
.L3793:
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 32[rax]
mov edx, DWORD PTR -4[rbp]
movsx rdx, edx
sal rdx, 5
add rax, rdx
mov rax, QWORD PTR 8[rax]
mov QWORD PTR -16[rbp], rax
cmp QWORD PTR -16[rbp], 0
je .L3792
mov rax, QWORD PTR -16[rbp]
mov rdi, rax
call sqlite3BtreeLeave
.L3792:
add DWORD PTR -4[rbp], 1
.L3791:
mov rax, QWORD PTR -24[rbp]
mov eax, DWORD PTR 40[rax]
cmp eax, DWORD PTR -4[rbp]
jg .L3793
nop
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE605:
.size btreeLeaveAll, .-btreeLeaveAll
.type sqlite3BtreeLeaveAll, @function
sqlite3BtreeLeaveAll:
.LFB606:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 16
mov QWORD PTR -8[rbp], rdi
mov rax, QWORD PTR -8[rbp]
movzx eax, BYTE PTR 105[rax]
test al, al
jne .L3796
mov rax, QWORD PTR -8[rbp]
mov rdi, rax
call btreeLeaveAll
.L3796:
nop
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE606:
.size sqlite3BtreeLeaveAll, .-sqlite3BtreeLeaveAll
.type sqlite3BtreeEnterCursor, @function
sqlite3BtreeEnterCursor:
.LFB607:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 16
mov QWORD PTR -8[rbp], rdi
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR 8[rax]
mov rdi, rax
call sqlite3BtreeEnter
nop
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE607:
.size sqlite3BtreeEnterCursor, .-sqlite3BtreeEnterCursor
.type sqlite3BtreeLeaveCursor, @function
sqlite3BtreeLeaveCursor:
.LFB608:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 16
mov QWORD PTR -8[rbp], rdi
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR 8[rax]
mov rdi, rax
call sqlite3BtreeLeave
nop
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE608:
.size sqlite3BtreeLeaveCursor, .-sqlite3BtreeLeaveCursor
.section .rodata
.align 16
.type zMagicHeader, @object
.size zMagicHeader, 16
zMagicHeader:
.string "SQLite format 3"
.local sqlite3SharedCacheList
.comm sqlite3SharedCacheList,8,8
.text
.globl sqlite3_enable_shared_cache
.type sqlite3_enable_shared_cache, @function
sqlite3_enable_shared_cache:
.LFB609:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
mov DWORD PTR -4[rbp], edi
mov eax, DWORD PTR -4[rbp]
mov DWORD PTR sqlite3Config[rip+348], eax
mov eax, 0
pop rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE609:
.size sqlite3_enable_shared_cache, .-sqlite3_enable_shared_cache
.type querySharedCacheTableLock, @function
querySharedCacheTableLock:
.LFB610:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
mov QWORD PTR -24[rbp], rdi
mov DWORD PTR -28[rbp], esi
mov eax, edx
mov BYTE PTR -32[rbp], al
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 8[rax]
mov QWORD PTR -16[rbp], rax
mov rax, QWORD PTR -24[rbp]
movzx eax, BYTE PTR 17[rax]
test al, al
jne .L3802
mov eax, 0
jmp .L3803
.L3802:
mov rax, QWORD PTR -16[rbp]
mov rax, QWORD PTR 120[rax]
cmp rax, QWORD PTR -24[rbp]
je .L3804
mov rax, QWORD PTR -16[rbp]
movzx eax, WORD PTR 38[rax]
movzx eax, ax
and eax, 64
test eax, eax
je .L3804
mov eax, 262
jmp .L3803
.L3804:
mov rax, QWORD PTR -16[rbp]
mov rax, QWORD PTR 112[rax]
mov QWORD PTR -8[rbp], rax
jmp .L3805
.L3808:
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR [rax]
cmp rax, QWORD PTR -24[rbp]
je .L3806
mov rax, QWORD PTR -8[rbp]
mov eax, DWORD PTR 8[rax]
cmp eax, DWORD PTR -28[rbp]
jne .L3806
mov rax, QWORD PTR -8[rbp]
movzx eax, BYTE PTR 12[rax]
cmp al, BYTE PTR -32[rbp]
je .L3806
cmp BYTE PTR -32[rbp], 2
jne .L3807
mov rax, QWORD PTR -16[rbp]
movzx eax, WORD PTR 38[rax]
or al, -128
mov edx, eax
mov rax, QWORD PTR -16[rbp]
mov WORD PTR 38[rax], dx
.L3807:
mov eax, 262
jmp .L3803
.L3806:
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR 16[rax]
mov QWORD PTR -8[rbp], rax
.L3805:
cmp QWORD PTR -8[rbp], 0
jne .L3808
mov eax, 0
.L3803:
pop rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE610:
.size querySharedCacheTableLock, .-querySharedCacheTableLock
.type setSharedCacheTableLock, @function
setSharedCacheTableLock:
.LFB611:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 48
mov QWORD PTR -40[rbp], rdi
mov DWORD PTR -44[rbp], esi
mov eax, edx
mov BYTE PTR -48[rbp], al
mov rax, QWORD PTR -40[rbp]
mov rax, QWORD PTR 8[rax]
mov QWORD PTR -24[rbp], rax
mov QWORD PTR -8[rbp], 0
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 112[rax]
mov QWORD PTR -16[rbp], rax
jmp .L3810
.L3813:
mov rax, QWORD PTR -16[rbp]
mov eax, DWORD PTR 8[rax]
cmp eax, DWORD PTR -44[rbp]
jne .L3811
mov rax, QWORD PTR -16[rbp]
mov rax, QWORD PTR [rax]
cmp rax, QWORD PTR -40[rbp]
jne .L3811
mov rax, QWORD PTR -16[rbp]
mov QWORD PTR -8[rbp], rax
jmp .L3812
.L3811:
mov rax, QWORD PTR -16[rbp]
mov rax, QWORD PTR 16[rax]
mov QWORD PTR -16[rbp], rax
.L3810:
cmp QWORD PTR -16[rbp], 0
jne .L3813
.L3812:
cmp QWORD PTR -8[rbp], 0
jne .L3814
mov edi, 24
call sqlite3MallocZero
mov QWORD PTR -8[rbp], rax
cmp QWORD PTR -8[rbp], 0
jne .L3815
mov eax, 7
jmp .L3816
.L3815:
mov rax, QWORD PTR -8[rbp]
mov edx, DWORD PTR -44[rbp]
mov DWORD PTR 8[rax], edx
mov rax, QWORD PTR -8[rbp]
mov rdx, QWORD PTR -40[rbp]
mov QWORD PTR [rax], rdx
mov rax, QWORD PTR -24[rbp]
mov rdx, QWORD PTR 112[rax]
mov rax, QWORD PTR -8[rbp]
mov QWORD PTR 16[rax], rdx
mov rax, QWORD PTR -24[rbp]
mov rdx, QWORD PTR -8[rbp]
mov QWORD PTR 112[rax], rdx
.L3814:
mov rax, QWORD PTR -8[rbp]
movzx eax, BYTE PTR 12[rax]
cmp al, BYTE PTR -48[rbp]
jnb .L3817
mov rax, QWORD PTR -8[rbp]
movzx edx, BYTE PTR -48[rbp]
mov BYTE PTR 12[rax], dl
.L3817:
mov eax, 0
.L3816:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE611:
.size setSharedCacheTableLock, .-setSharedCacheTableLock
.type clearAllSharedCacheTableLocks, @function
clearAllSharedCacheTableLocks:
.LFB612:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 48
mov QWORD PTR -40[rbp], rdi
mov rax, QWORD PTR -40[rbp]
mov rax, QWORD PTR 8[rax]
mov QWORD PTR -16[rbp], rax
mov rax, QWORD PTR -16[rbp]
add rax, 112
mov QWORD PTR -8[rbp], rax
jmp .L3819
.L3822:
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR [rax]
mov QWORD PTR -24[rbp], rax
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR [rax]
cmp rax, QWORD PTR -40[rbp]
jne .L3820
mov rax, QWORD PTR -24[rbp]
mov rdx, QWORD PTR 16[rax]
mov rax, QWORD PTR -8[rbp]
mov QWORD PTR [rax], rdx
mov rax, QWORD PTR -24[rbp]
mov eax, DWORD PTR 8[rax]
cmp eax, 1
je .L3819
mov rax, QWORD PTR -24[rbp]
mov rdi, rax
call sqlite3_free
jmp .L3819
.L3820:
mov rax, QWORD PTR -24[rbp]
add rax, 16
mov QWORD PTR -8[rbp], rax
.L3819:
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR [rax]
test rax, rax
jne .L3822
mov rax, QWORD PTR -16[rbp]
mov rax, QWORD PTR 120[rax]
cmp rax, QWORD PTR -40[rbp]
jne .L3823
mov rax, QWORD PTR -16[rbp]
mov QWORD PTR 120[rax], 0
mov rax, QWORD PTR -16[rbp]
movzx eax, WORD PTR 38[rax]
and al, 63
mov edx, eax
mov rax, QWORD PTR -16[rbp]
mov WORD PTR 38[rax], dx
jmp .L3825
.L3823:
mov rax, QWORD PTR -16[rbp]
mov eax, DWORD PTR 56[rax]
cmp eax, 2
jne .L3825
mov rax, QWORD PTR -16[rbp]
movzx eax, WORD PTR 38[rax]
and al, 127
mov edx, eax
mov rax, QWORD PTR -16[rbp]
mov WORD PTR 38[rax], dx
.L3825:
nop
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE612:
.size clearAllSharedCacheTableLocks, .-clearAllSharedCacheTableLocks
.type downgradeAllSharedCacheTableLocks, @function
downgradeAllSharedCacheTableLocks:
.LFB613:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
mov QWORD PTR -24[rbp], rdi
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 8[rax]
mov QWORD PTR -16[rbp], rax
mov rax, QWORD PTR -16[rbp]
mov rax, QWORD PTR 120[rax]
cmp rax, QWORD PTR -24[rbp]
jne .L3830
mov rax, QWORD PTR -16[rbp]
mov QWORD PTR 120[rax], 0
mov rax, QWORD PTR -16[rbp]
movzx eax, WORD PTR 38[rax]
and al, 63
mov edx, eax
mov rax, QWORD PTR -16[rbp]
mov WORD PTR 38[rax], dx
mov rax, QWORD PTR -16[rbp]
mov rax, QWORD PTR 112[rax]
mov QWORD PTR -8[rbp], rax
jmp .L3828
.L3829:
mov rax, QWORD PTR -8[rbp]
mov BYTE PTR 12[rax], 1
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR 16[rax]
mov QWORD PTR -8[rbp], rax
.L3828:
cmp QWORD PTR -8[rbp], 0
jne .L3829
.L3830:
nop
pop rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE613:
.size downgradeAllSharedCacheTableLocks, .-downgradeAllSharedCacheTableLocks
.type invalidateAllOverflowCache, @function
invalidateAllOverflowCache:
.LFB614:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
mov QWORD PTR -24[rbp], rdi
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 16[rax]
mov QWORD PTR -8[rbp], rax
jmp .L3832
.L3833:
mov rax, QWORD PTR -8[rbp]
movzx eax, BYTE PTR 1[rax]
and eax, -5
mov edx, eax
mov rax, QWORD PTR -8[rbp]
mov BYTE PTR 1[rax], dl
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR 24[rax]
mov QWORD PTR -8[rbp], rax
.L3832:
cmp QWORD PTR -8[rbp], 0
jne .L3833
nop
pop rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE614:
.size invalidateAllOverflowCache, .-invalidateAllOverflowCache
.type invalidateIncrblobCursors, @function
invalidateIncrblobCursors:
.LFB615:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
mov QWORD PTR -24[rbp], rdi
mov DWORD PTR -28[rbp], esi
mov QWORD PTR -40[rbp], rdx
mov DWORD PTR -32[rbp], ecx
mov rax, QWORD PTR -24[rbp]
movzx eax, BYTE PTR 19[rax]
test al, al
je .L3841
mov rax, QWORD PTR -24[rbp]
mov BYTE PTR 19[rax], 0
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 8[rax]
mov rax, QWORD PTR 16[rax]
mov QWORD PTR -8[rbp], rax
jmp .L3837
.L3840:
mov rax, QWORD PTR -8[rbp]
movzx eax, BYTE PTR 1[rax]
movzx eax, al
and eax, 16
test eax, eax
je .L3838
mov rax, QWORD PTR -24[rbp]
mov BYTE PTR 19[rax], 1
mov rax, QWORD PTR -8[rbp]
mov eax, DWORD PTR 80[rax]
cmp eax, DWORD PTR -28[rbp]
jne .L3838
cmp DWORD PTR -32[rbp], 0
jne .L3839
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR 40[rax]
cmp rax, QWORD PTR -40[rbp]
jne .L3838
.L3839:
mov rax, QWORD PTR -8[rbp]
mov BYTE PTR [rax], 0
.L3838:
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR 24[rax]
mov QWORD PTR -8[rbp], rax
.L3837:
cmp QWORD PTR -8[rbp], 0
jne .L3840
jmp .L3834
.L3841:
nop
.L3834:
pop rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE615:
.size invalidateIncrblobCursors, .-invalidateIncrblobCursors
.type btreeSetHasContent, @function
btreeSetHasContent:
.LFB616:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 32
mov QWORD PTR -24[rbp], rdi
mov DWORD PTR -28[rbp], esi
mov DWORD PTR -4[rbp], 0
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 88[rax]
test rax, rax
jne .L3843
mov rax, QWORD PTR -24[rbp]
mov eax, DWORD PTR 60[rax]
mov edi, eax
call sqlite3BitvecCreate
mov rdx, rax
mov rax, QWORD PTR -24[rbp]
mov QWORD PTR 88[rax], rdx
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 88[rax]
test rax, rax
jne .L3843
mov DWORD PTR -4[rbp], 7
.L3843:
cmp DWORD PTR -4[rbp], 0
jne .L3844
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 88[rax]
mov rdi, rax
call sqlite3BitvecSize
cmp eax, DWORD PTR -28[rbp]
jb .L3844
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 88[rax]
mov edx, DWORD PTR -28[rbp]
mov esi, edx
mov rdi, rax
call sqlite3BitvecSet
mov DWORD PTR -4[rbp], eax
.L3844:
mov eax, DWORD PTR -4[rbp]
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE616:
.size btreeSetHasContent, .-btreeSetHasContent
.type btreeGetHasContent, @function
btreeGetHasContent:
.LFB617:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 32
mov QWORD PTR -24[rbp], rdi
mov DWORD PTR -28[rbp], esi
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 88[rax]
mov QWORD PTR -8[rbp], rax
cmp QWORD PTR -8[rbp], 0
je .L3847
mov rax, QWORD PTR -8[rbp]
mov rdi, rax
call sqlite3BitvecSize
cmp eax, DWORD PTR -28[rbp]
jb .L3848
mov edx, DWORD PTR -28[rbp]
mov rax, QWORD PTR -8[rbp]
mov esi, edx
mov rdi, rax
call sqlite3BitvecTest
test eax, eax
je .L3847
.L3848:
mov eax, 1
jmp .L3850
.L3847:
mov eax, 0
.L3850:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE617:
.size btreeGetHasContent, .-btreeGetHasContent
.type btreeClearHasContent, @function
btreeClearHasContent:
.LFB618:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 16
mov QWORD PTR -8[rbp], rdi
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR 88[rax]
mov rdi, rax
call sqlite3BitvecDestroy
mov rax, QWORD PTR -8[rbp]
mov QWORD PTR 88[rax], 0
nop
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE618:
.size btreeClearHasContent, .-btreeClearHasContent
.type btreeReleaseAllCursorPages, @function
btreeReleaseAllCursorPages:
.LFB619:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 32
mov QWORD PTR -24[rbp], rdi
mov rax, QWORD PTR -24[rbp]
movzx eax, BYTE PTR 88[rax]
test al, al
js .L3856
mov DWORD PTR -4[rbp], 0
jmp .L3854
.L3855:
mov rax, QWORD PTR -24[rbp]
mov edx, DWORD PTR -4[rbp]
movsx rdx, edx
add rdx, 18
mov rax, QWORD PTR 8[rax+rdx*8]
mov rdi, rax
call releasePageNotNull
add DWORD PTR -4[rbp], 1
.L3854:
mov rax, QWORD PTR -24[rbp]
movzx eax, BYTE PTR 88[rax]
movsx eax, al
cmp eax, DWORD PTR -4[rbp]
jg .L3855
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 144[rax]
mov rdi, rax
call releasePageNotNull
mov rax, QWORD PTR -24[rbp]
mov BYTE PTR 88[rax], -1
.L3856:
nop
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE619:
.size btreeReleaseAllCursorPages, .-btreeReleaseAllCursorPages
.type saveCursorKey, @function
saveCursorKey:
.LFB620:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 32
mov QWORD PTR -24[rbp], rdi
mov DWORD PTR -4[rbp], 0
mov rax, QWORD PTR -24[rbp]
movzx eax, BYTE PTR 89[rax]
test al, al
je .L3858
mov rax, QWORD PTR -24[rbp]
mov rdi, rax
call sqlite3BtreeIntegerKey
mov rdx, rax
mov rax, QWORD PTR -24[rbp]
mov QWORD PTR 64[rax], rdx
jmp .L3859
.L3858:
mov rax, QWORD PTR -24[rbp]
mov rdi, rax
call sqlite3BtreePayloadSize
mov edx, eax
mov rax, QWORD PTR -24[rbp]
mov QWORD PTR 64[rax], rdx
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 64[rax]
mov rdi, rax
call sqlite3Malloc
mov QWORD PTR -16[rbp], rax
cmp QWORD PTR -16[rbp], 0
je .L3860
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 64[rax]
mov esi, eax
mov rdx, QWORD PTR -16[rbp]
mov rax, QWORD PTR -24[rbp]
mov rcx, rdx
mov edx, esi
mov esi, 0
mov rdi, rax
call sqlite3BtreePayload
mov DWORD PTR -4[rbp], eax
cmp DWORD PTR -4[rbp], 0
jne .L3861
mov rax, QWORD PTR -24[rbp]
mov rdx, QWORD PTR -16[rbp]
mov QWORD PTR 72[rax], rdx
jmp .L3859
.L3861:
mov rax, QWORD PTR -16[rbp]
mov rdi, rax
call sqlite3_free
jmp .L3859
.L3860:
mov DWORD PTR -4[rbp], 7
.L3859:
mov eax, DWORD PTR -4[rbp]
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE620:
.size saveCursorKey, .-saveCursorKey
.type saveCursorPosition, @function
saveCursorPosition:
.LFB621:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 32
mov QWORD PTR -24[rbp], rdi
mov rax, QWORD PTR -24[rbp]
movzx eax, BYTE PTR [rax]
cmp al, 2
jne .L3865
mov rax, QWORD PTR -24[rbp]
mov BYTE PTR [rax], 1
jmp .L3866
.L3865:
mov rax, QWORD PTR -24[rbp]
mov DWORD PTR 84[rax], 0
.L3866:
mov rax, QWORD PTR -24[rbp]
mov rdi, rax
call saveCursorKey
mov DWORD PTR -4[rbp], eax
cmp DWORD PTR -4[rbp], 0
jne .L3867
mov rax, QWORD PTR -24[rbp]
mov rdi, rax
call btreeReleaseAllCursorPages
mov rax, QWORD PTR -24[rbp]
mov BYTE PTR [rax], 3
.L3867:
mov rax, QWORD PTR -24[rbp]
movzx eax, BYTE PTR 1[rax]
and eax, -15
mov edx, eax
mov rax, QWORD PTR -24[rbp]
mov BYTE PTR 1[rax], dl
mov eax, DWORD PTR -4[rbp]
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE621:
.size saveCursorPosition, .-saveCursorPosition
.type saveAllCursors, @function
saveAllCursors:
.LFB622:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 48
mov QWORD PTR -24[rbp], rdi
mov DWORD PTR -28[rbp], esi
mov QWORD PTR -40[rbp], rdx
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 16[rax]
mov QWORD PTR -8[rbp], rax
jmp .L3870
.L3873:
mov rax, QWORD PTR -8[rbp]
cmp rax, QWORD PTR -40[rbp]
je .L3871
cmp DWORD PTR -28[rbp], 0
je .L3872
mov rax, QWORD PTR -8[rbp]
mov eax, DWORD PTR 80[rax]
cmp eax, DWORD PTR -28[rbp]
je .L3872
.L3871:
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR 24[rax]
mov QWORD PTR -8[rbp], rax
.L3870:
cmp QWORD PTR -8[rbp], 0
jne .L3873
.L3872:
cmp QWORD PTR -8[rbp], 0
je .L3874
mov rdx, QWORD PTR -40[rbp]
mov ecx, DWORD PTR -28[rbp]
mov rax, QWORD PTR -8[rbp]
mov esi, ecx
mov rdi, rax
call saveCursorsOnList
jmp .L3875
.L3874:
cmp QWORD PTR -40[rbp], 0
je .L3876
mov rax, QWORD PTR -40[rbp]
movzx eax, BYTE PTR 1[rax]
and eax, -33
mov edx, eax
mov rax, QWORD PTR -40[rbp]
mov BYTE PTR 1[rax], dl
.L3876:
mov eax, 0
.L3875:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE622:
.size saveAllCursors, .-saveAllCursors
.type saveCursorsOnList, @function
saveCursorsOnList:
.LFB623:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 48
mov QWORD PTR -24[rbp], rdi
mov DWORD PTR -28[rbp], esi
mov QWORD PTR -40[rbp], rdx
.L3884:
mov rax, QWORD PTR -24[rbp]
cmp rax, QWORD PTR -40[rbp]
je .L3878
cmp DWORD PTR -28[rbp], 0
je .L3879
mov rax, QWORD PTR -24[rbp]
mov eax, DWORD PTR 80[rax]
cmp eax, DWORD PTR -28[rbp]
jne .L3878
.L3879:
mov rax, QWORD PTR -24[rbp]
movzx eax, BYTE PTR [rax]
cmp al, 1
je .L3880
mov rax, QWORD PTR -24[rbp]
movzx eax, BYTE PTR [rax]
cmp al, 2
jne .L3881
.L3880:
mov rax, QWORD PTR -24[rbp]
mov rdi, rax
call saveCursorPosition
mov DWORD PTR -4[rbp], eax
cmp DWORD PTR -4[rbp], 0
je .L3885
mov eax, DWORD PTR -4[rbp]
jmp .L3883
.L3881:
mov rax, QWORD PTR -24[rbp]
mov rdi, rax
call btreeReleaseAllCursorPages
jmp .L3878
.L3885:
nop
.L3878:
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 24[rax]
mov QWORD PTR -24[rbp], rax
cmp QWORD PTR -24[rbp], 0
jne .L3884
mov eax, 0
.L3883:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE623:
.size saveCursorsOnList, .-saveCursorsOnList
.type sqlite3BtreeClearCursor, @function
sqlite3BtreeClearCursor:
.LFB624:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 16
mov QWORD PTR -8[rbp], rdi
mov rax, QWORD PTR -8[rbp]
mov rax, QWORD PTR 72[rax]
mov rdi, rax
call sqlite3_free
mov rax, QWORD PTR -8[rbp]
mov QWORD PTR 72[rax], 0
mov rax, QWORD PTR -8[rbp]
mov BYTE PTR [rax], 0
nop
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE624:
.size sqlite3BtreeClearCursor, .-sqlite3BtreeClearCursor
.type btreeMoveto, @function
btreeMoveto:
.LFB625:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 64
mov QWORD PTR -24[rbp], rdi
mov QWORD PTR -32[rbp], rsi
mov QWORD PTR -40[rbp], rdx
mov DWORD PTR -44[rbp], ecx
mov QWORD PTR -56[rbp], r8
cmp QWORD PTR -32[rbp], 0
je .L3888
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 136[rax]
mov rdi, rax
call sqlite3VdbeAllocUnpackedRecord
mov QWORD PTR -16[rbp], rax
cmp QWORD PTR -16[rbp], 0
jne .L3889
mov eax, 7
jmp .L3890
.L3889:
mov rax, QWORD PTR -40[rbp]
mov esi, eax
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 136[rax]
mov rcx, QWORD PTR -16[rbp]
mov rdx, QWORD PTR -32[rbp]
mov rdi, rax
call sqlite3VdbeRecordUnpack
mov rax, QWORD PTR -16[rbp]
movzx eax, WORD PTR 16[rax]
test ax, ax
jne .L3891
mov edi, 61209
call sqlite3CorruptError
mov DWORD PTR -4[rbp], eax
jmp .L3892
.L3888:
mov QWORD PTR -16[rbp], 0
.L3891:
mov rdi, QWORD PTR -56[rbp]
mov ecx, DWORD PTR -44[rbp]
mov rdx, QWORD PTR -40[rbp]
mov rsi, QWORD PTR -16[rbp]
mov rax, QWORD PTR -24[rbp]
mov r8, rdi
mov rdi, rax
call sqlite3BtreeMovetoUnpacked
mov DWORD PTR -4[rbp], eax
.L3892:
cmp QWORD PTR -16[rbp], 0
je .L3893
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 136[rax]
mov rax, QWORD PTR 16[rax]
mov rdx, QWORD PTR -16[rbp]
mov rsi, rdx
mov rdi, rax
call sqlite3DbFree
.L3893:
mov eax, DWORD PTR -4[rbp]
.L3890:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE625:
.size btreeMoveto, .-btreeMoveto
.type btreeRestoreCursorPosition, @function
btreeRestoreCursorPosition:
.LFB626:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 32
mov QWORD PTR -24[rbp], rdi
mov rax, QWORD PTR -24[rbp]
movzx eax, BYTE PTR [rax]
cmp al, 4
jne .L3895
mov rax, QWORD PTR -24[rbp]
mov eax, DWORD PTR 84[rax]
jmp .L3898
.L3895:
mov rax, QWORD PTR -24[rbp]
mov BYTE PTR [rax], 0
mov rax, QWORD PTR -24[rbp]
mov rdx, QWORD PTR 64[rax]
mov rax, QWORD PTR -24[rbp]
mov rsi, QWORD PTR 72[rax]
lea rcx, -8[rbp]
mov rax, QWORD PTR -24[rbp]
mov r8, rcx
mov ecx, 0
mov rdi, rax
call btreeMoveto
mov DWORD PTR -4[rbp], eax
cmp DWORD PTR -4[rbp], 0
jne .L3897
mov rax, QWORD PTR -24[rbp]
mov rax, QWORD PTR 72[rax]
mov rdi, rax
call sqlite3_free
mov rax, QWORD PTR -24[rbp]
mov QWORD PTR 72[rax], 0
mov rax, QWORD PTR -24[rbp]
mov edx, DWORD PTR 84[rax]
mov eax, DWORD PTR -8[rbp]
or edx, eax
mov rax, QWORD PTR -24[rbp]
mov DWORD PTR 84[rax], edx
mov rax, QWORD PTR -24[rbp]
mov eax, DWORD PTR 84[rax]
test eax, eax
je .L3897
mov rax, QWORD PTR -24[rbp]
movzx eax, BYTE PTR [rax]
cmp al, 1
jne .L3897
mov rax, QWORD PTR -24[rbp]
mov BYTE PTR [rax], 2
.L3897:
mov eax, DWORD PTR -4[rbp]
.L3898:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE626:
.size btreeRestoreCursorPosition, .-btreeRestoreCursorPosition
.type sqlite3BtreeCursorHasMoved, @function
sqlite3BtreeCursorHasMoved:
.LFB627:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
mov QWORD PTR -8[rbp], rdi
mov rax, QWORD PTR -8[rbp]
movzx eax, BYTE PTR [rax]
cmp al, 1
setne al
movzx eax, al
pop rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE627:
.size sqlite3BtreeCursorHasMoved, .-sqlite3BtreeCursorHasMoved
.type sqlite3BtreeFakeValidCursor, @function
sqlite3BtreeFakeValidCursor:
.LFB628:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
lea rax, fakeCursor.15452[rip]
pop rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE628:
.size sqlite3BtreeFakeValidCursor, .-sqlite3BtreeFakeValidCursor
.type sqlite3BtreeCursorRestore, @function
sqlite3BtreeCursorRestore:
.LFB629:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 32
mov QWORD PTR -24[rbp], rdi
mov QWORD PTR -32[rbp], rsi
mov rax, QWORD PTR -24[rbp]
movzx eax, BYTE PTR [rax]
cmp al, 2
jbe .L3904
mov rax, QWORD PTR -24[rbp]
mov rdi, rax
call btreeRestoreCursorPosition
jmp .L3905
.L3904:
mov eax, 0
.L3905:
mov DWORD PTR -4[rbp], eax
cmp DWORD PTR -4[rbp], 0
je .L3906
mov rax, QWORD PTR -32[rbp]
mov DWORD PTR [rax], 1
mov eax, DWORD PTR -4[rbp]
jmp .L3907
.L3906:
mov rax, QWORD PTR -24[rbp]
movzx eax, BYTE PTR [rax]
cmp al, 1
je .L3908
mov rax, QWORD PTR -32[rbp]
mov DWORD PTR [rax], 1
jmp .L3909
.L3908:
mov rax, QWORD PTR -32[rbp]
mov DWORD PTR [rax], 0
.L3909:
mov eax, 0
.L3907:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE629:
.size sqlite3BtreeCursorRestore, .-sqlite3BtreeCursorRestore
.type sqlite3BtreeCursorHintFlags, @function
sqlite3BtreeCursorHintFlags:
.LFB630:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
mov QWORD PTR -8[rbp], rdi
mov DWORD PTR -12[rbp], esi
mov eax, DWORD PTR -12[rbp]
mov edx, eax
mov rax, QWORD PTR -8[rbp]
mov BYTE PTR 3[rax], dl
nop
pop rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE630:
.size sqlite3BtreeCursorHintFlags, .-sqlite3BtreeCursorHintFlags
.type ptrmapPageno, @function
ptrmapPageno:
.LFB631:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
mov QWORD PTR -24[rbp], rdi
mov DWORD PTR -28[rbp], esi
cmp DWORD PTR -28[rbp], 1
ja .L3912
mov eax, 0
jmp .L3913
.L3912:
mov rax, QWORD PTR -24[rbp]
mov eax, DWORD PTR 52[rax]
mov edx, -858993459
mul edx
mov eax, edx
shr eax, 2
add eax, 1
mov DWORD PTR -8[rbp], eax
mov eax, DWORD PTR -28[rbp]
sub eax, 2
mov esi, DWORD PTR -8[rbp]
mov edx, 0
div esi
mov DWORD PTR -12[rbp], eax
mov eax, DWORD PTR -8[rbp]
imul eax, DWORD PTR -12[rbp]
add eax, 2
mov DWORD PTR -4[rbp], eax
mov eax, DWORD PTR sqlite3PendingByte[rip]
mov ecx, eax
mov rax, QWORD PTR -24[rbp]
mov edi, DWORD PTR 48[rax]
mov eax, ecx
mov edx, 0
div edi
add eax, 1
cmp eax, DWORD PTR -4[rbp]
jne .L3914
add DWORD PTR -4[rbp], 1
.L3914:
mov eax, DWORD PTR -4[rbp]
.L3913:
pop rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE631:
.size ptrmapPageno, .-ptrmapPageno
.type ptrmapPut, @function
ptrmapPut:
.LFB632:
.cfi_startproc
push rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
mov rbp, rsp
.cfi_def_cfa_register 6
sub rsp, 64
mov QWORD PTR -40[rbp], rdi
mov DWORD PTR -44[rbp], esi
mov eax, edx
mov DWORD PTR -52[rbp], ecx
mov QWORD PTR -64[rbp], r8
mov BYTE PTR -48[rbp], al
mov rax, QWORD PTR -64[rbp]
mov eax, DWORD PTR [rax]
test eax, eax
jne .L3924
cmp DWORD PTR -44[rbp], 0
jne .L3918
mov edi, 61385
call sqlite3CorruptError
mov edx, eax
mov rax, QWORD PTR -64[rbp]
mov DWORD PTR [rax], edx
jmp .L3915
.L3918:
mov edx, DWORD PTR -44[rbp]
mov rax, QWORD PTR -40[rbp]
mov esi, edx
mov rdi, rax
call ptrmapPageno
mov DWORD PTR -4[rbp], eax
mov rax, QWORD PTR -40[rbp]
mov rax, QWORD PTR [rax]
lea rdx, -32[rbp]
mov esi, DWORD PTR -4[rbp]
mov ecx, 0
mov rdi, rax
call sqlite3PagerGet
mov DWORD PTR -8[rbp], eax
cmp DWORD PTR -8[rbp], 0
je .L3919
mov rax, QWORD PTR -64[rbp]
mov edx, DWORD PTR -8[rbp]
mov DWORD PTR [rax], edx
jmp .L3915
.L3919:
mov eax, DWORD PTR -44[rbp]
sub eax, DWORD PTR -4[rbp]
mov edx, eax
mov eax, edx
sal eax, 2
add eax, edx
sub eax, 5
mov DWORD PTR -12[rbp], eax
cmp DWORD PTR -12[rbp], 0
jns .L3920
mov edi, 61396
call sqlite3CorruptError
mov edx, eax
mov rax, QWORD PTR -64[rbp]
mov DWORD PTR [rax], edx
jmp .L3921
.L3920:
mov rax, QWORD PTR -32[rbp]
mov rdi, rax
call sqlite3PagerGetData
mov QWORD PTR -24[rbp], rax
mov eax, DWORD PTR -12[rbp]
movsx rdx, eax
mov rax, QWORD PTR -24[rbp]
add rax, rdx
movzx eax, BYTE PTR [rax]
cmp al, BYTE PTR -48[rbp]
jne .L3922
mov eax, DWORD PTR -12[rbp]
cdqe
lea rdx, 1[rax]
mov rax, QWORD PTR -24[rbp]
add rax, rdx
mov rdi, rax
call sqlite3Get4byte
cmp eax, DWORD PTR -52[rbp]
je .L3921
.L3922:
mov rax, QWORD PTR -32[rbp]
mov rdi, rax
call sqlite3PagerWrite
mov DWORD PTR -8[rbp], eax
mov rax, QWORD PTR -64[rbp]
mov edx, DWORD PTR -8[rbp]
mov DWORD PTR [rax], edx
cmp DWORD PTR -8[rbp], 0
jne .L3921
mov eax, DWORD PTR -12[rbp]
movsx rdx, eax
mov rax, QWORD PTR -24[rbp]
add rdx, rax
movzx eax, BYTE PTR -48[rbp]
mov BYTE PTR [rdx], al
mov eax, DWORD PTR -12[rbp]
cdqe
lea rdx, 1[rax]
mov rax, QWORD PTR -24[rbp]
add rdx, rax
mov eax, DWORD PTR -52[rbp]
mov esi, eax
mov rdi, rdx
call sqlite3Put4byte
.L3921:
mov rax, QWORD PTR -32[rbp]
mov rdi, rax
call sqlite3PagerUnref
jmp .L3915
.L3924:
nop
.L3915:
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE632:
.size ptrmapPut, .-ptrmapPut
.type ptrmapGet, @function
ptrmapGet:
.LFB633:
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment