Function at 0x300be3e5
Capabilities:
Inspect section memory permissions

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x70
xor edx, edx
cmp byte [0x301e4d00], dl
push ebx
push esi
mov esi, dword [ebp + 8]
push edi
mov dword [ebp - 0x1c], edx
mov dword [ebp - 4], edx
mov dword [ebp - 0x2c], edx
je 0x300be40a
mov eax, dword [esi + 0x64]
mov dword [ebp - 4], eax
mov eax, dword [esi + 8]
test eax, 0x40000000
je 0x300be449
mov ecx, dword [ebp + 0xc]
cmp ecx, edx
je 0x300be449
test al, 8
je 0x300be449
mov ax, word [ecx]
push eax
call fcn.30029aa5
test ah, 0x26
jne 0x300be443
mov eax, dword [ebp + 0xc]
mov ax, word [eax]
cmp ax, 0xe33
je 0x300be443
push eax
call fcn.30153806
test eax, eax
je 0x300be449
mov eax, dword [esi + 0x64]
mov dword [esi + 0x68], eax
mov eax, dword [esi + 0x68]
mov ebx, dword [ebp + 0x10]
lea edi, [esi + 0x64]
sub eax, dword [edi]
sub ebx, eax
cmp dword [0x301e8b48], 0
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x18], ebx
jne 0x300be48d
mov eax, dword [esi + 0x40]
add eax, ebx
cmp eax, 0xff
jbe 0x300be47d
push 3
call fcn.300b2bc4
jmp 0x300be508
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push esi
call fcn.300e8142
test eax, eax
je 0x300be508
test ebx, ebx
jle 0x300be4e5
mov eax, dword [esi + 0x40]
add eax, ebx
lea ecx, [eax + 1]
cmp dword [esi + 0x44], ecx
jge 0x300be4e5
push 0x2080
lea eax, [eax + eax + 0x22]
push eax
lea eax, [ebp + 8]
push eax
call dword [sym.imp.MSO.DLL_Ordinal_347]
test eax, eax
je 0x300be508
mov eax, dword [esi + 0x40]
inc eax
push eax
push dword [ebp + 8]
push dword [esi + 0x48]
call fcn.30055d91
mov eax, dword [esi + 0x44]
add eax, eax
push eax
push dword [esi + 0x48]
call dword [sym.imp.MSO.DLL_Ordinal_957]
mov eax, dword [ebp + 8]
mov dword [esi + 0x48], eax
mov eax, dword [esi + 0x40]
lea eax, [eax + ebx + 0x11]
mov dword [esi + 0x44], eax
cmp byte [0x301e4d0d], 0
je 0x300be4f7
test byte [0x301e469c], 2
jne 0x300be50f
cmp dword [ebp + 0x14], 0
je 0x300be50f
push esi
call fcn.300bd6ce
cmp eax, 0xffffffff
jne 0x300be50f
xor eax, eax
jmp 0x300be9e5
test byte [esi + 0xa], 1
je 0x300be52e
lea eax, [esi + 0xdc]
mov ecx, dword [eax]
test ecx, ecx
jle 0x300be526
inc ecx
mov dword [eax], ecx
jmp 0x300be52e
push 2
push esi
call fcn.300bdf0c
push 0
push esi
call fcn.300bb1d4
push dword [edi]
mov ebx, dword [esi + 0x6c]
mov dword [ebp - 0x34], eax
mov eax, dword [esi + 8]
mov ecx, eax
and al, 0xfd
xor edx, edx
inc edx
shr ecx, 1
and ecx, edx
push esi
mov dword [ebp - 0x30], ecx
mov dword [esi + 8], eax
mov eax, dword [esi + 0x70]
mov dword [ebp + 8], edx
mov dword [ebp - 0x24], eax
call fcn.300b4046
mov dword [ebp + 0x14], eax
dec eax
push eax
push 0
push esi
call fcn.300b7b3b
add eax, dword [esi + 0x3c]
add eax, dword [esi + 0x10]
test byte [esi + 0xb], 0x40
mov dword [esi + 0x70], eax
jne 0x300be58d
push 0
push dword [edi]
push dword [ebp + 0x14]
push esi
call fcn.300b837a
mov dword [esi + 0x6c], eax
cmp byte [0x301e4d0e], 0
je 0x300be5ab
mov eax, dword [0x301ddc10]
shr eax, 9
and eax, 1
and byte [0x301ddc11], 0xfd
mov dword [ebp + 8], eax
push 0
push esi
call fcn.300b7987
cmp byte [0x301e4d0e], 0
je 0x300be5d3
mov eax, dword [ebp + 8]
shl eax, 9
xor eax, dword [0x301ddc10]
and eax, 0x200
xor dword [0x301ddc10], eax
mov eax, dword [ebp - 0x24]
mov dword [esi + 0x6c], ebx
mov ebx, dword [edi]
mov dword [esi + 0x70], eax
mov eax, dword [esi + 0x68]
push ebx
push esi
mov dword [ebp - 0xc], ebx
mov dword [ebp - 8], eax
call fcn.300b4046
mov dword [ebp - 0x24], eax
mov eax, dword [esi + 0x48]
lea ecx, [eax + ebx*2]
mov dword [ebp + 0x14], ecx
mov ecx, dword [ebp - 8]
mov dword [ebp - 0x10], eax
lea ebx, [esi + 0xf8]
cmp dword [ebx], 0
lea eax, [eax + ecx*2]
mov dword [ebp + 8], eax
jne 0x300be65d
mov eax, dword [ebp + 0xc]
test eax, eax
je 0x300be65d
cmp dword [ebp + 0x10], 1
jne 0x300be65d
mov ax, word [eax]
push eax
call fcn.301536ad
test eax, eax
je 0x300be65d
push ebx
call fcn.301539bc
cmp dword [0x301e4d5c], 0
jne 0x300be65d
call fcn.30153960
test eax, eax
je 0x300be64c
or dword [0x301e4ce8], 0x40
jmp 0x300be653
and dword [0x301e4ce8], 0xffffffbf
mov dword [0x301e4d5c], 1
mov eax, dword [ebx]
test eax, eax
je 0x300be7fb
lea ebx, [esi + 0xf6]
cmp byte [ebx], 0x65
je 0x300be7fb
cmp dword [ebp + 0x10], 1
jne 0x300be7fb
cmp dword [ebp + 0xc], 0
je 0x300be7fb
mov ecx, dword [0x301e4ce8]
and ecx, 0x40
push ecx
lea ecx, [esi + 0xfc]
push ecx
push ebx
lea ecx, [ebp - 0x20]
push ecx
mov ecx, dword [ebp + 0xc]
mov cx, word [ecx]
push dword [ebp - 0x10]
push edi
push ecx
push eax
call dword [0x301e5b24]
sub eax, 0
je 0x300be97d
dec eax
dec eax
je 0x300be6c7
dec eax
dec eax
jne 0x300be7fb
test byte [0x301e4ce8], 0x40
je 0x300be97d
mov al, byte [ebx]
and dword [ebp + 8], 0
mov byte [ebp + 0x14], al
push 5
lea eax, [ebp - 0x70]
push eax
lea eax, [ebp + 0x14]
push eax
mov eax, dword [ebp + 0xc]
mov ax, word [eax]
push eax
push dword [ebp - 0x20]
call fcn.301539a8
push eax
call dword [0x301e5b28]
and dword [ebp - 4], 0
lea eax, [ebp - 0x68]
mov dword [ebp + 0xc], eax
mov ecx, dword [ebp + 0xc]
mov ax, word [ecx - 8]
test ax, ax
je 0x300be7d7
movzx eax, ax
sub eax, 3
je 0x300be7b7
dec eax
je 0x300be775
dec eax
jne 0x300be7c6
mov eax, dword [edi]
mov dword [ebp - 0x1c], eax
mov eax, dword [esi + 0x68]
mov dword [ebp - 0x14], eax
mov al, byte [ebx]
mov byte [ebp + 0x13], al
mov eax, ecx
mov eax, dword [eax - 4]
add eax, dword [ebp + 8]
mov ecx, dword [ebp - 0xc]
add eax, ecx
mov dword [edi], eax
inc eax
mov dword [esi + 0x68], eax
xor eax, eax
push eax
push eax
push eax
push esi
mov byte [ebx], 0x65
call fcn.300be3e5
mov al, byte [ebp + 0x13]
mov byte [ebx], al
mov eax, dword [ebp - 0x1c]
dec eax
mov dword [edi], eax
mov eax, dword [ebp - 0x14]
dec eax
dec dword [ebp + 8]
mov dword [esi + 0x68], eax
jmp 0x300be7c6
mov ecx, dword [esi + 0x68]
mov eax, dword [edi]
mov dword [ebp - 0x14], ecx
mov cl, byte [ebx]
push 0
mov byte [ebp + 0x13], cl
mov ecx, dword [ebp + 0xc]
mov edx, dword [ecx - 4]
push 1
mov dword [ebp - 0x1c], eax
add eax, edx
push ecx
push esi
mov dword [edi], eax
mov dword [esi + 0x68], eax
mov byte [ebx], 0x65
call fcn.300be3e5
mov al, byte [ebp + 0x13]
mov byte [ebx], al
mov eax, dword [ebp - 0x1c]
inc eax
mov dword [edi], eax
mov eax, dword [ebp - 0x14]
inc eax
inc dword [ebp + 8]
mov dword [esi + 0x68], eax
jmp 0x300be7c6
mov eax, dword [ecx - 4]
add eax, dword [edi]
mov cx, word [ecx]
mov edx, dword [ebp - 0x10]
mov word [edx + eax*2], cx
inc dword [ebp - 4]
add dword [ebp + 0xc], 0xc
cmp dword [ebp - 4], 5
jl 0x300be707
mov al, byte [ebx]
cmp al, byte [ebp + 0x14]
je 0x300be961
push dword [ebp + 0x14]
push dword [esi + 0xf8]
call dword [0x301e5b20]
mov al, byte [ebp + 0x14]
mov byte [ebx], al
jmp 0x300be961
mov eax, dword [esi + 0x40]
sub eax, dword [ebp - 8]
mov ebx, dword [ebp - 0x18]
inc eax
push eax
mov eax, dword [ebp + 8]
lea ecx, [eax + ebx*2]
push ecx
push eax
call fcn.30055d91
push dword [ebp + 0x10]
push dword [ebp + 0x14]
push dword [ebp + 0xc]
call fcn.30055d91
add dword [esi + 0x40], ebx
cmp dword [ebp + 0x10], 0
jle 0x300be86f
mov eax, dword [esi + 8]
test eax, 0x40000000
jne 0x300be86f
and eax, 0x30000000
cmp eax, 0x20000000
je 0x300be85e
xor eax, eax
push eax
push eax
push eax
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push eax
call fcn.3015219f
test eax, eax
jne 0x300be85e
test byte [0x301e4ce8], 0x20
je 0x300be861
xor eax, eax
inc eax
shl eax, 0x1e
xor eax, dword [esi + 8]
and eax, 0x40000000
xor dword [esi + 8], eax
mov eax, dword [esi + 0xd4]
movzx ecx, byte [esi + 0xd0]
mov edx, dword [ebp - 0x24]
add eax, 8
lea ecx, [eax + ecx*8]
lea eax, [eax + edx*8]
jmp 0x300be88f
add dword [eax], ebx
add eax, 8
cmp eax, ecx
jb 0x300be88a
mov ebx, dword [ebp - 0xc]
mov eax, dword [ebp + 0x10]
add eax, ebx
test byte [esi + 9], 0x40
mov dword [esi + 0x68], eax
mov dword [edi], eax
mov byte [esi + 0x5d], 1
je 0x300be952
xor eax, eax
cmp byte [0x301e4d1d], al
mov dword [ebp + 0xc], eax
je 0x300be90d
cmp dword [esi + 0x54], 2
je 0x300be8ca
push dword [ebp - 4]
push esi
call fcn.300b4102
push eax
push esi
call fcn.300b40ef
cmp eax, dword [esi + 0x8c]
je 0x300be908
mov eax, dword [ebp - 4]
test eax, eax
je 0x300be901
cmp dword [esi + 0x54], 2
jne 0x300be8ea
xor eax, eax
jmp 0x300be8f2
dec eax
push eax
push esi
call fcn.300b4102
push eax
push esi
call fcn.300b40ef
cmp eax, dword [esi + 0x8c]
je 0x300be908
mov dword [ebp + 0xc], 1
mov edi, dword [esi + 0x68]
jmp 0x300be910
mov edi, dword [ebp - 0x2c]
cmp dword [ebp - 0x14], 0
jle 0x300be920
push dword [ebp - 0x14]
push ebx
push esi
call fcn.300b7b89
cmp dword [ebp + 0x10], 0
jle 0x300be936
push dword [esi + 0x8c]
push dword [ebp + 0x10]
push ebx
push esi
call fcn.300b83d7
cmp byte [0x301e4d1d], 0
je 0x300be952
cmp dword [ebp + 0x10], 0
jle 0x300be952
push dword [ebp + 0xc]
push edi
push dword [ebp - 4]
push esi
call fcn.3011739b
cmp dword [0x301e8b48], 0
jne 0x300be961
push esi
call fcn.300e94d1
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 0x18]
add ecx, eax
push ecx
push eax
call fcn.30056021
push eax
push dword [ebp - 0xc]
push esi
call fcn.300bb536
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x30]
push dword [ebp - 0x34]
add eax, eax
xor eax, dword [esi + 8]
push esi
and eax, 2
xor dword [esi + 8], eax
call fcn.300bb1d4
mov edi, 0x4000
test dword [esi + 8], edi
je 0x300be9a4
push esi
call fcn.300b414b
push esi
call fcn.300bce98
test dword [esi + 8], edi
je 0x300be9c2
movzx eax, byte [esi + 0xd0]
push 0
dec eax
push eax
push 0
push esi
call fcn.300bb459
test byte [esi + 0xa], 1
je 0x300be9e2
lea eax, [esi + 0xdc]
mov ecx, dword [eax]
cmp ecx, 1
jne 0x300be9df
push 0
push esi
call fcn.300bdf0c
jmp 0x300be9e2
dec ecx
mov dword [eax], ecx
mov eax, dword [ebp - 0x1c]
pop edi
pop esi
pop ebx
leave
ret 0x10