Function at 0x473230
Capabilities:
Enumerate pe sections

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x70
pcmpeqd xmm0, xmm0
mov edi, edx
mov edx, ecx
mov dword [esp + 0x64], 0xffffffff
mov dword [esp + 0x60], 0xffffffff
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp + 0x1c]
mov esi, dword [ebp + 0xc]
movdqa xmmword [esp + 0x50], xmm0
mov ebx, dword [edx]
mov dword [esp + 0x38], 0
mov dword [esp + 0x1c], eax
cmp byte [ebx + 0x51], 0
jne 0x47328c
cmp dword [edx + 0x24], 0
jg 0x47328c
cmp byte [ebp + 0x28], 2
je 0x4732cb
cmp byte [edx + 0xc8], 1
jne 0x4732cb
xor edi, edi
test ecx, ecx
je 0x47329b
mov edx, ecx
mov ecx, ebx
call fcn.00469b50
cmp dword [esp + 0x1c], 0
je 0x4732ad
mov edx, dword [esp + 0x1c]
mov ecx, ebx
call fcn.0046a010
mov ecx, ebx
mov edx, esi
call fcn.00469df0
test edi, edi
je 0x4732c3
mov ecx, ebx
mov edx, edi
call fcn.004352c0
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
cmp byte [ebx + 0xa5], 0
mov dword [esp + 0x14], ecx
mov dword [esp + 0xc], edx
je 0x47334d
cmp dword [ebp + 0x10], 0
je 0x47330f
mov eax, dword [ebp + 0x10]
mov eax, dword [eax]
test eax, eax
jle 0x47330f
mov ecx, dword [ebp + 0x10]
add ecx, 0xd
nop word cs:[eax + eax]
nop dword [eax + eax]
test byte [ecx], 0x20
jne 0x473458
add ecx, 0x10
dec eax
jne 0x473300
test esi, esi
je 0x4733f5
mov esi, ebx
mov ebx, dword [ebp + 8]
mov ecx, dword [edx]
cmp dword [ebx + 4], 0
je 0x473485
cmp byte [ecx + 0xa5], 0
je 0x473496
push str.corrupt_database
push edx
call fcn.0042af90
add esp, 8
mov ebx, esi
mov esi, dword [ebp + 0xc]
jmp 0x473593
mov eax, dword [ebx + 0x10]
mov ecx, dword [eax + 0xc]
mov cl, byte [ecx + 0x4d]
mov byte [esp + 8], cl
mov ecx, dword [ebx + 0x18]
mov dword [esp + 0x18], ecx
mov cl, byte [esp + 8]
mov byte [ebx + 0x4e], cl
lea ecx, [edx + 4]
mov eax, dword [eax + 0xc]
mov dword [esp + 0x24], ecx
test byte [eax + 0x4e], 1
jne 0x473392
xor edx, edx
mov ecx, ebx
push 0
push dword [esp + 0x28]
call fcn.0045c460
mov edx, dword [esp + 0x14]
add esp, 8
test eax, eax
jne 0x4733ea
mov dword [esp + 8], ebx
mov ebx, dword [ebx + 0x14]
cmp ebx, 2
jl 0x473433
lea esi, [ebx + 1]
shl ebx, 4
add ebx, 0xfffffffc
jmp 0x4733b6
dec esi
add ebx, 0xfffffff0
cmp esi, 2
jle 0x473433
mov eax, dword [esp + 8]
mov eax, dword [eax + 0x10]
mov eax, dword [eax + ebx]
test byte [eax + 0x4e], 1
jne 0x4733ad
mov ecx, dword [esp + 8]
lea edx, [esi - 2]
push 0
push dword [esp + 0x28]
call fcn.0045c460
mov edx, dword [esp + 0x14]
add esp, 8
test eax, eax
je 0x4733ad
mov ebx, dword [esp + 8]
mov esi, dword [ebp + 0xc]
mov dword [edx + 0xc], eax
inc dword [edx + 0x24]
jmp 0x473593
mov eax, dword [edx + 0xe4]
test eax, eax
je 0x473593
mov edi, dword [eax + 0x48]
test edi, edi
je 0x4734ef
mov ecx, dword [ebx + 0x10]
mov edx, 0xffffffff
add ecx, 0xc
nop dword [eax]
inc edx
cmp dword [ecx], edi
lea ecx, [ecx + 0x10]
jne 0x473420
xor edi, edi
mov dword [esp + 0x24], edx
jmp 0x4734f9
test byte [esp + 0x18], 1
mov ebx, dword [esp + 8]
jne 0x473442
and byte [ebx + 0x18], 0xfe
cmp byte [ebx + 0x59], 0
mov esi, dword [ebp + 0xc]
je 0x4732dc
or byte [ebx + 0x18], 0x10
jmp 0x4732dc
mov al, byte [ecx - 1]
mov edi, edx
mov ecx, str.FIRST
mov edx, str.LAST
cmp al, 3
cmove edx, ecx
test al, al
cmove edx, ecx
push edx
push str.unsupported_use_of_NULLS__s
push edi
call fcn.0042af90
add esp, 0xc
jmp 0x473593
movzx eax, byte [ecx + 0xa4]
mov dword [esp + 0x28], edi
mov dword [esp + 0x24], eax
jmp 0x4734b1
mov edx, edi
call fcn.00491520
mov edx, dword [esp + 0xc]
test eax, eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], ebx
js 0x4736bf
cmp byte [esi + 0xa5], 0
je 0x4734be
mov ebx, esi
jmp 0x47350c
mov ecx, edx
mov edx, dword [ebp + 0xc]
call fcn.00499bb0
test eax, eax
je 0x473506
cmp dword [ebx + 4], 0
jne 0x473506
mov eax, dword [eax + 0x48]
mov ecx, dword [esi + 0x10]
mov edx, dword [esp + 0x24]
mov ebx, esi
cmp eax, dword [ecx + 0x1c]
mov eax, 1
cmove edx, eax
mov dword [esp + 0x24], edx
jmp 0x473508
xor edi, edi
mov dword [esp + 0x24], 0xfff0bdc0
mov dword [esp + 0x34], 0
jmp 0x4735b3
mov ebx, esi
mov edx, dword [esp + 0xc]
mov eax, dword [edx]
mov edi, dword [esp + 0x24]
mov dword [esp + 0x50], edx
mov esi, dword [ebp + 0xc]
mov eax, dword [eax + 0x10]
mov ecx, edi
shl ecx, 4
cmp edi, 1
mov edx, dword [eax + ecx]
mov dword [esp + 0x5c], edx
mov edx, esi
mov eax, dword [eax + ecx + 0xc]
lea ecx, [esp + 0x50]
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0x60], str.index
mov dword [esp + 0x64], eax
sete byte [esp + 0x58]
call fcn.00499cb0
mov ecx, dword [esp + 0xc]
lea eax, [esi + 8]
xor edx, edx
push eax
call fcn.00497e10
add esp, 4
test eax, eax
je 0x473593
cmp edi, 1
jne 0x47359d
mov ecx, dword [ebx + 0x10]
mov ecx, dword [ecx + 0x1c]
cmp ecx, dword [eax + 0x48]
je 0x47359d
push dword [eax]
push str.cannot_create_a_TEMP_index_on_non_TEMP_table___s_
push dword [esp + 0x14]
mov edi, eax
call fcn.0042af90
add esp, 0xc
jmp 0x4737bd
mov ecx, dword [ebp + 0x1c]
xor edi, edi
jmp 0x47328e
cmp byte [eax + 0x24], 0
mov dword [esp + 0x34], 0
js 0x4736d3
mov edi, dword [esp + 0x28]
mov dword [esp + 0x18], eax
mov eax, dword [eax]
mov ecx, dword [ebx + 0x10]
test eax, eax
mov dword [esp + 0x2c], ecx
je 0x473784
movzx edx, byte [eax]
xor ecx, ecx
test edx, edx
je 0x4736a8
mov esi, ebx
mov bh, dl
and bh, 0xdf
cmp bh, 0x53
jne 0x4736b2
movzx edx, byte [eax + 1]
test edx, edx
je 0x4736fb
mov ebx, edx
and bl, 0xdf
cmp bl, 0x51
jne 0x473702
movzx edx, byte [eax + 2]
test edx, edx
je 0x473718
mov ebx, edx
and bl, 0xdf
cmp bl, 0x4c
jne 0x47371f
movzx edx, byte [eax + 3]
test edx, edx
je 0x47372c
mov ebx, edx
and bl, 0xdf
cmp bl, 0x49
jne 0x473733
movzx edx, byte [eax + 4]
mov dword [esp + 0x28], edi
test edx, edx
je 0x473e8b
mov ebx, edx
and bl, 0xdf
cmp bl, 0x54
jne 0x473e9e
movzx edx, byte [eax + 5]
mov dword [esp + 8], eax
test edx, edx
je 0x47400a
mov ebx, edx
and bl, 0xdf
cmp bl, 0x45
jne 0x474014
mov eax, dword [esp + 8]
movzx edx, byte [eax + 6]
test edx, edx
je 0x474347
mov ebx, esi
mov esi, dword [ebp + 0xc]
mov edi, dword [esp + 0x28]
mov eax, dword [esp + 8]
cmp dl, 0x5f
je 0x473754
lea ecx, [edx + 0x50ce7b]
mov edx, 0x5139f6
movzx ecx, byte [ecx]
jmp 0x473743
mov edx, str.sqlite_
jmp 0x473746
lea ecx, [edx + 0x50ce7b]
mov edx, str.sqlite_
jmp 0x47373e
push edi
push str.unknown_database__T
push edx
call fcn.0042af90
add esp, 0xc
jmp 0x473343
mov edx, dword [eax + 8]
mov edi, dword [esp + 0x28]
test edx, edx
je 0x4735b3
movzx ecx, word [edx + 0x37]
and ecx, 3
cmp cx, 2
je 0x47370f
mov edx, dword [edx + 0x14]
test edx, edx
jne 0x4736e2
jmp 0x4735b3
mov edx, 0x5139f1
jmp 0x473741
lea ecx, [edx + 0x50ce7b]
mov edx, 0x5139f1
jmp 0x47373e
mov dword [esp + 0x34], edx
jmp 0x4735b3
mov edx, 0x5139f2
jmp 0x473741
lea ecx, [edx + 0x50ce7b]
mov edx, 0x5139f2
jmp 0x47373e
mov edx, 0x5139f3
jmp 0x473741
lea ecx, [edx + 0x50ce7b]
mov edx, 0x5139f3
movzx ecx, byte [ecx]
mov ebx, esi
mov esi, dword [ebp + 0xc]
movzx edx, byte [edx]
movzx edx, byte [edx + 0x50ce7b]
cmp ecx, edx
jne 0x473784
test esi, esi
je 0x473784
cmp byte [ebx + 0xa5], 0
jne 0x473784
push eax
push str.table__s_may_not_be_indexed
push dword [esp + 0x14]
call fcn.0042af90
add esp, 0xc
mov dword [esp + 0x20], 0
mov ecx, dword [ebp + 0x1c]
mov edi, dword [esp + 0x18]
jmp 0x4737c8
mov dword [esp + 8], eax
mov eax, dword [esp + 0x18]
cmp dword [eax + 0xc], 0
je 0x47379d
push str.views_may_not_be_indexed
push dword [esp + 0x10]
jmp 0x4737b1
cmp dword [eax + 0x38], 0
mov ecx, dword [esp + 0xc]
je 0x473880
push str.virtual_tables_may_not_be_indexed
push ecx
call fcn.0042af90
mov edi, dword [esp + 0x20]
add esp, 8
mov ecx, dword [ebp + 0x1c]
mov dword [esp + 0x20], 0
mov eax, dword [edi + 8]
test eax, eax
je 0x4737fb
mov dword [esp + 0x14], ecx
lea ecx, [eax + 0x14]
mov dword [esp + 8], ebx
mov dword [esp + 0x24], ecx
mov ecx, eax
mov eax, dword [eax + 0x14]
test eax, eax
sete dl
cmp byte [ecx + 0x36], 5
jne 0x473804
mov ebx, ecx
mov ecx, edi
add ecx, 8
mov dword [esp + 0xc], ebx
jmp 0x47382e
mov edi, dword [esp + 0x20]
jmp 0x47328e
mov edi, dword [esp + 0x24]
mov esi, eax
test dl, 1
jne 0x47386c
mov eax, dword [esi + 0x14]
lea ebx, [esi + 0x14]
mov ecx, edi
mov dword [esp + 0xc], esi
mov edi, ebx
mov dword [esp + 0x24], ebx
test eax, eax
sete dl
cmp byte [esi + 0x36], 5
mov esi, eax
jne 0x47380a
mov edi, dword [esp + 0x20]
test dl, dl
je 0x47383f
mov ebx, dword [esp + 8]
mov esi, dword [ebp + 0xc]
jmp 0x473877
mov ebx, dword [esp + 8]
mov esi, dword [ebp + 0xc]
mov edx, dword [esp + 0x24]
cmp byte [eax + 0x36], 5
je 0x473877
mov dword [ecx], eax
mov ecx, dword [esp + 0xc]
mov esi, dword [eax + 0x14]
mov dword [edx], esi
mov dword [eax + 0x14], ecx
lea ecx, [eax + 0x14]
mov esi, dword [ebp + 0xc]
mov eax, dword [edx]
test eax, eax
jne 0x47384a
jmp 0x473877
mov ebx, dword [esp + 8]
mov esi, dword [ebp + 0xc]
mov edi, dword [esp + 0x20]
mov ecx, dword [esp + 0x14]
jmp 0x47328e
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x28], edi
mov edi, dword [esp + 0x2c]
mov edx, dword [esp + 0x28]
shl ecx, 4
add edi, ecx
test edx, edx
mov dword [esp + 0x40], ecx
je 0x4738e7
mov ecx, ebx
call fcn.00478820
test eax, eax
je 0x473773
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x20], eax
mov edx, eax
mov eax, dword [esp + 0x18]
mov dword [esp + 8], edi
mov edi, ecx
push dword [eax]
push str.index
call fcn.00491130
add esp, 8
test eax, eax
jne 0x47377b
cmp byte [edi + 0xc8], 1
jbe 0x473948
mov edx, edi
jmp 0x473a20
mov edx, dword [eax + 8]
test edx, edx
je 0x473901
mov eax, dword [esp + 8]
mov ecx, 2
mov edx, dword [edx + 0x14]
test edx, edx
je 0x47390a
inc ecx
jmp 0x4738f7
mov eax, dword [esp + 8]
mov ecx, 1
push ecx
push eax
push str.sqlite_autoindex__s__d
push ebx
call fcn.0042b0f0
add esp, 0x10
test eax, eax
mov dword [esp + 0x20], eax
je 0x473773
mov edx, dword [esp + 0xc]
cmp byte [edx + 0xc8], 0
je 0x4739ab
mov eax, dword [esp + 0x20]
inc byte [eax + 7]
cmp byte [edx + 0xc8], 1
jbe 0x4739ab
jmp 0x473a20
cmp byte [ebx + 0xa5], 0
je 0x473985
mov edi, dword [esp + 8]
mov edx, dword [esp + 0x20]
mov ecx, ebx
push dword [edi]
call fcn.00469100
add esp, 4
test eax, eax
je 0x4739a7
cmp dword [ebp + 0x24], 0
je 0x473eb2
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x24]
call fcn.0048f7c0
jmp 0x47377b
mov edx, dword [esp + 0x20]
mov ecx, ebx
push 0
call fcn.00433400
add esp, 4
test eax, eax
je 0x473951
push dword [esp + 0x20]
push str.there_is_already_a_table_named__s
jmp 0x473ebb
mov edx, dword [esp + 0xc]
mov esi, dword [esp + 0x24]
mov eax, dword [edi]
mov ecx, str.sqlite_temp_master
mov edi, str.sqlite_master
cmp esi, 1
mov dword [esp + 8], eax
cmove edi, ecx
mov ecx, edx
mov edx, 0x12
push eax
push 0
push edi
call fcn.004910a0
add esp, 0xc
test eax, eax
je 0x4739eb
mov esi, dword [ebp + 0xc]
mov edi, dword [esp + 0x18]
mov ecx, dword [ebp + 0x1c]
jmp 0x4737c8
mov edi, dword [esp + 0xc]
xor eax, eax
cmp esi, 1
sete al
lea edx, [eax + eax + 1]
mov ecx, edi
push dword [esp + 8]
mov eax, dword [esp + 0x1c]
push dword [eax]
push dword [esp + 0x28]
call fcn.004910a0
add esp, 0xc
mov esi, dword [ebp + 0xc]
test eax, eax
mov edx, edi
jne 0x47377b
cmp dword [ebp + 0x10], 0
je 0x473a58
mov ecx, dword [ebp + 0x10]
mov eax, dword [edx]
mov ecx, dword [ecx]
cmp ecx, dword [eax + 0x74]
jle 0x473a49
push str.index
push str.too_many_columns_in__s
push edx
call fcn.0042af90
mov edx, dword [esp + 0x18]
add esp, 0xc
cmp dword [edx + 0x24], 0
jne 0x47377b
jmp 0x473aee
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x44], 0xffffffff
mov dword [esp + 0x48], 0xffffffff
mov eax, dword [ecx + 4]
movsx ecx, word [ecx + 0x2a]
lea ecx, [ecx + ecx*4]
or word [eax + ecx*4 - 4], 8
mov eax, dword [eax + ecx*4 - 0x14]
test eax, eax
mov dword [esp + 0x44], eax
je 0x473a98
push eax
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
and eax, 0x3fffffff
jmp 0x473a9a
xor eax, eax
mov dword [esp + 0x48], eax
lea eax, [esp + 0x44]
mov ecx, ebx
mov edx, 0x3b
push 0
push eax
call fcn.00478230
add esp, 8
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x1c], 0
xor edx, edx
push eax
call fcn.00477e20
add esp, 4
test eax, eax
je 0x47377b
mov edx, dword [eax]
mov esi, dword [ebp + 0x20]
mov ecx, 0
mov dword [esp + 0x1c], eax
shl edx, 4
cmp esi, 0xffffffff
cmovne ecx, esi
mov byte [edx + eax - 4], cl
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax]
test ecx, ecx
mov dword [esp + 0x10], ecx
jle 0x473b3d
mov eax, dword [esp + 0x1c]
xor esi, esi
lea edi, [eax + 4]
jmp 0x473b2b
push eax
mov dword [esp + 0xc], esi
mov esi, ecx
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
mov ecx, esi
mov esi, dword [esp + 0xc]
add esp, 4
and eax, 0x3fffffff
lea esi, [esi + eax + 1]
add edi, 0x10
dec ecx
je 0x473b3f
mov eax, dword [edi]
cmp byte [eax], 0x6f
jne 0x473b25
mov eax, dword [eax + 8]
test eax, eax
jne 0x473b07
xor eax, eax
jmp 0x473b21
xor esi, esi
push dword [esp + 0x20]
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
mov ecx, dword [esp + 0x34]
mov edi, eax
and edi, 0x3fffffff
test ecx, ecx
je 0x473b67
movzx edx, word [ecx + 0x32]
mov ecx, dword [esp + 0x10]
add ecx, edx
jmp 0x473b6c
mov ecx, dword [esp + 0x10]
inc ecx
lea esi, [edi + esi + 1]
lea eax, [esp + 0x38]
movsx edx, cx
mov ecx, ebx
push eax
push esi
call fcn.00499f60
add esp, 8
cmp byte [ebx + 0x51], 0
mov esi, eax
je 0x473be6
test esi, esi
je 0x473bd6
mov edx, dword [esi + 0x24]
test edx, edx
je 0x473b9d
mov ecx, ebx
call fcn.00469b50
mov edx, dword [esi + 0x28]
test edx, edx
je 0x473bab
mov ecx, ebx
call fcn.0046a010
mov edx, dword [esi + 0x10]
test edx, edx
je 0x473bb9
mov ecx, ebx
call fcn.004352c0
test byte [esi + 0x37], 0x10
je 0x473bcd
mov edx, dword [esi + 0x20]
test edx, edx
je 0x473bcd
mov ecx, ebx
call fcn.004352c0
mov ecx, ebx
mov edx, esi
call fcn.004352c0
mov esi, dword [ebp + 0xc]
mov edi, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
jmp 0x4737c8
mov eax, dword [esp + 0x38]
inc edi
lea ecx, [eax + edi]
mov dword [esi], eax
mov dword [esp + 0x38], ecx
push edi
push dword [esp + 0x24]
push eax
call sub.api_ms_win_crt_private_l1_1_0.dll_memcpy
add esp, 0xc
mov edx, dword [esp + 0x18]
mov eax, dword [ebp + 0x14]
xor ecx, ecx
mov dword [esp + 8], ebx
mov dword [esp + 0x10], esi
mov dword [esi + 0xc], edx
test eax, eax
mov byte [esi + 0x36], al
mov al, byte [ebp + 0x28]
setne cl
mov edi, ecx
movzx ecx, word [esi + 0x37]
and al, 3
movzx eax, al
mov dword [esp + 0x4c], eax
and ecx, 0xfffffff4
lea eax, [eax + edi*8]
or eax, ecx
mov ecx, dword [esp + 0x40]
cmp dword [ebp + 0x1c], 0
mov word [esi + 0x37], ax
mov eax, dword [ebx + 0x10]
mov eax, dword [eax + ecx + 0xc]
mov dword [esi + 0x18], eax
mov eax, dword [esp + 0x1c]
movzx eax, word [eax]
mov word [esi + 0x32], ax
je 0x473c7a
mov ecx, dword [esp + 0xc]
push 0
mov esi, dword [ebp + 0x1c]
push esi
push 2
call fcn.00491fc0
add esp, 0xc
mov eax, dword [esp + 0x10]
mov dword [eax + 0x24], esi
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0xc]
mov eax, dword [ecx + eax + 0xc]
cmp byte [edx + 0xc8], 2
mov ecx, dword [esp + 0x1c]
mov al, byte [eax + 0x4c]
mov dword [esp + 0x30], ecx
mov byte [esp + 0x3c], al
jb 0x473cb1
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x30], 0
mov dword [esi + 0x28], eax
cmp word [esi + 0x32], 0
je 0x473ecc
mov ebx, dword [esp + 0x38]
mov ecx, dword [esp + 0xc]
add dword [esp + 0x1c], 4
mov dword [esp + 0x14], 0
jmp 0x473cf9
mov edx, dword [esi + 0x1c]
mov edi, dword [esp + 0x14]
add dword [esp + 0x1c], 0x10
mov byte [edx + edi], al
mov edx, dword [esp + 0x2c]
inc edi
movzx eax, word [esi + 0x32]
mov dword [esp + 0x14], edi
mov ebx, edx
cmp edi, eax
jae 0x473ef9
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
mov dl, byte [eax]
cmp dl, 0x6f
je 0x473d0b
cmp dl, 0x73
jmp 0x473d11
mov eax, dword [eax + 0xc]
cmp byte [eax], 0x73
mov esi, dword [esp + 0x18]
jne 0x473d1a
mov byte [eax], 0x3b
mov edx, esi
push 0
mov eax, dword [esp + 0x20]
push dword [eax]
push 0x20
call fcn.00491fc0
mov ecx, dword [esp + 0x18]
add esp, 0xc
cmp dword [ecx + 0x24], 0
jne 0x473ed8
mov edx, dword [esp + 0x1c]
mov eax, dword [edx]
test byte [eax + 5], 0x10
lea edx, [eax + 0xc]
jne 0x473d40
cmp byte [eax], 0xa4
jne 0x473d81
movsx eax, word [eax + 0x20]
test eax, eax
js 0x473dca
mov edx, dword [esi + 4]
lea ecx, [eax + eax*4]
cmp byte [edx + ecx*4 + 0xc], 0
jne 0x473d70
mov edx, dword [esp + 0x10]
and byte [edx + 0x37], 0xf7
mov edx, dword [esi + 4]
test byte [edx + ecx*4 + 0x10], 0x20
je 0x473dce
mov ecx, dword [esp + 0x10]
or byte [ecx + 0x38], 4
jmp 0x473dce
cmp esi, dword [ecx + 0xe4]
je 0x474031
mov edx, dword [esp + 0x10]
cmp dword [edx + 0x28], 0
jne 0x473da6
mov eax, dword [esp + 0x30]
mov dword [esp + 0x30], 0
mov dword [edx + 0x28], eax
mov eax, dword [edx + 4]
mov esi, dword [esp + 0x14]
mov word [eax + esi*2], 0xfffe
and byte [edx + 0x37], 0xf7
mov eax, dword [esp + 0x1c]
mov edx, dword [eax]
cmp byte [edx], 0x6f
je 0x473de8
mov dword [esp + 0x2c], ebx
xor ebx, ebx
jmp 0x473e32
movsx eax, word [esi + 0x28]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov ecx, dword [ecx + 4]
mov word [ecx + edx*2], ax
mov edx, dword [esp + 0x1c]
mov edx, dword [edx]
cmp byte [edx], 0x6f
jne 0x473e02
mov esi, dword [edx + 8]
test esi, esi
je 0x473e16
push esi
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
mov edi, eax
and edi, 0x3fffffff
jmp 0x473e18
test eax, eax
js 0x473e83
mov ecx, dword [esi + 4]
lea eax, [eax + eax*4]
mov dword [esp + 0x2c], ebx
mov ebx, dword [ecx + eax*4 + 8]
jmp 0x473e2e
xor edi, edi
lea eax, [edi + 1]
push eax
push esi
push ebx
call sub.api_ms_win_crt_private_l1_1_0.dll_memcpy
add esp, 0xc
lea eax, [ebx + edi + 1]
mov dword [esp + 0x2c], eax
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 8]
test ebx, ebx
mov eax, str.BINARY
mov esi, dword [esp + 0x10]
cmove ebx, eax
cmp byte [edx + 0xa5], 0
jne 0x473e60
mov edx, ebx
call fcn.00486840
mov ecx, dword [esp + 0xc]
test eax, eax
je 0x474326
xor eax, eax
cmp byte [esp + 0x3c], 3
mov edx, dword [esi + 0x20]
mov edi, dword [esp + 0x14]
mov dword [edx + edi*4], ebx
jbe 0x473cd3
mov eax, dword [esp + 0x1c]
mov eax, dword [eax + 8]
jmp 0x473cd3
mov dword [esp + 0x2c], ebx
xor ebx, ebx
jmp 0x473e2e
mov ebx, esi
mov esi, dword [ebp + 0xc]
mov edi, dword [esp + 0x28]
mov edx, 0x5139f4
jmp 0x473746
lea ecx, [edx + 0x50ce7b]
mov edi, dword [esp + 0x28]
mov edx, 0x5139f4
jmp 0x474027
push dword [esp + 0x20]
push str.index__s_already_exists
push dword [esp + 0x14]
call fcn.0042af90
add esp, 0xc
jmp 0x47377b
xor eax, eax
mov dword [esp + 0x14], 0
jmp 0x473efd
mov eax, dword [esp + 0x30]
mov dword [esp + 0x38], ebx
mov dword [esp + 0x14], 0
mov dword [esp + 0x1c], eax
mov ebx, dword [esp + 8]
mov esi, dword [esp + 0x10]
jmp 0x473b8f
mov dword [esp + 0x38], edx
mov ecx, dword [esp + 0x30]
cmp dword [esp + 0x34], 0
mov dword [esp + 0x1c], ecx
je 0x473f75
mov ebx, dword [esp + 0x34]
mov esi, dword [esp + 0x10]
cmp word [ebx + 0x32], 0
je 0x473f90
xor edi, edi
movzx edx, ax
mov ecx, esi
push edi
push ebx
call fcn.00492fb0
add esp, 8
test eax, eax
je 0x473f36
dec word [esi + 0x34]
jmp 0x473f66
mov eax, dword [ebx + 4]
mov ecx, dword [esi + 4]
mov edx, dword [esp + 0x14]
movzx eax, word [eax + edi*2]
mov word [ecx + edx*2], ax
mov eax, dword [ebx + 0x20]
mov ecx, dword [esi + 0x20]
mov eax, dword [eax + edi*4]
mov dword [ecx + edx*4], eax
mov eax, dword [ebx + 0x1c]
mov ecx, dword [esi + 0x1c]
movzx eax, byte [eax + edi]
mov byte [ecx + edx], al
inc edx
mov dword [esp + 0x14], edx
movzx eax, word [ebx + 0x32]
inc edi
cmp edi, eax
jae 0x473f90
movzx eax, word [esi + 0x32]
jmp 0x473f1d
mov esi, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov eax, dword [esi + 4]
mov word [eax + ecx*2], 0xffff
mov eax, dword [esi + 0x20]
mov dword [eax + ecx*4], str.BINARY
mov ecx, esi
call fcn.004697a0
mov eax, dword [esp + 0xc]
cmp dword [eax + 0xe4], 0
jne 0x473fad
mov ecx, dword [esp + 0x10]
call fcn.00492140
mov ecx, dword [esp + 0x10]
call fcn.00493050
cmp dword [ebp + 0xc], 0
je 0x47408f
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x18]
movzx eax, word [eax + 0x34]
movsx ecx, word [ecx + 0x2a]
cmp eax, ecx
jl 0x47408f
mov esi, dword [esp + 0x10]
movzx ecx, word [esi + 0x37]
mov edx, ecx
or edx, 0x20
mov word [esi + 0x37], dx
mov edx, dword [esp + 0x18]
movzx edx, word [edx + 0x2a]
test dx, dx
jle 0x47408f
mov esi, dword [esp + 0x18]
xor ebx, ebx
movsx esi, word [esi + 0x28]
mov dword [esp + 0x14], esi
jmp 0x474062
mov edx, 0x5139f5
jmp 0x47434c
lea ecx, [edx + 0x50ce7b]
mov edi, dword [esp + 0x28]
mov eax, dword [esp + 8]
mov edx, 0x5139f5
mov ebx, esi
movzx ecx, byte [ecx]
jmp 0x473743
mov dword [esp + 0x38], ebx
push str.expressions_prohibited_in_PRIMARY_KEY_and_UNIQUE_constraints
push ecx
call fcn.0042af90
add esp, 8
mov eax, dword [esp + 0x30]
mov dword [esp + 0x14], 0
mov dword [esp + 0x1c], eax
jmp 0x47442e
test si, si
js 0x474081
inc ebx
cmp ebx, edx
je 0x47408f
cmp ebx, dword [esp + 0x14]
je 0x47405d
test ax, ax
je 0x474081
mov esi, dword [esp + 0x10]
mov edi, dword [esi + 4]
xor esi, esi
cmp word [edi + esi*2], bx
je 0x474058
inc esi
cmp eax, esi
jne 0x474076
mov eax, dword [esp + 0x10]
and ecx, 0xffdf
mov word [eax + 0x37], cx
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0xc]
cmp eax, dword [ecx + 0xe4]
je 0x47417d
mov eax, dword [esp + 0xc]
cmp byte [eax + 0xc8], 1
jbe 0x4740f7
cmp dword [ebp + 0xc], 0
je 0x474307
mov eax, dword [esp + 8]
cmp byte [eax + 0xa5], 0
jne 0x474307
mov eax, dword [esp + 0xc]
mov dword [esp + 0x14], 0
cmp byte [eax + 0xc8], 2
jb 0x47442e
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov dword [eax + 0xe8], ecx
jmp 0x4742ac
mov eax, dword [esp + 8]
cmp byte [eax + 0xa5], 0
je 0x4742f7
cmp dword [ebp + 0xc], 0
je 0x4742be
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x10]
mov eax, dword [eax + 0xa0]
mov dword [ecx + 0x2c], eax
mov ecx, dword [ecx + 0xc]
mov ecx, dword [ecx + 8]
jmp 0x47412e
mov ecx, dword [ecx + 0x14]
test ecx, ecx
je 0x4742be
cmp ecx, dword [esp + 0x10]
je 0x47412b
cmp dword [ecx + 0x2c], eax
jne 0x47412b
push str.invalid_rootpage
mov esi, dword [esp + 0x10]
push esi
call fcn.0042af90
add esp, 8
push 0x50d803
push 0x1bd34
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.0041f100
add esp, 0x14
mov dword [esi + 0xc], 0xb
jmp 0x474426
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + 8]
test ecx, ecx
je 0x4740a3
mov eax, dword [esp + 0x10]
movzx eax, word [eax + 0x32]
mov dword [esp + 0x2c], eax
jmp 0x4741b3
xor edi, edi
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x14]
cmp edi, eax
je 0x474227
mov ecx, dword [ecx + 0x14]
test ecx, ecx
je 0x4740a3
cmp word [ecx + 0x32], ax
jne 0x4741a8
test ax, ax
mov dword [esp + 0x14], ecx
je 0x47419a
mov eax, dword [esp + 0x10]
mov edx, dword [ecx + 4]
xor edi, edi
mov esi, dword [eax + 4]
mov dword [esp + 0x34], edx
mov dword [esp + 0x3c], esi
movzx eax, word [edx + edi*2]
cmp ax, word [esi + edi*2]
jne 0x47419c
mov eax, dword [ecx + 0x20]
xor ebx, ebx
mov esi, dword [eax + edi*4]
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x20]
mov edx, dword [eax + edi*4]
jmp 0x474204
movzx eax, byte [eax + 0x50ce7b]
cmp al, byte [ecx + 0x50ce7b]
jne 0x47419c
inc ebx
movzx eax, byte [esi + ebx]
movzx ecx, byte [edx + ebx]
cmp al, cl
jne 0x4741f4
test al, al
jne 0x474203
inc edi
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x34]
mov esi, dword [esp + 0x3c]
cmp edi, dword [esp + 0x2c]
jne 0x4741d6
mov esi, ecx
mov al, byte [ecx + 0x36]
mov ecx, dword [esp + 0x10]
mov cl, byte [ecx + 0x36]
cmp al, cl
je 0x474264
cmp al, 0xb
je 0x474256
cmp cl, 0xb
je 0x474256
push 0
push str.conflicting_ON_CONFLICT_clauses_specified
push dword [esp + 0x14]
call fcn.0042af90
add esp, 0xc
mov al, byte [esi + 0x36]
cmp al, 0xb
jne 0x474264
mov eax, dword [esp + 0x10]
mov al, byte [eax + 0x36]
mov byte [esi + 0x36], al
cmp byte [ebp + 0x28], 2
jne 0x47427c
movzx eax, word [esi + 0x37]
movzx ecx, word [esp + 0x4c]
and eax, 0xfffffffc
or ecx, eax
mov word [esi + 0x37], cx
mov eax, dword [esp + 0xc]
mov dword [esp + 0x14], 0
cmp byte [eax + 0xc8], 2
jb 0x473eec
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
mov eax, dword [ecx + 0xe8]
mov dword [edx + 0x14], eax
mov dword [ecx + 0xe8], edx
mov ebx, dword [esp + 8]
mov esi, dword [ebp + 0xc]
mov edi, dword [esp + 0x18]
xor ecx, ecx
jmp 0x4737c8
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0x18]
mov edx, dword [eax]
add ecx, 0x18
push eax
call fcn.004682f0
add esp, 4
test eax, eax
je 0x47435e
mov ebx, dword [esp + 8]
mov ecx, ebx
call fcn.004267e0
mov esi, dword [esp + 0x10]
mov dword [esp + 0x14], 0
jmp 0x473b8f
cmp dword [ebp + 0xc], 0
jne 0x47436b
mov eax, dword [esp + 0x18]
cmp byte [eax + 0x24], 0
jns 0x47436b
mov edi, dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
mov ebx, dword [esp + 8]
mov esi, dword [ebp + 0xc]
mov eax, dword [edi + 8]
mov dword [ecx + 0x14], eax
mov dword [edi + 8], ecx
xor ecx, ecx
jmp 0x4737c8
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x30]
mov ebx, dword [esp + 8]
mov dword [esp + 0x14], 0
mov dword [esp + 0x38], eax
mov dword [esp + 0x1c], ecx
jmp 0x473b8f
mov edx, 0x5139f6
mov ebx, esi
mov esi, dword [ebp + 0xc]
mov edi, dword [esp + 0x28]
mov eax, dword [esp + 8]
jmp 0x473746
mov eax, dword [esp + 8]
or byte [eax + 0x18], 1
jmp 0x4740b0
mov ecx, dword [esp + 0xc]
mov edi, dword [ecx + 0x2c]
inc edi
mov dword [ecx + 0x2c], edi
call fcn.00485cb0
test eax, eax
mov dword [esp + 0x14], eax
je 0x474426
mov ebx, dword [esp + 0x24]
mov ecx, dword [esp + 0xc]
mov edx, 1
push ebx
call fcn.00491430
add esp, 4
mov esi, dword [esp + 0x14]
mov edx, 0xad
mov ecx, esi
push 0
push 0
push 0
call fcn.0046c5a0
add esp, 0xc
mov ecx, dword [esp + 0x10]
mov edx, 0x8b
mov dword [ecx + 0x2c], eax
mov ecx, esi
push 2
push edi
push ebx
call fcn.0046c5a0
add esp, 0xc
cmp dword [ebp + 0x18], 0
je 0x474443
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0xc]
mov eax, dword [eax]
mov ecx, dword [edx + 0xbc]
mov edx, dword [edx + 0xc0]
sub ecx, eax
lea esi, [ecx + edx]
lea ecx, [ecx + edx - 1]
mov edx, 0x50ce6c
cmp byte [eax + esi - 1], 0x3b
cmovne ecx, esi
cmp dword [ebp + 0x14], 0
mov esi, str._UNIQUE
cmove esi, edx
push eax
push ecx
push esi
push str.CREATE_s_INDEX__.s
push dword [esp + 0x18]
call fcn.0042b0f0
add esp, 0x14
mov ebx, eax
jmp 0x474445
mov dword [esp + 0x14], 0
mov ebx, dword [esp + 8]
mov esi, dword [esp + 0x10]
test esi, esi
jne 0x473b8f
jmp 0x473bd6
xor ebx, ebx
mov eax, dword [esp + 8]
mov eax, dword [eax + 0x10]
push ebx
push edi
mov ecx, dword [esp + 0x20]
push dword [ecx]
mov ecx, dword [esp + 0x1c]
push dword [ecx]
push str.sqlite_master
mov ecx, dword [esp + 0x54]
push dword [eax + ecx]
push str.INSERT_INTO__Q._s_VALUES_index__Q__Q__d__Q__
push dword [esp + 0x28]
call fcn.00492b20
add esp, 0x20
test ebx, ebx
je 0x474486
mov ecx, dword [esp + 8]
mov edx, ebx
call fcn.004352c0
cmp dword [ebp + 0xc], 0
je 0x4744e7
mov esi, dword [esp + 0xc]
mov ebx, dword [esp + 0x10]
mov ecx, esi
mov edx, ebx
push edi
call fcn.0049a010
add esp, 4
mov ecx, esi
mov esi, dword [esp + 0x24]
mov edx, esi
call fcn.00492e00
push dword [ebx]
push str.name_q_AND_typeindex
push dword [esp + 0x10]
call fcn.0042b0f0
add esp, 0xc
mov edi, dword [esp + 0x14]
mov edx, esi
mov ecx, edi
push eax
call fcn.00492e70
add esp, 4
mov ecx, edi
mov edx, 0x9e
push 0
push 1
push 0
call fcn.0046c5a0
add esp, 0xc
mov eax, dword [esp + 0x14]
mov ecx, 0x51ea94
mov edx, dword [eax]
mov eax, dword [eax + 0x6c]
cmp byte [edx + 0x51], 0
jne 0x474517
mov ecx, dword [esp + 0x10]
lea edx, [eax - 1]
mov esi, dword [esp + 0x14]
mov ecx, dword [ecx + 0x2c]
test ecx, ecx
cmovns edx, ecx
lea ecx, [edx + edx*4]
shl ecx, 2
add ecx, dword [esi + 0x68]
mov dword [ecx + 8], eax
jmp 0x4740b0