Function at 0x47a940
Capabilities:
Inspect section memory permissions

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x64
mov eax, dword [0x8d3fc4]
xor eax, esp
mov dword [esp + 0x60], eax
mov edx, dword [ebp + 8]
push ebx
push esi
mov esi, dword [ebp + 0xc]
push edi
mov edi, dword [edx + 0x18]
mov dword [esp + 0x28], edx
mov cl, byte [esi]
movzx eax, cl
mov ebx, dword [edi]
mov dword [esp + 0x20], 1
cmp eax, 0x3b
ja 0x47aa8e
je 0x47afb8
cmp eax, 0x31
ja 0x47a9e2
je 0x47b05b
cmp eax, 0x14
je 0x47b05b
cmp eax, 0x2d
je 0x47af21
cmp eax, 0x30
jne 0x47b0bf
mov eax, dword [ebx]
cmp byte [eax + 0x57], 0
jne 0x47b0bf
mov ecx, dword [esi + 0xc]
call fcn.0047c0f9
cmp byte [esi], 0x30
mov edi, eax
jne 0x47af6b
mov edx, dword [esi + 0x14]
mov ecx, dword [edx + 8]
call fcn.0047c0f9
cmp eax, edi
jne 0x47af7b
mov ecx, dword [edx + 0x1c]
jmp 0x47af6e
cmp eax, 0x33
jbe 0x47a9f1
cmp eax, 0x39
jbe 0x47a9a8
jmp 0x47b0bf
xor ecx, ecx
mov edx, edi
cmp ecx, 8
jge 0x47aa09
mov eax, dword [edx + 0x10]
mov edx, dword [edx + 0xc]
mov dword [esp + ecx*4 + 0x4c], eax
inc ecx
test edx, edx
jne 0x47a9f5
mov ecx, dword [esi + 0xc]
test ecx, ecx
je 0x47aa1e
mov edx, ecx
mov ecx, dword [esp + 0x28]
call fcn.004798ac
mov ecx, dword [esi + 0xc]
call fcn.0047dca3
test eax, eax
jne 0x47af18
cmp byte [ebx + 0xd4], 2
jae 0x47af18
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
cmp ecx, 8
jge 0x47aa77
mov eax, dword [esp + ecx*4 + 0x4c]
inc ecx
mov dword [edi + 0x10], eax
mov edi, dword [edi + 0xc]
test edi, edi
jne 0x47aa63
mov edx, dword [esi + 0xc]
test edx, edx
je 0x47aa85
mov ecx, dword [ebx]
call fcn.0047cbeb
and dword [esi + 0xc], 0
jmp 0x47af18
sub eax, 0x4b
je 0x47b0a5
sub eax, 0x3f
je 0x47b05b
sub eax, 3
je 0x47afb8
sub eax, 0xf
je 0x47af96
sub eax, 0xf
je 0x47af21
sub eax, 1
jne 0x47b0bf
mov eax, dword [esi + 0x14]
xor ecx, ecx
mov dword [esp + 0x24], eax
test eax, eax
je 0x47aad9
mov edx, dword [eax]
mov dword [esp + 0x30], edx
jmp 0x47aadf
mov edx, ecx
mov dword [esp + 0x30], ecx
mov eax, dword [ebx]
mov dword [esp + 0x38], ecx
mov dword [esp + 0x34], ecx
mov dword [esp + 0x10], ecx
mov al, byte [eax + 0x54]
mov byte [esp + 0x2c], al
lea eax, [edi + 0x18]
mov dword [esp + 0x18], eax
mov eax, dword [eax]
and eax, 0x4001
test dword [esi + 4], 0x1000000
mov dword [esp + 0x3c], eax
je 0x47ab1c
mov eax, dword [esi + 0x2c]
mov dword [esp + 0x1c], eax
cmp byte [eax + 0x10], 0xa6
jne 0x47ab20
mov dword [esp + 0x1c], ecx
mov eax, dword [esi + 8]
push ecx
push dword [esp + 0x30]
mov ecx, dword [ebx]
push edx
mov edx, eax
mov dword [esp + 0x4c], eax
call fcn.0048c984
add esp, 0xc
mov dword [esp + 0x14], eax
test eax, eax
jne 0x47ab76
mov edx, dword [esp + 0x40]
mov ecx, dword [ebx]
push eax
push dword [esp + 0x30]
push 0xfffffffffffffffe
call fcn.0048c984
mov edx, dword [esp + 0x2c]
mov ecx, eax
add esp, 0xc
mov dword [esp + 0x14], ecx
test ecx, ecx
jne 0x47ab6d
mov dword [esp + 0x38], edx
jmp 0x47ad0f
mov dword [esp + 0x34], edx
jmp 0x47ad0f
xor ecx, ecx
cmp dword [eax + 0x14], ecx
setne cl
test dword [eax + 4], 0x400
mov dword [esp + 0x10], ecx
je 0x47ac29
or dword [esi + 4], 0x80000
cmp dword [esp + 0x30], 2
jne 0x47ac13
mov eax, dword [esp + 0x24]
movsd xmm0, qword [0x865eb0]
movsd qword [esp + 0x40], xmm0
mov eax, dword [eax + 0x1c]
cmp byte [eax], 0x99
je 0x47abbc
or eax, 0xffffffff
jmp 0x47abf8
mov ecx, dword [eax + 8]
push 1
call fcn.00453a51
push eax
mov eax, dword [esp + 0x2c]
lea edx, [esp + 0x48]
mov ecx, dword [eax + 0x1c]
mov ecx, dword [ecx + 8]
call fcn.00453dba
movsd xmm0, qword [esp + 0x48]
comisd xmm0, xmmword [0x865d98]
pop ecx
pop ecx
ja 0x47abb7
mulsd xmm0, qword [0x865e18]
cvttsd2si eax, xmm0
mov dword [esi + 0x1c], eax
test eax, eax
jns 0x47ac29
push esi
push str.second_argument_to__T___must_be_a_constant_between_0.0_and_1.0
push ebx
call fcn.00453b99
add esp, 0xc
inc dword [edi + 0x14]
jmp 0x47ac29
mov eax, dword [eax + 0x20]
mov ecx, 0x7800000
mov edx, 0x800000
cmp byte [eax], 0x75
cmove ecx, edx
mov dword [esi + 0x1c], ecx
mov ecx, dword [esp + 0x14]
xor eax, eax
push eax
push dword [ecx + 0x20]
mov ecx, ebx
push eax
push 0x1f
pop edx
call fcn.00486715
add esp, 0xc
test eax, eax
je 0x47ac67
cmp eax, 1
jne 0x47ac5c
push esi
push str.not_authorized_to_use_function:__T
push ebx
call fcn.00453b99
add esp, 0xc
inc dword [edi + 0x14]
xor eax, eax
mov byte [esi], 0x79
inc eax
jmp 0x47b0c9
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx + 4]
test eax, 0x2800
je 0x47ac7f
or dword [esi + 4], 0x100000
mov eax, dword [ecx + 4]
test eax, 0x800
jne 0x47aca9
mov eax, dword [esp + 0x18]
test byte [eax], 0x2a
je 0x47acc3
push esi
push 0
push str.non_deterministic_functions
mov edx, edi
mov ecx, ebx
call fcn.0047a8e1
mov ecx, dword [esp + 0x20]
add esp, 0xc
jmp 0x47acc3
mov edx, dword [esp + 0x18]
mov al, byte [edx]
and al, 0x2e
mov byte [esi + 2], al
test dword [edx], 0x40000
je 0x47acc3
or dword [esi + 4], 0x40000000
test dword [ecx + 4], 0x40000
je 0x47acea
cmp byte [ebx + 0x12], 0
jne 0x47acea
mov eax, dword [ebx]
test byte [eax + 0x18], 0x20
jne 0x47acea
mov edx, dword [esp + 0x20]
xor ecx, ecx
mov dword [esp + 0x38], edx
mov dword [esp + 0x14], ecx
jmp 0x47ad0f
test dword [ecx + 4], 0x280000
je 0x47ad0b
cmp byte [ebx + 0xd4], 2
jae 0x47ad0b
push ecx
mov edx, esi
mov ecx, ebx
call fcn.0047ca6b
pop ecx
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x20]
cmp byte [ebx + 0xd4], 2
jae 0x47ae0c
mov eax, dword [esp + 0x1c]
test ecx, ecx
je 0x47ad39
cmp dword [ecx + 0x18], 0
jne 0x47ad39
test eax, eax
je 0x47ad39
push esi
push str._T___may_not_be_used_as_a_window_function
jmp 0x47adc2
mov edx, dword [esp + 0x10]
test edx, edx
je 0x47ad9b
mov edx, dword [esp + 0x18]
test byte [edx], 1
je 0x47ad63
test dword [ecx + 4], 0x10000
je 0x47ad57
test eax, eax
je 0x47ad75
test eax, eax
je 0x47ad97
test dword [edx], 0x4000
jne 0x47ad97
test dword [ecx + 4], 0x10000
jne 0x47ad75
test eax, eax
mov eax, str.aggregate
je 0x47ad7a
mov eax, str.window
push esi
push eax
push str.misuse_of__s_function__T__
push ebx
call fcn.00453b99
add esp, 0x10
inc dword [edi + 0x14]
and dword [esp + 0x10], 0
jmp 0x47ae1e
mov edx, dword [esp + 0x10]
cmp dword [esp + 0x38], 0
je 0x47adb5
mov eax, dword [ebx]
cmp byte [eax + 0xb1], 0
jne 0x47adb5
push esi
push str.no_such_function:__T
jmp 0x47adc2
cmp dword [esp + 0x34], 0
je 0x47adeb
push esi
push str.wrong_number_of_arguments_to_function__T__
push ebx
call fcn.00453b99
add esp, 0xc
inc dword [edi + 0x14]
cmp dword [esp + 0x10], 0
je 0x47ae1e
mov ecx, dword [esp + 0x18]
xor eax, eax
cmp dword [esp + 0x1c], eax
setne al
add eax, 0xffffbffe
and dword [ecx], eax
jmp 0x47ae1e
test edx, edx
jne 0x47add5
test dword [esi + 4], 0x1000000
je 0x47ae1e
push esi
push str.FILTER_may_not_be_used_with_non_aggregate__T__
push ebx
call fcn.00453b99
add esp, 0xc
inc dword [edi + 0x14]
jmp 0x47ae1e
test dword [esi + 4], 0x1000000
mov eax, dword [esp + 0x10]
cmovne eax, edx
mov dword [esp + 0x10], eax
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x28]
call fcn.0047993c
cmp dword [esp + 0x10], 0
je 0x47af18
mov edx, dword [esp + 0x1c]
test edx, edx
je 0x47aeb1
cmp byte [ebx + 0xd4], 2
mov esi, dword [edi + 0x1c]
jae 0x47ae72
test esi, esi
je 0x47ae53
mov eax, dword [esi + 0x48]
jmp 0x47ae55
xor eax, eax
mov ecx, dword [esp + 0x14]
push ecx
push edx
mov edx, eax
mov ecx, ebx
call fcn.004b323b
mov eax, dword [ebx]
pop ecx
pop ecx
cmp byte [eax + 0x57], 0
jne 0x47b0bf
mov ebx, dword [esp + 0x1c]
mov edi, dword [esp + 0x28]
mov ecx, edi
mov edx, dword [ebx + 8]
call fcn.0047993c
mov edx, dword [ebx + 0xc]
mov ecx, edi
call fcn.0047993c
mov edx, dword [ebx + 0x28]
test edx, edx
je 0x47ae9c
mov ecx, edi
call fcn.004798ac
mov edx, ebx
mov ecx, esi
call fcn.004b3f87
mov eax, dword [esp + 0x18]
or dword [eax], 0x8000
jmp 0x47af12
test dword [esi + 4], 0x1000000
mov byte [esi], 0xa8
mov byte [esi + 2], 0
je 0x47aed4
mov eax, dword [esi + 0x2c]
mov edx, dword [eax + 0x28]
test edx, edx
je 0x47aed4
mov ecx, dword [esp + 0x28]
call fcn.004798ac
push dword [edi + 4]
mov edx, esi
mov ecx, ebx
call fcn.00481a4b
pop ecx
test eax, eax
jne 0x47aeef
inc byte [esi + 2]
mov edi, dword [edi + 0xc]
test edi, edi
jne 0x47aed4
test edi, edi
je 0x47af0e
mov ecx, dword [esp + 0x14]
test ecx, ecx
je 0x47af0e
mov eax, dword [ecx + 4]
xor eax, 0xffffefff
and eax, 0x8001000
or eax, 0x10
or dword [edi + 0x18], eax
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x3c]
or dword [eax], ecx
mov eax, dword [esp + 0x20]
jmp 0x47b0c9
mov ecx, dword [esi + 0x10]
call fcn.0047be3b
mov edi, eax
test edi, edi
je 0x47a9a8
mov al, byte [edi]
cmp al, 0x3b
je 0x47af41
cmp al, 0xaa
jne 0x47a9a8
push edi
push edx
call fcn.0047a940
pop ecx
pop ecx
cmp eax, 2
je 0x47b0c9
cmp byte [edi], 0xaa
jne 0x47a9a8
mov al, byte [esi]
mov byte [esi + 2], al
xor eax, eax
mov byte [esi], 0xaf
jmp 0x47b0c9
mov ecx, dword [esi + 0x10]
call fcn.0047c0f9
cmp edi, eax
je 0x47b0bf
push str.row_value_misused
push ebx
call fcn.00453b99
pop ecx
pop ecx
mov ecx, dword [ebx]
mov edx, esi
call fcn.00452889
jmp 0x47b0bf
test byte [edi + 0x18], 0x2e
je 0x47b0bf
push esi
push esi
push str.parameters
mov edx, edi
mov ecx, ebx
call fcn.0047a8e1
add esp, 0xc
jmp 0x47b0bf
xor eax, eax
cmp cl, 0x3b
jne 0x47afc9
mov ecx, dword [esi + 8]
mov edx, eax
jmp 0x47b049
test byte [edi + 0x18], 0x28
mov edx, dword [esi + 0xc]
mov dword [esp + 0x24], edx
je 0x47afef
push esi
push eax
push str.the__.__operator
mov edx, edi
mov ecx, ebx
call fcn.0047a8e1
mov edx, dword [esp + 0x30]
add esp, 0xc
xor eax, eax
mov ecx, dword [esi + 0x10]
cmp byte [ecx], 0x3b
je 0x47b004
mov eax, dword [edx + 8]
mov edx, dword [ecx + 0xc]
mov ecx, dword [ecx + 0x10]
mov dword [esp + 0x24], edx
cmp byte [ebx + 0xd4], 2
mov edx, dword [edx + 8]
mov dword [esp + 0x30], edx
mov edx, dword [ecx + 8]
mov dword [esp + 0x2c], edx
mov edx, dword [esp + 0x30]
mov dword [esp + 0x34], eax
jb 0x47b045
push ecx
mov edx, esi
mov ecx, ebx
call fcn.0048294f
pop ecx
push dword [esp + 0x24]
lea edx, [esi + 0x2c]
mov ecx, ebx
call fcn.0048294f
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x34]
pop ecx
mov ecx, dword [esp + 0x2c]
push esi
push edi
push ecx
push edx
mov edx, eax
mov ecx, ebx
call fcn.00479d63
add esp, 0x10
jmp 0x47b0c9
test dword [esi + 4], 0x1000
je 0x47b0bf
test byte [edi + 0x18], 0x2e
mov eax, dword [edi + 0x10]
mov dword [esp + 0x3c], eax
je 0x47b086
push esi
push esi
push str.subqueries
mov edx, edi
mov ecx, ebx
call fcn.0047a8e1
add esp, 0xc
jmp 0x47b092
mov edx, dword [esi + 0x14]
mov ecx, dword [esp + 0x28]
call fcn.00479a16
mov eax, dword [esp + 0x3c]
cmp eax, dword [edi + 0x10]
je 0x47b0bf
or dword [esi + 4], 0x40
or dword [edi + 0x18], 0x40
jmp 0x47b0bf
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
mov ecx, dword [esp + 0x6c]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.00700c25
mov esp, ebp
pop ebp
ret