Function at 0x45a798
Capabilities:
Inspect section memory permissions

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x3c
push ebx
mov ebx, dword [ebp + 0x18]
mov edx, 0x401ba8
push esi
push edi
mov edi, ecx
mov ecx, ebx
mov dword [ebp - 0x14], edi
call fcn.0045acd8
mov esi, dword [ebp + 8]
or eax, 0xffffffff
mov dword [ebx + 8], 0x11
mov ecx, edi
mov word [ebx + 0xc], ax
mov byte [ebx + 0x10], 3
xor ebx, ebx
mov eax, dword [esi + 0x10]
inc ebx
push esi
mov dword [ebp - 8], ebx
mov dword [ebp - 0x24], eax
call fcn.0045b13e
mov ecx, dword [ebp - 0x24]
mov edx, eax
mov dword [ebp - 0x34], edx
test ecx, 0x10000000
jne 0x4b1e33
movzx eax, word [edi + 0x74]
mov edi, 0x3a64
cmp ax, di
mov edi, 0xa64e
je 0x4b1e3b
cmp ax, di
je 0x4b1e3b
mov ecx, dword [edx]
mov al, byte [ecx]
and dword [ebp - 0xc], 0
mov dword [ebp - 0x1c], ecx
mov byte [ebp - 1], al
cmp al, 0xff
je 0x45ab50
mov ecx, dword [ebp + 0xc]
mov dword [ebp - 0x38], ecx
mov dword [ebp - 0x18], ecx
movzx eax, al
mov dword [ebp - 0x30], eax
mov edi, dword [eax*4 + 0x4125b0]
mov dword [ebp - 0x10], edi
mov edx, dword [edi + 8]
mov ecx, edx
and ecx, dword [ebp - 0x24]
mov eax, edx
and eax, 0xfffff
cmp ecx, eax
mov eax, edx
setne cl
shr eax, 0x1f
neg al
mov byte [ebp + 0xf], cl
sbb al, al
not al
and al, cl
mov ecx, 0x200000
test ecx, edx
jne 0x45abbf
test al, al
jne 0x45ab3c
mov ebx, dword [edi + 4]
test edx, 0x20000000
jne 0x45abcd
test edx, 0x40000000
mov edx, dword [ebp - 0x14]
je 0x45a8a7
test dword [esi + 0x10], 0x8000
jne 0x4b1e82
or ebx, 0x300000
movzx eax, word [edx + 0x74]
mov ecx, 0x3a64
cmp ax, cx
je 0x4b1e8d
mov ecx, 0xa64e
cmp ax, cx
je 0x4b1e8d
and ebx, 0xffff7fff
cmp byte [ebp + 0xf], 0
jne 0x45abf4
mov al, byte [edi + 0x11]
and dword [ebp - 0x20], 0
and dword [ebp - 0x28], 0
cmp al, 0xff
je 0x4b1ec9
cmp al, 0x19
jae 0x45ab85
lea eax, [ebp - 0x20]
mov ecx, edx
push eax
lea eax, [ebp - 0x28]
push eax
push edi
push esi
push esi
call fcn.0045b13e
mov edx, eax
call fcn.0045b167
mov esi, dword [ebp - 0x28]
mov edi, dword [ebp - 0x18]
xor eax, eax
push 0xa
pop ecx
rep stosd dword es:[edi], eax
mov edi, dword [ebp - 0x10]
mov eax, dword [ebp - 0x18]
push 8
pop edx
mov ecx, dword [edi]
mov dword [ebp - 0x28], edx
mov dl, byte [ecx]
mov byte [ebp - 1], dl
test dl, dl
mov edx, dword [ebp - 0x28]
je 0x4b1ee1
mov dl, byte [ebp - 1]
inc ecx
mov byte [eax], dl
inc eax
sub dword [ebp - 0x28], 1
jne 0x45a926
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x20]
inc dword [ebp - 0xc]
mov word [ecx + 0x20], ax
mov eax, dword [ebp - 0x30]
mov dword [ecx + 0x10], esi
mov dword [ecx + 0x24], ebx
mov dword [ecx + 0x14], eax
add ecx, 0x28
mov dword [ebp - 0x18], ecx
test ebx, 0x1000
je 0x45abf4
imul edi, dword [ebp - 8], 0x12
mov eax, dword [ebp - 0x10]
push 8
pop edx
add edi, dword [ebp + 0x18]
mov ecx, dword [eax]
mov eax, edi
mov bl, byte [ecx]
test bl, bl
je 0x4b1ef2
inc ecx
mov byte [eax], bl
inc eax
sub edx, 1
jne 0x45a97f
mov eax, dword [ebp - 0xc]
mov word [edi + 0xc], ax
mov eax, dword [ebp - 8]
inc eax
mov word [edi + 0x10], 0x103
mov edi, dword [ebp - 0x10]
imul ecx, eax, 0x12
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0x20]
add ecx, dword [ebp + 0x18]
mov dword [ebp - 0x28], ecx
mov word [ecx + 4], ax
xor eax, eax
and dword [ecx + 8], eax
mov word [ecx + 6], ax
mov word [ecx + 0xc], ax
mov dword [ecx], esi
mov al, byte [edi + 0x12]
mov byte [ecx + 0xe], al
xor eax, eax
mov byte [ecx + 0xf], 0
mov word [ecx + 0x10], ax
cmp byte [edi + 0x12], 5
jne 0x45aa1e
mov eax, dword [ebp - 0x10]
xor edi, edi
movzx ebx, word [eax + 0x14]
movzx edx, bl
test bl, bl
je 0x45aa17
mov esi, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x38]
xor eax, eax
test esi, esi
je 0x4b1f06
lea esi, [ecx + 0x14]
inc eax
cmp dword [esi], edx
jne 0x45ab9f
mov edi, eax
test edi, edi
je 0x4b1f03
mov ecx, dword [ebp - 0x28]
mov word [ecx + 0xc], di
mov edi, dword [ebp - 0x10]
mov ecx, dword [ebp - 8]
inc ecx
mov dword [ebp - 8], ecx
xor esi, esi
cmp byte [edi + 0x10], 0
jbe 0x45ab26
mov ebx, dword [ebp + 0x18]
mov edx, dword [ebp + 8]
add ebx, 0xc
imul eax, ecx, 0x12
add ebx, eax
cmp byte [ebp + 0xf], 0
mov edi, dword [edi + 0xc]
jne 0x4b1f19
test dword [ebp - 0x24], 0x800
je 0x45aa60
test byte [edi + esi*4 + 3], 0x10
jne 0x45ab16
test byte [edi + esi*4 + 3], 2
jne 0x45abfc
mov ecx, dword [ebp - 0x14]
lea eax, [ebp - 0x2c]
push eax
movzx eax, byte [edi + esi*4 + 1]
push eax
push dword [ebp + 8]
call fcn.0045acfd
cmp dword [ebp - 0x2c], 9
jbe 0x45abb0
mov ecx, dword [0x5a1144]
sub ecx, dword [0x5a1140]
push 0
push dword [ebp - 0x2c]
mov dword [ebx - 8], ecx
mov ecx, 0x5a1140
push eax
call fcn.0045aed3
test eax, eax
je 0x4b1f29
cmp byte [ebp + 0xf], 0
mov al, byte [edi + esi*4 + 3]
jne 0x4b1f33
test al, 4
jne 0x45ac0f
mov eax, dword [ebp - 0xc]
movzx eax, ax
mov word [ebx], ax
mov al, byte [edi + esi*4 + 3]
test al, 1
jne 0x45ac16
mov al, byte [edi + esi*4 + 2]
mov byte [ebx + 4], al
cmp byte [edi + esi*4 + 2], 0x68
je 0x4b1f40
mov al, byte [edi + esi*4]
test al, al
je 0x45ab09
mov ecx, dword [ebp + 8]
movzx eax, al
cmp byte [eax + ecx + 0x1d], 0
jne 0x45ab09
mov edx, dword [ebp - 8]
mov byte [eax + ecx + 0x1d], dl
mov ecx, dword [ebp - 8]
mov edx, dword [ebp + 8]
inc ecx
mov dword [ebp - 8], ecx
add ebx, 0x12
mov edi, dword [ebp - 0x10]
inc esi
movzx eax, byte [edi + 0x10]
cmp esi, eax
jb 0x45aa3f
cmp byte [ebp + 0xf], 0
jne 0x45ab36
cmp byte [edi + 0x16], 0
jne 0x45ac2a
mov ebx, dword [ebp - 8]
mov esi, dword [ebp + 8]
mov eax, dword [ebp - 0x1c]
inc eax
mov dword [ebp - 0x1c], eax
mov al, byte [eax]
mov byte [ebp - 1], al
cmp al, 0xff
jne 0x45a831
test dword [ebp - 0x24], 0x8000
mov eax, dword [ebp + 0x20]
mov ecx, dword [ebp - 0xc]
mov word [eax + 2], cx
mov dword [eax + 0xc], ebx
jne 0x45ab6f
mov ecx, 0x100
or word [eax + 0x12], cx
mov eax, dword [0x5a1140]
mov ecx, dword [0x5a1144]
pop edi
sub ecx, eax
pop esi
mov dword [eax], ecx
pop ebx
leave
ret 0x20
movzx eax, al
lea ecx, [ebp - 0x20]
push ecx
push esi
mov ecx, edx
mov eax, dword [eax*4 + 0x4124e8]
call eax
mov esi, eax
jmp 0x45a90e
add esi, 0x28
cmp eax, dword [ebp - 0xc]
jb 0x45aa01
jmp 0x4b1f03
lea ecx, [ebx - 0xc]
mov edx, eax
call fcn.0045acd8
jmp 0x45aab1
test dword [esi + 0x10], ecx
je 0x45ab3c
jmp 0x4b1e67
mov eax, dword [ebp - 0x34]
mov edx, dword [ebp - 0x14]
or ebx, dword [eax + 0xc]
mov eax, dword [edx + 8]
test eax, eax
je 0x45a8a7
mov ecx, dword [eax + 0x18c]
test ecx, ecx
je 0x45a8a7
jmp 0x4b1e70
mov ecx, dword [ebp - 8]
jmp 0x45aa25
movzx eax, byte [edi + esi*4]
sub cl, 2
mov byte [eax + edx + 0x1d], cl
mov ecx, dword [ebp - 8]
jmp 0x45ab16
xor eax, eax
jmp 0x45aacd
test al, 0x20
jne 0x45aadc
push 0x20
pop eax
mov word [ebx + 2], ax
jmp 0x45aadc
mov ecx, dword [ebp - 0x14]
lea eax, [ebp - 0x3c]
push eax
push edi
push dword [ebp + 8]
call fcn.004571ad
mov esi, dword [ebp - 0x18]
xor eax, eax
mov ebx, dword [ebp - 0x3c]
mov edi, esi
push 0xa
pop ecx
rep stosd dword es:[edi], eax
mov edx, 0x401d50
mov ecx, esi
add ebx, 0x29
call fcn.0045acd8
push 2
pop eax
mov word [esi + 0x20], ax
mov edx, 0x401d50
mov eax, dword [ebp - 0x30]
or eax, 0x80
mov dword [esi + 0x10], ebx
inc dword [ebp - 0xc]
mov dword [esi + 0x24], 0x42101040
mov dword [esi + 0x14], eax
add esi, 0x28
mov dword [ebp - 0x18], esi
imul esi, dword [ebp - 8], 0x12
add esi, dword [ebp + 0x18]
mov ecx, esi
call fcn.0045acd8
mov eax, dword [ebp - 0xc]
movzx ecx, ax
mov eax, dword [ebp - 8]
inc eax
mov word [esi + 0xc], cx
imul edx, eax, 0x12
mov word [esi + 0x10], 0x103
push 2
pop eax
add edx, dword [ebp + 0x18]
mov word [edx + 4], ax
xor eax, eax
and dword [edx + 8], eax
mov dword [edx], ebx
mov ebx, dword [ebp - 8]
mov word [edx + 6], ax
add ebx, 2
lea eax, [ecx - 1]
mov dword [edx + 0xe], 5
mov word [edx + 0xc], ax
mov dword [ebp - 8], ebx
jmp 0x45ab39
mov ecx, dword [edx + 4]
jmp 0x45a814
test ecx, 0x800
je 0x4b1e4f
test ecx, 0x400
jne 0x45a812
mov ecx, 0x417144
cmp ax, di
je 0x45a814
mov ecx, 0x417150
jmp 0x45a814
mov byte [ebp + 0xf], 0
jmp 0x45a87a
call fcn.00517981
and ebx, 0xff0ffff7
or ebx, eax
jmp 0x45a8a7
or ebx, 0x400000
jmp 0x45a8a7
mov ecx, dword [ebp + 0x24]
mov edi, 0xaa64
cmp word [ecx + 6], di
mov edi, dword [ebp - 0x10]
je 0x45a8c7
test byte [edx + 0x7c], 0x20
jne 0x45a8c7
cmp byte [ebp - 1], 1
jne 0x45a8cd
mov ecx, 0x3a64
cmp ax, cx
jne 0x45a8cd
jmp 0x45a8c7
mov esi, dword [esi + 0x10]
and esi, 0x8000
neg esi
sbb esi, esi
and esi, 4
add esi, 4
jmp 0x45a90e
push edx
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
jmp 0x45a943
push edx
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
jmp 0x45a992
mov esi, dword [ebp - 0xc]
shr ebx, 8
movzx edx, bl
test bl, bl
jne 0x45a9f4
jmp 0x45aa14
test byte [edi + esi*4 + 3], 8
je 0x45ab16
jmp 0x45aa4c
call fcn.004fd4dc
jmp 0x45aab1
test al, 8
jne 0x45ac0f
jmp 0x45aabf
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 4]
and eax, 0xffffefff
mov dword [ebx - 4], eax
jmp 0x45aaee