Function at 0x101fa440
Capabilities:
Inspect section memory permissions
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
mov edx, dword [ebp + 8]
sub esp, 0x74
push ebx
push esi
mov esi, dword [ebp + 0xc]
push edi
mov edi, dword [edx + 0x18]
mov cl, byte [esi]
movzx eax, cl
mov ebx, dword [edi]
add eax, 0xffffffec
cmp eax, 0x98
ja case.0x101fa479.28
movzx eax, byte [eax + 0x101facb0]
mov dword [esp + 0x3c], 1
jmp dword [eax*4 + 0x101fac8c]
mov ecx, dword [edi + 4]
mov byte [esi], 0xa7
mov eax, dword [ecx + 0x18]
mov dword [esi + 0x2c], eax
mov eax, dword [ecx + 0x34]
dec word [esi + 0x20]
mov dword [esi + 0x1c], eax
mov byte [esi + 1], 0x44
mov eax, dword [ebx + 0x24]
neg eax
sbb eax, eax
and eax, 2
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
xor ecx, ecx
mov edx, edi
nop
cmp ecx, 8
jge 0x101fa4c4
mov eax, dword [edx + 0x10]
mov edx, dword [edx + 0xc]
mov dword [esp + ecx*4 + 0x60], eax
inc ecx
test edx, edx
jne 0x101fa4b0
mov ecx, dword [esi + 0xc]
test ecx, ecx
je 0x101fa4d8
mov edx, ecx
mov ecx, dword [ebp + 8]
call fcn.101fc670
mov ecx, dword [esi + 0xc]
call fcn.101f6080
test eax, eax
jne 0x101fab1a
cmp byte [ebx + 0xd0], 2
jae 0x101fab1a
cmp byte [esi], 0x33
mov edx, 0x20000000
mov eax, 0x10000000
cmovne eax, edx
mov edx, str.true
or dword [esi + 4], eax
mov eax, str.false
cmp byte [esi], 0x33
cmove eax, edx
xor ecx, ecx
mov dword [esi + 8], eax
mov byte [esi], 0xaa
nop dword [eax]
cmp ecx, 8
jge 0x101fa534
mov eax, dword [esp + ecx*4 + 0x60]
inc ecx
mov dword [edi + 0x10], eax
mov edi, dword [edi + 0xc]
test edi, edi
jne 0x101fa520
mov edx, dword [esi + 0xc]
test edx, edx
je 0x101fa542
mov ecx, dword [ebx]
call fcn.101f7b00
mov eax, dword [esp + 0x3c]
mov dword [esi + 0xc], 0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp cl, 0x3b
jne 0x101fa575
mov eax, dword [esi + 8]
xor ecx, ecx
push esi
push edi
push eax
push ecx
xor edx, edx
mov ecx, ebx
call fcn.101faf20
add esp, 0x10
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
test byte [edi + 0x18], 0x28
mov ecx, dword [esi + 0xc]
mov dword [esp + 0x1c], ecx
je 0x101fa59a
push esi
push 0
push str.the__.__operator
mov edx, edi
mov ecx, ebx
call fcn.101fadc0
mov ecx, dword [esp + 0x28]
add esp, 0xc
mov eax, dword [esi + 0x10]
cmp byte [eax], 0x3b
jne 0x101fa5a6
xor edx, edx
jmp 0x101fa5b3
mov edx, dword [ecx + 8]
mov ecx, dword [eax + 0xc]
mov eax, dword [eax + 0x10]
mov dword [esp + 0x1c], ecx
cmp byte [ebx + 0xd0], 2
mov ecx, dword [ecx + 8]
mov dword [esp + 0x18], edx
mov edx, dword [eax + 8]
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0x18]
mov dword [esp + 0x3c], ecx
jb 0x101fa5f8
push eax
mov edx, esi
mov ecx, ebx
call fcn.101ef000
add esp, 4
lea edx, [esi + 0x2c]
mov ecx, ebx
push dword [esp + 0x1c]
call fcn.101ef000
mov edx, dword [esp + 0x1c]
add esp, 4
mov ecx, dword [esp + 0x3c]
mov eax, dword [esp + 0x20]
push esi
push edi
push eax
push ecx
mov ecx, ebx
call fcn.101faf20
add esp, 0x10
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [esi + 0x14]
mov dword [esp + 0x38], eax
test eax, eax
je 0x101fa620
mov ecx, dword [eax]
jmp 0x101fa622
xor ecx, ecx
mov eax, dword [ebx]
mov dword [esp + 0x28], ecx
mov dword [esp + 0x20], 0
mov dword [esp + 0x34], 0
mov al, byte [eax + 0x54]
mov byte [esp + 0x24], al
lea eax, [edi + 0x18]
mov dword [esp + 0x18], eax
mov eax, dword [eax]
and eax, 0x4001
mov dword [esp + 0x10], 0
test dword [esi + 4], 0x1000000
mov dword [esp + 0x44], eax
je 0x101fa66f
mov eax, dword [esi + 0x2c]
mov dword [esp + 0x1c], eax
cmp byte [eax + 0x10], 0xa6
jne 0x101fa675
xor edx, edx
mov dword [esp + 0x1c], edx
mov eax, dword [esi + 8]
mov edx, eax
push 0
push dword [esp + 0x28]
mov dword [esp + 0x48], eax
push ecx
mov ecx, dword [ebx]
call fcn.101e0150
mov ecx, eax
add esp, 0xc
mov dword [esp + 0x14], ecx
test ecx, ecx
jne 0x101fa6d2
mov edx, dword [esp + 0x40]
mov ecx, dword [ebx]
push eax
push dword [esp + 0x28]
push 0xfffffffffffffffe
call fcn.101e0150
mov ecx, eax
add esp, 0xc
mov dword [esp + 0x14], ecx
test ecx, ecx
jne 0x101fa6c5
mov dword [esp + 0x20], 1
jmp 0x101fa895
mov dword [esp + 0x34], 1
jmp 0x101fa895
xor eax, eax
cmp dword [ecx + 0x14], eax
setne al
test dword [ecx + 4], 0x400
mov dword [esp + 0x10], eax
je 0x101fa7a6
or dword [esi + 4], 0x80000
cmp dword [esp + 0x28], 2
jne 0x101fa790
mov eax, dword [esp + 0x38]
movsd xmm0, qword [0x102824e8]
movsd qword [esp + 0x28], xmm0
mov eax, dword [eax + 0x1c]
cmp byte [eax], 0x99
je 0x101fa71c
or eax, 0xffffffff
jmp 0x101fa775
mov eax, dword [eax + 8]
mov dword [esp + 0x40], eax
test eax, eax
jne 0x101fa72b
xor ecx, ecx
jmp 0x101fa743
mov ecx, eax
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x101fa730
mov eax, dword [esp + 0x40]
sub ecx, edx
and ecx, 0x3fffffff
push 1
push ecx
lea edx, [esp + 0x30]
mov ecx, eax
call fcn.10233260
movsd xmm0, qword [esp + 0x30]
add esp, 8
comisd xmm0, xmmword [0x10282298]
jbe 0x101fa769
or eax, 0xffffffff
jmp 0x101fa775
mulsd xmm0, qword [0x10282438]
cvttsd2si eax, xmm0
mov dword [esi + 0x1c], eax
test eax, eax
jns 0x101fa7a6
push esi
push str.second_argument_to__T___must_be_a_constant_between_0.0_and_1.0
push ebx
call fcn.102339b0
add esp, 0xc
inc dword [edi + 0x14]
jmp 0x101fa7a6
mov eax, dword [ecx + 0x20]
mov edx, 0x800000
mov ecx, 0x7800000
cmp byte [eax], 0x75
cmove ecx, edx
mov dword [esi + 0x1c], ecx
mov ecx, dword [esp + 0x14]
mov edx, 0x1f
push 0
push dword [ecx + 0x20]
mov ecx, ebx
push 0
call fcn.101e9b80
add esp, 0xc
test eax, eax
je 0x101fa7ea
cmp eax, 1
jne 0x101fa7db
push esi
push str.not_authorized_to_use_function:__T
push ebx
call fcn.102339b0
add esp, 0xc
inc dword [edi + 0x14]
mov byte [esi], 0x79
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx + 4]
test eax, 0x2800
je 0x101fa802
or dword [esi + 4], 0x100000
mov eax, dword [ecx + 4]
test eax, 0x800
jne 0x101fa82c
mov eax, dword [esp + 0x18]
test byte [eax], 0x2a
je 0x101fa846
push esi
push 0
push str.non_deterministic_functions
mov edx, edi
mov ecx, ebx
call fcn.101fadc0
mov ecx, dword [esp + 0x20]
add esp, 0xc
jmp 0x101fa846
mov edx, dword [esp + 0x18]
mov al, byte [edx]
and al, 0x2e
mov byte [esi + 2], al
test dword [edx], 0x40000
je 0x101fa846
or dword [esi + 4], 0x40000000
mov edx, dword [ecx + 4]
test edx, 0x40000
je 0x101fa86f
cmp byte [ebx + 0x12], 0
jne 0x101fa86f
mov eax, dword [ebx]
test byte [eax + 0x18], 0x20
jne 0x101fa86f
xor ecx, ecx
mov dword [esp + 0x20], 1
mov dword [esp + 0x14], ecx
jmp 0x101fa895
test edx, 0x280000
je 0x101fa895
cmp byte [ebx + 0xd0], 2
jae 0x101fa999
push ecx
mov edx, esi
mov ecx, ebx
call fcn.101f7df0
mov ecx, dword [esp + 0x18]
add esp, 4
cmp byte [ebx + 0xd0], 2
jae 0x101fa999
mov eax, dword [esp + 0x1c]
test ecx, ecx
je 0x101fa8bf
cmp dword [ecx + 0x18], 0
jne 0x101fa8bf
test eax, eax
je 0x101fa8bf
push esi
push str._T___may_not_be_used_as_a_window_function
jmp 0x101fa94f
mov edx, dword [esp + 0x10]
test edx, edx
je 0x101fa928
mov edx, dword [esp + 0x18]
mov edx, dword [edx]
test dl, 1
je 0x101fa8ed
test dword [ecx + 4], 0x10000
je 0x101fa8e1
test eax, eax
je 0x101fa8ed
jmp 0x101fa8e5
test eax, eax
je 0x101fa924
test edx, 0x4000
jne 0x101fa924
test dword [ecx + 4], 0x10000
jne 0x101fa8ff
test eax, eax
mov eax, str.aggregate
je 0x101fa904
mov eax, str.window
push esi
push eax
push str.misuse_of__s_function__T__
push ebx
call fcn.102339b0
add esp, 0x10
mov dword [esp + 0x10], 0
inc dword [edi + 0x14]
jmp 0x101fa9ad
mov edx, dword [esp + 0x10]
cmp dword [esp + 0x20], 0
je 0x101fa942
mov eax, dword [ebx]
cmp byte [eax + 0xb1], 0
jne 0x101fa942
push esi
push str.no_such_function:__T
jmp 0x101fa94f
cmp dword [esp + 0x34], 0
je 0x101fa978
push esi
push str.wrong_number_of_arguments_to_function__T__
push ebx
call fcn.102339b0
inc dword [edi + 0x14]
add esp, 0xc
cmp dword [esp + 0x10], 0
je 0x101fa9ad
mov ecx, dword [esp + 0x18]
xor eax, eax
cmp dword [esp + 0x1c], eax
setne al
add eax, 0xffffbffe
and dword [ecx], eax
jmp 0x101fa9ad
test edx, edx
jne 0x101fa962
test dword [esi + 4], 0x1000000
je 0x101fa9ad
push esi
push str.FILTER_may_not_be_used_with_non_aggregate__T__
push ebx
call fcn.102339b0
add esp, 0xc
inc dword [edi + 0x14]
jmp 0x101fa9ad
test dword [esi + 4], 0x1000000
mov eax, dword [esp + 0x10]
cmovne eax, dword [esp + 0x3c]
mov dword [esp + 0x10], eax
mov edx, dword [esp + 0x38]
mov ecx, dword [ebp + 8]
call fcn.101fc620
cmp dword [esp + 0x10], 0
je 0x101fab1a
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x101faa50
cmp byte [ebx + 0xd0], 2
mov esi, dword [edi + 0x1c]
jae 0x101faa03
test esi, esi
je 0x101fa9e5
mov edx, dword [esi + 0x48]
jmp 0x101fa9e7
xor edx, edx
mov ecx, dword [esp + 0x14]
push ecx
push eax
mov ecx, ebx
call fcn.101a6b50
mov eax, dword [ebx]
add esp, 8
cmp byte [eax + 0x57], 0
jne case.0x101fa479.28
mov ebx, dword [esp + 0x1c]
mov edi, dword [ebp + 8]
mov ecx, edi
mov edx, dword [ebx + 8]
call fcn.101fc620
mov edx, dword [ebx + 0xc]
mov ecx, edi
call fcn.101fc620
mov edx, dword [ebx + 0x28]
test edx, edx
je 0x101faa2c
mov ecx, edi
call fcn.101fc670
mov edx, ebx
mov ecx, esi
call fcn.101a5cb0
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x44]
or dword [eax], 0x8000
or dword [eax], ecx
mov eax, dword [esp + 0x3c]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
test dword [esi + 4], 0x1000000
mov byte [esi], 0xa8
mov byte [esi + 2], 0
je 0x101faa72
mov eax, dword [esi + 0x2c]
mov edx, dword [eax + 0x28]
test edx, edx
je 0x101faa72
mov ecx, dword [ebp + 8]
call fcn.101fc670
mov edx, dword [esi + 0x14]
lea eax, [esp + 0x48]
mov dword [esp + 0x78], eax
lea ecx, [esp + 0x60]
mov eax, dword [ebx]
xorps xmm0, xmm0
mov dword [esp + 0x48], eax
mov eax, dword [edi + 4]
mov dword [esp + 0x60], 0
movlpd qword [esp + 0x70], xmm0
movlpd qword [esp + 0x50], xmm0
movlpd qword [esp + 0x58], xmm0
mov dword [esp + 0x64], 0x101f0350
mov dword [esp + 0x68], 0x101f0430
mov dword [esp + 0x6c], 0x101f0400
mov dword [esp + 0x4c], eax
call fcn.101fc620
test dword [esi + 4], 0x1000000
je 0x101faae4
mov eax, dword [esi + 0x2c]
mov edx, dword [eax + 0x28]
test edx, edx
je 0x101faae4
lea ecx, [esp + 0x60]
call fcn.101fc670
mov edx, dword [esp + 0x58]
test edx, edx
je 0x101faaf3
mov ecx, dword [ebx]
call fcn.102371f0
test byte [esp + 0x74], 1
jne 0x101fab25
cmp word [esp + 0x74], 0
je 0x101fab25
inc byte [esi + 2]
mov edi, dword [edi + 0xc]
test edi, edi
jne 0x101faa72
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x44]
or dword [eax], ecx
mov eax, dword [esp + 0x3c]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
test ecx, ecx
je 0x101fab14
mov ecx, dword [ecx + 4]
xor ecx, 0xffffefff
and ecx, 0x8001000
or ecx, 0x10
or dword [edi + 0x18], ecx
mov ecx, dword [esp + 0x44]
or dword [eax], ecx
mov eax, dword [esp + 0x3c]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
test dword [esi + 4], 0x1000
je case.0x101fa479.28
test byte [edi + 0x18], 0x2e
mov edx, dword [edi + 0x10]
mov dword [esp + 0x44], edx
je 0x101fab86
push esi
push esi
push str.subqueries
mov edx, edi
mov ecx, ebx
call fcn.101fadc0
add esp, 0xc
jmp 0x101fab95
mov edx, dword [esi + 0x14]
test edx, edx
je 0x101fab95
mov ecx, dword [ebp + 8]
call fcn.101fc310
mov eax, dword [esp + 0x44]
cmp eax, dword [edi + 0x10]
je case.0x101fa479.28
or dword [esi + 4], 0x40
or dword [edi + 0x18], 0x40
mov eax, dword [ebx + 0x24]
neg eax
sbb eax, eax
and eax, 2
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
test byte [edi + 0x18], 0x2e
je case.0x101fa479.28
push esi
push esi
push str.parameters
mov edx, edi
mov ecx, ebx
call fcn.101fadc0
mov eax, dword [ebx + 0x24]
add esp, 0xc
neg eax
sbb eax, eax
and eax, 2
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [esi + 0x10]
call fcn.101f92c0
mov edi, eax
test edi, edi
je case.0x101fa479.22
mov al, byte [edi]
cmp al, 0x3b
je 0x101fac01
cmp al, 0xaa
jne case.0x101fa479.22
push edi
push edx
call fcn.101fa440
add esp, 8
cmp eax, 2
jne 0x101fac17
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp byte [edi], 0xaa
jne case.0x101fa479.22
mov al, byte [esi]
mov byte [esi + 2], al
xor eax, eax
mov byte [esi], 0xaf
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebx]
cmp byte [eax + 0x57], 0
jne case.0x101fa479.28
mov ecx, dword [esi + 0xc]
call fcn.101f8d60
cmp byte [esi], 0x30
mov edi, eax
jne 0x101fac58
mov edx, dword [esi + 0x14]
mov ecx, dword [edx + 8]
call fcn.101f8d60
cmp eax, edi
jne 0x101fac64
mov ecx, dword [edx + 0x1c]
jmp 0x101fac5b
mov ecx, dword [esi + 0x10]
call fcn.101f8d60
cmp edi, eax
je case.0x101fa479.28
push str.row_value_misused
push ebx
call fcn.102339b0
mov ecx, dword [ebx]
add esp, 8
mov edx, esi
call fcn.10234f20
mov eax, dword [ebx + 0x24]
neg eax
pop edi
sbb eax, eax
pop esi
and eax, 2
pop ebx
mov esp, ebp
pop ebp
ret