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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0xc0
mov ecx, dword [ebp + 0xc]
mov esi, dword [ebp + 8]
mov eax, dword [0x101f1014]
xor eax, ebp
mov dword [esp + 0xb8], eax
mov edi, dword [esi + 0x18]
mov eax, dword [edi]
mov dword [esp + 8], eax
mov dword [esp + 0x5c], ecx
movzx eax, byte [ecx]
cmp eax, 0x8c
jg 0x10150183
lea ecx, [eax - 0x2d]
cmp ecx, 0x1e
ja case.default.0x1014fd8a
jmp dword [ecx*4 + 0x101b9344]
mov ecx, dword [ebp + 0xc]
mov ebx, dword [ecx + 8]
mov eax, dword [esp + 8]
mov edx, dword [eax]
mov dword [esp + 0x30], edx
mov dword [esp + 0x90], 0
lea edx, [ecx + 0x1c]
mov dword [esp + 0x44], edx
mov dword [ecx + 0x1c], 0xffffffff
xor esi, esi
mov dword [esp + 0x3c], 0
mov dword [esp + 0x34], 0
test esi, esi
sete dl
mov dword [esp + 0x64], edx
add ecx, 0x2c
mov dword [esp + 0x4c], ecx
add eax, 0x7c
mov dword [esp + 0x58], eax
mov dword [esp + 0x14], ebx
lea eax, [ebx + 1]
mov dword [esp + 0x70], eax
xor ecx, ecx
xor eax, eax
dec eax
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], 0
xor ebx, ebx
mov edx, edi
mov dword [esp + 0x10], esi
mov eax, dword [edx + 4]
test eax, eax
mov dword [esp + 0x28], edx
je 0x10150945
mov dword [esp + 0x40], ebx
mov ebx, edi
cmp dword [eax], 0
jle 0x1014ffe9
lea edx, [eax + 8]
mov dword [esp + 0x48], 0
xor esi, esi
mov dword [esp + 4], ebx
mov dword [esp + 0x38], eax
mov edi, dword [edx + 0x10]
mov dword [esp + 0x24], edi
test byte [edx + 0x29], 0x20
mov dword [esp + 0x2c], edx
jne 0x10150d2c
cmp dword [esp + 0x10], 0
mov ebx, dword [esp + 0x24]
jne 0x1014ff8f
mov dword [esp + 0x1c], ecx
mov eax, dword [esp + 0x14]
test eax, eax
mov dword [esp + 0xc], esi
mov edi, ebx
je 0x1014ff88
mov cl, byte [eax]
test cl, cl
je 0x1014ff88
xor ebx, ebx
mov edx, dword [esp + 0x70]
movzx eax, cl
add bl, byte [eax + 0x101b1828]
mov cl, byte [edx]
inc edx
test cl, cl
jne 0x1014fe84
mov dword [esp + 0x18], ebx
mov ebx, edi
movsx eax, word [edi + 0x22]
mov dword [esp + 0x20], eax
test eax, eax
jle 0x1015092c
mov edx, dword [ebx + 4]
xor edi, edi
mov eax, dword [esp + 0x18]
cmp byte [edx + 0xa], al
je 0x1014fec7
inc edi
add edx, 0x10
cmp edi, dword [esp + 0x20]
jne 0x1014feaf
jmp 0x10150403
mov esi, dword [edx]
xor ebx, ebx
movzx ecx, byte [esi + ebx]
mov eax, dword [esp + 0x14]
movzx eax, byte [eax + ebx]
cmp cl, al
jne 0x101506e8
test ecx, ecx
je 0x1014fee6
inc ebx
jmp 0x1014fecb
mov esi, dword [esp + 0xc]
test esi, esi
jg 0x10150f56
mov ebx, dword [esp + 0x24]
inc esi
movsx eax, word [ebx + 0x20]
cmp edi, eax
mov eax, edi
mov ecx, 0xffff
cmove eax, ecx
mov ecx, dword [ebp + 0xc]
mov word [ecx + 0x20], ax
mov edx, dword [esp + 0x2c]
test byte [edx + 0x29], 0x20
jne 0x1015108d
mov ecx, edx
mov edi, dword [esp + 4]
mov eax, dword [esp + 0x38]
test esi, esi
je 0x101503dd
mov ebx, edi
mov edi, dword [esp + 0x48]
inc edi
add edx, 0x48
mov dword [esp + 0x48], edi
cmp edi, dword [eax]
jl 0x1014fe3a
jmp 0x1014ffeb
mov edx, dword [esp + 0x10]
movzx edx, byte [edx + ecx]
movzx ebx, byte [eax + ecx]
cmp dl, bl
jne 0x1014ff6c
test edx, edx
mov esi, dword [esp + 0xc]
mov ebx, dword [esp + 0x24]
je 0x10150596
inc ecx
jmp 0x1014ff49
mov dl, byte [edx + 0x101b1828]
cmp dl, byte [ebx + 0x101b1828]
mov esi, dword [esp + 0xc]
mov ebx, dword [esp + 0x24]
jne 0x10150572
jmp 0x1014ff69
xor ebx, ebx
jmp 0x1014fe94
mov dword [esp + 0x1c], ecx
cmp dword [esp + 0x34], 0
jne 0x10151383
mov edi, dword [edx + 0xc]
test edi, edi
je 0x10150420
xor eax, eax
mov ecx, dword [esp + 0x10]
movzx ecx, byte [ecx + eax]
movzx edx, byte [edi + eax]
cmp cl, dl
jne 0x1014ffc6
test ecx, ecx
je 0x10150596
inc eax
jmp 0x1014ffab
mov cl, byte [ecx + 0x101b1828]
cmp cl, byte [edx + 0x101b1828]
je 0x1014ffc3
mov edi, dword [esp + 4]
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x2c]
jmp 0x1014ff2e
xor esi, esi
test ecx, ecx
je 0x101507ba
mov eax, dword [ecx + 0x2c]
mov edi, ecx
mov ecx, dword [esp + 0x44]
mov dword [ecx], eax
mov eax, dword [edi + 0x10]
mov ecx, dword [esp + 0x4c]
mov dword [ecx], eax
mov ecx, edi
test byte [edi + 0x24], 0x48
jne 0x101509dd
mov eax, dword [eax + 0x3c]
mov dword [esp + 0x3c], eax
mov edi, ebx
mov ebx, dword [esp + 0x40]
test esi, esi
jne 0x1015002f
cmp dword [esp + 0x34], 0
je 0x10150342
test esi, esi
jne 0x10150040
cmp ebx, 1
jne 0x10150040
test ecx, ecx
jne 0x1015042d
test esi, esi
jne 0x101500d7
jmp 0x10150a42
mov edx, dword [esp + 0x14]
movzx edx, byte [edx + ecx]
movzx ebx, byte [ecx + str.ROWID]
cmp dl, bl
je 0x10150075
mov dl, byte [edx + 0x101b1828]
cmp dl, byte [ebx + 0x101b1828]
jne 0x10150c69
inc ecx
jmp 0x1015004d
test edx, edx
je 0x10151ed8
jmp 0x10150072
movzx ecx, cl
add al, byte [ecx + 0x101b1828]
mov cl, byte [edx]
inc edx
test cl, cl
jne 0x1015007f
jmp 0x10150a10
cmp byte [ecx + 0xa], al
je 0x101500ac
mov edx, esi
inc edx
add ecx, 0x10
mov esi, edx
cmp edx, dword [esp + 0xc]
jne 0x10150094
jmp 0x101513d1
mov edx, dword [ecx]
mov dword [esp + 0x18], edx
xor edi, edi
mov edx, dword [esp + 0x18]
movzx ebx, byte [edx + edi]
mov edx, dword [esp + 0x14]
movzx edx, byte [edx + edi]
cmp bl, dl
jne 0x10151313
test ebx, ebx
je 0x1015064b
inc edi
jmp 0x101500b4
cmp esi, 1
jne 0x10150fee
xor eax, eax
inc eax
mov dword [esp + 0xc], eax
mov byte [esp + 0x14], 0xa7
mov ebx, edi
mov esi, dword [ebp + 0xc]
test byte [esi + 6], 0x81
je 0x101501bc
movzx eax, word [esi + 0x20]
test ax, ax
js 0x10150140
test ecx, ecx
je 0x10150140
mov edi, ecx
mov ecx, dword [esp + 0x4c]
mov ecx, dword [ecx]
test byte [ecx + 0x1c], 0x60
jne 0x101510a0
cmp eax, 0x3f
mov ecx, 0x3f
cmovl ecx, eax
xor eax, eax
inc eax
xor edx, edx
shld edx, eax, cl
xor esi, esi
shl eax, cl
test cl, 0x20
cmovne edx, eax
cmovne eax, esi
or dword [edi + 0x38], eax
or dword [edi + 0x3c], edx
mov eax, dword [ebp + 0xc]
mov cl, byte [esp + 0x14]
mov byte [eax], cl
cmp dword [esp + 0xc], 1
mov esi, dword [esp + 0x28]
mov edi, ebx
jne 0x10151e22
mov eax, dword [esp + 8]
mov edx, dword [eax]
cmp dword [edx + 0x164], 0
jne 0x10150ea4
inc dword [edi + 0x10]
xor ebx, ebx
inc ebx
cmp edi, esi
je 0x101511db
mov edi, dword [edi + 0xc]
inc dword [edi + 0x10]
jmp 0x10150173
cmp eax, 0x9b
jle 0x101501e9
cmp eax, 0x9c
jne 0x1015028a
test byte [edi + 0x18], 0x2e
je case.0x1014fd8a.46
mov ecx, dword [esp + 8]
mov edx, edi
mov eax, dword [ebp + 0xc]
push eax
push eax
push str.parameters
call fcn.10171190
add esp, 0xc
jmp case.0x1014fd8a.46
mov edx, dword [esi + 0xc]
test edx, edx
jne 0x1015031e
mov dword [esi + 0xc], 0
mov edx, dword [esi + 0x10]
test edx, edx
jne 0x10150330
mov dword [esi + 0x10], 0
or byte [esi + 6], 0x80
jmp 0x101500fb
cmp eax, 0x8d
jne case.0x1014fd8a.46
mov eax, edi
mov edi, dword [ebp + 0xc]
mov esi, dword [edi + 0xc]
mov dword [esp + 4], eax
test byte [eax + 0x18], 0x28
jne 0x10151414
mov eax, dword [edi + 0x10]
cmp byte [eax], 0x3b
jne 0x10151431
mov dword [esp + 0x34], 0
mov edi, dword [esp + 4]
mov ecx, dword [esi + 8]
mov dword [esp + 0x10], ecx
mov ebx, dword [eax + 8]
mov edx, dword [esp + 8]
cmp byte [edx + 0xd8], 2
jae 0x10151443
mov eax, dword [edx]
mov dword [esp + 0x30], eax
mov dword [esp + 0x90], 0
mov eax, dword [ebp + 0xc]
lea ecx, [eax + 0x1c]
mov dword [esp + 0x44], ecx
mov dword [eax + 0x1c], 0xffffffff
mov dword [esp + 0x3c], 0
cmp dword [esp + 0x34], 0
jne 0x10151467
mov dword [esp + 0x34], 0
mov eax, dword [esp + 8]
mov ecx, dword [ebp + 0xc]
mov esi, dword [esp + 0x10]
jmp 0x1014fdcc
cmp eax, 0xac
je 0x1015047a
cmp eax, 0xab
jne case.0x1014fd8a.46
mov eax, dword [ebp + 0xc]
mov edi, dword [eax + 0x10]
test edi, edi
je case.0x1014fd8a.48
mov eax, dword [edi + 4]
test eax, 0x82000
je 0x10151124
bt eax, 0x13
jb 0x101502c7
add edi, 0xc
jmp 0x101502cd
mov edi, dword [edi + 0x14]
add edi, 8
mov edi, dword [edi]
jmp 0x101502a6
cmp eax, 0x8a
je case.0x1014fd8a.49
cmp eax, 0x14
jne case.0x1014fd8a.46
mov eax, dword [ebp + 0xc]
test byte [eax + 5], 0x10
je case.0x1014fd8a.46
mov eax, edi
mov edi, dword [edi + 0x10]
mov ebx, eax
test byte [eax + 0x18], 0x2e
jne 0x10151ada
mov eax, dword [ebp + 0xc]
mov edx, dword [eax + 0x14]
mov ecx, esi
call fcn.1002fcb0
cmp edi, dword [ebx + 0x10]
jne 0x10150c08
or byte [ebx + 0x18], 0x40
jmp case.0x1014fd8a.46
mov edi, ecx
mov ecx, dword [esp + 0x30]
call fcn.1014f3a0
mov ecx, edi
jmp 0x101501c7
mov edi, ecx
mov ecx, dword [esp + 0x30]
call fcn.1014f3a0
mov ecx, edi
jmp 0x101501d9
mov dword [esp + 4], edi
mov dword [esp + 0x1c], ecx
mov eax, dword [esp + 0x58]
mov ecx, dword [eax]
mov dword [esp + 0x20], 0
test ecx, ecx
jne 0x101505e1
mov esi, dword [esp + 0x28]
cmp dword [esp + 0x10], 0
je 0x101505a7
mov eax, dword [esi + 0x18]
mov ecx, 0x200
and eax, ecx
mov ecx, dword [esp + 0x1c]
mov edi, dword [esp + 4]
je 0x101505af
mov eax, dword [esi + 8]
test eax, eax
je 0x101505af
mov edi, ebx
xor ecx, ecx
movzx edx, byte [ecx + str.excluded]
mov ebx, dword [esp + 0x10]
movzx ebx, byte [ebx + ecx]
cmp dl, bl
je 0x101503ba
mov dl, byte [edx + 0x101b1828]
cmp dl, byte [ebx + 0x101b1828]
jne 0x101503d2
inc ecx
jmp 0x10150396
test edx, edx
jne 0x101503b7
mov eax, dword [eax + 0x20]
mov eax, dword [eax + 0x18]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x44]
mov dword [eax], 2
mov ecx, dword [esp + 0x1c]
mov ebx, edi
jmp 0x101505ab
mov eax, dword [ebx + 0x1c]
mov edx, 0x200
and eax, edx
mov edx, dword [esp + 0x2c]
cmove ecx, edx
shr eax, 9
xor eax, 1
add dword [esp + 0x40], eax
mov eax, dword [esp + 0x38]
xor esi, esi
jmp 0x1014ff2e
mov edi, dword [esp + 4]
mov ecx, dword [esp + 0x1c]
mov esi, dword [esp + 0xc]
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x2c]
mov ebx, dword [esp + 0x24]
jmp 0x1014ff26
mov dword [esp + 0xc], esi
mov eax, dword [ebx]
xor ecx, ecx
jmp 0x1014ff49
mov eax, ecx
mov ecx, dword [esp + 0x28]
mov ecx, dword [ecx + 0x18]
mov dword [esp + 0x18], ecx
test cl, 0x28
jne 0x1015160c
xor ecx, ecx
mov edx, dword [esp + 0x14]
movzx edx, byte [edx + ecx]
movzx ebx, byte [ecx + str._ROWID_]
cmp dl, bl
mov esi, 1
je 0x10151616
mov dl, byte [edx + 0x101b1828]
cmp dl, byte [ebx + 0x101b1828]
je 0x1015161e
xor ecx, ecx
jmp 0x1015004d
mov dword [esp + 4], edi
mov eax, dword [ebp + 0xc]
mov eax, dword [eax + 0x14]
mov dword [esp + 0x24], 0
mov dword [esp + 0x18], 0
test eax, eax
je 0x1015049e
mov ecx, dword [eax]
mov dword [esp + 0x18], ecx
mov dword [esp + 0x20], eax
mov eax, dword [esp + 8]
mov ecx, dword [eax]
mov al, byte [ecx + 0x54]
mov ebx, 0x4001
mov edi, dword [ebp + 0xc]
test byte [edi + 7], 1
jne 0x1015164c
mov edx, dword [esp + 4]
lea edi, [edx + 0x18]
mov dword [esp + 0x14], edi
and ebx, dword [edx + 0x18]
mov dword [esp + 0x4c], ebx
mov edx, dword [ebp + 0xc]
mov ebx, dword [edx + 8]
movzx edi, al
mov edx, ebx
push 0
push edi
push dword [esp + 0x20]
call fcn.10146b40
add esp, 0xc
test eax, eax
je 0x10151624
mov edx, eax
mov eax, dword [eax + 0x14]
mov dword [esp + 0xc], eax
test eax, eax
setne bl
mov edi, ebx
test byte [edx + 5], 4
jne 0x10151664
mov eax, dword [esp + 8]
mov eax, dword [eax]
mov ecx, dword [eax + 0x164]
test ecx, ecx
jne 0x10151698
mov eax, dword [edx + 4]
test eax, 0x2800
je 0x10150533
mov eax, dword [ebp + 0xc]
or byte [eax + 6], 0x10
mov eax, dword [edx + 4]
bt eax, 0xb
mov ebx, dword [esp + 0x14]
mov eax, dword [ebx]
jb 0x1015081d
test al, 0x2a
je 0x1015082f
mov ecx, dword [esp + 8]
mov dword [esp + 0x10], edx
mov edx, dword [esp + 4]
push dword [ebp + 0xc]
push 0
push str.non_deterministic_functions
call fcn.10171190
mov edx, dword [esp + 0x1c]
add esp, 0xc
jmp 0x1015082f
cmp dword [ebx + 0x14], 1
jne 0x1014ffd4
mov ecx, dword [esp + 0x10]
mov edx, ebx
push dword [esp + 0x3c]
call fcn.101716c0
add esp, 4
test eax, eax
je 0x1014ffd4
test edi, edi
jne 0x101506ff
mov ecx, dword [esp + 0x1c]
jmp 0x1014fe5e
mov ecx, dword [esp + 0x1c]
mov edi, dword [esp + 4]
xor esi, esi
cmp dword [esp + 0x20], 0
je 0x1015002f
mov eax, dword [esp + 0x14]
test eax, eax
mov dword [esp + 0x40], ebx
je 0x10150a0e
mov cl, byte [eax]
test cl, cl
je 0x10150a0e
xor eax, eax
mov edx, dword [esp + 0x70]
jmp 0x1015007f
mov edi, ebx
mov edx, dword [esp + 8]
mov al, byte [edx + 0x9c]
cmp byte [edx + 0x9d], 0
jne 0x10150ce3
cmp dword [esp + 0x10], 0
mov esi, 1
je 0x101507c1
cmp al, 0x80
je 0x101507c1
xor ecx, ecx
movzx edx, byte [ecx + 0x101ca9c4]
mov ebx, dword [esp + 0x10]
movzx ebx, byte [ebx + ecx]
cmp dl, bl
je 0x1015063c
mov dl, byte [edx + 0x101b1828]
cmp dl, byte [ebx + 0x101b1828]
jne 0x101507c1
inc ecx
jmp 0x10150614
test edx, edx
jne 0x10150639
mov ecx, esi
mov esi, dword [esp + 0x28]
jmp 0x10150806
mov eax, dword [esp + 0x20]
movsx eax, word [eax + 0x20]
mov edx, esi
cmp esi, eax
mov eax, 0xffffffff
cmove edx, eax
mov eax, dword [esp + 0xc]
cmp edx, eax
mov edi, dword [esp + 4]
mov esi, dword [esp + 0x28]
jge 0x101513d5
cmp edx, eax
jge 0x101518af
mov eax, dword [esp + 0x44]
mov eax, dword [eax]
cmp eax, 2
je 0x10150c14
mov ecx, dword [esp + 0x4c]
mov ebx, dword [esp + 0x20]
mov dword [ecx], ebx
mov ecx, dword [esp + 8]
cmp byte [ecx + 0x9d], 0
jne 0x10150cb1
mov ecx, dword [ebp + 0xc]
mov word [ecx + 0x20], dx
test edx, edx
js 0x10150b03
mov ecx, edx
xor esi, esi
inc esi
mov edx, esi
shl edx, cl
xor ebx, ebx
dec ebx
cmp ecx, 0x20
cmovb ebx, edx
test eax, eax
mov dword [esp + 0xc], esi
jne 0x1015091d
mov eax, dword [esp + 8]
or dword [eax + 0x90], ebx
mov byte [esp + 0x14], 0x4d
xor ecx, ecx
jmp 0x101500ec
mov cl, byte [ecx + 0x101b1828]
cmp cl, byte [eax + 0x101b1828]
jne 0x1014feb8
jmp 0x1014fee3
mov eax, dword [esp + 8]
cmp byte [eax + 0xd8], 2
mov ecx, dword [esp + 0x1c]
jb 0x1014fe5e
mov eax, dword [esp + 8]
mov eax, dword [eax + 0x114]
test eax, eax
je 0x10151a74
mov ecx, dword [esp + 0x4c]
cmp dword [eax], ecx
je 0x10151a6e
mov eax, dword [eax + 0xc]
jmp 0x1015071e
xor ecx, ecx
mov eax, edi
mov edx, dword [eax + 0x10]
mov dword [esp + ecx*4 + 0x90], edx
mov eax, dword [eax + 0xc]
test eax, eax
je 0x10150756
lea edx, [ecx + 1]
cmp ecx, 7
mov ecx, edx
jb 0x1015073b
mov eax, dword [ebp + 0xc]
mov edx, dword [eax + 0xc]
test edx, edx
je 0x10150767
mov ecx, esi
call fcn.1014fbd0
mov eax, dword [ebp + 0xc]
lea esi, [eax + 0xc]
mov eax, esi
mov eax, dword [eax]
movzx ecx, byte [eax]
cmp ecx, 0xb0
je 0x10150ca1
lea edx, [ecx - 0xad]
cmp edx, 1
jbe 0x10150ca9
cmp cl, 0xa7
je 0x1015094c
movzx eax, cl
cmp eax, 0x75
je 0x1015097e
add eax, 0xffffff67
cmp eax, 3
jb 0x1015097e
xor ebx, ebx
inc ebx
jmp 0x101511db
xor ecx, ecx
jmp 0x1015001a
cmp dword [esp + 0x10], 0
mov esi, dword [esp + 0x28]
je 0x10150816
cmp al, 0x7f
mov ebx, edi
je 0x10150364
xor eax, eax
movzx edx, byte [eax + 0x101d0e34]
mov ecx, dword [esp + 0x10]
movzx ecx, byte [ecx + eax]
cmp dl, cl
je 0x10150800
mov dl, byte [edx + 0x101b1828]
cmp dl, byte [ecx + 0x101b1828]
jne 0x10150c5c
inc eax
jmp 0x101507d8
xor ecx, ecx
test edx, edx
jne 0x101507fd
mov eax, dword [esp + 0x44]
mov dword [eax], ecx
mov eax, dword [esp + 0x58]
mov eax, dword [eax]
mov dword [esp + 0x20], eax
mov ebx, edi
jmp 0x10150364
and al, 0x2e
mov ecx, dword [ebp + 0xc]
mov byte [ecx + 2], al
test byte [ebx + 2], 4
jne 0x10151a2a
mov eax, dword [edx + 4]
bt eax, 0x12
jb 0x1015173a
mov byte [esp + 0x18], 1
test eax, 0x280000
je 0x10150862
mov ecx, dword [esp + 8]
cmp byte [ecx + 0xd8], 1
ja 0x10150862
mov ecx, dword [ebp + 0xc]
test byte [ecx + 7], 0x40
jne 0x101509eb
mov al, 1
mov ecx, edi
movzx ecx, cl
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 8]
lea edi, [ecx + 0xd8]
mov dword [esp + 0x48], edi
cmp byte [ecx + 0xd8], 2
jae 0x1015200a
test edx, edx
mov ebx, dword [esp + 0x14]
je 0x101508a1
cmp dword [edx + 0x18], 0
jne 0x101508a1
cmp dword [esp + 0x24], 0
jne 0x10151976
cmp dword [esp + 0xc], 0
jne 0x10150ba0
test al, al
je 0x101517a3
cmp byte [esp + 0x18], 0
je 0x101517e0
mov dword [esp + 0x18], 0
mov eax, dword [ebp + 0xc]
test byte [eax + 7], 1
jne 0x10151820
mov dword [esp + 0x10], edx
mov eax, dword [esp + 0x20]
test eax, eax
je 0x10151494
mov ebx, dword [eax]
test ebx, ebx
jle 0x10151494
add eax, 8
mov edi, eax
mov edx, dword [eax]
test edx, edx
je 0x10151489
mov ecx, esi
call fcn.1014fbd0
test eax, eax
jne 0x10151494
mov eax, edi
cmp ebx, 1
jle 0x10151494
dec ebx
add eax, 0x14
jmp 0x101508f1
mov eax, dword [esp + 8]
or dword [eax + 0x94], ebx
jmp 0x101506dc
mov ecx, dword [esp + 0x1c]
mov esi, dword [esp + 0xc]
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x2c]
mov edi, dword [esp + 4]
jmp 0x1014ff26
xor esi, esi
jmp 0x10150020
test byte [eax + 6], 0x20
jne 0x101507b2
mov ecx, dword [eax + 0x2c]
test ecx, ecx
je 0x101507b2
movsx eax, word [eax + 0x20]
test eax, eax
js 0x1015097e
mov ecx, dword [ecx + 4]
test ecx, ecx
je 0x1015097e
shl eax, 4
test byte [ecx + eax + 4], 0xf
je 0x101507b2
mov eax, dword [esp + 8]
cmp byte [eax + 0xd8], 1
ja 0x101507b2
xor eax, eax
mov ecx, dword [ebp + 0xc]
cmp byte [ecx], 0x33
sete al
mov dword [ecx + 8], eax
or byte [ecx + 5], 8
mov byte [ecx], 0x9b
xor eax, eax
mov ecx, dword [esp + eax*4 + 0x90]
mov dword [edi + 0x10], ecx
mov edi, dword [edi + 0xc]
test edi, edi
je 0x101509c1
lea ecx, [eax + 1]
cmp eax, 7
mov eax, ecx
jb 0x101509a6
mov edx, dword [esi]
test edx, edx
je 0x101509d2
mov eax, dword [esp + 8]
mov ecx, dword [eax]
call fcn.1014f3a0
mov dword [esi], 0
jmp 0x101507b2
mov ecx, dword [ebp + 0xc]
or byte [ecx + 6], 0x20
mov ecx, edi
jmp 0x10150013
bt eax, 0x13
jb 0x10151a4b
mov eax, dword [esp + 8]
mov eax, dword [eax]
test byte [eax + 0x20], 0x80
je 0x10151a4b
mov ecx, edi
mov al, 1
jmp 0x10150866
xor eax, eax
mov edx, dword [esp + 0x20]
mov ecx, dword [edx + 4]
mov dword [esp + 0x24], ecx
mov ecx, dword [edx + 0x3c]
mov dword [esp + 0x3c], ecx
movsx ecx, word [edx + 0x22]
mov dword [esp + 0xc], ecx
test ecx, ecx
mov edx, 0
jle 0x1015065f
xor esi, esi
mov ecx, dword [esp + 0x24]
jmp 0x10150094
mov eax, dword [esp + 0x28]
mov eax, dword [eax + 0x18]
mov dword [esp + 0x18], eax
mov esi, dword [esp + 0x10]
mov dword [esp + 0x40], ebx
mov dword [esp + 4], edi
test esi, esi
mov dword [esp + 0x1c], ecx
jne 0x10150b16
mov ecx, dword [esp + 0x18]
and ecx, 0x80
mov ecx, dword [esp + 0x1c]
je 0x10150b16
mov ecx, dword [esp + 0x28]
mov eax, dword [ecx + 8]
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0xc], eax
mov eax, dword [eax]
mov dword [esp + 0x24], eax
test eax, eax
jle 0x10150b16
xor ebx, ebx
lea eax, [ebx + ebx*4]
mov edx, dword [esp + 0xc]
test byte [edx + eax*4 + 0x14], 3
je 0x10150aaf
inc ebx
cmp ebx, dword [esp + 0x24]
jne 0x10150a98
jmp 0x10150b16
mov edx, dword [esp + 0xc]
mov edx, dword [edx + eax*4 + 0xc]
mov dword [esp + 0x20], edx
test edx, edx
je 0x10151af7
cmp dword [esp + 0x14], 0
je 0x10150aa6
xor edi, edi
mov ecx, dword [esp + 0x20]
movzx edx, byte [ecx + edi]
mov ecx, dword [esp + 0x14]
movzx ecx, byte [ecx + edi]
cmp dl, cl
jne 0x10150aeb
test edx, edx
je 0x10151b02
inc edi
jmp 0x10150acc
mov dl, byte [edx + 0x101b1828]
cmp dl, byte [ecx + 0x101b1828]
mov esi, dword [esp + 0x10]
mov ecx, dword [esp + 0x1c]
jne 0x10150aa6
jmp 0x10150ae8
mov eax, dword [ebp + 0xc]
mov byte [eax + 1], 0x44
xor eax, eax
inc eax
mov dword [esp + 0xc], eax
jmp 0x101506dc
mov edx, dword [esp + 0x28]
mov edx, dword [edx + 0xc]
inc dword [esp + 0x6c]
test edx, edx
mov edi, dword [esp + 4]
mov ebx, dword [esp + 0x40]
jne 0x1014fe07
mov edx, edi
mov edi, str.no_such_column
test esi, esi
jne 0x10151e6d
mov eax, dword [ebp + 0xc]
mov ebx, dword [eax + 4]
test bl, bl
jns 0x10151bd2
mov eax, dword [esp + 0x30]
cmp byte [eax + 0xb1], 0
jne 0x10150b7a
test byte [edx + 0x1a], 1
mov eax, dword [esp + 0x30]
mov eax, dword [eax + 0x20]
mov ecx, 0x1e
jne 0x10151e8a
bt eax, ecx
jae 0x10151bd2
push dword [esp + 0x14]
push str.double_quoted_string_literal:___w_
push 0x1c
call sym.nss3.dll_sqlite3_log
add esp, 0xc
mov ecx, dword [ebp + 0xc]
mov byte [ecx], 0x75
xor eax, eax
mov dword [ecx + 0x30], eax
mov dword [ecx + 0x2c], eax
jmp 0x101507b2
mov dword [esp + 0x10], edx
mov edx, dword [ebx]
mov ecx, dword [esp + 0x10]
mov ecx, dword [ecx + 4]
test dl, 1
mov edi, dword [esp + 0x24]
je 0x10151c03
bt ecx, 0x10
jae 0x10150bc8
test edi, edi
je 0x10151c03
test edi, edi
jne 0x10151bf9
test al, al
je 0x10151c45
cmp byte [esp + 0x18], 0
mov edx, dword [esp + 0x10]
je 0x10151c53
xor eax, eax
cmp dword [esp + 0x24], 0
sete al
xor eax, 0xffffbfff
mov ecx, dword [esp + 0x14]
and dword [ecx], eax
xor eax, eax
inc eax
mov dword [esp + 0x18], eax
jmp 0x101508d4
mov eax, dword [ebp + 0xc]
or byte [eax + 4], 0x40
jmp 0x10150315
mov eax, dword [esp + 8]
cmp byte [eax + 0xd8], 2
jae 0x10151e4e
mov eax, dword [esi + 8]
mov eax, dword [eax + 0x24]
test dx, dx
js 0x10150c40
mov ecx, dword [esp + 0x20]
mov ecx, dword [ecx + 0x1c]
and ecx, 0x20
jne 0x10151f43
movsx ecx, dx
add eax, ecx
mov ecx, dword [esp + 0x44]
mov dword [ecx], eax
xor eax, eax
inc eax
mov dword [esp + 0xc], eax
mov byte [esp + 0x14], 0xb0
jmp 0x101506e1
mov dword [esp + 0x20], 0
jmp 0x10150816
xor ecx, ecx
mov edx, dword [esp + 0x14]
movzx edx, byte [edx + ecx]
movzx ebx, byte [ecx + 0x101d7495]
cmp dl, bl
je 0x10151ece
mov dl, byte [edx + 0x101b1828]
cmp dl, byte [ebx + 0x101b1828]
je 0x10151ed2
mov ebx, esi
mov esi, dword [esp + 0x10]
mov ecx, eax
jmp 0x10150a51
mov cl, byte [eax + 2]
jmp 0x1015078f
add eax, 0xc
jmp 0x1015076f
mov ecx, ebx
mov ebx, dword [ebp + 0xc]
mov byte [ebx + 2], 0xa7
mov word [ebx + 0x20], dx
movsx edi, word [ecx + 0x22]
inc edi
imul edi, eax
mov esi, dword [esi + 8]
movsx edx, dx
call fcn.10159380
cwde
add eax, esi
add eax, edi
inc eax
mov edi, dword [esp + 4]
mov dword [ebx + 0x1c], eax
jmp 0x10150c4b
mov esi, dword [esp + 0x28]
test byte [esi + 0x19], 4
mov ebx, edi
je 0x10150364
cmp dword [esp + 0x10], 0
jne 0x10151fc1
xor ecx, ecx
cmp al, 0x80
setne cl
jmp 0x10150642
mov eax, dword [edi + 4]
mov edx, dword [ebp + 0xc]
mov byte [edx], 0xa7
mov ecx, dword [eax + 0x18]
mov dword [edx + 0x2c], ecx
mov eax, dword [eax + 0x34]
mov dword [edx + 0x1c], eax
dec word [edx + 0x20]
mov byte [edx + 1], 0x44
jmp case.0x1014fd8a.46
mov dword [esp + 0xc], esi
mov dword [esp + 0x1c], ecx
mov eax, dword [edx + 0x14]
mov eax, dword [eax + 0x1c]
mov dword [esp + 0x18], eax
mov eax, dword [eax]
mov dword [esp + 0x20], eax
test eax, eax
jle 0x10151244
xor edi, edi
mov dword [esp + 0x50], 0
lea ecx, [edi + edi*4]
mov eax, dword [esp + 0x18]
mov dword [esp + 0x54], ecx
lea ecx, [eax + ecx*4]
add ecx, 8
mov edx, dword [esp + 0x14]
push dword [esp + 0x34]
push dword [esp + 0x14]
call fcn.101714e0
add esp, 8
test eax, eax
je 0x10150df8
cmp dword [esp + 0xc], 0
jle 0x10150daf
mov eax, dword [esp + 0x2c]
test byte [eax + 0x29], 4
jne 0x10150e0c
mov edx, dword [esp + 0x90]
test edx, edx
je 0x10150da4
mov ecx, dword [esp + 0x30]
call fcn.10021700
mov dword [esp + 0x90], 0
mov eax, dword [ebp + 0xc]
mov word [eax + 0x20], di
mov edx, dword [esp + 0x18]
mov esi, dword [esp + 0x54]
mov eax, dword [edx + esi*4 + 0x14]
mov ecx, eax
or ecx, 0x40
mov dword [edx + esi*4 + 0x14], ecx
inc dword [esp + 0xc]
test al, al
js 0x10151890
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov dword [esp + 0x20], eax
xor eax, eax
inc eax
mov dword [esp + 0x50], eax
mov dword [esp + 0x40], 2
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x1c], eax
mov eax, edi
inc eax
mov edi, eax
cmp eax, dword [esp + 0x20]
jl 0x10150d56
jmp 0x1015124c
mov eax, dword [esp + 0x2c]
mov eax, dword [eax + 0x30]
mov dword [esp + 0x60], eax
mov eax, dword [eax]
mov dword [esp + 0x74], eax
test eax, eax
jle 0x10150d90
xor edx, edx
mov eax, dword [esp + 0x60]
mov esi, dword [eax + edx*8 + 8]
xor ebx, ebx
movzx ecx, byte [esi + ebx]
mov eax, dword [esp + 0x14]
movzx eax, byte [eax + ebx]
cmp cl, al
jne 0x10150e47
test ecx, ecx
jne 0x10150e55
jmp 0x10150e64
mov cl, byte [ecx + 0x101b1828]
cmp cl, byte [eax + 0x101b1828]
jne 0x10150e58
inc ebx
jmp 0x10150e31
inc edx
cmp edx, dword [esp + 0x74]
jne 0x10150e27
jmp 0x10150d90
mov eax, dword [esp + 0x2c]
movzx eax, byte [eax + 0x24]
test al, 0x10
je 0x10150df8
test al, 8
jne 0x10151a9a
mov edx, dword [esp + 0x90]
test edx, edx
je 0x10150e8c
mov ecx, dword [esp + 0x30]
call fcn.10021700
mov dword [esp + 0x90], 0
mov dword [esp + 0xc], 0
jmp 0x10150daf
mov eax, dword [ebp + 0xc]
movzx ecx, byte [eax]
cmp ecx, 0xa7
je 0x10150ebb
cmp ecx, 0x4d
jne 0x1015016d
cmp dword [esp + 0x3c], 0
je 0x1015016d
mov dword [esp + 4], edi
mov ebx, esi
mov eax, dword [esi + 4]
mov edx, dword [edx + 0x10]
add edx, 0xc
mov edi, dword [esp + 0x3c]
inc dword [esp + 0x68]
lea esi, [edx + 0x10]
cmp dword [edx], edi
mov edx, esi
jne 0x10150ed9
cmp cl, 0x4d
jne 0x1015132a
mov eax, dword [esp + 0x58]
mov eax, dword [eax]
test eax, eax
mov edi, dword [esp + 4]
mov esi, ebx
je 0x1015016d
mov ecx, dword [ebp + 0xc]
movzx ecx, word [ecx + 0x20]
test cx, cx
jns 0x10150f1d
movzx ecx, word [eax + 0x20]
mov esi, str.ROWID
test cx, cx
js 0x10150f29
movzx ecx, cx
mov edx, dword [eax + 4]
shl ecx, 4
mov esi, dword [edx + ecx]
mov edx, dword [eax]
mov ecx, dword [esp + 8]
push dword [esp + 0x68]
push esi
call fcn.10171900
add esp, 8
cmp eax, 2
mov edi, dword [esp + 4]
mov esi, ebx
jne 0x1015016d
mov eax, dword [ebp + 0xc]
mov byte [eax], 0x79
jmp 0x1015016d
mov eax, dword [esp + 0x2c]
test byte [eax + 0x29], 4
je 0x10150fc6
mov eax, dword [esp + 0x2c]
mov eax, dword [eax + 0x30]
mov dword [esp + 0x50], eax
mov eax, dword [eax]
mov dword [esp + 0x60], eax
test eax, eax
jle 0x10150fc6
mov dword [esp + 0x54], 0
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x54]
mov esi, dword [eax + ecx*8 + 8]
xor ebx, ebx
movzx ecx, byte [esi + ebx]
mov eax, dword [esp + 0x14]
movzx eax, byte [eax + ebx]
cmp cl, al
jne 0x10150fa4
test ecx, ecx
jne 0x10150fb2
jmp 0x101510e7
mov cl, byte [ecx + 0x101b1828]
cmp cl, byte [eax + 0x101b1828]
jne 0x10150fb5
inc ebx
jmp 0x10150f8b
mov ecx, dword [esp + 0x54]
inc ecx
mov eax, ecx
mov dword [esp + 0x54], ecx
cmp ecx, dword [esp + 0x60]
jne 0x10150f7d
mov edx, dword [esp + 0x90]
test edx, edx
je 0x10150fda
mov ecx, dword [esp + 0x30]
call fcn.10021700
mov dword [esp + 0x90], 0
mov esi, dword [esp + 0xc]
jmp 0x1014fef2
mov dword [esp + 0xc], esi
mov dword [esp + 0x1c], ecx
mov dword [esp + 4], edi
mov edi, str.ambiguous_column_name
mov edx, dword [esp + 0x90]
test edx, edx
je 0x10151020
mov eax, dword [esp + 0xc]
dec eax
cmp dword [edx], eax
je 0x10151844
mov ecx, dword [esp + 0x30]
call fcn.10021700
cmp dword [esp + 0x34], 0
je 0x1015127f
push dword [esp + 0x14]
push dword [esp + 0x14]
push dword [esp + 0x3c]
push edi
push str._s:__s._s._s
push dword [esp + 0x1c]
call fcn.10046a40
add esp, 0x18
cmp dword [ebp + 0xc], 0
je 0x10151070
mov eax, dword [esp + 8]
mov eax, dword [eax]
mov ecx, dword [ebp + 0xc]
test byte [ecx + 4], 3
jne 0x10151069
mov edx, dword [ecx + 0x24]
test edx, edx
jg 0x1015137b
mov ecx, dword [ecx + 0xc]
test ecx, ecx
jne 0x10151058
mov eax, dword [esp + 8]
mov byte [eax + 0x11], 1
mov edi, dword [esp + 4]
inc dword [edi + 0x14]
mov byte [esp + 0x14], 0xa7
mov ecx, dword [esp + 0x1c]
jmp 0x101500ec
mov eax, dword [edx + 0x14]
mov eax, dword [eax + 0x1c]
lea ecx, [edi + edi*4]
or dword [eax + ecx*4 + 0x14], 0x40
jmp 0x1014ff1c
mov edx, dword [ecx + 4]
mov esi, eax
shl esi, 4
test byte [edx + esi + 0xe], 0x60
je 0x1015011a
movzx ecx, word [ecx + 0x22]
xor edx, edx
dec edx
mov dword [esp + 4], ebx
mov esi, edx
shl esi, cl
xor eax, eax
test cl, 0x20
cmovne edx, esi
cmove eax, esi
mov ebx, dword [esp + 4]
xor esi, esi
dec esi
xor eax, esi
xor edx, esi
cmp cx, 0x40
cmovge edx, esi
cmovge eax, esi
jmp 0x1015013a
mov eax, dword [esp + 0x2c]
mov al, byte [eax + 0x24]
test al, 0x10
je 0x1014feb8
test al, 8
jne 0x101515d9
mov edx, dword [esp + 0x90]
test edx, edx
je 0x10151112
mov ecx, dword [esp + 0x30]
call fcn.10021700
mov dword [esp + 0x90], 0
xor esi, esi
jmp 0x1014fef2
movzx eax, byte [edi]
cmp eax, 0xaa
je 0x10151133
cmp eax, 0x3b
jne case.0x1014fd8a.48
push edi
push esi
call fcn.1014fd40
add esp, 8
mov ebx, 2
cmp eax, 2
je 0x101511db
cmp byte [edi], 0xaa
jne case.0x1014fd8a.48
mov ecx, dword [ebp + 0xc]
mov al, byte [ecx]
mov byte [ecx + 2], al
mov byte [ecx], 0xaf
xor ebx, ebx
jmp 0x101511db
mov eax, dword [esp + 8]
mov eax, dword [eax]
cmp byte [eax + 0x57], 0
jne case.0x1014fd8a.46
mov eax, dword [ebp + 0xc]
mov eax, dword [eax + 0xc]
mov cl, byte [eax]
cmp cl, 0xb0
je 0x10151230
cmp cl, 0x8a
je 0x101512a5
movzx ecx, cl
cmp ecx, 0xb1
je 0x101512ad
xor eax, eax
inc eax
mov ecx, dword [ebp + 0xc]
cmp byte [ecx], 0x30
je 0x101511f8
mov ecx, dword [ecx + 0x10]
mov dl, byte [ecx]
cmp dl, 0xb0
je 0x101511f3
cmp dl, 0x8a
je 0x10151238
movzx edx, dl
cmp edx, 0xb1
je 0x101512fa
xor edx, edx
inc edx
cmp eax, edx
jne 0x101512b9
xor ebx, ebx
mov eax, dword [esp + 8]
cmp dword [eax + 0x24], 0
setne bl
add ebx, ebx
mov ecx, dword [esp + 0xb8]
xor ecx, ebp
call fcn.10157a00
mov eax, ebx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov dl, byte [ecx + 2]
jmp 0x101511a9
mov ecx, dword [ecx + 0x14]
mov edx, dword [ecx + 8]
mov bl, byte [edx]
cmp bl, 0xb0
je 0x10151abe
cmp bl, 0x8a
je 0x10151ac6
movzx esi, bl
cmp esi, 0xb1
je 0x10151ace
xor edx, edx
inc edx
cmp edx, eax
jne 0x101511c4
mov ecx, dword [ecx + 0x1c]
jmp 0x101511a2
mov cl, byte [eax + 2]
jmp 0x1015117c
mov ecx, dword [ecx + 0x14]
add ecx, 0x1c
mov ecx, dword [ecx]
mov edx, dword [ecx]
jmp 0x101511c4
mov dword [esp + 0x50], 0
cmp dword [esp + 0x10], 0
je 0x10151302
cmp dword [esp + 0x50], 0
mov edi, dword [esp + 4]
mov ecx, dword [esp + 0x1c]
mov esi, dword [esp + 0xc]
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x2c]
mov ebx, dword [esp + 0x24]
je 0x1014ff8f
jmp 0x1014ff2e
cmp byte [esp + 0x64], 0
je 0x1015135c
push dword [esp + 0x14]
push edi
push 0x101ccdc5
push dword [esp + 0x14]
call fcn.10046a40
add esp, 0x10
jmp 0x10151049
mov eax, dword [eax + 0x14]
add eax, 0x1c
jmp 0x101512b0
add eax, 0x14
mov eax, dword [eax]
mov eax, dword [eax]
jmp 0x10151197
push str.row_value_misused
mov esi, dword [esp + 0xc]
push esi
call fcn.10046a40
add esp, 8
mov eax, dword [esi]
mov ecx, dword [esp + 0x5c]
test byte [ecx + 4], 3
jne 0x101512e6
mov ecx, dword [esp + 0x5c]
mov ecx, dword [ecx + 0x24]
test ecx, ecx
jg 0x1015140c
mov ecx, dword [esp + 0x5c]
mov ecx, dword [ecx + 0xc]
mov dword [esp + 0x5c], ecx
test ecx, ecx
jne 0x101512cd
jmp case.0x1014fd8a.46
add ecx, 0x14
jmp 0x1015123e
mov edi, dword [esp + 4]
mov ecx, dword [esp + 0x1c]
mov esi, dword [esp + 0xc]
jmp 0x1014ffdc
mov bl, byte [ebx + 0x101b1828]
cmp bl, byte [edx + 0x101b1828]
je 0x101500d4
jmp 0x10150099
mov ecx, dword [eax]
test ecx, ecx
mov edi, dword [esp + 4]
mov esi, ebx
jle 0x1015016d
mov edx, dword [esp + 0x44]
mov edx, dword [edx]
add eax, 0x34
mov edi, dword [esp + 4]
cmp edx, dword [eax]
je 0x101515cd
add eax, 0x48
dec ecx
mov esi, ebx
jne 0x10151347
jmp 0x1015016d
push dword [esp + 0x14]
push dword [esp + 0x14]
push edi
push str._s:__s._s
push dword [esp + 0x18]
call fcn.10046a40
add esp, 0x14
jmp 0x10151049
mov dword [eax + 0x44], edx
jmp 0x10151070
mov eax, dword [esp + 0x3c]
cmp dword [ebx + 0x3c], eax
jne 0x1014ffd4
cmp dword [esp + 0x3c], 0
mov edx, dword [esp + 0x2c]
mov ebx, dword [esp + 0x24]
jne 0x1014ff9e
push 0x101e0152
push dword [esp + 0x38]
call sub.api_ms_win_crt_string_l1_1_0.dll_strcmp
mov edx, dword [esp + 0x34]
mov ecx, dword [esp + 0x24]
add esp, 8
test eax, eax
mov eax, dword [esp + 0x38]
je 0x1014ff9e
mov edi, dword [esp + 4]
jmp 0x1014ff2e
mov edx, dword [esp + 0xc]
mov ebx, edx
mov ecx, dword [esp + 0x14]
call fcn.10162250
test eax, eax
je 0x101515fd
mov eax, dword [esp + 0x20]
mov al, byte [eax + 0x1d]
and al, 2
xor ecx, ecx
cmp al, 1
sbb ecx, ecx
mov edx, ebx
or edx, ecx
mov edi, dword [esp + 4]
mov esi, dword [esp + 0x28]
mov eax, dword [esp + 0xc]
jmp 0x10150673
mov dword [eax + 0x44], ecx
jmp case.0x1014fd8a.46
mov ecx, dword [esp + 8]
mov edx, dword [esp + 4]
push edi
push 0
push str.the__.__operator
call fcn.10171190
add esp, 0xc
jmp 0x1015020a
mov ecx, dword [esi + 8]
mov dword [esp + 0x34], ecx
mov esi, dword [eax + 0xc]
mov eax, dword [eax + 0x10]
jmp 0x1015021e
mov ecx, dword [edx + 0x114]
test ecx, ecx
je 0x1015023d
mov edx, ecx
cmp dword [edx], eax
je 0x10151935
mov edx, dword [edx + 0xc]
test edx, edx
jne 0x10151453
jmp 0x10151944
test byte [edi + 0x18], 6
je 0x101518bf
mov dword [esp + 0x34], 0
mov eax, dword [esp + 8]
mov ecx, dword [ebp + 0xc]
mov edi, dword [esp + 4]
jmp 0x10150281
cmp ebx, 2
mov eax, edi
jge 0x10150917
xor ebx, ebx
inc ebx
cmp dword [esp + 0x18], 0
je 0x101511db
cmp dword [esp + 0x24], 0
jne 0x10151c5f
mov eax, dword [ebp + 0xc]
mov byte [eax], 0xa8
mov byte [eax + 2], 0
test byte [eax + 7], 1
mov edi, dword [esp + 4]
jne 0x10151d5e
lea ecx, [esp + 0x80]
xorps xmm0, xmm0
xor edx, edx
lea esi, [esp + 0x78]
mov dword [esp + 4], edi
mov eax, dword [edi + 4]
movaps xmmword [esp + 0x90], xmm0
mov dword [esp + 0xa4], edx
mov dword [esp + 0xa0], edx
movups xmmword [ecx], xmm0
mov dword [esp + 0x94], 0x10076b30
mov dword [esp + 0x98], 0x10171a40
mov dword [esp + 0x9c], 0x10171b10
mov dword [esp + 0xa8], esi
mov ecx, dword [esp + 8]
mov ecx, dword [ecx]
mov dword [esp + 0x78], ecx
mov dword [esp + 0x7c], eax
mov eax, dword [ebp + 0xc]
mov edi, dword [eax + 0x14]
test edi, edi
je 0x10151566
mov esi, dword [edi]
test esi, esi
jle 0x10151566
add edi, 8
mov edx, dword [edi]
test edx, edx
je 0x10151dad
lea ecx, [esp + 0x90]
call fcn.1014fbd0
test eax, eax
xorps xmm0, xmm0
jne 0x10151566
cmp esi, 1
jle 0x10151566
dec esi
add edi, 0x14
jmp 0x1015153e
mov eax, dword [ebp + 0xc]
test byte [eax + 7], 1
jne 0x10151d78
mov edx, dword [esp + 0x88]
test edx, edx
mov edi, dword [esp + 4]
jne 0x10151d9a
movzx eax, word [esp + 0xa4]
test ax, ax
je 0x1015159f
and eax, 1
test ax, ax
je 0x10151ea8
mov ecx, dword [esp + 0x10]
test ecx, ecx
je 0x101515be
mov eax, 0x8001000
and eax, dword [ecx + 4]
xor eax, 0x8000010
mov ecx, dword [edi + 0x18]
add edi, 0x18
or ecx, eax
mov dword [edi], ecx
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x14]
or dword [ecx], eax
jmp 0x101511db
add eax, 0xffffffe4
mov dword [esp + 0x58], eax
jmp 0x10150eef
mov eax, dword [ebp + 0xc]
movsx eax, word [eax + 0x20]
lea edx, [esp + 0x90]
mov ecx, dword [esp + 8]
push eax
push dword [esp + 0x20]
call fcn.10171640
add esp, 8
jmp 0x10150fe5
mov edi, dword [esp + 4]
mov esi, dword [esp + 0x28]
mov edx, ebx
jmp 0x10151403
xor ebx, ebx
inc ebx
mov ecx, eax
jmp 0x10150a4d
test edx, edx
je 0x10151ed8
inc ecx
jmp 0x10150445
mov eax, dword [esp + 8]
mov ecx, dword [eax]
mov edx, ebx
push 0
push edi
push 0xfffffffffffffffe
call fcn.10146b40
add esp, 0xc
mov edx, eax
test eax, eax
sete byte [esp + 0x18]
setne al
xor ecx, ecx
jmp 0x10150866
mov edx, dword [ebp + 0xc]
mov edx, dword [edx + 0x2c]
xor edi, edi
cmp byte [edx + 0x10], 0xa6
cmovne edi, edx
mov dword [esp + 0x24], edi
jmp 0x101504bd
mov ebx, edx
mov eax, dword [ebp + 0xc]
or byte [eax + 6], 8
cmp dword [esp + 0x18], 2
je 0x10151b94
mov edx, ebx
mov eax, dword [ebx + 0x20]
cmp byte [eax], 0x75
mov eax, 0x800000
mov ecx, 0x7800000
cmove ecx, eax
mov eax, dword [ebp + 0xc]
mov dword [eax + 0x1c], ecx
jmp 0x1015050b
cmp byte [eax + 0xb1], 0
jne 0x1015051f
mov dword [esp + 0x10], edx
mov edx, dword [esp + 8]
cmp byte [edx + 0xd8], 0
mov edx, dword [esp + 0x10]
jne 0x1015051f
mov edx, dword [edx + 0x20]
mov dword [esp + 0x18], edx
mov edx, dword [esp + 8]
mov edx, dword [edx + 0x100]
mov dword [esp + 0x48], edx
mov ebx, dword [eax + 0x168]
call dword [section..00cfg]
xor eax, eax
push dword [esp + 0x48]
push eax
push dword [esp + 0x20]
push eax
push 0x1f
push ebx
call ecx
add esp, 0x18
cmp eax, 1
jne 0x10151b7c
mov esi, 0x17
mov eax, str.not_authorized
push eax
mov edi, dword [esp + 0xc]
push edi
call fcn.10046a40
add esp, 8
mov dword [edi + 0xc], esi
push dword [ebp + 0xc]
push str.not_authorized_to_use_function:__T
push edi
call fcn.10046a40
add esp, 0xc
mov eax, dword [esp + 4]
inc dword [eax + 0x14]
mov eax, dword [ebp + 0xc]
mov byte [eax], 0x79
jmp 0x101507b2
mov ecx, dword [esp + 8]
cmp byte [ecx + 0x12], 0
jne 0x1015083c
mov ecx, dword [esp + 8]
mov ecx, dword [ecx]
test byte [ecx + 0x18], 0x20
jne 0x1015083c
cmp dword [esp + 0xc], 0
setne al
mov edx, dword [esp + 8]
lea edi, [edx + 0xd8]
mov dword [esp + 0x48], edi
cmp byte [edx + 0xd8], 1
ja 0x10152000
cmp dword [esp + 0xc], 0
jne 0x10151f71
xor edx, edx
mov eax, str.no_such_function:__T
cmp byte [ecx + 0xb1], 0
mov dword [esp + 0xc], 0
je 0x101517ed
jmp 0x101508bf
mov dword [esp + 0x10], edx
mov dword [esp + 0xc], 0
xor eax, eax
mov ecx, dword [esp + 8]
mov ecx, dword [ecx]
cmp byte [ecx + 0xb1], 0
je 0x10151a1c
cmp byte [esp + 0x18], 0
je 0x10152022
test al, al
mov edx, dword [esp + 0x10]
jne 0x10150be7
jmp 0x101508bf
mov dword [esp + 0xc], 0
mov eax, str.wrong_number_of_arguments_to_function__T__
push dword [ebp + 0xc]
push eax
push dword [esp + 0x10]
mov edi, edx
call fcn.10046a40
mov edx, edi
add esp, 0xc
mov eax, dword [esp + 4]
inc dword [eax + 0x14]
mov dword [esp + 0x18], 0
cmp dword [esp + 0xc], 0
je 0x101508d4
jmp 0x10150be7
push dword [ebp + 0xc]
push str.FILTER_may_not_be_used_with_non_aggregate__T__
push dword [esp + 0x10]
mov ebx, edx
call fcn.10046a40
mov edx, ebx
add esp, 0xc
mov eax, dword [esp + 4]
inc dword [eax + 0x14]
jmp 0x101508d4
mov eax, dword [ebp + 0xc]
mov eax, dword [eax + 4]
bt eax, 0x17
jb 0x101519cd
mov eax, dword [ebp + 0xc]
mov edx, dword [eax + 0xc]
test edx, edx
je 0x10151867
mov ecx, dword [esp + 0x30]
call fcn.1014f3a0
mov eax, dword [ebp + 0xc]
mov dword [eax + 0xc], 0
mov edx, dword [eax + 0x10]
test edx, edx
je 0x10151881
mov ecx, dword [esp + 0x30]
call fcn.1014f3a0
mov eax, dword [ebp + 0xc]
mov dword [eax + 0x10], 0
jmp 0x101519d8
mov dword [esp + 0x40], 2
mov edx, dword [esp + 0x2c]
mov ecx, edx
mov edi, dword [esp + 4]
mov esi, dword [esp + 0xc]
mov eax, dword [esp + 0x38]
jmp 0x1014ff2e
mov ebx, dword [esp + 0x40]
inc ebx
xor esi, esi
mov ecx, dword [esp + 0x1c]
jmp 0x1015002f
mov eax, dword [esp + 0x30]
mov eax, dword [eax + 0x14]
mov dword [esp + 0x18], eax
test eax, eax
jle 0x10151a36
mov eax, dword [esp + 0x30]
mov eax, dword [eax + 0x10]
mov dword [esp + 0x20], eax
mov dword [esp + 0x14], 0
mov esi, dword [esp + 0x14]
shl esi, 4
mov eax, dword [esp + 0x20]
mov edi, dword [eax + esi]
xor ecx, ecx
movzx edx, byte [edi + ecx]
mov eax, dword [esp + 0x34]
movzx eax, byte [eax + ecx]
cmp dl, al
jne 0x1015190b
test edx, edx
jne 0x10151919
jmp 0x10151980
mov dl, byte [edx + 0x101b1828]
cmp dl, byte [eax + 0x101b1828]
jne 0x1015191c
inc ecx
jmp 0x101518f5
mov eax, dword [esp + 0x14]
inc eax
mov dword [esp + 0x14], eax
cmp eax, dword [esp + 0x18]
jne 0x101518e5
mov dword [esp + 0x3c], 0
jmp 0x1015199a
mov eax, dword [ebp + 0xc]
mov dword [edx], eax
mov eax, dword [esp + 8]
mov ecx, dword [eax + 0x114]
test ecx, ecx
mov edx, dword [esp + 8]
mov edi, dword [esp + 4]
je 0x1015023d
mov eax, dword [ebp + 0xc]
add eax, 0x2c
mov edx, dword [esp + 8]
mov edi, dword [esp + 4]
cmp dword [ecx], esi
je 0x10151a0d
mov ecx, dword [ecx + 0xc]
test ecx, ecx
jne 0x10151962
jmp 0x1015023d
mov eax, str._T___may_not_be_used_as_a_window_function
jmp 0x101517ed
mov eax, dword [esp + 0x20]
mov eax, dword [eax + esi + 0xc]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x14]
cmp eax, dword [esp + 0x18]
jne 0x10151479
xor eax, eax
movzx ecx, byte [eax + str.main]
mov edx, dword [esp + 0x34]
movzx edx, byte [edx + eax]
cmp cl, dl
jne 0x101519b8
test ecx, ecx
jne 0x101519ca
jmp 0x10151a81
mov cl, byte [ecx + 0x101b1828]
cmp cl, byte [edx + 0x101b1828]
jne 0x10151479
inc eax
jmp 0x1015199c
and eax, 0xff7fffff
mov ecx, dword [ebp + 0xc]
mov dword [ecx + 4], eax
mov edi, dword [ebp + 0xc]
movsx eax, word [edi + 0x20]
lea esi, [esp + 0x90]
mov ecx, dword [esp + 8]
mov edx, esi
push eax
push dword [esp + 0x20]
call fcn.10171640
add esp, 8
mov byte [edi], 0xac
mov dword [edi + 8], str.coalesce
mov eax, dword [esi]
mov dword [edi + 0x14], eax
jmp 0x10151b6f
mov dword [ecx], eax
mov edx, dword [esp + 8]
mov edi, dword [esp + 4]
jmp 0x1015023d
mov eax, str.no_such_function:__T
mov edx, dword [esp + 0x10]
jmp 0x101517ed
mov eax, dword [ebp + 0xc]
or byte [eax + 7], 0x40
jmp 0x1015082f
mov dword [esp + 0x14], 0
mov dword [esp + 0x3c], 0
jmp 0x1015198c
push dword [ebp + 0xc]
push str.unsafe_use_of__T__
push dword [esp + 0x10]
mov dword [esp + 0x1c], edx
call fcn.10046a40
mov ecx, edi
mov edx, dword [esp + 0x1c]
add esp, 0xc
jmp 0x10150a07
mov dword [eax], 0
mov ecx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x24]
jmp 0x1014fe5e
mov eax, dword [esp + 0x30]
mov eax, dword [eax + 0x10]
mov ecx, dword [eax]
mov dword [esp + 0x34], ecx
mov eax, dword [eax + 0xc]
mov dword [esp + 0x3c], eax
jmp 0x10151479
mov eax, dword [ebp + 0xc]
movsx eax, word [eax + 0x20]
lea edx, [esp + 0x90]
mov ecx, dword [esp + 8]
push eax
push dword [esp + 0x20]
call fcn.10171640
add esp, 8
jmp 0x10150daf
mov bl, byte [edx + 2]
jmp 0x10151209
mov edx, dword [edx + 0x14]
add edx, 0x1c
jmp 0x10151ad1
add edx, 0x14
mov edx, dword [edx]
mov edx, dword [edx]
jmp 0x10151224
mov ecx, dword [esp + 8]
mov edx, ebx
mov eax, dword [ebp + 0xc]
push eax
push eax
push str.subqueries
call fcn.10171190
add esp, 0xc
jmp 0x1015030c
cmp dword [esp + 0x14], 0
jne 0x10150aa6
mov ecx, dword [esp + 0xc]
mov edi, dword [ecx + eax*4 + 8]
mov edx, dword [edi + 4]
test byte [esp + 0x18], 1
jne 0x10151b1f
mov ecx, edx
and ecx, 0x10
jne 0x10151f1e
test dx, dx
js 0x10151dd7
mov al, byte [edi]
cmp al, 0xb0
je 0x10151dfb
cmp al, 0x8a
je 0x10151dcf
movzx eax, al
cmp eax, 0xb1
je 0x10151e03
mov edi, dword [esp + 8]
mov ecx, edi
mov edx, dword [esp + 0xc]
push dword [esp + 0x6c]
push dword [ebp + 0xc]
push ebx
call fcn.1003aa80
add esp, 0xc
cmp byte [edi + 0xd8], 2
jae 0x10151e2c
mov edi, dword [esp + 4]
mov esi, dword [esp + 0x28]
jmp 0x1015015a
test eax, 0xfffffffd
je 0x10151dbe
xor esi, esi
inc esi
mov eax, str.authorizer_malfunction
jmp 0x10151706
mov eax, dword [esp + 0x20]
mov ecx, dword [eax + 0x1c]
call fcn.10171210
mov ecx, dword [ebp + 0xc]
mov dword [ecx + 0x1c], eax
test eax, eax
mov edx, ebx
jns 0x1015050b
push dword [ebp + 0xc]
push str.second_argument_to__T___must_be_a_constant_between_0.0_and_1.0
push dword [esp + 0x10]
call fcn.10046a40
mov edx, ebx
add esp, 0xc
mov eax, dword [esp + 4]
inc dword [eax + 0x14]
jmp 0x1015050b
mov al, 1
mov dword [esp + 0x64], eax
mov dword [esp + 0x28], 0
test ebx, 0x4000800
je 0x10151eff
mov dword [esp + 0xc], 0
jmp 0x10150fff
bt edx, 0xe
jb 0x10150bd0
and ecx, 0x10000
mov eax, str.window
mov edx, str.aggregate
or ecx, edi
cmovne edx, eax
push dword [ebp + 0xc]
push edx
push str.misuse_of__s_function__T__
push dword [esp + 0x14]
call fcn.10046a40
add esp, 0x10
mov eax, dword [esp + 4]
inc dword [eax + 0x14]
mov dword [esp + 0x18], 0
mov edx, dword [esp + 0x10]
jmp 0x101508d4
mov al, 1
xor ecx, ecx
inc ecx
mov dword [esp + 0xc], ecx
jmp 0x101517b1
xor eax, eax
inc eax
mov dword [esp + 0xc], eax
jmp 0x101517e8
mov eax, dword [esp + 4]
mov eax, dword [eax + 0x1c]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x48]
cmp byte [eax], 1
ja 0x10151ca5
xor edx, edx
cmp dword [esp + 0x20], 0
je 0x10151c83
mov eax, dword [esp + 0x20]
mov edx, dword [eax + 0x48]
mov edi, dword [esp + 8]
mov ecx, edi
push dword [esp + 0x10]
push dword [esp + 0x28]
call fcn.101712a0
add esp, 8
mov eax, dword [edi]
cmp byte [eax + 0x57], 0
jne case.0x1014fd8a.46
mov eax, dword [esp + 0x24]
mov eax, dword [eax + 8]
mov dword [esp + 0x18], eax
test eax, eax
je 0x10151cea
mov eax, dword [esp + 0x18]
mov edi, dword [eax]
test edi, edi
jle 0x10151cea
add dword [esp + 0x18], 8
mov eax, dword [esp + 0x18]
mov edx, dword [eax]
test edx, edx
je 0x10151ce5
mov ecx, esi
call fcn.1014fbd0
test eax, eax
jne 0x10151cea
cmp edi, 1
jle 0x10151cea
dec edi
add dword [esp + 0x18], 0x14
jmp 0x10151cc3
cmp edi, 2
jge 0x10151cdd
mov eax, dword [esp + 0x24]
mov eax, dword [eax + 0xc]
mov dword [esp + 0x18], eax
test eax, eax
je 0x10151d2f
mov eax, dword [esp + 0x18]
mov edi, dword [eax]
test edi, edi
jle 0x10151d2f
add dword [esp + 0x18], 8
mov eax, dword [esp + 0x18]
mov edx, dword [eax]
test edx, edx
je 0x10151d2a
mov ecx, esi
call fcn.1014fbd0
test eax, eax
jne 0x10151d2f
cmp edi, 1
jle 0x10151d2f
dec edi
add dword [esp + 0x18], 0x14
jmp 0x10151d08
cmp edi, 2
jge 0x10151d22
mov eax, dword [esp + 0x24]
mov edx, dword [eax + 0x28]
test edx, edx
je 0x10151d41
mov ecx, esi
call fcn.1014fbd0
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x24]
call fcn.10170990
mov edi, dword [esp + 0x14]
mov eax, dword [edi]
mov ecx, 0x8000
jmp 0x101515ba
mov eax, dword [eax + 0x2c]
mov edx, dword [eax + 0x28]
test edx, edx
je 0x101514c5
mov ecx, esi
call fcn.1014fbd0
jmp 0x101514c5
mov eax, dword [eax + 0x2c]
mov edx, dword [eax + 0x28]
test edx, edx
je 0x10151573
lea ecx, [esp + 0x90]
call fcn.1014fbd0
xorps xmm0, xmm0
jmp 0x10151573
mov eax, dword [esp + 8]
mov ecx, dword [eax]
call fcn.1014f290
xorps xmm0, xmm0
jmp 0x10151586
cmp esi, 2
xorps xmm0, xmm0
jge 0x10151560
jmp 0x10151566
test eax, eax
mov edx, dword [esp + 0x10]
je 0x1015051f
jmp 0x1015172f
mov edi, dword [edi + 0x14]
add edi, 0x1c
jmp 0x10151e06
bt dword [esp + 0x18], 0xe
jae 0x10151ded
mov eax, dword [esp + 0x28]
cmp eax, dword [esp + 4]
je 0x10151b28
push dword [esp + 0x20]
push str.misuse_of_aliased_window_function__s
jmp 0x10151f27
mov al, byte [edi + 2]
jmp 0x10151b32
add edi, 0x14
mov eax, dword [edi]
cmp dword [eax], 1
je 0x10151b48
push str.row_value_misused
push dword [esp + 0xc]
call fcn.10046a40
add esp, 8
mov ebx, 2
jmp 0x101511db
mov eax, dword [esp + 8]
mov eax, dword [eax + 0x114]
test eax, eax
je 0x10151b6f
mov ecx, dword [ebp + 0xc]
cmp dword [eax], ecx
je 0x10151f38
mov eax, dword [eax + 0xc]
jmp 0x10151e36
mov eax, dword [ebp + 0xc]
mov word [eax + 0x20], dx
mov ecx, dword [esp + 0x20]
mov dword [eax + 0x2c], ecx
xor eax, eax
inc eax
mov dword [esp + 0xc], eax
mov byte [esp + 0x14], 0xa7
jmp 0x101506e1
mov dword [esp + 0x28], 0
mov dword [esp + 0xc], 0
mov dword [esp + 0x64], 0
jmp 0x10150fff
mov edx, eax
and edx, 0x50000001
mov ecx, 0x1d
cmp edx, 0x40000001
jne 0x10150b71
jmp 0x10150b7a
mov eax, dword [ebp + 0xc]
inc byte [eax + 2]
mov edi, dword [edi + 0xc]
test edi, edi
lea ecx, [esp + 0x80]
mov edx, 0
lea esi, [esp + 0x78]
jne 0x101514d5
jmp 0x101515be
test edx, edx
je 0x10151ed8
inc ecx
jmp 0x10150c6b
mov ecx, dword [eax + 0x10]
test byte [ecx + 0x1d], 2
mov ecx, eax
mov ebx, esi
mov esi, dword [esp + 0x10]
jne 0x10150a51
mov eax, dword [ebp + 0xc]
mov word [eax + 0x20], 0xffff
mov byte [eax + 1], 0x44
jmp 0x101500e0
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax + 8]
call fcn.10171c60
test eax, eax
je 0x10151f89
mov ecx, dword [ebp + 0xc]
mov byte [ecx], 0xaa
or eax, ebx
mov dword [ecx + 4], eax
jmp 0x101507b2
push dword [esp + 0x20]
push str.misuse_of_aliased_aggregate__s
push dword [esp + 0x10]
call fcn.10046a40
add esp, 0xc
jmp 0x10151e22
mov dword [eax], 0
jmp 0x10151b6f
mov ecx, edx
movsx esi, cx
mov dword [esp + 0x14], esi
test cx, cx
je 0x10151f96
mov ecx, dword [esp + 0x24]
lea edi, [ecx + 0xe]
xor ecx, ecx
mov ebx, dword [esp + 0x14]
movzx esi, word [edi]
bt esi, 5
sbb cx, 0xffff
add edi, 0x10
dec ebx
jne 0x10151f5e
jmp 0x10151f98
mov byte [esp + 0x18], 1
mov dword [esp + 0x10], 0
xor eax, eax
mov ebx, dword [esp + 0x14]
jmp 0x10150ba4
mov dword [esp + 0x28], 0
jmp 0x10151bec
xor ecx, ecx
mov edi, dword [esp + 0x14]
shl edi, 4
mov esi, dword [esp + 0x24]
test byte [esi + edi + 0xe], 0x20
jne 0x10151fae
mov edx, ecx
jmp 0x10151fb8
sub edx, ecx
mov ecx, dword [esp + 0x20]
add dx, word [ecx + 0x24]
mov edi, dword [esp + 4]
jmp 0x10150c40
mov edx, dword [ecx]
xor esi, esi
mov ecx, dword [esp + 0x10]
movzx ebx, byte [ecx + esi]
movzx ecx, byte [edx + esi]
cmp bl, cl
jne 0x10151fde
test ebx, ebx
jne 0x10151fec
jmp 0x10150cfe
mov ah, byte [ebx + 0x101b1828]
cmp ah, byte [ecx + 0x101b1828]
jne 0x10151fef
inc esi
jmp 0x10151fc5
mov dword [esp + 0x20], 0
mov esi, dword [esp + 0x28]
jmp 0x10150816
xor ecx, ecx
mov cl, al
mov dword [esp + 0xc], ecx
xor edx, edx
xor ecx, ecx
inc ecx
mov eax, dword [ebp + 0xc]
test byte [eax + 7], 1
cmove ecx, dword [esp + 0xc]
mov dword [esp + 0x18], ecx
jmp 0x101508d4
mov eax, str.wrong_number_of_arguments_to_function__T__
jmp 0x10151a21