Function at 0x100231a0
Capabilities:
Enumerate pe sections
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x120
mov eax, dword [ebp + 0x1c]
mov dword [esp + 0x28], eax
mov eax, dword [0x101db014]
xor eax, ebp
mov dword [esp + 0x118], eax
mov eax, dword [ecx]
mov dword [esp + 0x2c], 0
mov dword [esp + 0x18], eax
cmp byte [eax + 0x53], 0
mov eax, dword [ebp + 0x10]
mov dword [esp + 0x24], eax
jne 0x10023bb4
mov dword [esp + 0x10], ecx
cmp dword [ecx + 0x24], 0
jg 0x10023bb4
mov esi, edx
cmp byte [ebp + 0x28], 2
je 0x1002320a
mov eax, dword [esp + 0x10]
cmp byte [eax + 0xc8], 1
je 0x10023bb4
mov eax, dword [esp + 0x18]
cmp byte [eax + 0xa9], 0
je 0x10023cfb
cmp dword [ebp + 0x10], 0
je 0x1002323f
mov eax, dword [ebp + 0x10]
mov eax, dword [eax]
test eax, eax
jle 0x1002323f
mov ecx, dword [ebp + 0x10]
add ecx, 0x14
test byte [ecx], 0x20
jne 0x100249e0
add ecx, 0x14
dec eax
jne 0x10023230
cmp dword [ebp + 0xc], 0
jne 0x10023486
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0xe4]
test eax, eax
je 0x10023bb4
mov dword [esp + 0x14], eax
mov eax, dword [eax + 0x48]
test eax, eax
je 0x10024c0c
mov ecx, dword [esp + 0x18]
mov ecx, dword [ecx + 0x10]
add ecx, 0xc
xor esi, esi
dec esi
xor edi, edi
inc esi
lea edx, [ecx + 0x10]
cmp dword [ecx], eax
mov ecx, edx
jne 0x10023279
mov dword [esp + 0x34], esi
mov dword [esp + 0x38], 0
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 0x10]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
test eax, eax
je 0x100232d9
mov dl, byte [eax]
mov ecx, str.sqlite_
test dl, dl
je 0x10024a0e
mov ebx, edx
and bl, 0xdf
cmp bl, 0x53
je 0x1002475a
movzx edx, dl
mov dl, byte [edx + 0x1019c728]
movzx ecx, byte [ecx]
cmp dl, byte [ecx + 0x1019c728]
je 0x1002480b
mov esi, dword [esp + 0x14]
cmp dword [esi + 0xc], 0
jne 0x10024a23
cmp dword [esi + 0x38], 0
jne 0x10024a41
mov ecx, dword [esp + 0x34]
shl ecx, 4
mov dword [esp + 0x44], ecx
mov edx, dword [esp + 0x30]
lea esi, [edx + ecx]
test edi, edi
mov dword [esp + 0x3c], edi
jne 0x100235bf
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx + 8]
test edx, edx
jne 0x1002465f
xor ecx, ecx
inc ecx
push ecx
push eax
push str.sqlite_autoindex__s__d
push dword [esp + 0x24]
call fcn.10024f60
add esp, 0x10
mov dword [esp + 0x2c], eax
test eax, eax
je 0x10024a52
mov eax, dword [esp + 0x10]
cmp byte [eax + 0xc8], 0
jne 0x10024c1b
xor ebx, ebx
cmp dword [esp + 0x34], 1
mov eax, str.sqlite_temp_master
mov edi, str.sqlite_master
cmove edi, eax
mov eax, dword [esp + 0x10]
mov eax, dword [eax]
mov ecx, dword [eax + 0x150]
test ecx, ecx
jne 0x10024a5f
mov ecx, dword [ebp + 0x10]
test ecx, ecx
je 0x10023da0
mov esi, dword [esp + 0x10]
mov eax, dword [esi]
mov ecx, dword [ecx]
cmp ecx, dword [eax + 0x78]
jg 0x10024be6
cmp dword [esi + 0x24], 0
jne 0x1002442c
mov eax, dword [esp + 0x24]
mov edi, dword [eax]
test edi, edi
jle 0x1002361f
lea esi, [eax + 8]
mov dword [esp + 0x1c], 0
mov ebx, edi
mov eax, dword [esi]
cmp byte [eax], 0x70
je 0x100248cc
add esi, 0x14
dec edi
jne 0x100233ba
push dword [esp + 0x2c]
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
and eax, 0x3fffffff
mov dword [esp + 0x20], eax
cmp dword [esp + 0x38], 0
jne 0x10023e5e
inc ebx
mov edi, ebx
shl edi, 0x10
mov dword [esp + 0xc], ebx
movsx eax, bx
mov esi, edi
sar esi, 0xe
add esi, 7
and esi, 0xfffffff8
sar edi, 0xf
add eax, edi
add eax, edi
add eax, 9
and eax, 0xfffffff8
add eax, esi
add eax, 0x48
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x1c]
lea ebx, [ecx + edx]
inc ebx
mov dword [esp + 0x1c], eax
add ebx, eax
mov ecx, dword [esp + 0x18]
test ecx, ecx
mov dword [esp + 0x40], esi
mov dword [esp + 0x48], ebx
je 0x10024aef
mov eax, ebx
sar eax, 0x1f
movzx ecx, word [ecx + 0x11c]
xor edx, edx
cmp ecx, ebx
sbb edx, eax
jb 0x1002362e
cmp ebx, 0x80
ja 0x10023e33
mov ecx, dword [esp + 0x18]
mov edx, dword [ecx + 0x140]
test edx, edx
je 0x10023e25
mov esi, edx
mov eax, dword [edx]
mov dword [ecx + 0x140], eax
inc dword [ecx + 0x128]
jmp 0x1002365e
mov edi, dword [ebp + 8]
mov eax, dword [esp + 0x10]
mov ecx, dword [eax]
cmp dword [edi + 4], 0
jne 0x1002483d
movzx eax, byte [ecx + 0xa8]
mov dword [esp + 0x34], eax
mov dword [esp + 0x3c], esi
mov eax, dword [esp + 0x18]
cmp byte [eax + 0xa9], 0
je 0x10024345
mov edi, dword [esp + 0x10]
mov eax, dword [edi]
lea ecx, [esp + 0x50]
mov dword [ecx - 4], edi
mov edx, dword [eax + 0x10]
mov ebx, dword [esp + 0x34]
mov esi, ebx
shl esi, 4
mov edx, dword [edx + esi]
mov dword [ecx + 0x24], edx
mov eax, dword [eax + 0x10]
mov eax, dword [eax + esi + 0xc]
mov dword [ecx + 0x1c], eax
mov dword [ecx + 0x28], 0x101b4e88
mov eax, dword [esp + 0x3c]
mov dword [ecx + 0x2c], eax
cmp ebx, 1
sete byte [ecx + 0x20]
mov dword [ecx], edi
mov dword [ecx + 4], 0x1007ac00
mov dword [ecx + 8], 0x10035f40
mov dword [ecx + 0xc], sym.nss3.dll_PORT_ArenaUnmark_Util
mov dword [ecx + 0x10], 0
mov word [ecx + 0x14], 0
lea eax, [esp + 0x4c]
mov dword [eax + 0x1c], eax
xorps xmm0, xmm0
lea edx, [esp + 0xc0]
movaps xmmword [edx + 0x20], xmm0
movups xmmword [edx + 0x3c], xmm0
movaps xmmword [edx + 0x30], xmm0
movaps xmmword [edx + 0x10], xmm0
movaps xmmword [edx], xmm0
mov edi, dword [ebp + 0xc]
mov dword [edx + 0x20], edi
call fcn.10035b30
mov eax, dword [edi + 8]
test eax, eax
jne 0x100241ff
lea esi, [edi + 0xc]
mov ecx, dword [esp + 0x10]
xor edx, edx
push dword [esi]
push dword [edi + 0x10]
call fcn.100395c0
add esp, 8
mov dword [esp + 0x14], eax
test eax, eax
je 0x10024c4f
cmp dword [esp + 0x34], 1
mov edi, dword [esp + 0x3c]
je 0x10024c5c
mov dword [esp + 0x38], 0
mov eax, dword [esp + 0x14]
cmp byte [eax + 0x24], 0
jns 0x1002328f
mov eax, dword [eax + 8]
test eax, eax
je 0x1002328f
mov ecx, dword [eax + 0x38]
and ecx, 3
cmp ecx, 2
jne 0x10024dea
mov dword [esp + 0x38], eax
jmp 0x1002328f
mov dword [esp + 0xc], esi
mov eax, dword [edi]
mov dword [esp + 0x20], eax
test eax, eax
je 0x10024a52
mov ebx, dword [edi + 4]
mov edx, ebx
inc edx
sete byte [esp + 0x1c]
mov ecx, dword [esp + 0x18]
movzx esi, word [ecx + 0x11c]
cmp ebx, esi
jae 0x10024020
cmp ebx, 0x7f
ja 0x10024229
mov ecx, dword [esp + 0x18]
mov esi, dword [ecx + 0x140]
test esi, esi
je 0x1002421b
mov edi, esi
mov eax, dword [esi]
mov dword [ecx + 0x140], eax
inc dword [ecx + 0x128]
jmp 0x1002426e
mov ebx, edi
mov dword [esp + 0x1c], 0
jmp 0x100233cb
mov ecx, dword [esp + 0x18]
cmp dword [ecx + 0x118], 0
je 0x10024740
cmp byte [ecx + 0x53], 0
jne 0x1002442c
mov edx, ebx
push eax
call fcn.10143c10
add esp, 4
mov esi, eax
test eax, eax
je 0x10024c3a
lea ebx, [edi + 2]
push dword [esp + 0x48]
push 0
push esi
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
lea eax, [esi + 0x48]
mov dword [esi + 0x20], eax
mov eax, dword [esp + 0x40]
add eax, esi
add eax, 0x48
mov dword [esi + 8], eax
add ebx, eax
mov dword [esi + 4], ebx
add ebx, edi
mov dword [esi + 0x1c], ebx
mov eax, dword [esp + 0xc]
mov word [esi + 0x34], ax
dec eax
mov word [esi + 0x32], ax
mov dword [esp + 0xc], esi
add dword [esp + 0x1c], esi
mov esi, dword [esp + 0x18]
cmp byte [esi + 0x53], 0
jne 0x1002440b
mov ebx, dword [ebp + 0x14]
mov ecx, dword [esp + 0x20]
inc ecx
mov edi, dword [esp + 0xc]
mov eax, dword [esp + 0x1c]
mov dword [edi], eax
mov dword [esp + 0x20], ecx
push ecx
push dword [esp + 0x30]
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov eax, dword [esp + 0x14]
mov dword [edi + 0xc], eax
xor eax, eax
test ebx, ebx
setne al
mov byte [edi + 0x36], bl
mov ecx, dword [edi + 0x38]
and ecx, 0xfffffff4
mov dl, byte [ebp + 0x28]
and dl, 3
movzx edx, dl
mov dword [esp + 0x48], edx
lea eax, [edx + eax*8]
or eax, ecx
mov dword [edi + 0x38], eax
mov eax, dword [esi + 0x10]
mov edx, dword [esp + 0x44]
mov eax, dword [eax + edx + 0xc]
mov dword [edi + 0x18], eax
mov ecx, dword [esp + 0x24]
movzx eax, word [ecx]
mov word [edi + 0x32], ax
mov edi, dword [ebp + 0x1c]
test edi, edi
jne 0x10023e6d
mov eax, dword [esp + 0x30]
mov eax, dword [eax + edx + 0xc]
mov al, byte [eax + 0x4c]
mov byte [esp + 0x28], al
mov eax, dword [esp + 0x10]
cmp byte [eax + 0xc8], 2
jae 0x10024b00
mov eax, dword [esp + 0xc]
cmp word [eax + 0x32], 0
je 0x10023cdf
mov dword [esp + 0x30], ecx
mov eax, dword [esp + 0x20]
add dword [esp + 0x1c], eax
mov eax, dword [esp + 0x24]
add eax, 8
mov dword [esp + 0x20], 0
mov dword [esp + 0x24], eax
mov eax, dword [eax]
mov cl, byte [eax]
cmp cl, 0x70
je 0x100248f5
cmp cl, 0x74
je 0x10024901
mov edi, dword [esp + 0x24]
mov edx, dword [edi]
xorps xmm0, xmm0
movaps xmmword [esp + 0x90], xmm0
movaps xmmword [esp + 0x80], xmm0
movaps xmmword [esp + 0xc0], xmm0
movaps xmmword [esp + 0xd0], xmm0
movaps xmmword [esp + 0xe0], xmm0
movaps xmmword [esp + 0xf0], xmm0
movaps xmmword [esp + 0x100], xmm0
mov dword [esp + 0xc0], 1
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx]
mov dword [esp + 0xd0], eax
mov dword [esp + 0xd8], ecx
mov dword [esp + 0xf4], 0xffffffff
mov ecx, dword [ecx + 0x48]
mov ebx, dword [esp + 0x10]
mov eax, dword [ebx]
mov esi, dword [eax + 0x10]
xor eax, eax
cmp ecx, dword [esi + 0x1c]
setne al
mov dword [esp + 0x80], ebx
lea ecx, [esp + 0xc0]
mov dword [esp + 0x84], ecx
shl eax, 0x12
or eax, 0x10020
mov dword [esp + 0x98], eax
lea ecx, [esp + 0x80]
call fcn.10005000
cmp dword [ebx + 0x24], 0
jne 0x10023991
mov ecx, dword [edi]
xor eax, eax
test ecx, ecx
je 0x10023854
test byte [ecx + 5], 0x10
jne 0x10024909
mov eax, ecx
cmp byte [eax], 0xa6
jne 0x10024911
movsx eax, word [eax + 0x20]
test eax, eax
js 0x100249a4
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx + 4]
lea ecx, [eax + eax*4]
cmp byte [edx + ecx*4 + 0xc], 0
je 0x10023924
test byte [edx + ecx*4 + 0x10], 0x20
jne 0x100249b1
mov ecx, dword [esp + 0xc]
mov ecx, dword [ecx + 4]
mov edx, dword [esp + 0x20]
mov word [ecx + edx*2], ax
mov ecx, dword [esp + 0x24]
mov ecx, dword [ecx]
cmp byte [ecx], 0x70
je 0x1002496d
test eax, eax
js 0x10024962
mov ecx, dword [esp + 0x14]
mov ecx, dword [ecx + 4]
lea eax, [eax + eax*4]
mov esi, dword [esp + 0x1c]
mov eax, dword [ecx + eax*4 + 8]
mov ebx, eax
test ebx, ebx
mov eax, 0x1019c99f
cmove ebx, eax
mov eax, dword [esp + 0x18]
cmp byte [eax + 0xa9], 0
je 0x10023938
xor eax, eax
mov ecx, dword [esp + 0xc]
mov ecx, dword [ecx + 0x20]
mov edx, dword [esp + 0x20]
mov dword [ecx + edx*4], ebx
cmp byte [esp + 0x28], 3
jbe 0x100238f8
mov eax, dword [esp + 0x24]
mov eax, dword [eax + 8]
mov edx, dword [esp + 0xc]
mov ecx, dword [edx + 0x1c]
mov ebx, dword [esp + 0x20]
mov byte [ecx + ebx], al
inc ebx
mov eax, dword [esp + 0x24]
add eax, 0x14
movzx edi, word [edx + 0x32]
mov dword [esp + 0x1c], esi
mov dword [esp + 0x20], ebx
cmp ebx, edi
jb 0x1002376d
jmp 0x1002399e
mov edx, dword [esp + 0xc]
and byte [edx + 0x38], 0xf7
mov edx, dword [esp + 0x14]
mov edx, dword [edx + 4]
jmp 0x1002387e
mov eax, dword [esp + 0x10]
mov ecx, dword [eax]
mov al, byte [ecx + 0x50]
movzx edi, byte [ecx + 0xa9]
movzx edx, al
mov dword [esp + 0x40], edx
push edi
mov dword [esp + 0x20], ebx
push ebx
call fcn.1006afc0
add esp, 8
test edi, edi
jne 0x10023985
test eax, eax
mov ebx, dword [esp + 0x1c]
je 0x10023973
cmp dword [eax + 0xc], 0
jne 0x100238da
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x40]
push ebx
push eax
call fcn.1005d2e0
add esp, 8
test eax, eax
mov ebx, dword [esp + 0x1c]
jne 0x100238da
mov dword [esp + 0x28], 0
jmp 0x10024656
mov eax, dword [esp + 0x30]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x38]
test eax, eax
jne 0x10023f6c
mov ebx, dword [esp + 0xc]
mov eax, dword [ebx + 4]
mov ecx, dword [esp + 0x20]
mov word [eax + ecx*2], 0xffff
mov eax, dword [ebx + 0x20]
mov dword [eax + ecx*4], 0x1019c99f
mov esi, dword [ebx + 8]
movzx eax, word [ebx + 0x32]
cmp ax, 5
mov edx, 5
cmovb edx, eax
mov ecx, dword [ebx + 0xc]
movzx edi, dx
movzx eax, word [ecx + 0x2e]
cmp ax, 0x62
jle 0x10024b28
lea ecx, [eax - 0xa]
cmp dword [ebx + 0x24], 0
cmove ecx, eax
mov word [esi], cx
lea eax, [esi + 2]
lea ecx, [edi + edi]
push ecx
push 0x1019d52c
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
movzx eax, word [ebx + 0x32]
cmp di, ax
jb 0x10024b12
cmp byte [ebx + 0x36], 0
je 0x10023a32
movzx eax, ax
mov word [esi + eax*2], 0
mov eax, dword [esp + 0x10]
cmp dword [eax + 0xe4], 0
je 0x10023c02
mov eax, dword [esp + 0xc]
movzx eax, word [eax + 0x34]
movzx ecx, ax
mov dword [esp + 0x38], eax
test ax, ax
mov dword [esp + 0x28], ecx
je 0x10023cf2
mov eax, dword [esp + 0xc]
mov edx, dword [eax + 4]
mov dword [esp + 0x20], edx
mov eax, dword [eax + 0xc]
mov dword [esp + 0x1c], eax
lea eax, [ecx + 1]
xor esi, esi
xor edi, edi
mov ecx, dword [esp + 0x20]
movsx ecx, word [ecx + eax*2 - 4]
test ecx, ecx
js 0x10023abe
cmp cx, 0x3e
jg 0x10023abe
mov edx, dword [esp + 0x1c]
mov edx, dword [edx + 4]
lea ebx, [ecx + ecx*4]
movzx edx, word [edx + ebx*4 + 0x10]
and edx, 0x20
test dx, dx
jne 0x10023abe
xor edx, edx
xor ebx, ebx
inc ebx
shld edx, ebx, cl
shl ebx, cl
test cl, 0x20
cmovne edx, ebx
mov ecx, 0
cmovne ebx, ecx
or edi, edx
or esi, ebx
dec eax
cmp eax, 1
jg 0x10023a78
not edi
not esi
mov eax, dword [esp + 0xc]
mov dword [eax + 0x40], esi
mov dword [eax + 0x44], edi
cmp dword [ebp + 0xc], 0
je 0x10023aea
mov eax, dword [esp + 0x14]
movsx eax, word [eax + 0x2a]
cmp dword [esp + 0x28], eax
jge 0x100246a9
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
cmp ecx, dword [eax + 0xe4]
jne 0x10023b09
mov eax, dword [esp + 0x14]
mov esi, dword [eax + 8]
test esi, esi
jne 0x1002457c
mov eax, dword [esp + 0x10]
cmp byte [eax + 0xc8], 1
ja 0x10023b56
mov eax, dword [esp + 0x18]
cmp byte [eax + 0xa9], 0
je 0x10024042
cmp dword [ebp + 0xc], 0
jne 0x10023c42
mov eax, dword [esp + 0xc]
mov edx, dword [eax]
mov ecx, dword [eax + 0x18]
add ecx, 0x18
push eax
call fcn.101311e0
add esp, 4
test eax, eax
jne 0x10024b76
mov eax, dword [esp + 0x18]
or byte [eax + 0x18], 1
cmp dword [ebp + 0xc], 0
je 0x10023b6d
mov eax, dword [esp + 0x18]
cmp byte [eax + 0xa9], 0
je 0x100243f2
mov esi, dword [esp + 0x14]
mov eax, dword [esi + 8]
mov ecx, dword [esp + 0xc]
mov dword [ecx + 0x14], eax
mov dword [esi + 8], ecx
mov dword [esp + 0x28], 0
mov eax, dword [esi + 8]
test eax, eax
je 0x10023bb4
cmp byte [eax + 0x36], 5
je 0x100248ab
mov edi, eax
mov eax, dword [eax + 0x14]
test eax, eax
je 0x10023bb4
cmp byte [eax + 0x36], 5
jne 0x10023b97
add edi, 0x14
mov ecx, dword [eax + 0x14]
test ecx, ecx
jne 0x10024f22
mov edx, dword [esp + 0x28]
test edx, edx
jne 0x10024a15
mov edx, dword [esp + 0x24]
test edx, edx
mov esi, dword [esp + 0x18]
je 0x10023bd3
mov ecx, esi
call fcn.100084e0
mov ecx, esi
mov edx, dword [ebp + 0xc]
call fcn.10008530
mov edx, dword [esp + 0x2c]
test edx, edx
je 0x10023bec
mov ecx, esi
call fcn.10139000
mov ecx, dword [esp + 0x118]
xor ecx, ebp
call fcn.1014dc80
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov edx, dword [esp + 0xc]
movzx eax, word [edx + 0x34]
xor ecx, ecx
mov dword [esp + 0x38], eax
test eax, eax
je 0x10023cce
mov eax, dword [edx + 0xc]
mov eax, dword [eax + 4]
mov edx, dword [edx + 4]
xor esi, esi
movzx edi, word [edx + esi*2]
test di, di
js 0x10023c3f
lea edi, [edi + edi*4]
movzx edi, byte [eax + edi*4 + 0xe]
add ecx, edi
inc esi
cmp esi, dword [esp + 0x38]
jb 0x10023c23
jmp 0x10023c75
inc ecx
jmp 0x10023c36
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 0xa4]
mov ecx, dword [esp + 0xc]
mov dword [ecx + 0x2c], eax
mov ecx, dword [ecx + 0xc]
mov ecx, dword [ecx + 8]
test ecx, ecx
je 0x10023b31
cmp ecx, dword [esp + 0xc]
je 0x10023c70
cmp dword [ecx + 0x2c], eax
je 0x10024ccb
mov ecx, dword [ecx + 0x14]
jmp 0x10023c59
shl ecx, 2
xor eax, eax
cmp ecx, 8
jb 0x10024d58
mov edx, ecx
cmp ecx, 0x100
jae 0x10024d88
mov cx, 0x28
cmp edx, 0x10
mov esi, eax
sbb esi, 0
jb 0x10023cc0
mov esi, 0x1f
mov edi, eax
mov ebx, edx
add ecx, 0xa
mov edx, eax
shld edx, ebx, 0x1f
shr edi, 1
cmp esi, ebx
mov ebx, 0
sbb ebx, eax
mov eax, edi
jb 0x10023ca6
and edx, 7
add cx, word [edx + edx + 0x1019d512]
add ecx, 0xfffffff6
mov eax, dword [esp + 0xc]
mov word [eax + 0x30], cx
mov eax, dword [esp + 0x38]
jmp 0x10023a4b
xor edi, edi
mov dword [esp + 0x20], 0
mov dword [esp + 0x24], ecx
jmp 0x100239a6
xor esi, esi
xor edi, edi
jmp 0x10023ac4
mov edi, dword [esp + 0x18]
mov eax, dword [edi + 0x10]
mov ecx, dword [eax + 0xc]
mov cl, byte [ecx + 0x4d]
mov edx, dword [edi + 0x18]
mov byte [edi + 0x50], cl
mov eax, dword [eax + 0xc]
test byte [eax + 0x4e], 1
mov eax, dword [esp + 0x10]
lea ecx, [eax + 4]
je 0x10024511
mov edi, dword [edi + 0x14]
cmp edi, 2
jl 0x10023d7c
lea ebx, [edi + 1]
shl edi, 4
add edi, 0xfffffffc
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 0x10]
mov eax, dword [eax + edi]
test byte [eax + 0x4e], 1
je 0x10023d4e
dec ebx
add edi, 0xfffffff0
cmp ebx, 2
jg 0x10023d33
jmp 0x10023d7c
mov dword [esp + 0xc], edx
lea edx, [ebx - 2]
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x18]
push 0
push dword [esp + 0x18]
call fcn.10022820
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x14]
add esp, 8
test eax, eax
je 0x10023d43
jmp 0x10024534
test dl, 1
mov eax, dword [esp + 0x18]
jne 0x10023d89
and byte [eax + 0x18], 0xfe
cmp byte [eax + 0x5b], 0
je 0x1002321b
mov eax, dword [esp + 0x18]
or byte [eax + 0x18], 0x10
jmp 0x1002321b
mov ecx, dword [esp + 0x14]
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]
mov dword [esp + 0xc0], eax
test eax, eax
je 0x10024dd6
push eax
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
and eax, 0x3fffffff
lea esi, [esp + 0xc0]
mov dword [esi + 4], eax
mov ecx, dword [esp + 0x18]
mov edx, 0x3b
push 0
push esi
call fcn.10007880
add esp, 8
mov ecx, dword [esp + 0x10]
mov ecx, dword [ecx]
mov edx, eax
call fcn.10007740
test eax, eax
je 0x10024ddd
mov esi, dword [ebp + 0x20]
mov ecx, dword [eax]
lea ecx, [ecx + ecx*4]
xor edx, edx
cmp esi, 0xffffffff
cmovne edx, esi
mov dword [esp + 0x24], eax
mov byte [eax + ecx*4 - 4], dl
jmp 0x1002339f
mov ecx, dword [ecx + 0x13c]
test ecx, ecx
jne 0x100244ef
mov ecx, dword [esp + 0x18]
mov edx, dword [ecx + 0x138]
test edx, edx
jne 0x10024336
mov edx, dword [ecx + 0x134]
test edx, edx
jne 0x1002469a
inc dword [ecx + 0x130]
jmp 0x10023649
mov eax, dword [esp + 0x38]
movzx eax, word [eax + 0x32]
add ebx, eax
jmp 0x100233ec
xorps xmm0, xmm0
lea eax, [esp + 0x80]
movaps xmmword [eax + 0x10], xmm0
movaps xmmword [eax], xmm0
lea edx, [esp + 0xc0]
movaps xmmword [edx], xmm0
movaps xmmword [edx + 0x10], xmm0
movaps xmmword [edx + 0x20], xmm0
movaps xmmword [edx + 0x30], xmm0
movaps xmmword [edx + 0x40], xmm0
mov dword [edx], 1
mov eax, dword [esp + 0x14]
mov ecx, dword [eax]
mov dword [edx + 0x10], ecx
mov dword [edx + 0x18], eax
mov dword [edx + 0x34], 0xffffffff
mov esi, dword [eax + 0x48]
mov eax, dword [esp + 0x10]
mov ecx, dword [eax]
mov dword [esp + 0x28], ecx
mov ebx, dword [ecx + 0x10]
xor ecx, ecx
cmp esi, dword [ebx + 0x1c]
lea esi, [esp + 0x80]
mov dword [esi], eax
mov dword [esi + 4], edx
setne cl
shl ecx, 0x12
or ecx, 0x10002
mov dword [esi + 0x18], ecx
mov dword [esp + 0xa4], eax
mov dword [esp + 0xa8], fcn.10148370
mov dword [esp + 0xac], 0x100047c0
mov dword [esp + 0xb0], 0
mov dword [esp + 0xbc], esi
mov ecx, dword [eax + 0xd0]
add ecx, dword [edi + 0x18]
mov dword [eax + 0xd0], ecx
mov eax, dword [esp + 0x28]
mov eax, dword [eax + 0x7c]
cmp eax, ecx
jl 0x10024df2
lea ebx, [esp + 0xa4]
mov ecx, ebx
mov edx, edi
call fcn.10148200
mov eax, dword [edi + 0x18]
mov ecx, dword [ebx]
sub dword [ecx + 0xd0], eax
mov eax, 0x8010
and eax, dword [esp + 0x98]
or dword [edi + 4], eax
mov eax, dword [esp + 0xc]
mov dword [eax + 0x24], edi
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x44]
jmp 0x10023723
cmp word [eax + 0x32], 0
mov ebx, dword [esp + 0xc]
je 0x100239cd
xor ecx, ecx
mov eax, dword [esp + 0x38]
mov eax, dword [eax + 4]
mov dword [esp + 0x30], ecx
movzx eax, word [eax + ecx*2]
mov word [esp + 0x1c], ax
mov eax, dword [ebx + 4]
mov dword [esp + 0x28], eax
test di, di
je 0x10024b37
movzx eax, di
mov dword [esp + 0x40], eax
xor edi, edi
movzx eax, word [esp + 0x1c]
mov ecx, dword [esp + 0x28]
cmp word [ecx + edi*2], ax
je 0x10023fc5
inc edi
cmp edi, dword [esp + 0x40]
jne 0x10023faa
jmp 0x10024b37
mov eax, dword [esp + 0x38]
mov eax, dword [eax + 0x20]
mov ecx, dword [esp + 0x30]
mov esi, dword [eax + ecx*4]
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x20]
mov ecx, dword [eax + edi*4]
xor edx, edx
movzx eax, byte [ecx + edx]
movzx ebx, byte [esi + edx]
cmp al, bl
jne 0x100248b5
test al, al
je 0x10023ff6
inc edx
jmp 0x10023fdf
mov eax, dword [esp + 0xc]
dec word [eax + 0x34]
mov ecx, dword [esp + 0x30]
inc ecx
mov eax, dword [esp + 0x38]
movzx eax, word [eax + 0x32]
cmp ecx, eax
mov ebx, dword [esp + 0xc]
jae 0x100239cd
movzx edi, word [ebx + 0x32]
jmp 0x10023f7d
mov esi, ebx
mov ecx, dword [esp + 0x18]
cmp dword [ecx + 0x118], 0
je 0x100248a0
cmp byte [ecx + 0x53], 0
je 0x10024251
jmp 0x10024a52
cmp dword [ebp + 0xc], 0
jne 0x10024056
mov eax, dword [esp + 0x14]
cmp byte [eax + 0x24], 0
js 0x10023b6d
mov edi, dword [esp + 0x10]
mov esi, dword [edi + 8]
mov eax, dword [edi + 0x2c]
inc eax
mov dword [esp + 0x20], eax
mov dword [edi + 0x2c], eax
test esi, esi
jne 0x1002408f
cmp dword [edi + 0x74], 0
jne 0x1002407e
mov eax, dword [edi]
test byte [eax + 0x4c], 8
jne 0x1002407e
mov byte [edi + 0x17], 1
mov ecx, edi
call fcn.10035540
mov esi, eax
test eax, eax
je 0x10024d02
mov ebx, dword [edi + 0x74]
test ebx, ebx
cmove ebx, edi
mov eax, dword [ebx + 0x54]
xor edi, edi
inc edi
mov ecx, dword [esp + 0x34]
shl edi, cl
bt eax, ecx
jb 0x100240b8
or eax, edi
mov dword [ebx + 0x54], eax
cmp dword [esp + 0x34], 1
je 0x1002468e
or dword [ebx + 0x50], edi
or byte [ebx + 0x14], 1
mov eax, dword [esi + 0x6c]
cmp dword [esi + 0x70], eax
jle 0x10024709
lea ecx, [eax + 1]
mov dword [esi + 0x6c], ecx
mov ecx, dword [esi + 0x68]
lea edx, [eax + eax*4]
mov byte [ecx + edx*4], 0xb1
xorps xmm0, xmm0
movups xmmword [ecx + edx*4 + 1], xmm0
mov dword [ecx + edx*4 + 0x10], 0
mov edi, dword [esp + 0x3c]
mov ecx, dword [esp + 0xc]
mov dword [ecx + 0x2c], eax
mov eax, dword [esi + 0x6c]
cmp dword [esi + 0x70], eax
jle 0x10024722
lea ecx, [eax + 1]
mov dword [esi + 0x6c], ecx
mov ecx, dword [esi + 0x68]
lea eax, [eax + eax*4]
mov dword [ecx + eax*4], 0x8f
mov edx, dword [esp + 0x34]
mov dword [ecx + eax*4 + 4], edx
mov edx, dword [esp + 0x20]
mov dword [ecx + eax*4 + 8], edx
mov dword [ecx + eax*4 + 0xc], 2
mov dword [ecx + eax*4 + 0x10], 0
xor ebx, ebx
cmp dword [ebp + 0x18], 0
je 0x10024187
mov eax, dword [edi]
mov edx, dword [esp + 0x10]
mov ecx, dword [edx + 0xbc]
mov edx, dword [edx + 0xc0]
sub ecx, eax
lea edi, [ecx + edx]
cmp byte [eax + edi - 1], 0x3b
lea ecx, [ecx + edx - 1]
cmovne ecx, edi
cmp dword [ebp + 0x14], 0
mov edx, 0x101cc833
mov edi, str._UNIQUE
cmove edi, edx
push eax
push ecx
push edi
push str.CREATE_s_INDEX__.s
push dword [esp + 0x28]
call fcn.10024f60
add esp, 0x14
mov ebx, eax
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 0x10]
push ebx
push dword [esp + 0x24]
mov ecx, dword [esp + 0x1c]
push dword [ecx]
mov ecx, dword [esp + 0x18]
push dword [ecx]
mov ecx, dword [esp + 0x54]
push dword [eax + ecx]
push str.INSERT_INTO__Q.sqlite_master_VALUES_index__Q__Q__d__Q__
push dword [esp + 0x28]
call fcn.1001a670
add esp, 0x1c
test ebx, ebx
je 0x100241c6
mov ecx, dword [esp + 0x18]
mov edx, ebx
call fcn.10139000
cmp dword [ebp + 0xc], 0
jne 0x10024435
mov ecx, dword [esi]
mov eax, dword [esi + 0x6c]
cmp byte [ecx + 0x53], 0
jne 0x10024e2b
mov ecx, dword [esp + 0xc]
mov ecx, dword [ecx + 0x2c]
lea edx, [eax - 1]
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 0x10023b56
mov ecx, dword [esp + 0x10]
mov ecx, dword [ecx]
mov ecx, dword [ecx + 0x10]
add ecx, 0xfffffff0
lea esi, [ecx + 0x10]
cmp dword [ecx + 0x1c], eax
mov ecx, esi
je 0x10023558
jmp 0x1002420b
mov ecx, dword [ecx + 0x13c]
test ecx, ecx
jne 0x10024543
mov ecx, dword [esp + 0x18]
mov esi, dword [ecx + 0x138]
test esi, esi
jne 0x10024502
mov esi, dword [ecx + 0x134]
test esi, esi
jne 0x1002474b
mov esi, ebx
inc dword [ecx + 0x130]
mov al, byte [esp + 0x1c]
xor ebx, ebx
mov bl, al
push ebx
call fcn.10143c10
add esp, 4
mov edi, eax
test eax, eax
mov ebx, esi
je 0x10024a52
push ebx
push dword [esp + 0x24]
push edi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov byte [edi + ebx], 0
movzx eax, byte [edi]
cmp byte [eax + 0x1019c89a], 0
mov dword [esp + 0x2c], edi
js 0x10024c8f
mov esi, dword [esp + 0x10]
mov ecx, esi
mov edx, edi
mov eax, dword [esp + 0x14]
push dword [eax]
push 0x101b4e88
call fcn.101465d0
add esp, 8
test eax, eax
jne 0x1002442c
mov bl, byte [esi + 0xc8]
cmp bl, 1
ja 0x10023379
mov esi, dword [esp + 0x18]
cmp byte [esi + 0xa9], 0
je 0x100243c3
mov ecx, esi
mov edx, dword [esp + 0x2c]
mov esi, dword [esp + 0xc]
push dword [esi]
call fcn.10018660
add esp, 4
test eax, eax
je 0x10023353
cmp dword [ebp + 0x24], 0
je 0x10024f08
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 0x74]
test eax, eax
cmove eax, ecx
mov edx, dword [eax + 0x54]
xor esi, esi
inc esi
mov ecx, dword [esp + 0x34]
shl esi, cl
bt edx, ecx
jb 0x10024328
or edx, esi
mov dword [eax + 0x54], edx
cmp ecx, 1
je 0x10024f16
mov ecx, dword [esp + 0x10]
call fcn.10028430
jmp 0x1002442c
mov esi, edx
mov eax, dword [edx]
mov dword [ecx + 0x138], eax
jmp 0x1002347b
mov ebx, dword [ebp + 0xc]
mov eax, dword [ebx + 8]
test eax, eax
jne 0x10024672
lea esi, [ebx + 0xc]
mov ecx, dword [esp + 0x10]
xor edx, edx
push dword [esi]
push dword [ebx + 0x10]
call fcn.100395c0
add esp, 8
mov esi, eax
mov edx, dword [ebx + 0x18]
test edx, edx
jne 0x10024556
mov eax, dword [ebp + 0xc]
mov dword [eax + 0x18], esi
test esi, esi
je 0x100234b9
inc dword [esi + 0x20]
test byte [eax + 0x30], 2
jne 0x10024e35
test esi, esi
je 0x100234b9
cmp dword [edi + 4], 0
jne 0x100234b9
mov eax, dword [esi + 0x48]
mov ecx, dword [esp + 0x18]
mov ecx, dword [ecx + 0x10]
xor edx, edx
inc edx
cmp eax, dword [ecx + 0x1c]
mov eax, dword [esp + 0x34]
cmove eax, edx
mov dword [esp + 0x34], eax
jmp 0x100234b9
mov ecx, esi
mov edx, dword [esp + 0x2c]
push 0
call fcn.10039b60
add esp, 4
test eax, eax
je 0x100242d7
push dword [esp + 0x2c]
push str.there_is_already_a_table_named__s
push dword [esp + 0x18]
call fcn.100394d0
add esp, 0xc
jmp 0x1002442c
mov dword [esp + 0x28], 0
mov eax, dword [esp + 0x10]
cmp byte [eax + 0xc8], 2
jae 0x10024e85
mov eax, dword [esp + 0x24]
mov dword [esp + 0x30], eax
mov edx, dword [esp + 0xc]
test edx, edx
je 0x10024424
mov ecx, dword [esp + 0x18]
call fcn.10021f10
mov eax, dword [esp + 0x30]
mov dword [esp + 0x24], eax
mov esi, dword [esp + 0x14]
jmp 0x10023b86
mov edi, dword [esp + 0x10]
mov ecx, edi
mov edx, dword [esp + 0xc]
push dword [esp + 0x20]
call fcn.100564c0
add esp, 4
mov eax, dword [edi]
mov ecx, dword [edi + 8]
mov eax, dword [eax + 0x10]
mov edx, dword [esp + 0x44]
mov eax, dword [eax + edx + 0xc]
mov eax, dword [eax]
inc eax
mov edx, dword [ecx + 0x6c]
cmp dword [ecx + 0x70], edx
jle 0x1002486c
lea edi, [edx + 1]
mov dword [ecx + 0x6c], edi
mov ecx, dword [ecx + 0x68]
lea edx, [edx + edx*4]
mov dword [ecx + edx*4], 0x60
mov edi, dword [esp + 0x34]
mov dword [ecx + edx*4 + 4], edi
mov dword [ecx + edx*4 + 8], 1
mov dword [ecx + edx*4 + 0xc], eax
mov dword [ecx + edx*4 + 0x10], 0
mov eax, dword [esp + 0xc]
push dword [eax]
push str.name_q_AND_typeindex
push dword [esp + 0x20]
call fcn.10024f60
add esp, 0xc
mov ecx, esi
mov edx, edi
push 0
push eax
call fcn.1001a770
add esp, 8
mov eax, dword [esi + 0x6c]
cmp dword [esi + 0x70], eax
jle 0x10024886
lea ecx, [eax + 1]
mov dword [esi + 0x6c], ecx
mov ecx, dword [esi + 0x68]
lea eax, [eax + eax*4]
mov dword [ecx + eax*4], 0xa2
movaps xmm0, xmmword [0x1019c190]
movups xmmword [ecx + eax*4 + 4], xmm0
jmp 0x100241d0
mov esi, ecx
mov eax, dword [ecx]
mov ecx, dword [esp + 0x18]
mov dword [ecx + 0x13c], eax
jmp 0x1002347b
mov edi, esi
mov eax, dword [esi]
mov dword [ecx + 0x138], eax
jmp 0x10023614
mov ebx, ecx
mov ecx, edi
mov dword [esp + 0xc], edx
xor edx, edx
push 0
push ebx
call fcn.10022820
mov ecx, ebx
mov edx, dword [esp + 0x14]
add esp, 8
test eax, eax
je 0x10023d22
mov ecx, dword [esp + 0x10]
mov dword [ecx + 0xc], eax
inc dword [ecx + 0x24]
jmp 0x10023bb4
mov edi, ecx
mov eax, dword [ecx]
mov ecx, dword [esp + 0x18]
mov dword [ecx + 0x13c], eax
jmp 0x10023614
mov eax, dword [esp + 0x10]
mov ecx, dword [eax]
test ecx, ecx
je 0x10024569
cmp dword [ecx + 0x1f8], 0
jne 0x10024572
dec dword [edx + 0x20]
jne 0x10024376
call fcn.10021c30
jmp 0x10024376
mov eax, dword [esp + 0xc]
movzx edx, word [eax + 0x32]
cmp word [esi + 0x32], dx
jne 0x10024e9c
xor ecx, ecx
test dx, dx
jne 0x1002459e
cmp ecx, edx
je 0x10024602
jmp 0x10024e9c
mov eax, dword [esi + 4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 4]
mov dword [esp + 0x28], eax
xor ecx, ecx
mov dword [esp + 0x1c], edx
mov eax, dword [esp + 0x38]
movzx eax, word [eax + ecx*2]
mov edi, dword [esp + 0x28]
cmp ax, word [edi + ecx*2]
jne 0x10024595
mov eax, dword [esi + 0x20]
mov eax, dword [eax + ecx*4]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x20]
mov edx, dword [eax + ecx*4]
xor edi, edi
mov eax, dword [esp + 0x20]
movzx eax, byte [eax + edi]
movzx ebx, byte [edx + edi]
cmp al, bl
jne 0x10024e10
test al, al
je 0x100245f9
inc edi
jmp 0x100245de
inc ecx
mov edx, dword [esp + 0x1c]
cmp ecx, edx
jne 0x100245b6
mov al, byte [esi + 0x36]
mov ecx, dword [esp + 0xc]
mov cl, byte [ecx + 0x36]
cmp al, cl
je 0x1002462b
cmp al, 0xb
je 0x1002461d
cmp cl, 0xb
jne 0x10024ed3
cmp al, 0xb
jne 0x1002462b
mov eax, dword [esp + 0xc]
mov al, byte [eax + 0x36]
mov byte [esi + 0x36], al
cmp byte [ebp + 0x28], 2
je 0x10024eac
mov dword [esp + 0x28], 0
mov ecx, dword [esp + 0x10]
cmp byte [ecx + 0xc8], 2
jae 0x10024ebe
mov eax, dword [esp + 0x24]
mov dword [esp + 0x30], eax
mov edx, dword [esp + 0xc]
jmp 0x1002441b
mov ecx, 2
mov edx, dword [edx + 0x14]
test edx, edx
je 0x10023321
inc ecx
jmp 0x10024664
mov ecx, dword [esp + 0x10]
mov ecx, dword [ecx]
mov ecx, dword [ecx + 0x10]
add ecx, 0xfffffff0
lea esi, [ecx + 0x10]
cmp dword [ecx + 0x1c], eax
mov ecx, esi
je 0x10024356
jmp 0x1002467e
mov ecx, ebx
call fcn.10045bc0
jmp 0x100240b8
mov esi, edx
mov eax, dword [edx]
mov dword [ecx + 0x134], eax
jmp 0x1002347b
mov edx, dword [esp + 0xc]
mov eax, dword [edx + 0x38]
mov ecx, eax
or ecx, 0x20
mov dword [edx + 0x38], ecx
mov ecx, dword [esp + 0x14]
movzx ecx, word [ecx + 0x2a]
test cx, cx
jle 0x10023aea
mov edx, dword [esp + 0x14]
movsx edx, word [edx + 0x28]
xor esi, esi
cmp esi, edx
je 0x100246ff
cmp word [esp + 0x38], 0
je 0x10024ef9
mov edi, dword [esp + 0xc]
mov ebx, dword [edi + 4]
xor edi, edi
cmp word [ebx + edi*2], si
jne 0x10024eee
test di, di
js 0x10024ef9
inc esi
cmp esi, ecx
jne 0x100246d3
jmp 0x10023aea
xor eax, eax
mov ecx, esi
mov edx, 0xb1
push eax
push eax
push eax
call fcn.10007820
add esp, 0xc
jmp 0x100240eb
mov ecx, esi
mov edx, 0x8f
push 2
push dword [esp + 0x24]
push dword [esp + 0x3c]
call fcn.10007820
add esp, 0xc
jmp 0x10024135
inc dword [ecx + 0x12c]
jmp 0x10023649
mov edi, esi
mov eax, dword [esi]
mov dword [ecx + 0x134], eax
jmp 0x10023614
mov dl, byte [eax + 1]
mov ecx, 0x101bc897
test dl, dl
je 0x10024a0e
mov ebx, edx
and bl, 0xdf
cmp bl, 0x51
jne 0x100232c1
mov esi, edi
mov dl, byte [eax + 2]
mov ecx, 0x101bc898
test dl, dl
je 0x10024f55
mov ebx, edx
and bl, 0xdf
cmp bl, 0x4c
mov edi, esi
jne 0x100232c1
mov dl, byte [eax + 3]
mov ecx, 0x101bc899
test dl, dl
je 0x10024f55
mov ebx, edx
and bl, 0xdf
cmp bl, 0x49
mov edi, esi
jne 0x100232c1
mov dl, byte [eax + 4]
mov ecx, 0x101bc89a
test dl, dl
je 0x10024f55
mov ebx, edx
and bl, 0xdf
cmp bl, 0x54
mov edi, esi
jne 0x100232c1
mov dl, byte [eax + 5]
mov ecx, 0x101bc89b
test dl, dl
je 0x10024f55
mov ebx, edx
and bl, 0xdf
cmp bl, 0x45
mov edi, esi
jne 0x100232c1
mov dl, byte [eax + 6]
mov ecx, 0x101bc89c
cmp dl, 0x5f
jne 0x100232c1
cmp dword [ebp + 0xc], 0
je 0x100232d9
mov ecx, dword [esp + 0x18]
cmp byte [ecx + 0xa9], 0
jne 0x100232d9
push eax
push str.table__s_may_not_be_indexed
push dword [esp + 0x18]
call fcn.100394d0
add esp, 0xc
jmp 0x10024a52
cmp byte [ecx + 0xa9], 0
jne 0x10024f3f
mov edx, esi
call fcn.1005f0d0
mov dword [esp + 0x3c], edi
mov dword [esp + 0x34], eax
test eax, eax
jns 0x100234a8
push esi
push str.unknown_database__T
jmp 0x100249fd
mov edx, 0x60
push eax
push 1
mov edi, dword [esp + 0x3c]
push edi
call fcn.10007820
add esp, 0xc
jmp 0x10024499
xor eax, eax
mov ecx, esi
mov edx, 0xa2
push eax
push 1
push eax
call fcn.10007820
add esp, 0xc
jmp 0x100241d0
inc dword [ecx + 0x12c]
jmp 0x10024251
mov edi, esi
add edi, 8
jmp 0x10023ba9
mov al, byte [eax + 0x1019c728]
cmp al, byte [ebx + 0x1019c728]
je 0x10023ff3
jmp 0x10023fb9
mov eax, dword [eax + 8]
test eax, eax
je 0x10024bfe
push eax
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
and eax, 0x3fffffff
mov ecx, dword [esp + 0x1c]
add ecx, eax
inc ecx
mov dword [esp + 0x1c], ecx
jmp 0x100233c5
mov eax, dword [eax + 0xc]
cmp byte [eax], 0x74
jne 0x10023787
mov byte [eax], 0x3b
jmp 0x10023787
mov ecx, dword [ecx + 0xc]
jmp 0x10023844
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
cmp ecx, dword [eax + 0xe4]
je 0x100249be
mov eax, dword [esp + 0xc]
cmp dword [eax + 0x28], 0
jne 0x10024942
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x30]
mov dword [eax + 0x28], ecx
mov dword [esp + 0x30], 0
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx + 4]
mov edx, dword [esp + 0x20]
mov word [eax + edx*2], 0xfffe
and byte [ecx + 0x38], 0xf7
mov eax, dword [esp + 0x24]
mov ecx, dword [eax]
cmp byte [ecx], 0x70
je 0x1002496d
mov esi, dword [esp + 0x1c]
xor ebx, ebx
jmp 0x100238c3
mov esi, dword [ecx + 8]
test esi, esi
je 0x10024c05
push esi
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
mov edi, eax
and edi, 0x3fffffff
lea eax, [edi + 1]
push eax
push esi
mov ebx, dword [esp + 0x24]
push ebx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
lea esi, [ebx + edi]
inc esi
jmp 0x100238c3
mov eax, dword [esp + 0x14]
movsx eax, word [eax + 0x28]
jmp 0x10023889
mov ecx, dword [esp + 0xc]
or byte [ecx + 0x39], 4
jmp 0x10023889
push str.expressions_prohibited_in_PRIMARY_KEY_and_UNIQUE_constraints
push dword [esp + 0x14]
call fcn.100394d0
add esp, 8
mov dword [esp + 0x28], 0
mov eax, dword [esp + 0x30]
jmp 0x1002440f
mov al, byte [ecx - 4]
cmp al, 3
mov ecx, str.FIRST
mov edx, str.LAST
cmove edx, ecx
test al, al
cmove edx, ecx
push edx
push str.unsupported_use_of_NULLS__s
push dword [esp + 0x18]
call fcn.100394d0
add esp, 0xc
jmp 0x10023bb4
xor edx, edx
jmp 0x100232c1
mov ecx, dword [esp + 0x18]
call fcn.10139110
jmp 0x10023bc0
push str.views_may_not_be_indexed
push dword [esp + 0x14]
call fcn.100394d0
add esp, 8
mov dword [esp + 0x2c], 0
jmp 0x10023b86
push str.virtual_tables_may_not_be_indexed
push dword [esp + 0x14]
call fcn.100394d0
add esp, 8
mov dword [esp + 0x2c], 0
jmp 0x1002442c
mov edx, dword [esi]
mov dword [esp + 0xc], edx
mov dl, byte [eax + 0xa9]
or bl, dl
je 0x10024d0f
xor ebx, ebx
cmp dword [esp + 0x34], 1
sete bl
lea edi, [ebx + ebx]
inc edi
test dl, dl
jne 0x10023379
mov edx, dword [esp + 0x10]
cmp byte [edx + 0xc8], 0
jne 0x10023379
mov edx, dword [esp + 0x14]
mov esi, dword [edx]
mov edx, dword [esp + 0x10]
mov ebx, dword [edx + 0xf0]
mov eax, dword [eax + 0x154]
mov dword [esp + 0x20], eax
call dword [section..00cfg]
push ebx
push dword [esp + 0x10]
push esi
push dword [esp + 0x38]
push edi
push dword [esp + 0x34]
call ecx
add esp, 0x18
cmp eax, 1
je 0x10024d3a
test eax, 0xfffffffd
jne 0x10024db8
test eax, eax
je 0x10023379
jmp 0x1002442c
mov edx, ebx
sar edx, 0x1f
mov ecx, ebx
call fcn.10144e50
jmp 0x10023654
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0xc]
mov dword [ecx + 0x28], eax
xor ecx, ecx
jmp 0x10023743
mov word [esi + edi*2 + 2], 0x17
inc edi
movzx eax, word [ebx + 0x32]
cmp edi, eax
jae 0x10023a23
jmp 0x10024b12
mov word [ecx + 0x2e], 0x63
mov ax, 0x63
jmp 0x100239f4
mov edi, dword [esp + 0x20]
movzx eax, word [esp + 0x1c]
mov ecx, dword [esp + 0x28]
mov word [ecx + edi*2], ax
mov esi, dword [esp + 0x38]
mov eax, dword [esi + 0x20]
mov ebx, dword [esp + 0x30]
mov eax, dword [eax + ebx*4]
mov edx, dword [esp + 0xc]
mov ecx, dword [edx + 0x20]
mov dword [ecx + edi*4], eax
mov eax, dword [esi + 0x1c]
mov al, byte [eax + ebx]
mov ecx, dword [edx + 0x1c]
mov byte [ecx + edi], al
inc edi
mov dword [esp + 0x20], edi
jmp 0x10023ffe
mov dword [esp + 0x28], 0
mov eax, dword [esp + 0x18]
cmp byte [eax + 0x53], 0
jne 0x1002464e
mov eax, dword [esp + 0x18]
cmp byte [eax + 0x54], 0
jne 0x1002464e
mov eax, dword [esp + 0x18]
mov byte [eax + 0x53], 1
cmp dword [eax + 0xc0], 0
jle 0x10024bb9
mov eax, dword [esp + 0x18]
mov dword [eax + 0x110], 1
mov eax, dword [esp + 0x18]
inc dword [eax + 0x118]
mov word [eax + 0x11c], 0
mov eax, dword [eax + 0xf0]
test eax, eax
je 0x1002464e
mov dword [eax + 0xc], 7
jmp 0x1002464e
push 0x101b4e88
push str.too_many_columns_in__s
push esi
call fcn.100394d0
add esp, 0xc
jmp 0x10023395
xor eax, eax
jmp 0x100248e5
xor edi, edi
jmp 0x10024989
mov dword [esp + 0x34], 0xffff8000
xor edi, edi
jmp 0x10023287
mov eax, dword [esp + 0x2c]
inc byte [eax + 7]
mov eax, dword [esp + 0x10]
mov bl, byte [eax + 0xc8]
cmp bl, 1
jbe 0x10023353
jmp 0x10023379
mov dword [esp + 0xc], 0
mov dword [esp + 0x1c], 0
jmp 0x100236a1
mov dword [esp + 0x2c], 0
jmp 0x10023bb4
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 0x10]
mov eax, dword [eax + 0x1c]
mov ecx, dword [esp + 0x14]
cmp eax, dword [ecx + 0x48]
je 0x10023586
mov esi, dword [esp + 0x14]
push dword [esi]
push str.cannot_create_a_TEMP_index_on_non_TEMP_table___s_
push dword [esp + 0x18]
call fcn.100394d0
add esp, 0xc
jmp 0x10024a34
cmp al, 0x5b
movzx ecx, al
mov eax, 0x5d
cmovne eax, ecx
xor edx, edx
inc edx
mov esi, dword [esp + 0x2c]
mov bl, byte [esi + edx]
cmp bl, al
jne 0x10024cb9
mov esi, dword [esp + 0x2c]
cmp byte [esi + edx + 1], al
jne 0x10024cbf
inc edx
mov byte [edi], al
jmp 0x10024cbb
mov byte [edi], bl
inc edx
inc edi
jmp 0x10024c9f
mov byte [edi], 0
mov edi, dword [esp + 0x2c]
jmp 0x10024294
push str.invalid_rootpage
mov edi, dword [esp + 0x14]
push edi
call fcn.100394d0
add esp, 8
mov esi, 0xb
push 0x101c47ed
push 0x1c722
push str.database_corruption
push str._s_at_line__d_of___.10s_
push esi
call sym.nss3.dll_sqlite3_log
add esp, 0x14
mov dword [edi + 0xc], esi
mov dword [esp + 0x28], 0
jmp 0x1002440b
mov edx, dword [esp + 0x10]
mov ebx, dword [edx + 0xf0]
mov esi, dword [eax + 0x154]
call dword [section..00cfg]
push ebx
push dword [esp + 0x10]
push 0
push edi
push 0x12
push esi
call ecx
add esp, 0x18
cmp eax, 1
jne 0x10024dad
push str.not_authorized
mov esi, dword [esp + 0x14]
push esi
call fcn.100394d0
add esp, 8
mov dword [esi + 0xc], 0x17
jmp 0x1002442c
test ecx, ecx
je 0x10024e09
mov edi, ecx
mov cx, 0x1e
mov esi, 3
lea edx, [edi + edi]
cmp esi, edi
mov ebx, 0
sbb ebx, eax
jb 0x10023cc0
shld eax, edi, 1
add ecx, 0xfffffff6
mov edi, edx
jmp 0x10024d6b
mov cx, 0x50
mov esi, eax
mov edi, edx
mov edx, eax
shld edx, edi, 0x1c
shr eax, 4
cmp edi, 0x1000
sbb esi, 0
jb 0x10023c95
add ecx, 0x28
jmp 0x10024d8c
test eax, 0xfffffffd
je 0x10024e50
push str.authorizer_malfunction
mov esi, dword [esp + 0x14]
push esi
call fcn.100394d0
add esp, 8
mov dword [esi + 0xc], 1
jmp 0x1002442c
xor eax, eax
jmp 0x10023dd5
mov dword [esp + 0x24], 0
jmp 0x1002442c
mov eax, dword [eax + 0x14]
jmp 0x1002359f
push eax
push str.Expression_tree_is_too_large__maximum_depth__d_
push dword [esp + 0x18]
call fcn.100394d0
add esp, 0xc
jmp 0x10023f58
xor ecx, ecx
jmp 0x10023cce
mov al, byte [eax + 0x1019c728]
cmp al, byte [ebx + 0x1019c728]
je 0x100245f6
mov edx, dword [esp + 0x1c]
jmp 0x10024595
mov ecx, 0x101ddee0
jmp 0x100241f7
mov eax, dword [ebp + 0xc]
lea edx, [eax + 8]
mov ecx, dword [esp + 0x10]
call fcn.10162640
xor ecx, ecx
test eax, eax
cmovne esi, ecx
jmp 0x10024391
test eax, eax
jne 0x1002442c
mov eax, dword [esp + 0x10]
mov eax, dword [eax]
mov ecx, dword [eax + 0x150]
test ecx, ecx
je 0x10023379
xor edx, edx
cmp dword [esp + 0x34], 1
sete dl
lea edi, [edx + edx]
inc edi
mov dl, byte [eax + 0xa9]
jmp 0x10024a81
mov ecx, dword [esp + 0xc]
mov dword [eax + 0xe8], ecx
mov dword [esp + 0x28], 0
jmp 0x1002442c
mov esi, dword [esi + 0x14]
test esi, esi
je 0x10023b09
jmp 0x10024584
mov eax, dword [esi + 0x38]
and eax, 0xfffffffc
add eax, dword [esp + 0x48]
mov dword [esi + 0x38], eax
jmp 0x10024635
mov eax, dword [ecx + 0xe8]
mov edx, dword [esp + 0xc]
mov dword [edx + 0x14], eax
mov dword [ecx + 0xe8], edx
jmp 0x10024e8f
push 0
push str.conflicting_ON_CONFLICT_clauses_specified
push dword [esp + 0x18]
call fcn.100394d0
add esp, 0xc
mov al, byte [esi + 0x36]
jmp 0x1002461d
inc edi
cmp dword [esp + 0x28], edi
jne 0x100246ec
and eax, 0xffffffdf
mov ecx, dword [esp + 0xc]
mov dword [ecx + 0x38], eax
jmp 0x10023aea
push dword [esp + 0x2c]
push str.index__s_already_exists
jmp 0x100243e4
mov ecx, eax
call fcn.10045bc0
jmp 0x10024328
cmp byte [ecx + 0x36], 5
je 0x10023bb4
mov dword [edi], ecx
lea edi, [ecx + 0x14]
mov edx, dword [ecx + 0x14]
mov dword [eax + 0x14], edx
mov dword [ecx + 0x14], eax
jmp 0x10023ba9
push str.corrupt_database
push dword [esp + 0x14]
call fcn.100394d0
add esp, 8
jmp 0x10023bb4
xor edx, edx
mov edi, esi
jmp 0x100232c1