Function at 0x100228a5
Capabilities:
Inspect section memory permissions

Disassembly:
push ecx
mov edx, dword [esp + 0xc]
push ebx
push ebp
mov ebp, dword [esp + 0x18]
push esi
push edi
lea esi, [edx + 0x430]
lea ebx, [ebp + 0xc]
mov al, byte [ebx]
test al, 3
je 0x100228df
movzx eax, al
lea edi, [ebp + 0xc]
and eax, 3
mov ecx, dword [eax*8 + 0x1003e1f8]
or dword [esi], ecx
mov eax, dword [eax*8 + 0x1003e1fc]
or dword [esi + 4], eax
jmp 0x100228e1
mov edi, ebx
mov al, byte [ebx]
test al, 0xc
je 0x10022916
movzx ecx, al
shr ecx, 2
and ecx, 3
mov eax, dword [ecx*8 + 0x1003e218]
or dword [esi], eax
mov eax, dword [ecx*8 + 0x1003e21c]
lea ecx, [edx + 0x430]
or dword [esi + 4], eax
lea eax, [ebp + 0xc]
mov dword [esp + 0x20], ecx
mov dword [esp + 0x1c], eax
jmp 0x1002291e
mov dword [esp + 0x20], esi
mov dword [esp + 0x1c], edi
mov al, byte [ebx]
test al, 0x30
je 0x1002294a
movzx ecx, al
shr ecx, 4
and ecx, 3
mov eax, dword [ecx*8 + 0x1003e238]
or dword [esi], eax
mov eax, dword [ecx*8 + 0x1003e23c]
or dword [esi + 4], eax
mov esi, dword [esp + 0x20]
mov ecx, dword [esp + 0x1c]
jmp 0x1002294c
mov ecx, edi
mov eax, dword [edx + 0xc]
sub eax, 0
je 0x100229f9
sub eax, 1
je 0x10022965
sub eax, 1
je 0x10022965
sub eax, 1
test byte [edi], 0x40
je 0x10022dd1
mov eax, dword [esi]
xor ebp, ebp
mov edi, dword [esp + 0x18]
or eax, 0x40000
mov ecx, dword [esi + 4]
inc ebp
mov dword [esi], eax
mov dword [esi + 4], ecx
mov bl, byte [edi + 0xf]
test bl, bl
je 0x100229d9
movzx edi, bl
sub edi, 0x26
je 0x100229cb
sub edi, 8
je 0x100229c4
sub edi, 8
je 0x100229bd
sub edi, 8
je 0x100229b6
sub edi, 0x26
mov dword [esi], eax
mov edi, dword [esp + 0x18]
je 0x100229b2
or ecx, 2
jmp 0x100229d6
or ecx, ebp
jmp 0x100229d6
or eax, 0x40000000
jmp 0x100229d0
or eax, 0x20000000
jmp 0x100229d0
or eax, 0x10000000
jmp 0x100229d0
or eax, 0x80000000
mov edi, dword [esp + 0x18]
mov dword [esi], eax
mov dword [esi + 4], ecx
and eax, 0xf0000000
and ecx, 3
or eax, ecx
je 0x10022dd1
movzx eax, byte [edi + 0x16]
mov dword [edx + eax*8 + 0x4ec], ebp
jmp 0x10022dd1
cmp byte [ecx], 0
jge 0x10022a12
mov eax, dword [esi + 4]
lea edi, [edx + 0x430]
or dword [esi], 0x100
mov dword [esi + 4], eax
jmp 0x10022a14
mov edi, esi
lea ecx, [ebp + 0xd]
mov ebx, edi
test byte [ecx], 1
mov dword [esp + 0x20], ecx
je 0x10022a78
mov eax, dword [esi]
mov ebx, dword [esi + 4]
or eax, 0x200
mov dword [esi], eax
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x18]
mov dword [esi + 4], ebx
mov dword [esp + 0x10], ebx
mov ebx, edi
mov dword [esp + 0x20], ecx
cmp byte [eax + 0xc], 0
je 0x10022a78
mov ebx, dword [esp + 0x1c]
or ebx, 0x80000
mov dword [esi], ebx
mov ebx, dword [esp + 0x10]
mov dword [esi + 4], ebx
lea ebx, [edx + 0x430]
movzx eax, byte [eax + 0x11]
mov dword [edx + eax*8 + 0x4ec], 1
lea eax, [ebp + 0xd]
mov dword [esp + 0x20], eax
test byte [ecx], 2
je 0x10022a8f
mov eax, dword [edi + 4]
or dword [edi], 0x400
mov dword [edi + 4], eax
mov eax, dword [esp + 0x20]
jmp 0x10022a97
mov eax, ecx
mov ebx, edi
mov dword [esp + 0x20], eax
test byte [ecx], 4
je 0x10022abf
mov ecx, dword [edi]
lea esi, [edx + 0x430]
mov eax, dword [edi + 4]
or ecx, 0x800
mov dword [ebx], ecx
lea ecx, [ebp + 0xd]
mov dword [ebx + 4], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x1c], ecx
jmp 0x10022ac7
mov esi, ebx
mov dword [esp + 0x1c], eax
mov ecx, eax
test byte [eax], 8
je 0x10022ade
mov eax, dword [ebx + 4]
or dword [ebx], 0x1000
mov dword [ebx + 4], eax
mov eax, dword [esp + 0x20]
jmp 0x10022ae6
mov ecx, eax
mov esi, ebx
mov dword [esp + 0x1c], ecx
test byte [eax], 0x10
je 0x10022b07
mov ecx, dword [ebx]
lea edi, [edx + 0x430]
mov eax, dword [ebx + 4]
or ecx, 0x2000
mov dword [esi], ecx
mov ecx, dword [esp + 0x1c]
mov dword [esi + 4], eax
jmp 0x10022b09
mov edi, esi
test byte [ecx], 0x20
je 0x10022b1c
mov eax, dword [esi + 4]
or dword [esi], 0x4000
mov dword [esi + 4], eax
jmp 0x10022b1e
mov edi, esi
test byte [ecx], 0x40
je 0x10022b3b
mov ecx, dword [esi]
mov eax, dword [esi + 4]
or ecx, 0x8000
mov dword [edi], ecx
lea esi, [edx + 0x430]
mov dword [edi + 4], eax
jmp 0x10022b3d
mov esi, edi
test byte [ebp + 0xe], 1
je 0x10022b51
mov eax, dword [edi + 4]
or dword [edi], 0x10000
mov dword [edi + 4], eax
jmp 0x10022b53
mov esi, edi
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 0xd]
sub eax, 0xf2
je 0x10022bcf
sub eax, 1
jne 0x10022c36
mov ecx, dword [edi]
xor ebx, ebx
mov esi, dword [edi + 4]
mov eax, ecx
and eax, 0x400
or eax, ebx
je 0x10022b94
or ecx, 0x100000
mov dword [edx + 0x430], ecx
mov dword [edx + 0x434], esi
jmp 0x10022c38
mov eax, ecx
and eax, 0x800
or eax, ebx
je 0x10022ba7
or ecx, 0x200000
jmp 0x10022b83
mov eax, ecx
and eax, 0x8000
or eax, ebx
je 0x10022c38
mov eax, ecx
and eax, 0x80000
or eax, ebx
jne 0x10022bc7
test byte [ebp + 0xe], 1
je 0x10022c38
or ecx, 0x2000000
jmp 0x10022b83
mov ecx, dword [esi]
xor ebx, ebx
mov edi, dword [esi + 4]
mov eax, ecx
and eax, 0x1000
or eax, ebx
je 0x10022bee
or ecx, 0x400000
mov dword [esi], ecx
mov dword [esi + 4], edi
jmp 0x10022c38
mov eax, ecx
and eax, 0x4000
or eax, ebx
je 0x10022c10
mov eax, ecx
and eax, 0x80000
or eax, ebx
jne 0x10022c2e
test byte [ebp + 0xe], 1
jne 0x10022c2e
lea esi, [edx + 0x430]
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
cmp byte [eax + 0xb], bl
je 0x10022c38
mov eax, ecx
and eax, 0x2000
or eax, ebx
je 0x10022c38
or ecx, 0x800000
jmp 0x10022be7
or ecx, 0x1000000
jmp 0x10022be7
xor ebx, ebx
mov esi, dword [esp + 0x18]
movzx ecx, byte [esi + 0x12]
cmp dword [edx + ecx*8 + 0x4ec], ebx
jne 0x10022c64
mov eax, dword [edx + 0x430]
and eax, 0x3f00000
or eax, ebx
je 0x10022c64
xor ebx, ebx
inc ebx
mov dword [edx + ecx*8 + 0x4ec], ebx
jmp 0x10022c67
xor ebx, ebx
inc ebx
test byte [ebp + 0xe], 2
je 0x10022cbc
mov ecx, dword [edx + 0x430]
mov eax, ecx
mov edi, dword [edx + 0x434]
or eax, 0x20000
mov dword [edx + 0x430], eax
mov dword [edx + 0x434], edi
mov al, byte [esi + 0xe]
cmp al, 0x2e
je 0x10022c9f
cmp al, 0x3e
jne 0x10022cbc
or ecx, 0x8020000
jmp 0x10022ca5
or ecx, 0x4020000
mov dword [edx + 0x430], ecx
mov dword [edx + 0x434], edi
movzx eax, byte [esi + 0x13]
mov dword [edx + eax*8 + 0x4ec], ebx
cmp byte [ebp + 0xd], 0
jge 0x10022d0b
mov ecx, dword [edx + 0x434]
mov edi, dword [edx + 0x430]
or ecx, 0x800
mov dword [edx + 0x430], edi
mov dword [edx + 0x434], ecx
mov eax, dword [esi]
cmp byte [eax + 0xc], 0
je 0x10022d0b
cmp byte [esi + 0x18], 0
jl 0x10022d0b
or ecx, 0x1000
mov dword [edx + 0x430], edi
mov dword [edx + 0x434], ecx
movsx eax, byte [esi + 0x18]
mov dword [edx + eax*8 + 0x4ec], ebx
test byte [ebp + 0xc], 0x40
je 0x10022dd1
test byte [ebp + 0xe], 2
jne 0x10022dd1
mov edi, dword [edx + 0x430]
mov ebx, dword [edx + 0x434]
or edi, 0x40000
mov dword [edx + 0x430], edi
mov ecx, edi
mov dword [edx + 0x434], ebx
mov al, byte [esi + 0xf]
mov esi, ebx
mov byte [esp + 0x20], al
test al, al
je 0x10022db1
mov eax, ebx
xor ebp, ebp
and eax, 0x1000
or ebp, eax
jne 0x10022db1
movzx eax, byte [esp + 0x20]
sub eax, 0x26
je 0x10022d9f
sub eax, 8
je 0x10022d97
sub eax, 8
je 0x10022d8f
sub eax, 8
je 0x10022d87
mov dword [edx + 0x430], ecx
sub eax, 0x26
je 0x10022d82
or esi, 2
jmp 0x10022dab
or esi, 1
jmp 0x10022dab
or ecx, 0x40000000
jmp 0x10022da5
or ecx, 0x20000000
jmp 0x10022da5
or ecx, 0x10000000
jmp 0x10022da5
or ecx, 0x80000000
mov dword [edx + 0x430], ecx
mov dword [edx + 0x434], esi
and ecx, 0xf0000000
and esi, 3
or ecx, esi
je 0x10022dd1
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 0x16]
mov dword [edx + eax*8 + 0x4ec], 1
pop edi
pop esi
pop ebp
pop ebx
pop ecx
ret