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

Disassembly:
sub esp, 0x44
push ebx
mov ebx, dword [esp + 0x58]
push ebp
push esi
push edi
mov edi, dword [esp + 0x58]
mov ebp, dword [edi]
mov al, byte [ebp + 0x1e]
xor esi, esi
test al, al
mov dword [esp + 0x38], esi
mov dword [esp + 0x28], esi
mov dword [esp + 0x10], ebp
mov dword [esp + 0x1c], esi
mov dword [esp + 0x20], esi
jne 0x445ff1
mov al, byte [edi + 0x214]
test al, al
jne 0x445ff1
call fcn.00442130
test eax, eax
jne 0x445ff1
cmp ebx, esi
je 0x445b13
mov eax, dword [esp + 0x60]
mov esi, dword [esp + 0x5c]
lea edx, [esp + 0x1c]
mov ecx, edi
call fcn.0041ad60
mov esi, eax
test esi, esi
mov dword [esp + 0x18], esi
jl 0x445ff1
mov al, byte [ebp + 0x7c]
test al, al
jne 0x445abb
push edi
mov eax, ebx
call fcn.00442e70
mov ecx, dword [esp + 0x64]
mov edx, dword [ecx + 4]
add esp, 4
test edx, edx
jne 0x445abb
test eax, eax
je 0x445abb
mov edx, dword [ebp + 8]
mov eax, dword [eax + 0x44]
cmp eax, dword [edx + 0x1c]
jne 0x445abb
mov esi, 1
mov dword [esp + 0x18], esi
mov ecx, dword [esp + 0x1c]
push ecx
mov eax, esi
push str.index
mov esi, edi
lea ecx, [esp + 0x4c]
call fcn.0040ecb0
add esp, 8
test eax, eax
je 0x445ae5
mov edx, ecx
push ebx
push edx
call fcn.00420930
add esp, 8
mov esi, dword [ebx + 8]
mov ebx, dword [ebx + 0xc]
mov eax, dword [esp + 0x58]
push 0
call fcn.00442730
mov ebx, eax
add esp, 4
test ebx, ebx
mov dword [esp + 0x14], ebx
je 0x445ff1
mov al, byte [ebp + 0x1e]
test al, al
je 0x445b33
jmp 0x445ff1
mov ebx, dword [edi + 0x200]
test ebx, ebx
mov dword [esp + 0x14], ebx
je 0x445ff1
mov esi, dword [ebx + 0x44]
mov ecx, ebp
call fcn.0040fc30
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x18]
mov ecx, dword [ebp + 8]
mov esi, dword [ebx + 4]
shl eax, 4
push 7
add ecx, eax
push str.sqlite_
push esi
mov dword [esp + 0x40], eax
mov dword [esp + 0x38], ecx
mov dword [esp + 0x30], esi
call fcn.004084a0
add esp, 0xc
test eax, eax
jne 0x445b94
add esi, 7
mov ecx, 9
mov edi, str.altertab_
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
je 0x445b90
mov ecx, dword [esp + 0x24]
mov edi, dword [esp + 0x58]
push ecx
push str.table__s_may_not_be_indexed
call fcn.00418b00
add esp, 8
jmp 0x445ff1
mov esi, dword [esp + 0x24]
mov eax, dword [ebx + 0x1c]
test eax, eax
je 0x445bb1
mov edi, dword [esp + 0x58]
push str.views_may_not_be_indexed
call fcn.00418b00
add esp, 4
jmp 0x445ff1
test byte [ebx + 0x22], 0x10
je 0x445bcd
mov edi, dword [esp + 0x58]
push str.virtual_tables_may_not_be_indexed
call fcn.00418b00
add esp, 4
jmp 0x445ff1
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x445c64
mov edx, ebp
call fcn.00416430
mov esi, eax
test esi, esi
mov dword [esp + 0x28], esi
je 0x445ff1
mov edi, dword [esp + 0x58]
mov eax, edi
call fcn.0041add0
test eax, eax
jne 0x445ff1
mov al, byte [ebp + 0x7c]
test al, al
jne 0x445c2b
push 0
push esi
push ebp
call fcn.0040edd0
add esp, 0xc
test eax, eax
je 0x445c2b
push esi
push str.there_is_already_a_table_named__s
call fcn.00418b00
add esp, 8
jmp 0x445ff1
mov edx, dword [esp + 0x2c]
mov eax, dword [edx]
push eax
push esi
mov eax, ebp
call fcn.0040ee60
add esp, 8
test eax, eax
je 0x445c9b
mov eax, dword [esp + 0x7c]
test eax, eax
jne 0x445ff1
mov edi, dword [esp + 0x58]
push esi
push str.index__s_already_exists
call fcn.00418b00
add esp, 8
jmp 0x445ff1
mov eax, dword [ebx + 0x14]
test eax, eax
mov ecx, 1
je 0x445c78
mov eax, dword [eax + 0x20]
inc ecx
test eax, eax
jne 0x445c70
push ecx
push esi
push str.sqlite_autoindex__s__d
mov esi, ebp
call fcn.00418920
mov esi, eax
add esp, 0xc
test esi, esi
mov dword [esp + 0x28], esi
je 0x445ff1
mov edi, dword [esp + 0x58]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x2c]
mov ebp, dword [ecx]
cmp eax, 1
mov eax, str.sqlite_temp_master
je 0x445cb4
mov eax, str.sqlite_master
push ebp
push 0
push eax
push 0x12
mov eax, edi
call fcn.0041ab60
add esp, 0x10
test eax, eax
jne 0x445ff1
mov ecx, dword [esp + 0x18]
mov eax, 1
cmp ecx, eax
jne 0x445cde
mov eax, 3
mov edx, dword [ebx + 4]
push ebp
push edx
push esi
push eax
mov eax, edi
call fcn.0041ab60
add esp, 0x10
test eax, eax
jne 0x445ff1
mov eax, dword [esp + 0x68]
test eax, eax
jne 0x445d50
mov eax, dword [ebx + 0xc]
mov ecx, dword [ebx + 0x10]
lea eax, [eax + eax*2]
mov ecx, dword [ecx + eax*8 - 0x18]
mov dword [esp + 0x3c], ecx
call fcn.00408380
mov dword [esp + 0x40], eax
xor esi, esi
xor ecx, ecx
mov eax, edi
call fcn.0041a560
mov esi, eax
test esi, esi
mov dword [esp + 0x68], esi
je 0x445ff1
push 0
push edi
lea edx, [esp + 0x44]
mov ecx, esi
call fcn.00415af0
mov edx, dword [esi + 0xc]
mov al, byte [esp + 0x80]
add esp, 8
mov byte [edx + 0xc], al
mov eax, dword [esp + 0x68]
mov edi, dword [eax]
test edi, edi
jle 0x445d85
mov esi, dword [eax + 0xc]
mov ebp, dword [esp + 0x20]
mov ebx, edi
mov eax, dword [esi]
test eax, eax
je 0x445d7b
mov eax, dword [eax + 0x14]
test eax, eax
je 0x445d7b
mov ecx, dword [eax]
call fcn.00408380
lea ebp, [eax + ebp + 1]
add esi, 0x14
dec ebx
jne 0x445d63
mov dword [esp + 0x20], ebp
mov ebx, dword [esp + 0x28]
mov ecx, ebx
call fcn.00408380
mov edx, dword [esp + 0x20]
mov ecx, edi
imul ecx, ecx, 0xd
mov esi, eax
add ecx, esi
lea eax, [ecx + edx + 0x39]
mov edx, dword [esp + 0x10]
call fcn.00417b70
mov ebp, eax
mov eax, dword [esp + 0x10]
mov cl, byte [eax + 0x1e]
test cl, cl
jne 0x445fd6
lea eax, [ebp + 0x34]
mov dword [ebp + 0x2c], eax
lea eax, [eax + edi*4]
mov dword [ebp + 8], eax
lea eax, [eax + edi*4]
mov dword [ebp + 0xc], eax
lea eax, [eax + edi*4 + 4]
add edi, eax
lea ecx, [edi + esi + 1]
mov dword [esp + 0x30], ecx
mov dword [ebp + 0x28], eax
mov eax, dword [esp + 0x14]
mov dword [ebp], edi
lea ecx, [esi + 1]
mov edx, ecx
shr ecx, 2
mov esi, ebx
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
mov dl, byte [esp + 0x6c]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov dword [ebp + 0x10], eax
mov eax, dword [esp + 0x68]
mov ecx, dword [eax]
mov dword [ebp + 4], ecx
mov ecx, dword [esp + 0x1c]
test ecx, ecx
mov byte [ebp + 0x18], dl
mov edx, dword [esp + 0x10]
sete cl
mov byte [ebp + 0x19], cl
mov ecx, dword [edx + 8]
mov edx, dword [esp + 0x34]
mov ecx, dword [edx + ecx + 0xc]
mov edx, dword [esp + 0x2c]
mov dword [ebp + 0x24], ecx
mov ecx, dword [edx + 0xc]
mov edx, dword [eax + 0xc]
xor ebx, ebx
mov bl, byte [ecx + 0x48]
mov ecx, dword [eax]
cmp bl, 4
mov dword [esp + 0x20], 0
mov dword [esp + 0x24], edx
sbb ebx, ebx
neg ebx
dec ebx
test ecx, ecx
jle 0x445f65
jmp 0x445e60
mov eax, dword [esp + 0x24]
mov ecx, dword [eax + 4]
mov eax, dword [esp + 0x14]
mov edi, dword [eax + 0x10]
mov eax, dword [eax + 0xc]
xor esi, esi
test eax, eax
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x3c], eax
jle 0x445ea2
nop
mov edx, dword [edi]
mov ecx, dword [esp + 0x2c]
call fcn.00408450
test eax, eax
je 0x445e9e
mov edx, dword [esp + 0x14]
mov eax, dword [edx + 0xc]
inc esi
add edi, 0x18
cmp esi, eax
jl 0x445e80
mov eax, dword [esp + 0x3c]
cmp esi, eax
jge 0x445fb4
mov ecx, dword [ebp + 8]
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x24]
mov dword [ecx + eax*4], esi
mov ecx, dword [edx]
test ecx, ecx
je 0x445ef5
mov ecx, dword [ecx + 0x14]
test ecx, ecx
je 0x445ef5
mov esi, dword [ecx]
mov ecx, esi
call fcn.00408380
mov edi, dword [esp + 0x30]
inc eax
mov ecx, eax
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x30]
mov esi, ecx
add ecx, eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x30], ecx
jmp 0x445f10
mov edx, dword [esp + 0x14]
mov edx, dword [edx + 0x10]
lea ecx, [esi + esi*2]
mov esi, dword [edx + ecx*8 + 0x10]
test esi, esi
jne 0x445f10
mov ecx, dword [esp + 0x10]
mov edx, dword [ecx + 0x2c]
mov esi, dword [edx]
mov ecx, dword [esp + 0x10]
mov dl, byte [ecx + 0x7c]
test dl, dl
jne 0x445f36
mov edx, dword [esp + 0x58]
push edx
mov eax, esi
call fcn.004308f0
add esp, 4
test eax, eax
je 0x445fd6
mov eax, dword [esp + 0x20]
mov ecx, dword [ebp + 0x2c]
mov dword [ecx + eax*4], esi
mov esi, dword [esp + 0x24]
mov dl, byte [esi + 0xc]
mov ecx, dword [ebp + 0x28]
and dl, bl
mov byte [eax + ecx], dl
mov edx, dword [esp + 0x68]
mov ecx, dword [edx]
inc eax
add esi, 0x14
cmp eax, ecx
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], esi
jl 0x445e60
mov edx, ebp
call fcn.0040f100
mov ecx, dword [esp + 0x58]
mov eax, dword [esp + 0x14]
cmp eax, dword [ecx + 0x200]
jne 0x446063
mov ebx, dword [eax + 0x14]
test ebx, ebx
je 0x446063
jmp 0x445f90
mov eax, dword [ebx + 4]
cmp eax, dword [ebp + 4]
jne 0x446058
xor esi, esi
test eax, eax
jle 0x446053
mov edi, dword [ebp + 8]
mov ecx, dword [ebx + 8]
sub ecx, edi
mov dword [esp + 0x3c], ecx
jmp 0x446028
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx + 4]
mov edi, dword [esp + 0x58]
push eax
push edx
push str.table__s_has_no_column_named__s
call fcn.00418b00
add esp, 0xc
mov byte [edi + 0x12], 1
test ebp, ebp
je 0x445ff1
mov eax, dword [ebp + 0x1c]
push eax
call fcn.004080d0
mov ecx, dword [esp + 0x14]
push ebp
push ecx
call fcn.00408130
add esp, 0xc
mov ebx, dword [esp + 0x68]
mov edi, dword [esp + 0x10]
call fcn.0040e580
mov edx, dword [esp + 0x64]
push edx
mov eax, edi
call fcn.0040f240
mov eax, dword [esp + 0x2c]
push eax
push edi
call fcn.00408130
mov eax, dword [esp + 0x44]
add esp, 0xc
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x44
ret
mov ecx, dword [esp + 0x3c]
lea eax, [edi + esi*4]
mov edx, dword [eax + ecx]
cmp edx, dword [eax]
jne 0x446053
mov eax, dword [ebx + 0x2c]
mov edx, dword [ebp + 0x2c]
mov ecx, dword [eax + esi*4]
mov edx, dword [edx + esi*4]
cmp ecx, edx
je 0x44604b
call fcn.00408450
test eax, eax
jne 0x446053
mov eax, dword [ebx + 4]
inc esi
cmp esi, eax
jl 0x446024
cmp esi, dword [ebx + 4]
je 0x446097
mov ebx, dword [ebx + 0x20]
test ebx, ebx
jne 0x445f90
mov esi, dword [esp + 0x10]
mov al, byte [esi + 0x7c]
test al, al
je 0x4460fd
mov ecx, dword [ebp]
push ebp
call fcn.00408380
push ecx
mov ecx, dword [ebp + 0x24]
add ecx, 0x14
call fcn.00412f40
add esp, 8
test eax, eax
je 0x4460d6
mov byte [esi + 0x1e], 1
jmp 0x445fd6
mov al, byte [ebx + 0x18]
mov cl, byte [ebp + 0x18]
cmp al, cl
je 0x445fd6
cmp al, 0x63
je 0x4460c1
cmp cl, 0x63
je 0x4460c1
mov edi, dword [esp + 0x58]
push 0
push str.conflicting_ON_CONFLICT_clauses_specified
call fcn.00418b00
add esp, 8
cmp byte [ebx + 0x18], 0x63
jne 0x445fd6
mov al, byte [ebp + 0x18]
mov byte [ebx + 0x18], al
jmp 0x445fd6
mov ecx, dword [esi + 0xc]
mov eax, dword [esp + 0x64]
or ecx, 0x200
test eax, eax
mov dword [esi + 0xc], ecx
je 0x446230
mov ecx, dword [esp + 0x10]
mov edx, dword [ecx + 0x78]
mov dword [ebp + 0x14], edx
jmp 0x446230
mov edi, dword [esp + 0x58]
mov ecx, dword [edi + 0x48]
inc ecx
mov ebx, ecx
mov dword [edi + 0x48], ecx
mov dword [esp + 0x30], ebx
call fcn.0041c720
mov esi, eax
test esi, esi
mov dword [esp + 0x3c], esi
je 0x445fd6
mov edi, dword [esp + 0x18]
mov eax, dword [esp + 0x58]
push 1
mov ecx, edi
call fcn.0042cdb0
push esi
mov eax, ebx
mov ecx, edi
mov edx, 0x61
call fcn.00414e70
mov eax, dword [esp + 0x78]
add esp, 8
test eax, eax
je 0x446185
mov eax, dword [esp + 0x6c]
test eax, eax
mov ecx, 0x4b0404
je 0x44615e
mov ecx, str._UNIQUE
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
mov edx, dword [esp + 0x74]
mov edx, dword [edx]
mov esi, dword [esp + 0x10]
push eax
sub edx, eax
inc edx
push edx
push ecx
push str.CREATE_s_INDEX__.s
call fcn.00418920
add esp, 0x10
mov esi, eax
jmp 0x446187
xor esi, esi
cmp edi, 1
mov eax, str.sqlite_temp_master
je 0x446196
mov eax, str.sqlite_master
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x14]
mov edi, dword [esp + 0x10]
mov ebx, dword [esp + 0x58]
push esi
push ecx
mov ecx, dword [edx + 4]
mov edx, dword [ebp]
push ecx
mov ecx, dword [esp + 0x40]
push edx
push eax
mov eax, dword [edi + 8]
mov edx, dword [ecx + eax]
push edx
push str.INSERT_INTO__Q._s_VALUES_index__Q__Q__d__Q__
call fcn.0041abf0
push esi
push edi
call fcn.00408130
mov eax, dword [esp + 0x88]
add esp, 0x24
test eax, eax
je 0x446230
mov eax, dword [esp + 0x30]
push eax
mov edi, ebx
push ebp
mov eax, edi
call fcn.0043fff0
mov ebx, dword [esp + 0x20]
push ebx
call fcn.004164c0
mov ecx, dword [ebp]
mov esi, dword [esp + 0x1c]
add esp, 0xc
push 0xffffffffffffffff
push ecx
push str.name_q
call fcn.00418920
mov edi, dword [esp + 0x48]
add esp, 8
push eax
push 0x63
xor eax, eax
xor ecx, ecx
mov edx, ebx
call fcn.004197c0
push edi
xor eax, eax
mov ecx, 0x7a
call fcn.00414e50
add esp, 0x10
mov edx, dword [esp + 0x10]
mov al, byte [edx + 0x7c]
test al, al
jne 0x446247
mov eax, dword [esp + 0x64]
test eax, eax
jne 0x445fd6
mov eax, dword [esp + 0x6c]
mov ecx, dword [esp + 0x14]
mov edx, 5
cmp eax, edx
jne 0x446293
mov eax, dword [ecx + 0x14]
test eax, eax
je 0x446293
cmp byte [eax + 0x18], dl
je 0x446293
mov ecx, dword [eax + 0x20]
test ecx, ecx
je 0x446281
jmp 0x446270
mov ecx, dword [eax + 0x20]
cmp byte [ecx + 0x18], dl
je 0x446281
mov eax, ecx
mov ecx, dword [eax + 0x20]
test ecx, ecx
jne 0x446270
mov ecx, dword [eax + 0x20]
mov dword [ebp + 0x20], ecx
mov dword [eax + 0x20], ebp
mov dword [esp + 0x38], ebp
jmp 0x445ff1
mov edx, dword [ecx + 0x14]
mov dword [ebp + 0x20], edx
mov dword [ecx + 0x14], ebp
mov dword [esp + 0x38], ebp
jmp 0x445ff1