Function at 0x4027cc
Capabilities:
Inspect section memory permissions

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0xc
push ebx
push esi
push edi
mov edi, dword [ebp + 8]
lea eax, [ebp - 4]
push eax
push 0x3fe32848
push edi
call fcn.0040355f
mov esi, dword [ebp + 0xc]
movzx eax, al
shl eax, 0x11
xor eax, dword [esi]
mov ebx, 0x101
and eax, 0x20000
xor dword [esi], eax
movzx eax, byte [ebp - 4]
push ebx
mov dword [esi + 0x434], eax
lea eax, [esi + 0x438]
push eax
push 0x3fe32814
push edi
call fcn.0040265f
movzx eax, al
shl eax, 0x12
xor eax, dword [esi]
push ebx
and eax, 0x40000
xor dword [esi], eax
lea eax, [esi + 0x63a]
push eax
push 0x3fe327dc
push edi
call fcn.0040265f
movzx eax, al
shl eax, 0x13
xor eax, dword [esi]
push ebx
and eax, 0x80000
xor dword [esi], eax
lea eax, [esi + 0x83c]
push eax
push 0x3fe32798
push edi
call fcn.0040265f
movzx eax, al
shl eax, 0x14
xor eax, dword [esi]
and eax, 0x100000
xor dword [esi], eax
lea eax, [ebp - 4]
push eax
push 0x3fe31940
push edi
call fcn.0040355f
movzx eax, al
shl eax, 5
xor eax, dword [esi + 4]
and eax, 0x20
xor dword [esi + 4], eax
movzx eax, byte [ebp - 4]
add eax, eax
xor eax, dword [esi + 8]
and eax, 2
xor dword [esi + 8], eax
lea eax, [ebp - 4]
push eax
push 0x3fe3276c
push edi
call fcn.0040355f
movzx eax, al
shl eax, 4
xor eax, dword [esi + 8]
and eax, 0x10
xor dword [esi + 8], eax
mov eax, dword [esi + 8]
test al, 0x10
jne 0x40650b
and eax, 0xffffffdf
mov dword [esi + 8], eax
lea eax, [ebp - 4]
push eax
push 0x3fe315dc
push edi
call fcn.0040355f
movzx eax, al
xor eax, dword [esi]
and eax, 1
xor dword [esi], eax
movzx eax, byte [ebp - 4]
shl eax, 0xb
xor eax, dword [esi + 4]
and eax, 0x800
xor dword [esi + 4], eax
lea eax, [ebp - 4]
push eax
push 0x3fe315c4
push edi
call fcn.0040355f
movzx eax, al
add eax, eax
xor eax, dword [esi]
and eax, 2
xor dword [esi], eax
movzx eax, byte [ebp - 4]
shl eax, 0xc
xor eax, dword [esi + 4]
and eax, 0x1000
xor dword [esi + 4], eax
lea eax, [ebp - 4]
push eax
push 0x3fe31610
push edi
call fcn.0040355f
movzx eax, al
shl eax, 2
xor eax, dword [esi]
and eax, 4
xor dword [esi], eax
movzx eax, byte [ebp - 4]
shl eax, 0xd
xor eax, dword [esi + 4]
and eax, 0x2000
xor dword [esi + 4], eax
lea eax, [ebp - 4]
push eax
push 0x3fe315f8
push edi
call fcn.0040355f
movzx eax, al
shl eax, 3
xor eax, dword [esi]
and eax, 8
xor dword [esi], eax
movzx eax, byte [ebp - 4]
shl eax, 0xe
xor eax, dword [esi + 4]
and eax, 0x4000
xor dword [esi + 4], eax
lea eax, [ebp - 4]
push eax
push 0x3fe31640
push edi
call fcn.0040355f
movzx eax, al
shl eax, 4
xor eax, dword [esi]
and eax, 0x10
xor dword [esi], eax
movzx eax, byte [ebp - 4]
shl eax, 0xf
xor eax, dword [esi + 4]
and eax, 0x8000
xor dword [esi + 4], eax
lea eax, [ebp - 4]
push eax
push 0x3fe316bc
push edi
call fcn.0040355f
movzx eax, al
shl eax, 5
xor eax, dword [esi]
and eax, 0x20
xor dword [esi], eax
movzx eax, byte [ebp - 4]
shl eax, 0x10
xor eax, dword [esi + 4]
and eax, 0x10000
xor dword [esi + 4], eax
lea eax, [ebp - 4]
push eax
push 0x3fe31550
push edi
call fcn.0040355f
movzx eax, al
shl eax, 6
xor eax, dword [esi]
and eax, 0x40
xor dword [esi], eax
mov eax, dword [ebp - 4]
mov dword [esi + 0x1c], eax
lea eax, [ebp - 4]
push eax
push 0x3fe314b0
push edi
call fcn.0040355f
movzx eax, al
shl eax, 7
xor eax, dword [esi]
and eax, 0x80
xor dword [esi], eax
mov al, byte [ebp - 4]
mov byte [esi + 0x24], al
lea eax, [ebp - 8]
push eax
push 0x3fe313c4
push edi
call fcn.0040355f
movzx eax, al
xor eax, dword [esi + 0x10]
and eax, 1
xor dword [esi + 0x10], eax
mov al, byte [ebp - 8]
mov byte [esi + 0xc], al
lea eax, [ebp - 8]
push eax
push 0x3fe3139c
push edi
call fcn.0040355f
movzx eax, al
xor eax, dword [esi + 0x18]
and eax, 1
xor dword [esi + 0x18], eax
mov al, byte [ebp - 8]
mov byte [esi + 0x14], al
lea eax, [ebp - 4]
push eax
push 0x3fe32740
push edi
call fcn.0040355f
movzx eax, al
shl eax, 9
xor eax, dword [esi]
and eax, 0x200
xor dword [esi], eax
movzx eax, byte [ebp - 4]
shl eax, 2
xor eax, dword [esi + 8]
and eax, 4
xor dword [esi + 8], eax
lea eax, [ebp - 4]
push eax
push 0x3fe3179c
push edi
call fcn.0040355f
movzx eax, al
shl eax, 7
xor eax, dword [esi + 4]
and eax, 0x80
xor dword [esi + 4], eax
mov eax, dword [ebp - 4]
mov dword [esi + 0x20], eax
lea eax, [ebp - 4]
push eax
push 0x3fe32704
push edi
call fcn.0040355f
mov ecx, dword [esi + 8]
movzx eax, al
shl eax, 9
xor eax, dword [esi + 4]
and ecx, 0xfffff7bf
and eax, 0x200
xor dword [esi + 4], eax
mov eax, dword [ebp - 4]
and eax, 1
shl eax, 0xb
or eax, ecx
lea ecx, [ebp + 0xb]
push ecx
push ebx
mov dword [esi + 8], eax
lea eax, [esi + 0x26]
push eax
push 0x3fe31444
push edi
call fcn.0040269e
xor ecx, ecx
test al, al
sete cl
mov eax, 0x400
shl ecx, 6
xor ecx, dword [esi + 8]
and ecx, 0x40
xor dword [esi + 8], ecx
movzx ecx, byte [ebp + 0xb]
shl ecx, 0xa
xor ecx, dword [esi]
and ecx, eax
xor dword [esi], ecx
test dword [esi], eax
jne 0x402b32
xor eax, eax
mov word [esi + 0x26], ax
push ebx
lea eax, [esi + 0x228]
push eax
push 0x3fe31480
push edi
call fcn.0040265f
movzx ecx, al
shl ecx, 0xb
xor ecx, dword [esi]
mov eax, 0x800
and ecx, eax
xor dword [esi], ecx
test dword [esi], eax
jne 0x402b63
xor eax, eax
mov word [esi + 0x228], ax
push 4
lea eax, [esi + 0x42a]
push eax
push 0x3fe31460
push edi
call fcn.0040265f
movzx eax, al
shl eax, 0xc
xor eax, dword [esi]
and eax, 0x1000
xor dword [esi], eax
cmp word [esi + 0x228], 0
jne 0x402b99
xor eax, eax
mov word [esi + 0x42a], ax
cmp word [esi + 0x22a], 0x3a
je 0x406521
push 0x401
lea eax, [esi + 0xe5c]
push eax
push 0x3fe326e4
push edi
call fcn.0040265f
movzx ecx, al
shl ecx, 8
xor ecx, dword [esi + 4]
mov eax, 0x100
and ecx, eax
xor dword [esi + 4], ecx
test dword [esi + 4], eax
jne 0x402bdf
xor eax, eax
mov word [esi + 0xe5c], ax
lea eax, [ebp - 4]
push eax
push 0x3fe3182c
push edi
call fcn.0040355f
movzx eax, al
shl eax, 0xd
xor eax, dword [esi]
and eax, 0x2000
xor dword [esi], eax
movzx eax, byte [ebp - 4]
shl eax, 0x14
xor eax, dword [esi + 4]
and eax, 0x100000
xor dword [esi + 4], eax
lea eax, [ebp - 4]
push eax
push 0x3fe326c0
push edi
call fcn.0040355f
movzx eax, al
shl eax, 0xe
xor eax, dword [esi]
and eax, 0x4000
xor dword [esi], eax
movzx eax, byte [ebp - 4]
shl eax, 0x15
xor eax, dword [esi + 4]
and eax, 0x200000
xor dword [esi + 4], eax
lea eax, [ebp - 4]
push eax
push 0x3fe32694
push edi
call fcn.0040355f
movzx eax, al
shl eax, 0xf
xor eax, dword [esi]
and eax, 0x8000
xor dword [esi], eax
movzx eax, byte [ebp - 4]
shl eax, 0x16
xor eax, dword [esi + 4]
and eax, 0x400000
xor dword [esi + 4], eax
lea eax, [ebp - 4]
push eax
push 0x3fe32664
push edi
call fcn.0040355f
mov ecx, dword [esi + 4]
movzx eax, al
shl eax, 0x16
xor eax, dword [esi]
and ecx, 0x7fffffff
and eax, 0x400000
xor dword [esi], eax
movzx eax, byte [ebp - 4]
shl eax, 0x1f
or eax, ecx
mov dword [esi + 4], eax
lea eax, [ebp - 4]
push eax
push 0x3fe32640
push edi
call fcn.0040355f
movzx eax, al
shl eax, 0x17
xor eax, dword [esi]
and eax, 0x800000
xor dword [esi], eax
movzx eax, byte [ebp - 4]
xor eax, dword [esi + 8]
and eax, 1
xor dword [esi + 8], eax
lea eax, [ebp - 4]
push eax
push 0x3fe315ac
push edi
call fcn.0040355f
movzx eax, al
shl eax, 0x10
xor eax, dword [esi]
and eax, 0x10000
xor dword [esi], eax
mov eax, dword [ebp - 4]
cmp eax, 1
jae 0x40652f
mov eax, dword [esi + 4]
and eax, 0xfff3ffff
or eax, 0x20000
mov dword [esi + 4], eax
lea eax, [ebp - 4]
push eax
push 0x3fe31594
push edi
call fcn.0040355f
movzx ecx, al
xor ecx, dword [esi + 0x1660]
xor eax, eax
inc eax
and ecx, eax
xor dword [esi + 0x1660], ecx
mov ecx, dword [ebp - 4]
cmp ecx, eax
jae 0x40655b
mov dword [esi + 0x1664], eax
lea eax, [ebp - 4]
push eax
push 0x3fe31574
push edi
call fcn.0040355f
test al, al
jne 0x406571
xor eax, eax
mov edx, dword [ebp - 4]
add eax, eax
xor eax, dword [esi + 0x1660]
and eax, 2
xor dword [esi + 0x1660], eax
mov eax, 0xc8
cmp edx, eax
jae 0x406590
mov dword [esi + 0x1668], eax
mov ecx, dword [ebp - 8]
cmp ecx, eax
jae 0x4065af
mov dword [esi + 0x166c], eax
lea eax, [ebp - 4]
push eax
push 0x3fe32614
push edi
call fcn.0040355f
movzx eax, al
shl eax, 0x18
xor eax, dword [esi]
and eax, 0x1000000
xor dword [esi], eax
movzx eax, byte [ebp - 4]
shl eax, 0x17
xor eax, dword [esi + 4]
and eax, 0x800000
xor dword [esi + 4], eax
lea eax, [ebp - 4]
push eax
push 0x3fe31628
push edi
call fcn.0040355f
movzx eax, al
shl eax, 0x19
xor eax, dword [esi]
and eax, 0x2000000
xor dword [esi], eax
movzx eax, byte [ebp - 4]
shl eax, 0x18
xor eax, dword [esi + 4]
and eax, 0x1000000
xor dword [esi + 4], eax
lea eax, [ebp - 4]
push eax
push 0x3fe31658
push edi
call fcn.0040355f
movzx eax, al
shl eax, 0x1a
xor eax, dword [esi]
and eax, 0x4000000
xor dword [esi], eax
movzx eax, byte [ebp - 4]
shl eax, 0x19
xor eax, dword [esi + 4]
and eax, 0x2000000
xor dword [esi + 4], eax
lea eax, [ebp - 4]
push eax
push 0x3fe31540
push edi
call fcn.0040355f
movzx eax, al
shl eax, 0x1b
xor eax, dword [esi]
and eax, 0x8000000
xor dword [esi], eax
mov eax, dword [ebp - 4]
mov dword [esi + 0xa48], eax
lea eax, [ebp - 4]
push eax
push 0x3fe325f0
push edi
call fcn.0040355f
movzx ecx, byte [ebp - 4]
movzx eax, al
shl eax, 0xa
xor eax, dword [esi + 4]
and eax, 0x400
xor dword [esi + 4], eax
lea eax, [esi + 0x1670]
xor ecx, dword [eax]
and ecx, 1
xor dword [eax], ecx
lea eax, [ebp - 4]
push eax
push 0x3fe316a0
push edi
call fcn.0040355f
movzx eax, al
shl eax, 0x1c
xor eax, dword [esi]
and eax, 0x10000000
xor dword [esi], eax
movzx eax, byte [ebp - 4]
shl eax, 0x1a
xor eax, dword [esi + 4]
and eax, 0x4000000
xor dword [esi + 4], eax
lea eax, [ebp - 4]
push eax
push 0x3fe31680
push edi
call fcn.0040355f
movzx eax, al
shl eax, 0x1d
xor eax, dword [esi]
and eax, 0x20000000
xor dword [esi], eax
movzx eax, byte [ebp - 4]
shl eax, 0x1b
xor eax, dword [esi + 4]
and eax, 0x8000000
xor dword [esi + 4], eax
lea eax, [ebp - 4]
push eax
push 0x3fe3151c
push edi
call fcn.0040355f
movzx eax, al
shl eax, 0x1e
xor eax, dword [esi]
and eax, 0x40000000
xor dword [esi], eax
mov eax, dword [ebp - 4]
mov dword [esi + 0xa4c], eax
lea eax, [ebp - 4]
push eax
push 0x3fe314f0
push edi
call fcn.0040355f
mov ecx, dword [esi]
movzx eax, al
shl eax, 0x1f
and ecx, 0x7fffffff
or eax, ecx
mov dword [esi], eax
mov eax, dword [ebp - 4]
mov dword [esi + 0xa50], eax
lea eax, [ebp - 4]
push eax
push 0x3fe314d8
push edi
call fcn.0040355f
movzx eax, al
xor eax, dword [esi + 4]
push ebx
and eax, 1
xor dword [esi + 4], eax
mov eax, dword [ebp - 4]
mov dword [esi + 0xa54], eax
lea eax, [esi + 0xc5a]
push eax
push 0x3fe31424
push edi
call fcn.0040265f
movzx eax, al
add eax, eax
xor eax, dword [esi + 4]
push ebx
and eax, 2
xor dword [esi + 4], eax
lea eax, [esi + 0xa58]
push eax
push 0x3fe31494
push edi
call fcn.0040265f
lea eax, [ebp - 4]
push eax
push 0x3fe325c4
push edi
call fcn.0040355f
movzx eax, al
xor ebx, ebx
mov ecx, dword [ebp - 4]
inc ebx
and ecx, ebx
and eax, ebx
shl ecx, 0x1a
or eax, ecx
mov ecx, dword [esi + 4]
shl eax, 2
and ecx, 0xeffffffb
or eax, ecx
mov dword [esi + 4], eax
lea eax, [ebp - 4]
push eax
push 0x3fe32584
push edi
call fcn.0040355f
movzx eax, al
shl eax, 0x15
xor eax, dword [esi]
and eax, 0x200000
xor dword [esi], eax
mov eax, dword [ebp - 4]
mov dword [esi + 0xa40], eax
lea eax, [ebp - 4]
push eax
push 0x3fe3190c
push edi
call fcn.0040355f
mov ecx, dword [ebp - 4]
movzx eax, al
and ecx, ebx
and eax, ebx
shl ecx, 0x1a
or eax, ecx
mov ecx, dword [esi + 4]
shl eax, 3
and ecx, 0xdffffff7
or eax, ecx
mov dword [esi + 4], eax
lea eax, [ebp - 4]
push eax
push 0x3fe32564
push edi
call fcn.0040355f
mov ecx, dword [ebp - 4]
movzx eax, al
and ecx, ebx
and eax, ebx
shl ecx, 0x1a
or eax, ecx
mov ecx, dword [esi + 4]
shl eax, 4
and ecx, 0xbfffffef
or eax, ecx
mov dword [esi + 4], eax
lea eax, [ebp - 4]
push eax
push 0x3fe32540
push edi
call fcn.0040355f
mov eax, dword [ebp - 4]
mov dword [esi + 0xa44], eax
lea eax, [ebp - 4]
push eax
push 0x3fe32510
push edi
call fcn.0040355f
movzx eax, al
shl eax, 6
xor eax, dword [esi + 4]
and eax, 0x40
xor dword [esi + 4], eax
mov eax, dword [ebp - 4]
shl eax, 3
xor eax, dword [esi + 8]
and eax, 8
xor dword [esi + 8], eax
lea eax, [ebp - 0xc]
push eax
push 0x20019
push 0
push 0x3fe31858
push 0x80000002
call dword [0x3fe310cc]
test eax, eax
jne 0x4065c7
lea eax, [ebp - 4]
push eax
push 0x3fe32500
push dword [ebp - 0xc]
call fcn.0040355f
mov eax, dword [ebp - 4]
push dword [ebp - 0xc]
shl eax, 8
xor eax, dword [esi]
and eax, 0x100
xor dword [esi], eax
call dword [0x3fe310c8]
lea eax, [ebp - 4]
push eax
push 0x3fe324c8
push edi
call fcn.0040355f
mov ecx, dword [esi + 8]
movzx eax, al
and eax, ebx
shl eax, 7
and ecx, 0xfffff87f
or eax, ecx
mov dword [esi + 8], eax
test al, al
js 0x4065ff
lea eax, [ebp - 4]
push eax
push 0x3fe31770
push edi
call fcn.0040355f
mov ecx, dword [ebp - 4]
movzx eax, al
and ecx, ebx
and eax, ebx
add ecx, ecx
or eax, ecx
mov ecx, dword [esi + 0x18]
add eax, eax
and ecx, 0xfffffff9
or eax, ecx
mov dword [esi + 0x18], eax
lea eax, [ebp - 4]
push eax
push 0x3fe3174c
push edi
call fcn.0040355f
mov ecx, dword [ebp - 4]
movzx eax, al
and ecx, ebx
and eax, ebx
add ecx, ecx
or eax, ecx
mov ecx, dword [esi + 0x18]
shl eax, 3
and ecx, 0xffffffe7
or eax, ecx
mov dword [esi + 0x18], eax
lea eax, [ebp - 4]
push eax
push 0x3fe318cc
push edi
call fcn.0040355f
mov ecx, dword [ebp - 4]
movzx eax, al
and ecx, 7
and eax, ebx
add ecx, ecx
or eax, ecx
mov ecx, dword [esi + 0x18]
shl eax, 5
and ecx, 0xfffffe1f
or eax, ecx
mov dword [esi + 0x18], eax
lea eax, [ebp - 4]
push eax
push 0x3fe313e0
push edi
call fcn.0040355f
mov ecx, dword [ebp - 4]
movzx eax, al
and ecx, ebx
and eax, ebx
add ecx, ecx
or eax, ecx
mov ecx, dword [esi + 0x18]
shl eax, 9
and ecx, 0xfffff9ff
or eax, ecx
pop edi
mov dword [esi + 0x18], eax
pop esi
pop ebx
leave
ret 8
movzx ecx, byte [ebp - 4]
shl ecx, 5
xor ecx, eax
and ecx, 0x20
xor ecx, eax
mov dword [esi + 8], ecx
jmp 0x4028cc
xor eax, eax
mov word [esi + 0x42a], ax
jmp 0x402ba7
cmp eax, 0x3e7
jne 0x406548
mov eax, dword [esi + 4]
and eax, 0xfffbffff
or eax, 0xa0000
jmp 0x402d04
shl eax, 0x11
xor eax, dword [esi + 4]
and eax, 0xe0000
xor dword [esi + 4], eax
jmp 0x402d07
push 0x10
pop eax
cmp ecx, eax
ja 0x402d35
mov dword [esi + 0x1664], ecx
jmp 0x402d3b
lea eax, [ebp - 8]
push eax
push 0x3fe36248
push edi
call fcn.0040355f
test al, al
je 0x402d52
xor eax, eax
inc eax
jmp 0x402d54
mov ecx, 0x1000
cmp edx, ecx
jbe 0x4065a4
mov dword [esi + 0x1668], ecx
jmp 0x402d7b
mov dword [esi + 0x1668], edx
jmp 0x402d7b
mov eax, 0x800
cmp ecx, eax
ja 0x402d86
mov dword [esi + 0x166c], ecx
jmp 0x402d8c
lea eax, [ebp - 0xc]
push eax
push 0x20019
push 0
push 0x3fe36698
push 0x80000002
call dword [0x3fe310cc]
test eax, eax
jne 0x4065f4
lea eax, [ebp - 4]
push eax
push 0x3fe35980
jmp 0x4030a5
and dword [esi], 0xfffffeff
jmp 0x4030c5
lea eax, [ebp - 4]
push eax
push 0x3fe35950
push edi
call fcn.0040355f
test al, al
je 0x4030f2
mov eax, dword [ebp - 4]
cmp eax, 4
jbe 0x406621
push 4
pop eax
shl eax, 8
xor eax, dword [esi + 8]
and eax, 0x700
xor dword [esi + 8], eax
jmp 0x4030f2