Function at 0x40bdb0
Capabilities:
Inspect section memory permissions

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1c
push ebx
mov ebx, dword [ebp + 8]
mov eax, ecx
mov dword [ebp - 8], eax
push esi
mov esi, edx
push edi
test eax, eax
jne 0x40bdde
push 0xf03
push 0x49ec40
push str.state
call fcn.00421bb2
add esp, 0xc
test esi, esi
jne 0x40bdf9
push 0xf04
push 0x49ec40
push str.instruction
call fcn.00421bb2
add esp, 0xc
test ebx, ebx
jne 0x40be14
push 0xf05
push 0x49ec40
push str.definition
call fcn.00421bb2
add esp, 0xc
mov al, byte [ebx + 0xc]
test al, 0x60
je 0x40be5a
and al, 0x60
cmp al, 0x80
jb 0x40be38
push 0xf10
push 0x49ec40
push str.definition__cpu_state____sizeof_mapping____sizeof__mapping__0___
call fcn.00421bb2
add esp, 0xc
movzx eax, byte [ebx + 0xc]
lea edi, [esi + 0x20]
shr eax, 5
and eax, 3
mov ecx, dword [eax*8 + 0x476448]
or dword [edi], ecx
mov eax, dword [eax*8 + 0x47644c]
or dword [edi + 4], eax
jmp 0x40be5d
lea edi, [esi + 0x20]
test byte [ebx + 0xd], 3
lea eax, [ebx + 0xd]
mov dword [ebp - 0xc], eax
je 0x40be88
movzx ecx, byte [eax]
and ecx, 3
mov dword [ebp - 0xc], eax
mov eax, dword [ecx*8 + 0x48bee8]
or dword [edi], eax
mov eax, dword [ecx*8 + 0x48beec]
or dword [edi + 4], eax
lea eax, [ebx + 0xd]
mov cl, byte [eax]
mov edx, edi
test cl, 0xc
je 0x40bed5
and cl, 0xc
cmp cl, 0x10
jb case.default.0x40bed8
push 0xf2a
push 0x49ec40
push str.definition__xmm_state____sizeof_mapping____sizeof__mapping__0___
call fcn.00421bb2
mov eax, dword [ebp - 0xc]
lea edx, [esi + 0x20]
add esp, 0xc
movzx ecx, byte [eax]
shr ecx, 2
and ecx, 3
mov dword [ebp - 0xc], eax
mov eax, dword [ecx*8 + 0x49e7e0]
or dword [edi], eax
mov eax, dword [ecx*8 + 0x49e7e4]
or dword [edi + 4], eax
mov eax, dword [esi + 0xc]
jmp dword [eax*4 + 0x40c380]
mov ecx, dword [ebp - 0xc]
test byte [ecx], 0x20
je 0x40bf08
mov eax, dword [edi + 4]
mov ecx, dword [edi]
mov dword [edx + 4], eax
or ecx, 0x100
lea eax, [ebx + 0xd]
mov dword [edx], ecx
mov ecx, dword [ebp - 0xc]
mov dword [ebp - 0x14], eax
lea eax, [esi + 0x20]
mov dword [ebp - 0x10], eax
jmp 0x40bf10
mov dword [ebp - 0x14], ecx
mov eax, edx
mov dword [ebp - 0x10], edx
test byte [ecx], 0x40
mov edi, eax
je 0x40bf63
mov ebx, dword [edx]
mov edi, dword [edx + 4]
or ebx, 0x10000
mov dword [edx], ebx
mov dword [ebp - 0xc], ebx
mov ebx, dword [ebp - 8]
mov dword [edx + 4], edi
mov dword [ebp - 0x18], edi
mov edi, eax
cmp byte [ebx + 0x10], 0
mov ebx, dword [ebp + 8]
je 0x40bf63
mov eax, dword [ebp - 0xc]
lea edi, [esi + 0x20]
mov ecx, dword [ebp - 0x14]
or eax, 0x8000000
mov dword [edx], eax
mov eax, dword [ebp - 0x18]
mov dword [edx + 4], eax
mov eax, dword [ebp - 8]
movzx eax, byte [eax + 0x15]
mov dword [esi + eax*8 + 0x6c], 1
mov eax, dword [ebp - 0x10]
cmp byte [ecx], 0
jge 0x40bf7b
mov ecx, dword [ebp - 0x10]
or dword [eax], 0x20000
mov eax, dword [eax + 4]
mov dword [ecx + 4], eax
mov eax, ecx
jmp 0x40bf7d
mov edi, eax
test byte [ebx + 0xe], 1
lea ecx, [ebx + 0xe]
je 0x40bf9e
mov ecx, dword [eax]
lea edx, [esi + 0x20]
mov eax, dword [eax + 4]
or ecx, 0x40000
mov dword [edi], ecx
lea ecx, [ebx + 0xe]
mov dword [edi + 4], eax
jmp 0x40bfa0
mov edx, edi
test byte [ebx + 0xe], 2
lea eax, [ebx + 0xe]
mov dword [ebp - 0x10], ecx
je 0x40bfbd
mov eax, dword [edi + 4]
or dword [edi], 0x80000
mov dword [edi + 4], eax
lea eax, [ebx + 0xe]
jmp 0x40bfc4
mov ecx, eax
mov edx, edi
mov dword [ebp - 0x10], ecx
test byte [eax], 4
je 0x40bfe7
mov ecx, dword [edi]
mov eax, dword [edi + 4]
or ecx, 0x100000
mov dword [edx + 4], eax
lea edi, [esi + 0x20]
lea eax, [ebx + 0xe]
mov dword [edx], ecx
mov ecx, dword [ebp - 0x10]
mov dword [ebp - 0xc], eax
jmp 0x40bfec
mov edi, edx
mov dword [ebp - 0xc], ecx
test byte [ecx], 8
je 0x40bfff
mov eax, dword [edx + 4]
or dword [edx], 0x200000
mov dword [edx + 4], eax
jmp 0x40c004
mov edi, edx
mov dword [ebp - 0xc], ecx
test byte [ecx], 0x10
je 0x40c01e
mov ecx, dword [edx]
mov eax, dword [edx + 4]
or ecx, 0x400000
mov dword [edi], ecx
lea edx, [esi + 0x20]
mov dword [edi + 4], eax
jmp 0x40c020
mov edx, edi
mov eax, dword [ebp - 0xc]
test byte [eax], 0x40
je 0x40c036
mov eax, dword [edi + 4]
or dword [edi], 0x800000
mov dword [edi + 4], eax
jmp 0x40c038
mov edx, edi
mov eax, dword [ebp - 8]
movzx eax, byte [eax + 0x11]
sub eax, 0xf2
je 0x40c0ca
sub eax, 1
jne 0x40c149
mov ecx, dword [edi]
mov eax, ecx
mov edi, dword [edi + 4]
and eax, 0x20000
or eax, 0
je 0x40c075
or ecx, 0x10000000
mov dword [esi + 0x24], edi
mov dword [esi + 0x20], ecx
jmp 0x40c149
mov eax, ecx
and eax, 0x40000
or eax, 0
je 0x40c092
or ecx, 0x20000000
mov dword [esi + 0x24], edi
mov dword [esi + 0x20], ecx
jmp 0x40c149
mov eax, ecx
and eax, 0x400000
or eax, 0
je 0x40c149
mov eax, ecx
and eax, 0x8000000
or eax, 0
jne 0x40c0bc
test byte [ebx + 0xe], 0x40
jne 0x40c0bc
lea edx, [esi + 0x20]
jmp 0x40c149
or edi, 2
mov dword [esi + 0x20], ecx
mov dword [esi + 0x24], edi
lea edx, [esi + 0x20]
jmp 0x40c149
mov ecx, dword [edx]
mov eax, ecx
mov edi, dword [edx + 4]
and eax, 0x80000
or eax, 0
mov dword [ebp - 0x14], edi
je 0x40c0eb
or ecx, 0x40000000
mov dword [edx + 4], edi
mov dword [edx], ecx
jmp 0x40c149
mov eax, ecx
and eax, 0x200000
or eax, 0
je 0x40c122
mov eax, ecx
mov dword [ebp - 0x18], edx
and eax, 0x8000000
or eax, 0
jne 0x40c1c0
test byte [ebx + 0xe], 0x40
je 0x40c11f
or edi, 1
mov dword [edx], ecx
lea eax, [esi + 0x20]
mov dword [edx + 4], edi
mov edx, eax
jmp 0x40c149
lea edx, [esi + 0x20]
mov eax, dword [ebp - 8]
mov edi, edx
mov eax, dword [eax]
cmp byte [eax + 0xb], 0
je 0x40c149
mov eax, ecx
and eax, 0x100000
or eax, 0
je 0x40c149
mov eax, dword [ebp - 0x14]
or ecx, 0x80000000
mov dword [edi], ecx
mov dword [edi + 4], eax
mov edi, dword [ebp - 8]
movzx eax, byte [edi + 0x16]
cmp dword [esi + eax*8 + 0x6c], 0
lea edi, [esi + eax*8]
jne 0x40c177
mov ecx, dword [esi + 0x20]
lea edx, [esi + 0x20]
mov eax, dword [edx + 4]
and ecx, 0xf0000000
and eax, 3
or ecx, eax
je 0x40c177
mov dword [edi + 0x6c], 1
cmp byte [ebx + 0xe], 0
mov ecx, edx
jge 0x40c1ee
mov edi, dword [edx]
mov eax, edi
mov ecx, dword [edx + 4]
or eax, 0x1000000
mov dword [edx], eax
mov eax, dword [ebp - 8]
mov dword [edx + 4], ecx
mov dword [ebp - 0x18], ecx
mov bl, byte [eax + 0x12]
mov byte [ebp - 1], bl
cmp bl, 0x2e
mov ebx, dword [ebp + 8]
je 0x40c1d2
cmp byte [ebp - 1], 0x3e
mov ecx, edx
jne 0x40c1f1
mov ecx, dword [ebp - 0x18]
or edi, 0x1000000
or ecx, 8
mov dword [edx + 4], ecx
lea ecx, [esi + 0x20]
jmp 0x40c1e0
mov eax, dword [ebp - 0x18]
or edi, 1
mov dword [edx], ecx
mov dword [edx + 4], edi
mov edx, eax
jmp 0x40c149
or edi, 0x1000000
or ecx, 4
mov dword [edx + 4], ecx
mov ecx, edx
mov dword [edx], edi
movzx eax, byte [eax + 0x17]
mov dword [esi + eax*8 + 0x6c], 1
mov eax, dword [ebp - 8]
test byte [ebx + 0xe], 0x20
mov edi, ecx
je 0x40c247
mov edi, dword [edx]
or edi, 0x2000000
mov dword [ebp - 0x14], edi
mov edi, dword [edx + 4]
mov ebx, dword [ebp - 0x14]
mov dword [edx], ebx
mov ebx, dword [ebp + 8]
mov dword [edx + 4], edi
mov eax, dword [eax]
mov edx, dword [ebp - 8]
mov dword [ebp - 0x18], edi
mov edi, ecx
cmp byte [eax + 0xc], 0
je 0x40c24a
cmp byte [edx + 0x1c], 0
jl 0x40c24a
mov eax, dword [ebp - 0x18]
mov edi, dword [ebp - 0x14]
or eax, 0x10
mov dword [ecx], edi
lea edi, [esi + 0x20]
mov dword [ecx + 4], eax
movsx eax, byte [edx + 0x1c]
mov dword [esi + eax*8 + 0x6c], 1
jmp 0x40c24a
mov edx, dword [ebp - 8]
test byte [ebx + 0xd], 0x10
je 0x40c377
cmp byte [ebx + 0xe], 0
jl 0x40c377
mov ebx, dword [ecx]
mov eax, dword [ecx + 4]
or ebx, 0x4000000
mov dword [ecx], ebx
mov dword [ecx + 4], eax
mov cl, byte [edx + 0x13]
mov edx, eax
mov dword [ebp - 0xc], eax
mov byte [ebp + 0xb], cl
test cl, cl
je 0x40c2d9
mov ecx, eax
xor eax, eax
and ecx, 0x10
or eax, ecx
jne 0x40c2d9
movzx eax, byte [ebp + 0xb]
movzx eax, byte [eax + 0x40c38e]
jmp dword [eax*4 + 0x40c398]
mov edx, dword [ebp - 0xc]
or edx, 0x20
jmp 0x40c2d4
mov edx, dword [ebp - 0xc]
or edx, 0x40
jmp 0x40c2d4
mov edx, dword [ebp - 0xc]
or edx, 0x80
jmp 0x40c2d4
mov edx, dword [ebp - 0xc]
or edx, 0x100
jmp 0x40c2d4
mov edx, dword [ebp - 0xc]
or edx, 0x200
jmp 0x40c2d4
mov edx, dword [ebp - 0xc]
or edx, 0x400
mov dword [edi + 4], edx
mov dword [edi], ebx
and edx, 0x7e0
xor eax, eax
or eax, edx
je 0x40c377
mov eax, dword [ebp - 8]
pop edi
movzx eax, byte [eax + 0x1a]
mov dword [esi + eax*8 + 0x6c], 1
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 0xc]
test byte [eax], 0x10
je 0x40c377
mov edi, dword [edx]
mov ebx, dword [ebp - 8]
or edi, 0x4000000
mov ecx, dword [edx + 4]
mov dword [edx], edi
mov dword [edx + 4], ecx
mov al, byte [ebx + 0x13]
test al, al
je 0x40c35f
movzx eax, al
movzx eax, byte [eax + 0x40c3ea]
jmp dword [eax*4 + 0x40c3f4]
and ecx, 0x7e0
xor eax, eax
or eax, ecx
je 0x40c377
movzx eax, byte [ebx + 0x1a]
mov dword [esi + eax*8 + 0x6c], 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret