Function at 0x51c7fc
Capabilities:
Inspect section memory permissions

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffe0
push ebx
push esi
push edi
xor edi, edi
mov ebx, dword [ebp + 8]
mov esi, dword [ebx + 0x14]
mov eax, dword [ebx + 4]
add esi, dword [ebx + 0x18]
test byte [eax + 9], 0x80
je 0x51c81e
mov edi, 1
push 0x20000002
mov eax, dword [0x6a7054]
push eax
call fcn.0053ae14
add esp, 8
test al, al
je 0x51c837
xor edi, edi
and dword [ebx + 8], 0xfbff
mov eax, dword [ebx + 4]
cmp esi, dword [eax + 0x28]
jbe 0x51c84d
or dword [ebx + 8], 0x400
test byte [ebx + 8], 6
jne 0x51c878
cmp byte [ebx + 0x3a], 5
je 0x51c878
cmp byte [ebx + 0x3a], 3
je 0x51c878
cmp byte [ebx + 0x3a], 0xd
je 0x51c878
cmp byte [ebx + 0x3a], 0xc
je 0x51c878
cmp byte [ebx + 0x3a], 0x10
je 0x51c878
or dword [ebx + 8], 0x200000
mov dl, byte [ebx + 0x39]
push edx
call fcn.0051d004
pop ecx
test al, al
je 0x51c88f
or dword [ebx + 8], 0x80000
jmp 0x51c8cd
mov eax, dword [ebx + 8]
test al, 2
je 0x51c8a3
mov edx, dword [ebx + 4]
test byte [edx + 8], 0x20
je 0x51c8a3
test al, 4
je 0x51c8cd
mov al, byte [ebx + 0x39]
cmp al, 1
je 0x51c8c6
cmp al, 4
je 0x51c8c6
cmp al, 6
je 0x51c8c6
cmp al, 0xe
je 0x51c8c6
cmp al, 0xb
je 0x51c8c6
cmp al, 0xc
je 0x51c8c6
cmp al, 0x65
je 0x51c8c6
cmp al, 7
jne 0x51c8cd
or dword [ebx + 8], 0x40000
push 0x30000008
mov edx, dword [0x6a7054]
push edx
call fcn.0053ae14
add esp, 8
test al, al
je 0x51c933
test byte [ebx + 0xa], 4
jne 0x51c933
test byte [ebx + 8], 2
je 0x51c933
mov al, byte [ebx + 0x39]
cmp al, 1
je 0x51c92c
cmp al, 0x11
je 0x51c92c
cmp al, 4
je 0x51c92c
cmp al, 0x14
je 0x51c92c
cmp al, 6
je 0x51c92c
cmp al, 0x16
je 0x51c92c
cmp al, 0xe
je 0x51c92c
cmp al, 0x1e
je 0x51c92c
cmp al, 0xb
je 0x51c92c
cmp al, 0x1b
je 0x51c92c
cmp al, 0xc
je 0x51c92c
cmp al, 0x1c
je 0x51c92c
cmp al, 7
je 0x51c92c
cmp al, 0x17
jne 0x51c933
or dword [ebx + 8], 0x40000
mov al, byte [ebx + 0x3a]
cmp al, 5
je 0x51c95a
cmp al, 3
je 0x51c95a
cmp al, 8
je 0x51c95a
or dword [ebx + 8], 0x2000000
cmp byte [ebx + 0x3a], 0x10
je 0x51c95a
test edi, edi
jne 0x51c95a
or dword [ebx + 8], 0x1000000
mov al, byte [ebx + 0x3a]
cmp al, 8
je 0x51c96c
cmp al, 0x10
je 0x51c96c
or dword [ebx + 8], 0x80000000
mov edx, dword [ebx + 4]
cmp esi, dword [edx + 0x2c]
jbe 0x51c99e
push ebx
call fcn.004be9f0
pop ecx
push eax
push str._s_extends_beyond_bound_n
push 4
mov ecx, dword [0x680974]
push ecx
call fcn.004adf9c
add esp, 0x10
and dword [ebx + 8], 0xfeffffff
jmp 0x51cc77
test byte [ebx + 8], 4
je 0x51c9cd
mov eax, dword [ebx + 4]
cmp dword [eax + 0x24], 0
je 0x51c9cd
mov edx, dword [ebx + 4]
mov eax, dword [edx + 0x24]
mov esi, dword [eax + 0x14]
add esi, dword [eax + 0x18]
mov eax, dword [ebx + 4]
cmp esi, dword [eax + 0x2c]
jbe 0x51c9cd
and dword [ebx + 8], 0xfdffffff
jmp 0x51cc77
cmp byte [ebx + 0x3a], 0x11
jne 0x51c9ef
test edi, edi
jne 0x51c9e3
or dword [ebx + 8], 0x29000000
jmp 0x51cc77
or dword [ebx + 8], 0x1000000
jmp 0x51cc77
cmp byte [ebx + 0x3a], 8
jne 0x51ca01
or dword [ebx + 8], 0x40000000
jmp 0x51cc77
cmp byte [ebx + 0x3a], 0x10
je 0x51cf35
test byte [ebx + 8], 8
je 0x51ca36
or dword [ebx + 8], 0x41000000
cmp byte [ebx + 0x3a], 7
jne 0x51cc77
test edi, edi
jne 0x51cc77
or dword [ebx + 8], 0x20000000
jmp 0x51cc77
xor edx, edx
mov dl, byte [ebx + 0x3a]
cmp edx, 0x12
ja case.0x51ca4a.0
mov dl, byte [edx + 0x51ca51]
jmp dword [edx*4 + 0x51ca64]
test edi, edi
jne 0x51ca8f
or dword [ebx + 8], 0x28000000
push 0x80000008
push 0
push 0
push ebx
call fcn.00519834
add esp, 0x10
test eax, eax
jne 0x51cc47
or dword [ebx + 8], 0x2000000
jmp 0x51cc47
test byte [ebx + 8], 4
jne 0x51cad1
push 0
mov ecx, dword [ebx + 4]
push ecx
call fcn.0051905c
add esp, 8
cmp al, 0xff
je 0x51cc47
mov eax, dword [ebx + 4]
mov edx, dword [eax + 0x2c]
cmp edx, dword [ebx + 0x14]
jbe 0x51cc47
or dword [ebx + 8], 0x4000000
jmp 0x51cc47
mov al, byte [ebx + 0x39]
cmp al, 0xb
je 0x51caff
cmp al, 0xc
je 0x51caff
cmp al, 0x1b
je 0x51caff
cmp al, 0x1c
jne 0x51cb3a
movzx edx, word [ebx + 0x243]
and edx, 0x800001ff
jns 0x51cb16
dec edx
or edx, 0xfffffe00
inc edx
test edx, edx
jne 0x51cc47
test edi, edi
jne 0x51cb2e
or dword [ebx + 8], 0x79510000
jmp 0x51cc47
or dword [ebx + 8], 0x41000000
jmp 0x51cc47
movzx ecx, word [ebx + 0x243]
and ecx, 0x800001ff
jns 0x51cb51
dec ecx
or ecx, 0xfffffe00
inc ecx
test ecx, ecx
jne 0x51cc47
xor eax, eax
test edi, edi
mov dword [ebp - 0xc], eax
jne 0x51cbd2
push pe_nt_image_headers32
call fcn.004e5968
pop ecx
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0
jne 0x51cb82
mov dword [ebp - 8], 3
jmp 0x51cc77
or dword [ebx + 8], 0x79510000
push 1
mov edx, dword [ebp - 0xc]
push edx
mov ecx, dword [ebx + 0x14]
push ecx
mov eax, dword [ebx + 4]
push eax
call fcn.00529b3c
add esp, 0x10
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
jne 0x51cbc6
mov edx, dword [ebp - 0xc]
cmp word [edx + 0x1fe], 0xaa55
jne 0x51cbc6
mov ecx, dword [ebp - 0xc]
cmp byte [ecx + 0xd], 0x20
jae 0x51cbc6
or dword [ebx + 8], 0x800000
mov eax, dword [ebp - 0xc]
push eax
call fcn.004e598c
pop ecx
jmp 0x51cc47
or dword [ebx + 8], 0x41000000
jmp 0x51cc47
test edi, edi
jne 0x51cbe8
or dword [ebx + 8], 0x69010000
jmp 0x51cc47
or dword [ebx + 8], 0x41000000
jmp 0x51cc47
test edi, edi
jne 0x51cbfe
or dword [ebx + 8], 0x79410000
jmp 0x51cc47
or dword [ebx + 8], 0x41000000
jmp 0x51cc47
test edi, edi
jne 0x51cc14
or dword [ebx + 8], 0x69010000
jmp 0x51cc47
or dword [ebx + 8], 0x41000000
jmp 0x51cc47
test edi, edi
jne 0x51cc2a
or dword [ebx + 8], 0x69000000
jmp 0x51cc47
or dword [ebx + 8], 0x41000000
jmp 0x51cc47
call fcn.0052ce50
test eax, eax
je 0x51cc47
test edi, edi
jne 0x51cc47
or dword [ebx + 8], 0x20000000
push ebx
call fcn.0052cdfc
pop ecx
test eax, eax
jne 0x51cc58
cmp byte [ebx + 0x3a], 3
jne 0x51cc77
xor edx, edx
lea ecx, [ebp - 0x10]
mov dword [ebp - 0x10], edx
push ecx
push ebx
call fcn.005182f4
add esp, 8
cmp dword [ebp - 0x10], 0
je 0x51cc77
or dword [ebx + 8], 0x20000
cmp byte [ebx + 0x39], 0x12
jne 0x51cc9f
cmp byte [ebx + 0x3a], 0x11
jne 0x51cc9f
and dword [ebx + 8], 0xffdfffff
and dword [ebx + 8], 0xfeffffff
and dword [ebx + 8], 0xf7ffffff
and dword [ebx + 8], 0xdfffffff
mov al, byte [ebx + 0x39]
cmp al, 0x12
je 0x51ccaa
cmp al, 0xde
jne 0x51ccdb
and dword [ebx + 8], 0xffdfffff
and dword [ebx + 8], 0xfeffffff
and dword [ebx + 8], 0xdfffffff
and dword [ebx + 8], 0xfffeffff
and dword [ebx + 8], 0xffbfffff
and dword [ebx + 8], 0xff7fffff
and dword [ebx + 8], 0xefffffff
mov edx, dword [ebx + 8]
test edx, 0x20000000
je 0x51cda8
mov eax, dword [ebx + 4]
movzx esi, word [eax + 0x16]
movzx ecx, word [eax + 0x14]
imul ecx, esi
mov dword [ebp - 0x14], ecx
mov dword [ebp - 4], 0xd
test dl, 4
jne 0x51cd0b
or dword [ebp - 4], 2
mov ecx, dword [ebp - 4]
push ecx
mov edx, dword [ebx + 0x14]
dec edx
sub edx, esi
push edx
push edx
mov eax, dword [eax + 4]
push eax
call fcn.00519834
add esp, 0x10
test eax, eax
jne 0x51cd4a
cmp esi, dword [ebx + 0x14]
jae 0x51cd4a
cmp byte [ebx + 0x3a], 5
jne 0x51cd3a
mov eax, dword [ebx + 0x14]
cmp eax, dword [ebp - 0x14]
jbe 0x51cd4a
test byte [ebx + 8], 4
je 0x51cda8
mov edx, dword [ebp - 0x14]
add edx, esi
cmp edx, dword [ebx + 0x14]
jb 0x51cda8
cmp byte [ebx + 0x3a], 5
jne 0x51cd80
mov dword [ebp - 4], 0xd
mov ecx, dword [ebp - 4]
push ecx
mov eax, dword [ebx + 0x14]
add eax, esi
push eax
push eax
push ebx
call fcn.00519834
add esp, 0x10
test eax, eax
jne 0x51cd77
mov edx, dword [ebx + 0x18]
cmp edx, dword [ebp - 0x14]
ja 0x51cda8
and dword [ebx + 8], 0xdfffffff
jmp 0x51cda8
mov esi, dword [ebx + 0x14]
mov eax, dword [ebp - 4]
add esi, dword [ebx + 0x18]
push eax
push esi
push esi
push ebx
call fcn.00519834
add esp, 0x10
test eax, eax
jne 0x51cda1
mov edx, dword [ebx + 4]
cmp esi, dword [edx + 0x2c]
jb 0x51cda8
and dword [ebx + 8], 0xdfffffff
test byte [ebx + 0xb], 8
je 0x51cf16
mov eax, dword [ebx + 4]
movzx esi, word [eax + 0x16]
movzx eax, word [eax + 0x14]
imul esi, eax
mov al, byte [ebx + 0x3a]
cmp al, 1
je 0x51cdcf
cmp al, 0xf
jne 0x51cea6
cmp dword [ebx + 0x25f], 0
jne 0x51ce88
xor edx, edx
lea ecx, [ebp - 0x20]
mov dword [ebp - 0x20], edx
push 0
push 0
push 0
push ecx
push ebx
call fcn.004de9f8
add esp, 0x14
cmp dword [ebp - 0x20], 0
je 0x51cf35
mov eax, dword [ebp - 0x20]
push eax
mov edx, dword [eax]
call dword [edx + 4]
pop ecx
test eax, eax
je 0x51ce1b
lea ecx, [ebp - 0x20]
push ecx
call fcn.004dec3c
pop ecx
jmp 0x51cf35
mov eax, dword [ebp - 0x20]
mov edx, dword [eax + 0x1c]
push edx
call fcn.004de770
pop ecx
mov ecx, dword [ebp - 0x20]
mov edx, dword [ecx + 0x1c]
movzx ecx, word [edx + 2]
imul ecx
push eax
mov eax, dword [ebp - 0x20]
mov eax, dword [eax + 0x1c]
push eax
call fcn.004de924
pop ecx
pop edx
add edx, eax
mov dword [ebx + 0x25f], edx
mov eax, dword [ebx + 0x25f]
mov dword [ebx + 0x1c], eax
mov edx, dword [ebp - 0x20]
mov ecx, dword [edx + 0x1c]
mov edx, dword [ecx + 0x15]
sub edx, eax
mov dword [ebx + 0x20], edx
push 8
mov eax, dword [ebp - 0x20]
push eax
call fcn.004d81c8
add esp, 8
test al, al
jne 0x51ce7e
or dword [ebx + 0x26b], 0x100
lea ecx, [ebp - 0x20]
push ecx
call fcn.004dec3c
pop ecx
mov eax, dword [ebx + 0x28]
mov ecx, eax
mov edx, dword [ebx + 0x25f]
sub ecx, edx
cmp esi, ecx
ja 0x51ce9d
cmp edx, eax
jbe 0x51cf16
and dword [ebx + 8], 0xf7ffffff
jmp 0x51cf16
lea eax, [ebp - 0x1c]
push eax
push ebx
call fcn.004c30a8
add esp, 8
test eax, eax
jne 0x51cf16
mov edx, dword [ebp - 0x18]
sub edx, dword [ebp - 0x1c]
cmp esi, edx
ja 0x51cec7
cmp byte [ebx + 0x3a], 5
jne 0x51cf16
mov esi, dword [ebx + 0x14]
add esi, dword [ebx + 0x18]
push 0xd
push esi
push esi
push ebx
call fcn.00519834
add esp, 0x10
test eax, eax
jne 0x51cee6
mov eax, dword [ebx + 4]
cmp esi, dword [eax + 0x2c]
jb 0x51cf16
cmp byte [ebx + 0x3a], 5
jne 0x51cf0f
push 8
mov eax, esi
dec eax
push eax
push eax
mov edx, dword [ebx + 4]
mov ecx, dword [edx + 4]
push ecx
call fcn.00519834
add esp, 0x10
test eax, eax
je 0x51cf16
and dword [ebx + 8], 0xf7ffffff
jmp 0x51cf16
and dword [ebx + 8], 0xf7ffffff
mov al, byte [ebx + 0x39]
cmp al, 0x86
je 0x51cf21
cmp al, 0x87
jne 0x51cf35
test edi, edi
jne 0x51cf2e
and dword [ebx + 8], 0x845effff
jmp 0x51cf35
and dword [ebx + 8], 0xbcffffff
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret