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

Disassembly:
sub esp, 0x54
push ebx
push ebp
push esi
push edi
mov edi, dword [esp + 0x68]
xor ebp, ebp
mov dword [esp + 0x38], ebp
xor eax, eax
mov dword [esp + 0x20], ebp
mov dword [esp + 0x28], 0
mov ebp, dword [edi]
mov dword [esp + 0x18], ebp
mov dword [esp + 0x34], 0
mov dword [esp + 0x30], 0
mov dword [esp + 0x2c], eax
cmp byte [ebp + 0x41], al
jne 0x47e70a
cmp byte [edi + 0x1bf], al
jne 0x47e70a
cmp dword [edi + 0x40], eax
jg 0x47e70a
cmp byte [ebp + 0x91], al
jne 0x47e715
lea eax, [edi + 4]
push eax
push ebp
call fcn.0048efd0
add esp, 8
test eax, eax
je 0x47e715
inc dword [edi + 0x40]
mov dword [edi + 0xc], eax
mov esi, dword [esp + 0x78]
xor ebx, ebx
jmp 0x47ed56
cmp dword [esp + 0x74], 0
je 0x47e7fc
mov esi, dword [esp + 0x70]
lea eax, [esp + 0x28]
push eax
push esi
push dword [esp + 0x74]
push edi
call fcn.004a0000
mov ebx, eax
add esp, 0x10
mov dword [esp + 0x14], ebx
test ebx, ebx
js 0x47e70a
cmp byte [ebp + 0x91], 0
jne 0x47e775
push dword [esp + 0x74]
push edi
call fcn.0049eda0
add esp, 8
cmp dword [esi + 4], 0
jne 0x47e775
test eax, eax
je 0x47e775
mov ecx, dword [ebp + 0x10]
mov eax, dword [eax + 0x40]
cmp eax, dword [ecx + 0x1c]
jne 0x47e775
mov ebx, 1
mov dword [esp + 0x14], ebx
push dword [esp + 0x28]
lea eax, [esp + 0x50]
push str.index
push ebx
push edi
push eax
call fcn.00485cb0
mov esi, dword [esp + 0x88]
lea eax, [esp + 0x60]
push esi
push eax
call fcn.00485e20
lea eax, [esi + 8]
push eax
push 0
push edi
call fcn.00491b20
mov esi, eax
add esp, 0x28
mov dword [esp + 0x10], esi
test esi, esi
je 0x47e70a
cmp ebx, 1
jne 0x47e7e7
mov eax, dword [ebp + 0x10]
mov eax, dword [eax + 0x1c]
cmp eax, dword [esi + 0x40]
je 0x47e7e7
push dword [esi]
push str.cannot_create_a_TEMP_index_on_non_TEMP_table___s_
push edi
call fcn.00481160
mov esi, dword [esp + 0x84]
add esp, 0xc
xor ebx, ebx
jmp 0x47ed56
test byte [esi + 0x2a], 0x20
je 0x47e820
push esi
call fcn.004991c0
add esp, 4
mov dword [esp + 0x2c], eax
jmp 0x47e820
mov esi, dword [edi + 0x1e0]
mov dword [esp + 0x10], esi
test esi, esi
je 0x47e70a
push dword [esi + 0x40]
push ebp
call fcn.0049b750
mov ebx, eax
add esp, 8
mov dword [esp + 0x14], ebx
mov esi, dword [esi]
mov eax, ebx
mov ebx, dword [ebp + 0x10]
shl eax, 4
push 7
add ebx, eax
mov dword [esp + 0x48], eax
push str.sqlite_
push esi
mov dword [esp + 0x4c], ebx
call fcn.0043aeb0
add esp, 0xc
test eax, eax
jne 0x47e884
cmp byte [ebp + 0x91], al
jne 0x47e884
push 9
lea eax, [esi + 7]
push str.altertab_
push eax
call fcn.0043aeb0
add esp, 0xc
test eax, eax
je 0x47e884
push esi
push str.table__s_may_not_be_indexed
push edi
call fcn.00481160
mov esi, dword [esp + 0x84]
add esp, 0xc
xor ebx, ebx
jmp 0x47ed56
mov eax, dword [esp + 0x10]
cmp dword [eax + 0xc], 0
je 0x47e8aa
push str.views_may_not_be_indexed
push edi
call fcn.00481160
mov esi, dword [esp + 0x80]
add esp, 8
xor ebx, ebx
jmp 0x47ed56
test byte [eax + 0x2a], 0x10
je 0x47e8cc
push str.virtual_tables_may_not_be_indexed
push edi
call fcn.00481160
mov esi, dword [esp + 0x80]
add esp, 8
xor ebx, ebx
jmp 0x47ed56
mov ecx, dword [esp + 0x28]
test ecx, ecx
je 0x47e988
push ecx
push ebp
call fcn.004928f0
mov esi, eax
add esp, 8
mov dword [esp + 0x20], esi
test esi, esi
je 0x47e70a
push esi
push edi
call fcn.0047c960
add esp, 8
test eax, eax
jne 0x47e70a
cmp byte [ebp + 0x91], al
jne 0x47e936
push eax
push esi
push ebp
call fcn.00485500
add esp, 0xc
test eax, eax
je 0x47e936
push esi
push str.there_is_already_a_table_named__s
push edi
call fcn.00481160
mov esi, dword [esp + 0x84]
add esp, 0xc
xor ebx, ebx
jmp 0x47ed56
push dword [ebx]
push esi
push ebp
call fcn.00485480
add esp, 0xc
test eax, eax
je 0x47e9b8
cmp dword [esp + 0x8c], 0
jne 0x47e96d
push esi
push str.index__s_already_exists
push edi
call fcn.00481160
mov esi, dword [esp + 0x84]
add esp, 0xc
xor ebx, ebx
jmp 0x47ed56
push dword [esp + 0x14]
push edi
call fcn.0047d9b0
mov esi, dword [esp + 0x80]
add esp, 8
xor ebx, ebx
jmp 0x47ed56
mov eax, dword [eax + 8]
mov ecx, 1
test eax, eax
je 0x47e99c
mov eax, dword [eax + 0x14]
inc ecx
test eax, eax
jne 0x47e994
push ecx
push esi
push str.sqlite_autoindex__s__d
push ebp
call fcn.00491e80
add esp, 0x10
mov dword [esp + 0x20], eax
test eax, eax
je 0x47e70a
mov esi, dword [ebx]
mov eax, str.sqlite_temp_master
mov ebx, dword [esp + 0x14]
cmp ebx, 1
je 0x47e9cd
mov eax, str.sqlite_master
push esi
push 0
push eax
push 0x12
push edi
call fcn.00477e30
add esp, 0x14
test eax, eax
jne 0x47e70a
mov eax, 1
cmp ebx, eax
jne 0x47e9f2
mov eax, 3
mov ebx, dword [esp + 0x10]
push esi
push dword [ebx]
push dword [esp + 0x28]
push eax
push edi
call fcn.00477e30
add esp, 0x14
test eax, eax
jne 0x47e70a
mov esi, dword [esp + 0x78]
mov dword [esp + 0x1c], esi
test esi, esi
jne 0x47ea5f
push esi
push esi
push edi
call fcn.00484700
mov esi, eax
mov dword [esp + 0x28], eax
add esp, 0xc
test esi, esi
je 0x47e70e
movsx eax, word [ebx + 0x22]
lea ecx, [eax + eax*2]
mov eax, dword [ebx + 4]
push dword [eax + ecx*8 - 0x18]
push dword [edi]
call fcn.0047f5f0
mov ecx, dword [esi + 4]
add esp, 8
mov dword [ecx + 4], eax
mov ecx, dword [esi + 4]
mov al, byte [esp + 0x88]
mov byte [ecx + 0xc], al
mov ebx, dword [esi]
test ebx, ebx
jle 0x47ea92
mov esi, dword [esi + 4]
xor ebp, ebp
lea ebx, [ebx]
mov eax, dword [esi]
test eax, eax
je 0x47ea84
push dword [eax + 8]
call fcn.0049f710
inc ebp
add esp, 4
add ebp, eax
add esi, 0x18
dec ebx
jne 0x47ea70
mov dword [esp + 0x34], ebp
mov ebp, dword [esp + 0x18]
push dword [esp + 0x20]
call fcn.0049f710
mov esi, eax
add esp, 4
mov eax, dword [esp + 0x2c]
test eax, eax
je 0x47eaae
movzx ecx, word [eax + 0x2e]
jmp 0x47eab3
mov ecx, 1
lea eax, [esp + 0x30]
push eax
mov eax, dword [esp + 0x38]
inc eax
add eax, esi
push eax
mov eax, dword [esp + 0x24]
mov ax, word [eax]
add ax, cx
movzx eax, ax
push eax
push ebp
call fcn.004768a0
add esp, 0x10
mov ebx, eax
cmp byte [ebp + 0x41], 0
jne 0x47ed40
mov eax, dword [esp + 0x30]
mov dword [ebx], eax
inc eax
add eax, esi
mov dword [esp + 0x30], eax
lea eax, [esi + 1]
push eax
push dword [esp + 0x24]
push dword [ebx]
call sub.MSVCRT.dll_memcpy
mov eax, dword [esp + 0x88]
xor ecx, ecx
mov edx, dword [esp + 0x1c]
add esp, 0xc
test eax, eax
mov byte [ebx + 0x32], al
mov esi, dword [esp + 0x84]
setne cl
mov dword [ebx + 0xc], edx
xor eax, eax
and ecx, 1
shl ecx, 3
cmp dword [esp + 0x28], eax
sete al
and eax, 3
or ecx, eax
mov eax, dword [ebx + 0x34]
and eax, 0xfffffff4
or ecx, eax
mov dword [ebx + 0x34], ecx
mov eax, dword [ebp + 0x10]
mov ecx, dword [esp + 0x44]
mov eax, dword [eax + ecx + 0xc]
mov dword [ebx + 0x18], eax
mov eax, dword [esp + 0x1c]
mov ax, word [eax]
mov word [ebx + 0x2e], ax
test esi, esi
je 0x47eb7a
push 0
push esi
push 0x10
push edx
push edi
call fcn.0049a040
add esp, 0x14
mov dword [ebx + 0x24], esi
mov dword [esp + 0x84], 0
mov eax, dword [esp + 0x40]
mov eax, dword [eax + 0xc]
cmp byte [eax + 0x4c], 4
sbb eax, eax
xor edx, edx
neg eax
mov dword [esp + 0x24], edx
dec eax
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x1c]
mov esi, dword [eax + 4]
mov dword [esp + 0x34], esi
cmp dword [eax], edx
jle 0x47ecc7
mov eax, dword [esp + 0x10]
xor ebp, ebp
mov ecx, dword [esi + 4]
mov dword [esp + 0x40], ecx
mov esi, dword [eax + 4]
movsx eax, word [eax + 0x22]
mov dword [esp + 0x3c], eax
test eax, eax
jle 0x47ebf0
mov edi, eax
push dword [esi]
push ecx
call fcn.0043ae40
add esp, 8
test eax, eax
je 0x47ebe0
mov ecx, dword [esp + 0x40]
inc ebp
add esi, 0x18
cmp ebp, edi
jl 0x47ebc5
mov edi, dword [esp + 0x68]
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x24]
cmp ebp, eax
jge 0x47ed23
mov eax, dword [ebx + 4]
mov esi, dword [esp + 0x34]
mov word [eax + edx*2], bp
mov esi, dword [esi]
test esi, esi
je 0x47ec39
mov esi, dword [esi + 8]
push esi
call fcn.0049f710
lea edi, [eax + 1]
push edi
push esi
push dword [esp + 0x3c]
call sub.MSVCRT.dll_memcpy
mov eax, dword [esp + 0x40]
add esp, 0x10
mov edx, dword [esp + 0x24]
mov esi, eax
add eax, edi
mov edi, dword [esp + 0x68]
mov dword [esp + 0x30], eax
jmp 0x47ec56
mov eax, dword [esp + 0x10]
lea ecx, [ebp*2]
add ecx, ebp
mov eax, dword [eax + 4]
mov esi, dword [eax + ecx*8 + 0x10]
test esi, esi
jne 0x47ec56
mov esi, str.BINARY
mov eax, dword [esp + 0x18]
cmp byte [eax + 0x91], 0
jne 0x47ec79
push esi
push edi
call fcn.00491a10
add esp, 8
test eax, eax
je 0x47ed3c
mov edx, dword [esp + 0x24]
mov eax, dword [ebx + 0x20]
mov dword [eax + edx*4], esi
mov esi, dword [esp + 0x34]
mov eax, dword [ebx + 0x1c]
mov cl, byte [esi + 0xc]
and cl, byte [esp + 0x48]
mov byte [edx + eax], cl
lea ecx, [ebp*2]
mov eax, dword [esp + 0x10]
add ecx, ebp
mov eax, dword [eax + 4]
cmp byte [eax + ecx*8 + 0x14], 0
jne 0x47ecab
and dword [ebx + 0x34], 0xfffffff7
mov eax, dword [esp + 0x1c]
inc edx
add esi, 0x18
mov dword [esp + 0x24], edx
mov dword [esp + 0x34], esi
cmp edx, dword [eax]
jl 0x47eba7
mov ebp, dword [esp + 0x18]
mov eax, dword [esp + 0x2c]
test eax, eax
je 0x47ede2
xor ecx, ecx
xor esi, esi
cmp cx, word [eax + 0x2e]
jae 0x47edf6
mov ebp, dword [esp + 0x24]
mov edi, eax
jmp 0x47ecf0
mov eax, dword [edi + 4]
mov ecx, dword [ebx + 4]
movsx eax, word [eax + esi*2]
push eax
mov dword [esp + 0x4c], eax
movzx eax, word [ebx + 0x2e]
push eax
push ecx
call fcn.00465280
add esp, 0xc
test eax, eax
je 0x47eda7
mov eax, 0xffff
add word [ebx + 0x30], ax
jmp 0x47edcb
mov eax, dword [esp + 0x10]
push ecx
push dword [eax]
push str.table__s_has_no_column_named__s
push edi
call fcn.00481160
add esp, 0x10
mov byte [edi + 0x11], 1
mov ebp, dword [esp + 0x18]
test ebx, ebx
je 0x47ed4e
push ebx
push ebp
call fcn.00452250
add esp, 8
mov ebx, dword [esp + 0x38]
mov esi, dword [esp + 0x1c]
push dword [esp + 0x84]
push ebp
call fcn.00483ce0
push esi
push ebp
call fcn.00484860
push dword [esp + 0x84]
push ebp
call fcn.0049e7e0
mov ecx, dword [esp + 0x38]
add esp, 0x18
test ecx, ecx
je 0x47f10c
cmp dword [ebp + 0x208], 0
je 0x47f0d5
push ecx
push ebp
call fcn.00467960
add esp, 8
mov eax, ebx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x54
ret
mov ecx, dword [ebx + 4]
mov eax, dword [esp + 0x48]
mov word [ecx + ebp*2], ax
mov eax, dword [edi + 0x20]
mov ecx, dword [ebx + 0x20]
mov eax, dword [eax + esi*4]
mov dword [ecx + ebp*4], eax
mov eax, dword [edi + 0x1c]
mov ecx, dword [ebx + 0x1c]
mov al, byte [esi + eax]
mov byte [ecx + ebp], al
inc ebp
movzx eax, word [edi + 0x2e]
inc esi
cmp esi, eax
jl 0x47ecf0
mov edi, dword [esp + 0x68]
mov ebp, dword [esp + 0x18]
jmp 0x47edf6
mov eax, dword [ebx + 4]
or ecx, 0xffffffff
mov word [eax + edx*2], cx
mov eax, dword [ebx + 0x20]
mov dword [eax + edx*4], str.BINARY
push ebx
call fcn.0047f7a0
add esp, 4
cmp dword [edi + 0x1e0], 0
jne 0x47ee11
push ebx
call fcn.0044d6b0
add esp, 4
mov eax, dword [esp + 0x10]
cmp eax, dword [edi + 0x1e0]
jne 0x47eea9
mov ebp, dword [eax + 8]
test ebp, ebp
je 0x47eea5
movzx ecx, word [ebx + 0x2e]
lea esp, [esp]
movzx eax, word [ebp + 0x2e]
cmp ax, cx
jne 0x47ee96
mov ecx, eax
xor edi, edi
mov dword [esp + 0x40], ecx
test ecx, ecx
jle 0x47ee8e
mov edx, dword [ebx + 4]
mov esi, dword [ebp + 4]
sub edx, esi
mov dword [esp + 0x48], edx
mov ax, word [esi]
cmp ax, word [edx + esi]
jne 0x47ee8e
mov eax, dword [ebp + 0x20]
mov ecx, dword [eax + edi*4]
mov eax, dword [ebx + 0x20]
mov eax, dword [eax + edi*4]
cmp ecx, eax
je 0x47ee7c
push eax
push ecx
call fcn.0043ae40
add esp, 8
test eax, eax
jne 0x47ee8a
mov edx, dword [esp + 0x48]
mov ecx, dword [esp + 0x40]
inc edi
add esi, 2
cmp edi, ecx
jl 0x47ee51
jmp 0x47ee8e
mov ecx, dword [esp + 0x40]
cmp edi, ecx
je 0x47eed1
movzx ecx, word [ebx + 0x2e]
mov ebp, dword [ebp + 0x14]
test ebp, ebp
jne 0x47ee30
mov edi, dword [esp + 0x68]
mov eax, dword [esp + 0x10]
mov ebp, dword [esp + 0x18]
cmp byte [ebp + 0x91], 0
je 0x47ef2a
mov eax, dword [ebx + 0x18]
push ebx
push dword [ebx]
add eax, 0x18
push eax
call fcn.0048e8a0
add esp, 0xc
test eax, eax
je 0x47ef0c
mov byte [ebp + 0x41], 1
jmp 0x47ed40
mov al, byte [ebp + 0x32]
mov cl, byte [ebx + 0x32]
cmp al, cl
je 0x47ef03
cmp al, 0xa
je 0x47eef7
cmp cl, 0xa
je 0x47eef7
push 0
push str.conflicting_ON_CONFLICT_clauses_specified
push dword [esp + 0x70]
call fcn.00481160
add esp, 0xc
cmp byte [ebp + 0x32], 0xa
jne 0x47ef03
mov al, byte [ebx + 0x32]
mov byte [ebp + 0x32], al
mov dword [esp + 0x38], ebp
jmp 0x47ed3c
or dword [ebp + 0x18], 2
mov eax, dword [esp + 0x74]
test eax, eax
je 0x47f075
mov eax, dword [ebp + 0x8c]
mov dword [ebx + 0x28], eax
jmp 0x47f071
cmp dword [edi + 0x40], 0
jne 0x47f071
test byte [eax + 0x2a], 0x20
je 0x47ef46
mov eax, dword [esp + 0x74]
test eax, eax
je 0x47f075
inc dword [edi + 0x48]
mov eax, dword [edi + 0x48]
push edi
mov dword [esp + 0x6c], eax
call fcn.0048e680
mov esi, eax
add esp, 4
test esi, esi
je 0x47ed40
push dword [esp + 0x14]
push 1
push edi
call fcn.00478e50
push 0x9f
push esi
call fcn.004a3ce0
push dword [esp + 0x7c]
mov dword [ebx + 0x28], eax
push dword [esp + 0x2c]
push 0x79
push esi
call fcn.004a3dc0
add esp, 0x24
cmp dword [esp + 0x80], 0
je 0x47efda
mov eax, dword [esp + 0x28]
mov ecx, dword [eax]
mov eax, dword [edi + 0x1f8]
add eax, dword [edi + 0x1f4]
sub eax, ecx
cmp byte [ecx + eax - 1], 0x3b
jne 0x47efb6
dec eax
cmp dword [esp + 0x7c], 0
mov edx, 0x4cf8b2
je 0x47efc7
mov edx, str._UNIQUE
push ecx
push eax
push edx
push str.CREATE_s_INDEX__.s
push ebp
call fcn.00491e80
add esp, 0x14
jmp 0x47efdc
xor eax, eax
cmp dword [esp + 0x14], 1
mov ecx, str.sqlite_temp_master
mov dword [esp + 0x40], eax
je 0x47eff1
mov ecx, str.sqlite_master
push eax
push dword [esp + 0x6c]
mov eax, dword [esp + 0x18]
push dword [eax]
mov eax, dword [ebp + 0x10]
push dword [ebx]
push ecx
mov ecx, dword [esp + 0x58]
push dword [eax + ecx]
push str.INSERT_INTO__Q._s_VALUES_index__Q__Q__d__Q__
push edi
call fcn.00492960
push dword [esp + 0x60]
push ebp
call fcn.0047f2c0
add esp, 0x28
cmp dword [esp + 0x74], 0
je 0x47f065
push dword [esp + 0x68]
push ebx
push edi
call fcn.00499410
push dword [esp + 0x20]
push edi
call fcn.0047c860
push dword [ebx]
push str.name_q_AND_typeindex
push ebp
call fcn.00491e80
push eax
push dword [esp + 0x38]
push esi
call fcn.004a4060
push 0
push 0x93
push esi
call fcn.004a3d50
add esp, 0x38
push dword [ebx + 0x28]
push esi
call fcn.004aac70
add esp, 8
mov eax, dword [esp + 0x74]
cmp byte [ebp + 0x91], 0
jne 0x47f086
test eax, eax
jne 0x47ed40
cmp dword [esp + 0x7c], 5
jne 0x47f0c3
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 8]
test ecx, ecx
je 0x47f0c3
cmp byte [ecx + 0x32], 5
je 0x47f0c3
cmp dword [ecx + 0x14], 0
je 0x47f0b5
mov eax, dword [ecx + 0x14]
cmp byte [eax + 0x32], 5
je 0x47f0b5
mov ecx, eax
cmp dword [ecx + 0x14], 0
jne 0x47f0a4
mov eax, dword [ecx + 0x14]
mov dword [ebx + 0x14], eax
mov dword [ecx + 0x14], ebx
jmp 0x47ed52
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 8]
mov dword [ebx + 0x14], eax
mov dword [ecx + 8], ebx
jmp 0x47ed52
cmp ecx, dword [ebp + 0x114]
jb 0x47f103
cmp ecx, dword [ebp + 0x118]
jae 0x47f103
mov eax, dword [ebp + 0x110]
pop edi
mov dword [ecx], eax
mov eax, ebx
dec dword [ebp + 0xfc]
pop esi
mov dword [ebp + 0x110], ecx
pop ebp
pop ebx
add esp, 0x54
ret
push ecx
call fcn.00438320
add esp, 4
pop edi
pop esi
pop ebp
mov eax, ebx
pop ebx
add esp, 0x54
ret