Function at 0x10036b40
Capabilities:
Inspect section memory permissions

Disassembly:
sub esp, 0x44
mov edx, dword [esp + 0x48]
xor eax, eax
push ebx
mov dword [esp + 0x3c], eax
xor ebx, ebx
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x60]
mov ecx, dword [edx]
mov edx, dword [esp + 0x5c]
push ebp
push esi
xor ebp, ebp
mov dword [eax + 0x1c], 0xffffffff
mov eax, dword [esp + 0x58]
push edi
xor edi, edi
mov dword [esp + 0x18], ebp
mov dword [esp + 0x38], ebp
mov dword [esp + 0x24], ecx
mov dword [esp + 0x14], edi
mov dword [esp + 0x44], edx
mov dword [esp + 0x3c], 0xa7
mov dword [esp + 0x20], ebx
mov dword [esp + 0x2c], ebx
test eax, eax
je 0x10036c25
mov ebx, edx
test byte [ebx + 0x18], 6
je 0x10036baf
xor edx, edx
mov dword [esp + 0x5c], edx
jmp 0x10036c31
mov ebx, dword [ecx + 0x14]
xor esi, esi
test ebx, ebx
jle 0x10036bf1
mov ebp, dword [ecx + 0x10]
mov edi, ebp
nop dword [eax]
push eax
push dword [edi]
call fcn.100762a0
add esp, 8
test eax, eax
je 0x10036bdd
mov eax, dword [esp + 0x5c]
inc esi
add edi, 0x10
cmp esi, ebx
jl 0x10036bc0
jmp 0x10036bed
mov eax, esi
add eax, eax
mov eax, dword [ebp + eax*8 + 0xc]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x5c]
xor ebp, ebp
xor edi, edi
cmp esi, ebx
jne 0x10036c29
push eax
push str.main
call fcn.100762a0
mov ebx, dword [esp + 0x70]
add esp, 8
test eax, eax
jne 0x100372f0
mov eax, dword [esp + 0x24]
mov eax, dword [eax + 0x10]
mov ecx, dword [eax + 0xc]
mov edx, dword [eax]
mov dword [esp + 0x34], ecx
mov dword [esp + 0x5c], edx
jmp 0x10036c31
mov edx, eax
jmp 0x10036c2d
mov edx, dword [esp + 0x5c]
mov ebx, dword [esp + 0x68]
mov ecx, dword [ebx + 4]
mov dword [esp + 0x30], ecx
test ecx, ecx
je 0x10037034
xor eax, eax
lea esi, [ecx + 8]
mov dword [esp + 0x28], eax
mov dword [esp + 0x1c], esi
cmp dword [ecx], eax
jle 0x10037004
nop word [eax + eax]
test dword [esi + 0x28], 0x2000
mov ebp, dword [esi + 0x10]
mov dword [esp + 0x40], ebp
je 0x10036d9d
mov eax, dword [esi + 0x14]
xor ebx, ebx
xor edi, edi
mov ebp, dword [eax + 0x1c]
cmp dword [ebp], ebx
jle 0x10036d5c
lea esi, [ebp + 0x14]
nop word [eax + eax]
push edx
push dword [esp + 0x64]
lea eax, [esi - 0xc]
push dword [esp + 0x6c]
push eax
call fcn.10065cb0
add esp, 0x10
test eax, eax
je 0x10036d3b
cmp dword [esp + 0x18], 0
jle 0x10036d0e
mov eax, dword [esp + 0x1c]
test dword [eax + 0x28], 0x400
je 0x10036cef
push dword [esp + 0x64]
push dword [eax + 0x30]
call fcn.100623d0
add esp, 8
test eax, eax
js 0x10036cef
mov eax, dword [esp + 0x1c]
mov al, byte [eax + 0x24]
test al, 0x10
je 0x10036d3b
test al, 8
jne 0x10036d75
mov dword [esp + 0x18], 0
mov eax, dword [esp + 0x20]
test eax, eax
je 0x10036d04
push eax
push dword [esp + 0x28]
call fcn.1002abf0
add esp, 8
xor eax, eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x1c]
mov edi, 1
inc dword [esp + 0x18]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x38], 2
mov word [eax + 0x20], bx
or dword [esi], 0x40
test byte [esi], 0x80
jne 0x10036fd8
mov edx, dword [esp + 0x5c]
inc ebx
add esi, 0x14
cmp ebx, dword [ebp]
jl 0x10036c90
mov esi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x30]
test edi, edi
jne 0x1003709f
mov ebx, dword [esp + 0x60]
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x5c]
test ebx, ebx
jne 0x10036dab
mov ebp, dword [esp + 0x18]
jmp 0x10036fec
mov eax, dword [esp + 0x6c]
mov ecx, dword [esp + 0x14]
movzx eax, word [eax + 0x20]
push eax
push ecx
lea eax, [esp + 0x34]
push eax
push dword [esp + 0x64]
call fcn.1002b500
mov eax, dword [esp + 0x3c]
add esp, 0x10
jmp 0x10036d0a
mov ebx, dword [esp + 0x60]
test ebx, ebx
je 0x10036e65
jmp 0x10036daf
mov ebp, dword [esp + 0x40]
test edx, edx
je 0x10036df4
mov edi, dword [esp + 0x34]
cmp dword [ebp + 0x3c], edi
jne 0x10036d6c
test edi, edi
jne 0x10036df4
mov ecx, 0x100b4818
mov eax, edx
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10036de7
test dl, dl
je 0x10036de3
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10036de7
add eax, 2
add ecx, 2
test dl, dl
jne 0x10036dc7
xor eax, eax
jmp 0x10036dec
sbb eax, eax
or eax, 1
test eax, eax
jne 0x10036fdc
mov edi, dword [esi + 0xc]
mov edx, edi
test edi, edi
jne 0x10036e00
mov edx, dword [ebp]
mov esi, ebx
sub esi, edx
movzx ecx, byte [edx]
movzx eax, byte [esi + edx]
cmp ecx, eax
jne 0x10036e42
test ecx, ecx
jne 0x10036e58
mov eax, dword [esp + 0x58]
cmp byte [eax + 0xd4], 2
jb 0x10036e61
test edi, edi
je 0x10036e61
mov eax, dword [eax + 0x110]
test eax, eax
je 0x10036e61
mov ecx, dword [esp + 0x6c]
add ecx, 0x2c
cmp dword [eax], ecx
je 0x10036e5b
mov eax, dword [eax + 0xc]
test eax, eax
jne 0x10036e35
jmp 0x10036e61
movzx eax, byte [eax + 0x100b0f70]
movzx ecx, byte [ecx + 0x100b0f70]
sub ecx, eax
jne 0x10036fd8
inc edx
jmp 0x10036e04
mov dword [eax], 0
mov esi, dword [esp + 0x1c]
push dword [esp + 0x64]
call fcn.100762e0
mov edi, dword [ebp + 4]
add esp, 4
movsx ebp, word [ebp + 0x22]
xor ebx, ebx
mov byte [esp + 0x13], al
test ebp, ebp
jle 0x10036f5f
cmp byte [edi + 0xa], al
jne 0x10036f53
mov esi, dword [esp + 0x64]
mov edx, dword [edi]
sub esi, edx
movzx eax, byte [edx]
movzx ecx, byte [esi + edx]
cmp eax, ecx
jne 0x10036f33
test eax, eax
jne 0x10036f45
mov esi, dword [esp + 0x1c]
cmp dword [esp + 0x18], eax
jle 0x10036f0a
test dword [esi + 0x28], 0x400
je 0x10036eeb
push dword [esp + 0x64]
push dword [esi + 0x30]
call fcn.100623d0
add esp, 8
test eax, eax
js 0x10036eeb
mov al, byte [esi + 0x24]
test al, 0x10
je 0x10036f4f
test al, 8
jne 0x10036f8c
mov dword [esp + 0x18], 0
mov eax, dword [esp + 0x20]
test eax, eax
je 0x10036f00
push eax
push dword [esp + 0x28]
call fcn.1002abf0
add esp, 8
xor ecx, ecx
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x20], ecx
mov edi, dword [esp + 0x6c]
mov edx, dword [esp + 0x40]
mov ebp, dword [esp + 0x18]
inc ebp
mov dword [esp + 0x14], esi
mov dword [esp + 0x18], ebp
movsx eax, word [edx + 0x20]
cmp ebx, eax
jne 0x10036fb8
or eax, 0xffffffff
jmp 0x10036fbb
movzx ecx, byte [ecx + 0x100b0f70]
movzx eax, byte [eax + 0x100b0f70]
sub eax, ecx
jne 0x10036f4b
inc edx
jmp 0x10036e97
mov esi, dword [esp + 0x1c]
mov al, byte [esp + 0x13]
inc ebx
add edi, 0x10
cmp ebx, ebp
jl 0x10036e86
mov edx, dword [esp + 0x40]
mov ebp, dword [esp + 0x18]
test ebp, ebp
jne 0x10036fe0
test dword [edx + 0x1c], 0x200
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x5c]
jne 0x10036fec
inc dword [esp + 0x38]
mov edi, esi
mov dword [esp + 0x14], edi
jmp 0x10036ff0
mov edi, dword [esp + 0x6c]
mov ecx, dword [esp + 0x14]
movzx eax, word [edi + 0x20]
push eax
push ecx
lea eax, [esp + 0x34]
push eax
push dword [esp + 0x64]
call fcn.1002b500
mov eax, dword [esp + 0x3c]
add esp, 0x10
mov dword [esp + 0x20], eax
jmp 0x10036f0e
movzx eax, bx
mov word [edi + 0x20], ax
test dword [esi + 0x28], 0x2000
je 0x10036f67
mov eax, dword [esi + 0x14]
mov ecx, dword [eax + 0x1c]
lea eax, [ebx + ebx*4]
or dword [ecx + eax*4 + 0x14], 0x40
jmp 0x10036f67
mov esi, dword [esp + 0x1c]
mov ebp, dword [esp + 0x18]
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x5c]
mov edi, dword [esp + 0x14]
inc eax
add esi, 0x48
mov dword [esp + 0x28], eax
mov dword [esp + 0x1c], esi
cmp eax, dword [ecx]
jl 0x10036c60
test edi, edi
je 0x1003702c
mov ecx, dword [esp + 0x6c]
mov eax, dword [edi + 0x2c]
mov dword [ecx + 0x1c], eax
mov eax, dword [edi + 0x10]
mov dword [ecx + 0x2c], eax
test byte [edi + 0x24], 0x48
je 0x10037025
or dword [ecx + 4], 0x200000
mov eax, dword [eax + 0x3c]
mov dword [esp + 0x34], eax
test ebp, ebp
jne 0x100372f9
test edx, edx
jne 0x10037234
mov esi, dword [esp + 0x58]
xor ebp, ebp
mov edi, dword [esp + 0x60]
mov dword [esp + 0x30], ebp
mov eax, dword [esi + 0x7c]
test eax, eax
je 0x10037102
mov bl, byte [esi + 0x98]
cmp byte [esi + 0x99], dl
je 0x100370a8
mov edx, dword [esp + 0x68]
test dword [edx + 0x18], 0x400
je 0x10037102
test edi, edi
je 0x10037087
push dword [eax]
push edi
call fcn.100762a0
add esp, 8
test eax, eax
jne 0x10037102
xor eax, eax
cmp bl, 0x80
mov ebx, dword [esp + 0x6c]
setne al
mov dword [ebx + 0x1c], eax
mov ebp, dword [esi + 0x7c]
mov dword [esp + 0x30], ebp
jmp 0x10037106
mov ebp, dword [esp + 0x18]
jmp 0x10036fe4
cmp bl, 0x80
je 0x100370dc
test edi, edi
je 0x100370d7
push edi
push 0x100b481c
call fcn.100762a0
add esp, 8
test eax, eax
jne 0x100370d7
mov ebx, dword [esp + 0x6c]
mov dword [ebx + 0x1c], 1
mov ebp, dword [esi + 0x7c]
mov dword [esp + 0x30], ebp
jmp 0x10037106
cmp bl, 0x7f
je 0x10037102
test edi, edi
je 0x10037102
push edi
push 0x100b4820
call fcn.100762a0
mov ebx, dword [esp + 0x74]
add esp, 8
test eax, eax
jne 0x10037106
mov dword [ebx + 0x1c], ebp
mov ebp, dword [esi + 0x7c]
mov dword [esp + 0x30], ebp
jmp 0x10037106
mov ebx, dword [esp + 0x6c]
mov eax, dword [esp + 0x68]
test dword [eax + 0x18], 0x200
je 0x10037158
test edi, edi
je 0x10037158
mov edi, dword [eax + 8]
test edi, edi
je 0x10037158
mov esi, dword [esp + 0x60]
mov edx, str.excluded
sub esi, edx
nop dword [eax]
movzx ecx, byte [edx]
movzx eax, byte [esi + edx]
cmp ecx, eax
jne 0x100371c9
test ecx, ecx
jne 0x100371df
mov eax, dword [edi + 0x20]
mov ebp, dword [eax + 0x18]
mov dword [esp + 0x30], ebp
mov dword [ebx + 0x1c], 2
test ebp, ebp
je 0x10037234
mov esi, dword [esp + 0x64]
push esi
call fcn.100762e0
mov ecx, dword [ebp + 0x3c]
add esp, 4
mov ebx, dword [ebp + 4]
xor edi, edi
movsx ebp, word [ebp + 0x22]
inc dword [esp + 0x38]
mov byte [esp + 0x13], al
mov dword [esp + 0x34], ecx
test ebp, ebp
jle 0x100372a6
nop dword [eax]
cmp byte [ebx + 0xa], al
jne 0x10037202
mov edx, dword [ebx]
sub esi, edx
nop dword [eax]
movzx ecx, byte [edx]
movzx eax, byte [esi + edx]
cmp ecx, eax
jne 0x100371e5
test ecx, ecx
jne 0x100371f7
mov ebx, dword [esp + 0x30]
movsx eax, word [ebx + 0x20]
cmp edi, eax
je 0x1003730f
mov esi, dword [esp + 0x64]
cmp edi, ebp
jl 0x1003722a
jmp 0x1003720e
movzx eax, byte [eax + 0x100b0f70]
movzx ecx, byte [ecx + 0x100b0f70]
sub ecx, eax
jne 0x10037158
inc edx
jmp 0x10037130
movzx eax, byte [eax + 0x100b0f70]
movzx ecx, byte [ecx + 0x100b0f70]
sub ecx, eax
jne 0x100371fa
inc edx
jmp 0x100371a0
mov al, byte [esp + 0x13]
mov esi, dword [esp + 0x64]
inc edi
add ebx, 0x10
cmp edi, ebp
jl 0x10037190
mov ebx, dword [esp + 0x30]
push esi
call fcn.10064540
add esp, 4
test eax, eax
je 0x1003722a
test dword [ebx + 0x1c], 0x200
mov eax, 0xffffffff
cmove edi, eax
mov eax, edi
cmp edi, ebp
jl 0x10037314
cmp dword [esp + 0x38], 1
jne 0x1003726d
mov ebx, dword [esp + 0x14]
test ebx, ebx
je 0x1003726d
mov edx, dword [esp + 0x68]
test byte [edx + 0x18], 0x28
jne 0x1003726d
push dword [esp + 0x64]
call fcn.10064540
add esp, 4
test eax, eax
je 0x1003726d
mov eax, dword [ebx + 0x10]
test dword [eax + 0x1c], 0x200
je 0x10037436
mov ebx, dword [esp + 0x68]
mov esi, dword [esp + 0x60]
test byte [ebx + 0x18], 0x80
je 0x100372d5
test esi, esi
jne 0x100372d5
mov eax, dword [ebx + 8]
xor ebx, ebx
mov ebp, dword [eax]
test ebp, ebp
jle 0x100372d1
lea esi, [eax + 0x14]
nop dword [eax]
test byte [esi], 3
mov edi, dword [esi - 8]
jne 0x100372c5
mov eax, dword [esp + 0x64]
test edi, edi
jne 0x100372af
neg eax
sbb eax, eax
jmp 0x100372bd
mov ebx, dword [esp + 0x30]
jmp 0x100371c3
test eax, eax
je 0x100372c5
push eax
push edi
call fcn.100762a0
add esp, 8
test eax, eax
je 0x1003744f
inc ebx
add esi, 0x14
cmp ebx, ebp
jl 0x10037290
mov esi, dword [esp + 0x60]
mov ebx, dword [esp + 0x68]
mov ebx, dword [ebx + 0xc]
inc dword [esp + 0x48]
mov dword [esp + 0x68], ebx
test ebx, ebx
je 0x1003753b
mov ebp, dword [esp + 0x18]
mov edi, dword [esp + 0x14]
mov edx, dword [esp + 0x5c]
jmp 0x10036c31
mov edi, dword [esp + 0x6c]
cmp ebp, 1
je 0x100377e8
mov esi, dword [esp + 0x60]
jmp 0x10037648
or edi, 0xffffffff
or eax, edi
mov edx, dword [esp + 0x58]
xor ecx, ecx
mov dword [esp + 0x14], ecx
mov ebp, 1
mov ecx, dword [esp + 0x6c]
movzx eax, ax
mov esi, dword [ecx + 0x1c]
cmp esi, 2
jne 0x1003737c
cmp byte [edx + 0xd4], 2
jb 0x10037351
mov edi, ecx
mov dword [esp + 0x3c], 0xa7
mov word [edi + 0x20], ax
mov dword [edi + 0x2c], ebx
jmp 0x100377e8
push eax
push ebx
call fcn.10076530
mov edx, dword [esp + 0x70]
add esp, 8
mov edi, dword [esp + 0x6c]
movsx ecx, ax
mov dword [esp + 0x3c], 0xb0
mov eax, dword [edx + 8]
add ecx, dword [eax + 0x24]
mov dword [edi + 0x1c], ecx
jmp 0x100377e8
mov dword [ecx + 0x2c], ebx
cmp byte [edx + 0x99], 0
je 0x100373bf
mov edi, ecx
mov dword [esp + 0x3c], 0xb0
push eax
push ebx
mov byte [edi + 2], 0xa7
call fcn.10076530
mov edx, dword [esp + 0x70]
add esp, 8
movsx ecx, ax
movsx eax, word [ebx + 0x22]
inc eax
imul eax, esi
add ecx, eax
mov eax, dword [edx + 8]
inc eax
add eax, ecx
mov dword [edi + 0x1c], eax
jmp 0x100377e8
mov word [ecx + 0x20], ax
mov dword [esp + 0x3c], 0x4d
test edi, edi
jns 0x100373da
mov edi, ecx
mov byte [edi + 1], 0x44
jmp 0x100377e8
test esi, esi
jne 0x1003740a
cmp edi, 0x20
jl 0x100373f5
mov edi, dword [esp + 0x6c]
or eax, 0xffffffff
or dword [edx + 0x90], eax
jmp 0x100377e8
mov ecx, edi
mov eax, ebp
mov edi, dword [esp + 0x6c]
shl eax, cl
or dword [edx + 0x90], eax
jmp 0x100377e8
cmp edi, 0x20
jl 0x10037421
mov edi, dword [esp + 0x6c]
or eax, 0xffffffff
or dword [edx + 0x94], eax
jmp 0x100377e8
mov ecx, edi
mov eax, ebp
mov edi, dword [esp + 0x6c]
shl eax, cl
or dword [edx + 0x94], eax
jmp 0x100377e8
mov edi, dword [esp + 0x6c]
or eax, 0xffffffff
mov ebp, 1
mov word [edi + 0x20], ax
mov byte [edi + 1], 0x44
jmp 0x100377ec
mov ebp, dword [esp + 0x68]
lea eax, [ebx + ebx*4]
test byte [ebp + 0x18], 1
mov edx, dword [ebp + 8]
mov eax, dword [edx + eax*4 + 8]
jne 0x10037488
test byte [eax + 4], 0x10
je 0x10037488
push edi
push str.misuse_of_aliased_aggregate__s
push dword [esp + 0x60]
call fcn.10055e80
add esp, 0xc
pop edi
pop esi
pop ebp
mov eax, 2
pop ebx
add esp, 0x44
ret
test dword [eax + 4], 0x8000
je 0x100374a8
test dword [ebp + 0x18], 0x4000
je 0x100374a0
cmp ebp, dword [esp + 0x44]
je 0x100374a8
push edi
push str.misuse_of_aliased_window_function__s
jmp 0x1003746f
mov cl, byte [eax]
cmp cl, 0xb0
jne 0x100374b2
mov cl, byte [eax + 2]
cmp cl, 0xb1
jne 0x100374bc
mov eax, dword [eax + 0x14]
jmp 0x100374c7
cmp cl, 0x8a
jne 0x100374ea
mov eax, dword [eax + 0x14]
mov eax, dword [eax + 0x1c]
cmp dword [eax], 1
je 0x100374ea
push str.row_value_misused
push dword [esp + 0x5c]
call fcn.10055e80
add esp, 8
mov eax, 2
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x44
ret
mov eax, dword [esp + 0x48]
mov edi, dword [esp + 0x6c]
mov esi, dword [esp + 0x58]
push eax
push edi
push ebx
push edx
push esi
call fcn.100431b0
add esp, 0x14
cmp byte [esi + 0xd4], 2
jb 0x100378c8
mov eax, dword [esi + 0x110]
test eax, eax
je 0x100378c8
nop
cmp dword [eax], edi
je 0x10037530
mov eax, dword [eax + 0xc]
test eax, eax
jne 0x10037520
jmp 0x100378c8
mov dword [eax], 0
jmp 0x100378c8
mov edi, dword [esp + 0x6c]
test esi, esi
jne 0x10037644
mov ebx, dword [edi + 4]
test bl, bl
jns 0x100375dd
mov eax, dword [esp + 0x24]
cmp byte [eax + 0xb1], 0
jne 0x100375b2
mov ecx, dword [eax + 0x20]
mov eax, dword [eax + 0x24]
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x44]
test dword [eax + 0x18], 0x10000
je 0x100375a7
mov eax, ecx
and eax, 0x10000001
cmp eax, 1
jne 0x1003758d
mov eax, ecx
and eax, 0x40000000
or eax, esi
jne 0x100375b2
and ecx, 0x20000000
or ecx, 0
je 0x100375a1
mov eax, 1
test eax, eax
jmp 0x100375b0
xor eax, eax
test eax, eax
jmp 0x100375b0
and ecx, 0x40000000
or ecx, 0
je 0x100375dd
push dword [esp + 0x64]
push str.double_quoted_string_literal:___w_
push 0x1c
call sym.sqlite3.dll_sqlite3_log
add esp, 0xc
mov byte [edi], 0x75
xorps xmm0, xmm0
mov eax, 1
movq qword [edi + 0x2c], xmm0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x44
ret
test ebx, 0x4000800
jne 0x10037644
mov esi, dword [edi + 8]
push str.true
push esi
call fcn.100762a0
add esp, 8
test eax, eax
jne 0x10037614
mov eax, 0x10000000
mov byte [edi], 0xaa
or ebx, eax
mov eax, 1
mov dword [edi + 4], ebx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x44
ret
push str.false
push esi
call fcn.100762a0
add esp, 8
test eax, eax
jne 0x10037640
mov eax, 0x20000000
mov byte [edi], 0xaa
or ebx, eax
mov eax, 1
mov dword [edi + 4], ebx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x44
ret
mov esi, dword [esp + 0x60]
mov ebp, dword [esp + 0x18]
mov ebx, dword [esp + 0x20]
test ebx, ebx
je 0x1003775b
lea eax, [ebp - 1]
cmp dword [ebx], eax
jne 0x1003774e
mov eax, dword [edi + 4]
test eax, 0x800000
je 0x10037673
and eax, 0xff7fffff
mov dword [edi + 4], eax
jmp 0x100376a7
mov eax, dword [edi + 0xc]
mov ebp, dword [esp + 0x24]
test eax, eax
je 0x10037688
push eax
push ebp
call fcn.100597d0
add esp, 8
mov eax, dword [edi + 0x10]
mov dword [edi + 0xc], 0
test eax, eax
je 0x100376a0
push eax
push ebp
call fcn.100597d0
add esp, 8
mov dword [edi + 0x10], 0
mov ebp, dword [esp + 0x58]
movzx edi, word [edi + 0x20]
push 0
push 0x34
push dword [ebp]
call fcn.10053d40
mov esi, eax
add esp, 0xc
test esi, esi
je 0x10037736
push 0x34
push 0
push esi
call sub.VCRUNTIME140.dll_memset
mov ecx, dword [esp + 0x20]
or eax, 0xffffffff
mov byte [esi], 0xa7
add esp, 0xc
mov word [esi + 0x22], ax
mov dword [esi + 0x18], 1
mov eax, dword [ecx + 0x2c]
mov dword [esi + 0x1c], eax
mov word [esi + 0x20], di
mov eax, dword [ecx + 0x10]
or dword [esi + 4], 0x200000
mov dword [esi + 0x2c], eax
mov eax, dword [ebx]
lea edx, [eax + 1]
cmp dword [ebx + 4], edx
jge 0x10037718
push esi
push ebx
push dword [ebp]
call fcn.1005a5d0
add esp, 0xc
mov ebx, eax
jmp 0x10037736
movups xmm0, xmmword [0x100b0f5c]
lea eax, [eax + eax*4]
mov dword [ebx], edx
lea ecx, [ebx + eax*4]
mov eax, dword [0x100b0f6c]
movups xmmword [ecx + 8], xmm0
mov dword [ecx + 0x18], eax
mov dword [ecx + 8], esi
mov edi, dword [esp + 0x6c]
mov esi, ebp
mov byte [edi], 0xac
mov dword [edi + 8], str.coalesce
mov dword [edi + 0x14], ebx
jmp 0x100378c4
push ebx
push dword [esp + 0x28]
call fcn.1002abf0
add esp, 8
push dword [esp + 0x64]
test ebp, ebp
mov ecx, str.ambiguous_column_name
mov eax, str.no_such_column
cmovne eax, ecx
mov ecx, dword [esp + 0x60]
test ecx, ecx
je 0x1003778c
push esi
push ecx
push eax
push str._s:__s._s._s
push dword [esp + 0x6c]
call fcn.10055e80
add esp, 0x18
jmp 0x100377b7
test esi, esi
je 0x100377a5
push esi
push eax
push str._s:__s._s
push dword [esp + 0x68]
call fcn.10055e80
add esp, 0x14
jmp 0x100377b7
push eax
push str._s:__s
push dword [esp + 0x64]
call fcn.10055e80
add esp, 0x10
mov edx, dword [esp + 0x58]
mov eax, edi
mov edx, dword [edx]
nop
test byte [eax + 4], 3
jne 0x100377cd
mov ecx, dword [eax + 0x24]
test ecx, ecx
jg 0x100377d6
mov eax, dword [eax + 0xc]
test eax, eax
jne 0x100377c0
jmp 0x100377d9
mov dword [edx + 0x44], ecx
mov eax, dword [esp + 0x58]
mov byte [eax + 0x11], 1
mov eax, dword [esp + 0x44]
inc dword [eax + 0x14]
mov ebx, dword [esp + 0x14]
test dword [edi + 4], 0x810000
jne 0x10037830
mov eax, dword [edi + 0xc]
mov esi, dword [esp + 0x24]
test eax, eax
je 0x1003780a
push eax
push esi
call fcn.100597d0
add esp, 8
mov eax, dword [edi + 0x10]
mov dword [edi + 0xc], 0
test eax, eax
je 0x10037822
push eax
push esi
call fcn.100597d0
add esp, 8
or dword [edi + 4], 0x800000
mov dword [edi + 0x10], 0
movzx eax, word [edi + 0x20]
test ax, ax
js 0x100378b1
test ebx, ebx
je 0x100378b1
mov edx, dword [edi + 0x2c]
movsx esi, ax
test byte [edx + 0x1c], 0x60
je 0x1003788b
mov eax, dword [edx + 4]
mov ecx, esi
add ecx, ecx
test byte [eax + ecx*8 + 0xe], 0x60
je 0x1003788b
movzx eax, word [edx + 0x22]
cmp ax, 0x40
jl 0x1003786d
or ecx, 0xffffffff
or edx, 0xffffffff
jmp 0x100378ab
xor ecx, ecx
cwde
xor edx, edx
bts ecx, eax
cmp eax, 0x20
cmovae edx, ecx
xor ecx, edx
cmp eax, 0x40
cmovae edx, ecx
add ecx, 0xffffffff
adc edx, 0xffffffff
jmp 0x100378ab
cmp esi, 0x40
mov eax, 0x3f
cmovge esi, eax
xor ecx, ecx
xor edx, edx
bts ecx, esi
cmp esi, 0x20
cmovae edx, ecx
xor ecx, edx
cmp esi, 0x40
cmovae edx, ecx
or dword [ebx + 0x38], ecx
or dword [ebx + 0x3c], edx
mov eax, dword [esp + 0x3c]
mov byte [edi], al
cmp ebp, 1
jne 0x1003747b
mov esi, dword [esp + 0x58]
mov ebp, dword [esp + 0x68]
mov eax, dword [esi]
cmp dword [eax + 0x16c], 0
je 0x10037995
mov bl, byte [edi]
cmp bl, 0xa7
je 0x100378e7
cmp bl, 0x4d
jne 0x10037995
mov ecx, dword [esp + 0x34]
mov ebp, dword [ebp + 4]
test ecx, ecx
je 0x10037995
mov eax, dword [eax + 0x10]
xor edx, edx
add eax, 0xc
cmp dword [eax], ecx
je 0x1003791a
mov edi, ecx
inc edx
lea eax, [eax + 0x10]
mov ecx, edx
cmp dword [eax], edi
jne 0x10037904
mov edi, dword [esp + 0x6c]
test ecx, ecx
js 0x10037995
cmp bl, 0x4d
jne 0x10037924
mov esi, dword [esi + 0x7c]
jmp 0x1003794c
mov esi, dword [ebp]
xor eax, eax
test esi, esi
jle 0x10037995
mov edi, dword [edi + 0x1c]
lea ecx, [ebp + 0x34]
cmp edi, dword [ecx]
je 0x10037941
inc eax
add ecx, 0x48
cmp eax, esi
jl 0x10037933
jmp 0x10037995
mov edi, dword [esp + 0x6c]
lea eax, [eax + eax*8]
mov esi, dword [ebp + eax*8 + 0x18]
test esi, esi
je 0x10037995
movsx ecx, word [edi + 0x20]
test ecx, ecx
js 0x10037962
mov eax, dword [esi + 4]
add ecx, ecx
mov eax, dword [eax + ecx*8]
jmp 0x1003797d
movzx eax, word [esi + 0x20]
test ax, ax
js 0x10037978
movsx ecx, ax
mov eax, dword [esi + 4]
add ecx, ecx
mov eax, dword [eax + ecx*8]
jmp 0x1003797d
mov eax, str.ROWID
push edx
push eax
push dword [esi]
push dword [esp + 0x64]
call fcn.1004a6a0
add esp, 0x10
cmp eax, 2
jne 0x10037995
mov byte [edi], 0x79
mov ecx, dword [esp + 0x44]
mov eax, dword [esp + 0x68]
inc dword [ecx + 0x10]
cmp ecx, eax
je 0x100379ae
mov ecx, dword [ecx + 0xc]
inc dword [ecx + 0x10]
cmp ecx, eax
jne 0x100379a4
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x44
ret