Function at 0x5c0cef
Capabilities:
Inspect section memory permissions

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x30
mov eax, dword [ebp + 8]
push ebx
add eax, 0xfffffffc
cmp eax, 0x2e
push esi
mov esi, ecx
ja case.default.0x5c0d10
movzx eax, byte [eax + 0x5c15f7]
push edi
jmp dword [eax*4 + 0x5c157b]
lea eax, [ebp - 0xc]
lea edi, [esi + 0x24]
push eax
mov ecx, edi
call fcn.005c2d6d
lea eax, [ebp + 8]
push eax
mov ecx, edi
call fcn.005c2d6d
mov eax, dword [ebp + 8]
mov ecx, eax
or ecx, dword [ebp - 0xc]
test ecx, 0xffffff00
je 0x5c0d52
push str.invalid_version
push esi
call fcn.005bf7a9
pop ecx
pop ecx
jmp case.0x5c0d10.34
and dword [esi + 0xac], 0
or eax, 0xfffffe00
shl eax, 8
or eax, dword [ebp - 0xc]
mov dword [esi + 0xb4], eax
mov eax, dword [esi + 0x1d0]
mov dword [esi + 0x3dc], eax
jmp case.0x5c0d10.34
lea eax, [ebp - 0xc]
lea edi, [esi + 0x24]
push eax
mov ecx, edi
call fcn.005c2d6d
lea eax, [ebp + 8]
push eax
mov ecx, edi
call fcn.005c2d6d
mov eax, dword [ebp + 8]
mov edx, eax
or edx, dword [ebp - 0xc]
mov ecx, 0xffffff00
test ecx, edx
jne 0x5c0d40
mov dword [esi + 0xac], 1
or eax, ecx
jmp 0x5c0d5e
lea eax, [ebp + 8]
push eax
lea ecx, [esi + 0x44]
call fcn.005c2d6d
lea eax, [ebp - 0x24]
lea edi, [esi + 0x34]
push eax
mov ecx, edi
call fcn.005c2d6d
lea eax, [ebp - 0x28]
push eax
mov ecx, edi
call fcn.005c2d6d
lea eax, [ebp - 0x2c]
push eax
mov ecx, edi
call fcn.005c2d6d
lea eax, [ebp - 0x30]
push eax
mov ecx, edi
call fcn.005c2d6d
lea eax, [ebp - 0x30]
push eax
push dword [ebp + 8]
mov ecx, esi
call fcn.005c04e1
jmp case.0x5c0d10.34
lea eax, [ebp - 0x18]
lea edi, [esi + 0x54]
push eax
mov ecx, edi
call fcn.005c2d6d
lea eax, [ebp - 8]
push eax
mov ecx, edi
call fcn.005c2d6d
push dword [ebp - 8]
lea ecx, [esi + 0x74]
call fcn.005c2cff
add dword [esi + 0xa0], 4
jmp case.0x5c0d10.34
lea eax, [ebp + 8]
push eax
lea ecx, [esi + 0x44]
call fcn.005c2d6d
lea eax, [ebp - 0x18]
lea edi, [esi + 0x54]
push eax
mov ecx, edi
call fcn.005c2d6d
lea eax, [ebp - 8]
push eax
mov ecx, edi
call fcn.005c2d6d
push dword [ebp - 8]
lea edi, [esi + 0x74]
mov ecx, edi
call fcn.005c2cff
mov eax, dword [ebp - 0x18]
or eax, dword [ebp + 8]
mov ecx, edi
push eax
call fcn.005c2cff
add dword [esi + 0xa0], 8
jmp case.0x5c0d10.34
lea eax, [ebp - 0xc]
lea edi, [esi + 0x44]
push eax
mov ecx, edi
call fcn.005c2d6d
lea eax, [ebp + 8]
push eax
mov ecx, edi
call fcn.005c2d6d
lea eax, [ebp - 0x18]
lea edi, [esi + 0x54]
push eax
mov ecx, edi
call fcn.005c2d6d
lea eax, [ebp - 8]
push eax
mov ecx, edi
call fcn.005c2d6d
push dword [ebp - 8]
lea edi, [esi + 0x74]
mov ecx, edi
call fcn.005c2cff
mov eax, dword [ebp - 0x18]
or eax, dword [ebp + 8]
mov ecx, edi
push eax
call fcn.005c2cff
push dword [ebp - 0xc]
mov ecx, edi
call fcn.005c2cff
add dword [esi + 0xa0], 0xc
jmp case.0x5c0d10.34
lea eax, [ebp - 0x1c]
lea edi, [esi + 0x44]
push eax
mov ecx, edi
call fcn.005c2d6d
lea eax, [ebp - 0xc]
push eax
mov ecx, edi
call fcn.005c2d6d
lea eax, [ebp + 8]
push eax
mov ecx, edi
call fcn.005c2d6d
lea eax, [ebp - 0x18]
lea edi, [esi + 0x54]
push eax
mov ecx, edi
call fcn.005c2d6d
lea eax, [ebp - 8]
push eax
mov ecx, edi
call fcn.005c2d6d
cmp dword [esi + 0xac], 0
jne 0x5c0f48
mov eax, dword [ebp - 8]
and eax, 0xffff
cmp eax, 3
jne 0x5c0f48
mov eax, dword [ebp - 8]
and eax, 0xffff0002
or eax, 2
xor dword [ebp - 0x1c], 0x1000000
mov dword [ebp - 8], eax
push dword [ebp - 8]
lea edi, [esi + 0x74]
mov ecx, edi
call fcn.005c2cff
mov eax, dword [ebp - 0x18]
or eax, dword [ebp + 8]
mov ecx, edi
push eax
call fcn.005c2cff
push dword [ebp - 0xc]
mov ecx, edi
call fcn.005c2cff
push dword [ebp - 0x1c]
mov ecx, edi
call fcn.005c2cff
add dword [esi + 0xa0], 0x10
jmp case.0x5c0d10.34
lea eax, [ebp - 0x20]
lea edi, [esi + 0x44]
push eax
mov ecx, edi
call fcn.005c2d6d
lea eax, [ebp - 0x1c]
push eax
mov ecx, edi
call fcn.005c2d6d
lea eax, [ebp - 0xc]
push eax
mov ecx, edi
call fcn.005c2d6d
lea eax, [ebp + 8]
push eax
mov ecx, edi
call fcn.005c2d6d
lea eax, [ebp - 0x18]
lea edi, [esi + 0x54]
push eax
mov ecx, edi
call fcn.005c2d6d
lea eax, [ebp - 8]
push eax
mov ecx, edi
call fcn.005c2d6d
push dword [ebp - 8]
lea edi, [esi + 0x74]
mov ecx, edi
call fcn.005c2cff
mov eax, dword [ebp - 0x18]
or eax, dword [ebp + 8]
mov ecx, edi
push eax
call fcn.005c2cff
push dword [ebp - 0xc]
mov ecx, edi
call fcn.005c2cff
push dword [ebp - 0x1c]
mov ecx, edi
call fcn.005c2cff
push dword [ebp - 0x20]
mov ecx, edi
call fcn.005c2cff
add dword [esi + 0xa0], 0x14
jmp case.0x5c0d10.34
lea eax, [ebp + 8]
lea edi, [esi + 0x44]
push eax
mov ecx, edi
call fcn.005c2d6d
or byte [ebp + 0xa], 0xf
push dword [ebp + 8]
jmp 0x5c1346
lea eax, [ebp - 0x10]
push eax
mov ecx, esi
call fcn.005c2d6d
lea eax, [esi + 0x3e4]
push eax
lea ecx, [esi + 0x14]
call fcn.005c2d6d
lea eax, [ebp + 8]
lea edi, [esi + 0x44]
push eax
mov ecx, edi
mov dword [esi + 0x3e0], 1
call fcn.005c2d6d
push dword [ebp - 0x10]
mov ecx, esi
call fcn.005bfff6
mov ecx, dword [ebp + 8]
and ecx, 0xfff0ffff
or eax, ecx
mov dword [ebp + 8], eax
push eax
mov ecx, edi
call fcn.005c2cff
push dword [ebp - 0x10]
call fcn.0045ba36
and dword [esi + 0x3e0], 0
pop ecx
jmp case.0x5c0d10.34
lea eax, [ebp + 8]
lea edi, [esi + 0x44]
push eax
mov ecx, edi
call fcn.005c2d6d
push dword [ebp + 8]
mov ecx, edi
call fcn.005c2cff
cmp dword [esi + 0xb4], 0xffff0104
jne case.0x5c0d10.34
mov eax, dword [ebp + 8]
and eax, 0x70000000
cmp eax, 0x20000000
jne case.0x5c0d10.34
test byte [ebp + 0xb], 0xf
je case.0x5c0d10.34
push str.constant_modifiers_not_supported_in_ps.1.4
jmp 0x5c0d45
lea eax, [ebp + 8]
lea edi, [esi + 0x44]
push eax
mov ecx, edi
call fcn.005c2d6d
cmp dword [esi + 0xb4], 0xffff0104
mov ecx, dword [ebp + 8]
jne 0x5c111d
mov eax, ecx
and eax, 0x70000000
cmp eax, 0x20000000
jne 0x5c111d
push str.constant_modifiers_not_supported_in_ps.1.4
push esi
call fcn.005bf7a9
pop ecx
pop ecx
jmp 0x5c1022
mov eax, ecx
and eax, 0xf000000
je 0x5c117e
cmp eax, 0x2000000
je 0x5c1170
cmp eax, 0x4000000
je 0x5c1162
cmp eax, 0x7000000
je 0x5c1154
cmp eax, 0x9000000
je 0x5c114d
cmp eax, 0xa000000
jne 0x5c1022
push str.negate_and_divide_modifiers_cannot_be_combined
jmp 0x5c1110
and ecx, 0xf8ffffff
or ecx, 0x8000000
jmp 0x5c118a
and ecx, 0xf5ffffff
or ecx, 0x5000000
jmp 0x5c118a
and ecx, 0xf3ffffff
or ecx, 0x3000000
jmp 0x5c118a
and ecx, 0xf1ffffff
or ecx, 0x1000000
mov dword [ebp + 8], ecx
jmp 0x5c1022
lea eax, [ebp - 4]
push eax
lea ecx, [esi + 0x24]
call fcn.005c2d6d
lea eax, [ebp + 8]
lea edi, [esi + 0x44]
push eax
mov ecx, edi
call fcn.005c2d6d
cmp dword [esi + 0xac], 0
jne 0x5c11bc
push str.complement_not_supported_in_vertex_shaders
jmp 0x5c11e9
cmp dword [esi + 0xb4], 0xffff0104
jne 0x5c11de
mov eax, dword [ebp + 8]
and eax, 0x70000000
cmp eax, 0x20000000
jne 0x5c11de
push str.constant_modifiers_not_supported_in_ps.1.4
jmp 0x5c11e9
test byte [ebp + 0xb], 0xf
je 0x5c11f1
push str.complement_cannot_be_used_with_other_modifiers
push esi
call fcn.005bf7a9
pop ecx
pop ecx
mov eax, dword [ebp + 8]
and eax, 0xf6ffffff
or eax, 0x6000000
mov dword [ebp + 8], eax
push eax
jmp 0x5c1346
lea eax, [ebp + 8]
lea edi, [esi + 0x44]
push eax
mov ecx, edi
call fcn.005c2d6d
mov eax, dword [ebp + 8]
and eax, 0xffe4ffff
or eax, 0xe40000
jmp 0x5c1201
lea eax, [ebp - 0x10]
push eax
mov ecx, esi
call fcn.005c2d6d
lea eax, [esi + 0x3e4]
push eax
lea ecx, [esi + 0x14]
call fcn.005c2d6d
lea eax, [ebp + 8]
lea edi, [esi + 0x44]
push eax
mov ecx, edi
mov dword [esi + 0x3e0], 1
call fcn.005c2d6d
push dword [ebp - 0x10]
mov ecx, esi
call fcn.005c009f
mov ecx, dword [ebp + 8]
and ecx, 0xff00ffff
or eax, ecx
jmp 0x5c1074
lea eax, [ebp - 0x10]
push eax
mov ecx, esi
call fcn.005c2d6d
lea eax, [esi + 0x3e4]
push eax
lea ecx, [esi + 0x14]
call fcn.005c2d6d
xor edi, edi
push edi
push edi
push dword [ebp - 0x10]
mov ecx, esi
mov dword [esi + 0x3e0], 1
call fcn.005c0140
or eax, 0x80000000
push eax
lea ecx, [esi + 0x44]
call fcn.005c2cff
push dword [ebp - 0x10]
call fcn.0045ba36
pop ecx
mov dword [esi + 0x3e0], edi
jmp case.0x5c0d10.34
lea eax, [ebp - 0x10]
push eax
mov ecx, esi
call fcn.005c2d6d
lea eax, [esi + 0x3e4]
push eax
lea ecx, [esi + 0x14]
call fcn.005c2d6d
xor ebx, ebx
lea eax, [ebp - 4]
lea edi, [esi + 0x44]
inc ebx
push eax
mov ecx, edi
mov dword [esi + 0x3e0], ebx
call fcn.005c2d6d
push ebx
push dword [ebp - 4]
mov ecx, esi
push dword [ebp - 0x10]
call fcn.005c0140
or eax, 0x80000000
jmp 0x5c1074
lea eax, [ebp - 4]
lea edi, [esi + 0x44]
push eax
mov ecx, edi
call fcn.005c2d6d
cmp dword [esi + 0xac], 0
je 0x5c132b
push str.syntax_error
jmp 0x5c1339
cmp dword [ebp - 4], 0xb0000000
je 0x5c1341
push str.illegal_register_in_index_expression
push esi
call fcn.005bf7a9
pop ecx
pop ecx
push 0x2000
mov ecx, edi
jmp 0x5c1515
lea eax, [ebp - 4]
push eax
lea ecx, [esi + 0x24]
call fcn.005c2d6d
test dword [ebp - 4], 0xffffe000
je 0x5c136f
push str.illegal_register_number
push esi
call fcn.005bf7a9
pop ecx
pop ecx
push dword [ebp - 4]
lea ecx, [esi + 0x44]
jmp 0x5c1515
lea eax, [ebp + 8]
lea ebx, [esi + 0x44]
push eax
mov ecx, ebx
call fcn.005c2d6d
lea eax, [ebp - 4]
push eax
mov ecx, ebx
call fcn.005c2d6d
cmp dword [esi + 0xac], 0
mov edi, 0x2000
je 0x5c13a8
push str.syntax_error
jmp 0x5c13c2
cmp dword [ebp - 4], 0xb0000000
je 0x5c13b8
push str.illegal_register_in_index_expression
jmp 0x5c13c2
test dword [ebp + 8], edi
je 0x5c13ca
push str.a0.x_can_only_appear_once_in_an_index_expression
push esi
call fcn.005bf7a9
pop ecx
pop ecx
mov eax, dword [ebp + 8]
or eax, edi
push eax
jmp 0x5c141c
lea eax, [ebp - 4]
push eax
lea ecx, [esi + 0x24]
call fcn.005c2d6d
lea eax, [ebp + 8]
lea ebx, [esi + 0x44]
push eax
mov ecx, ebx
call fcn.005c2d6d
mov eax, dword [ebp + 8]
mov edi, 0x1fff
and eax, edi
add eax, dword [ebp - 4]
test eax, 0xffffe000
je 0x5c140d
push str.illegal_register_number
push esi
call fcn.005bf7a9
pop ecx
pop ecx
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 4]
add ecx, eax
xor ecx, eax
and ecx, edi
xor ecx, eax
push ecx
mov ecx, ebx
jmp 0x5c1515
push dword [esi + 0x1c8]
lea edi, [esi + 0x54]
mov ecx, edi
call fcn.005c2cff
push dword [esi + 0x1cc]
mov ecx, edi
call fcn.005c2cff
mov ecx, esi
call fcn.005c0660
jmp case.0x5c0d10.34
cmp dword [esi + 0xac], 0
jne 0x5c1462
push str.coissue_not_supported_in_vertex_shaders
push esi
call fcn.005bf7a9
pop ecx
pop ecx
mov eax, dword [esi + 0x1c8]
or eax, 0x40000000
push eax
jmp 0x5c1429
lea eax, [ebp - 4]
push eax
lea ecx, [esi + 0x24]
call fcn.005c2d6d
fild dword [ebp - 4]
mov eax, dword [ebp - 4]
test eax, eax
jge 0x5c14ac
fadd dword [0x657460]
jmp 0x5c14ac
lea eax, [ebp - 4]
push eax
lea ecx, [esi + 0x24]
call fcn.005c2d6d
fild dword [ebp - 4]
mov eax, dword [ebp - 4]
test eax, eax
jge 0x5c14aa
fadd dword [0x657460]
fchs
fstp dword [ebp - 0x14]
jmp 0x5c150f
lea eax, [ebp - 0x14]
lea edi, [esi + 0x34]
push eax
mov ecx, edi
call fcn.005c2d6d
fld dword [ebp - 0x14]
fchs
mov ecx, edi
fstp dword [ebp - 0x14]
jmp 0x5c1512
lea eax, [esi + 0xc8]
push eax
mov ecx, esi
call fcn.005c2ded
push dword [esi + 0x1d0]
lea ecx, [esi + 0x14]
jmp 0x5c1515
lea eax, [esi + 0xc8]
push eax
call fcn.005b68ea
pop ecx
push eax
lea ecx, [esi + 0x24]
jmp 0x5c1515
lea eax, [ebp - 0x14]
push eax
lea eax, [esi + 0xc8]
push 0x62f5c0
push eax
call fcn.005a998a
add esp, 0xc
lea ecx, [esi + 0x34]
push dword [ebp - 0x14]
call fcn.005c2cff
pop edi
mov ecx, esi
call fcn.005c2da1
test eax, eax
jl 0x5c1562
lea ecx, [esi + 0x14]
call fcn.005c2da1
test eax, eax
jl 0x5c1562
lea ecx, [esi + 0x24]
call fcn.005c2da1
test eax, eax
jl 0x5c1562
lea ecx, [esi + 0x44]
call fcn.005c2da1
test eax, eax
jl 0x5c1562
lea ecx, [esi + 0x74]
call fcn.005c2da1
test eax, eax
jl 0x5c1562
lea ecx, [esi + 0x34]
call fcn.005c2da1
test eax, eax
jge 0x5c1575
push 0x3bb
push str.Internal_assembler_error___d
push esi
call fcn.005bf7a9
add esp, 0xc
pop esi
pop ebx
leave
ret 4