Function at 0x300099cc
Capabilities:
Inspect section memory permissions

Disassembly:
mov eax, dword [ebp - 0x20]
mov ecx, dword [ebp + 0x18]
shl ecx, 0x14
xor ecx, dword [eax + 0x28]
push edx
and ecx, 0xf00000
xor dword [eax + 0x28], ecx
mov eax, dword [ebp - 0x20]
mov eax, dword [eax + 0x28]
shr eax, 0x14
and eax, 0xf
push eax
push esi
call fcn.3000b1f6
jmp 0x30009b1f
mov eax, dword [0x301e47a0]
jmp 0x30009860
mov eax, dword [0x301e478c]
jmp 0x30009860
mov dword [ebp - 0x24], eax
jmp 0x30009ba0
push ebp
mov ebp, esp
sub esp, 0x44
mov eax, dword [section..cdata]
and dword [ebp - 0x24], 0
push ebx
mov ebx, dword [ebp + 8]
mov dword [ebp - 4], eax
mov eax, ebx
and eax, 0x1f
imul eax, eax, 0x1c
and dword [ebp - 0x2c], 0
push esi
mov esi, dword [eax + 0x301de764]
push edi
mov edi, dword [sym.imp.MSO.DLL_Ordinal_347]
mov dword [ebp - 0x44], esi
push 0x2080
lea eax, [ebp - 0x20]
push esi
push eax
call edi
test eax, eax
je 0x3005ae0b
push esi
push dword [ebp - 0x20]
xor esi, esi
push esi
call fcn.30056452
mov ecx, dword [ebp - 0x20]
mov al, bl
and eax, 0x1f
mov word [ecx + 4], ax
mov eax, dword [ebp - 0x20]
movzx ecx, word [eax + 4]
imul ecx, ecx, 0x1c
mov ecx, dword [ecx + 0x301de760]
mov dword [eax + 0x44], ecx
mov eax, dword [ebp - 0x20]
mov ecx, dword [ebp + 0x1c]
lea edx, [ecx + ecx]
xor edx, dword [eax + 0x28]
and edx, 0x10
xor dword [eax + 0x28], edx
mov edx, dword [ebp - 0x20]
mov eax, ecx
shr eax, 2
not eax
and eax, 1
mov dword [edx + 0x2c], eax
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp + 0xc]
mov edi, edx
shl edi, 8
xor edi, dword [eax + 0x28]
and edi, 0x700
xor dword [eax + 0x28], edi
mov eax, dword [ebp - 0x20]
mov edi, ecx
shr edi, 2
not edi
xor edi, dword [eax + 0x28]
shl ecx, 0x12
and edi, 0x40
xor dword [eax + 0x28], edi
mov eax, dword [ebp - 0x20]
mov edi, ebx
shl edi, 3
not edi
xor edi, dword [eax + 0x28]
mov ebx, 0x20000
and edi, ebx
xor dword [eax + 0x28], edi
mov eax, dword [ebp - 0x20]
xor ecx, dword [eax + 0x28]
and ecx, 0x1000000
xor dword [eax + 0x28], ecx
mov eax, dword [ebp - 0x20]
mov ecx, dword [ebp + 8]
shl ecx, 0xf
xor ecx, dword [eax + 0x28]
and ecx, 0x2000000
xor dword [eax + 0x28], ecx
mov ecx, dword [ebp + 8]
mov eax, dword [ebp - 0x20]
and ecx, 0x600
neg ecx
sbb ecx, ecx
neg ecx
shl ecx, 0x1d
xor ecx, dword [eax + 0x28]
and ecx, 0x20000000
xor dword [eax + 0x28], ecx
cmp edx, 1
je 0x30009252
cmp edx, 4
je 0x3002d7aa
cmp edx, 5
je 0x3002d7aa
cmp edx, 3
je 0x3002d7aa
cmp word [ebp + 0x1a], si
jne 0x30012237
xor eax, eax
cmp dword [ebp + 0x18], esi
setne al
mov dword [ebp - 0x30], eax
mov esi, dword [ebp + 0x14]
lea edi, [ebp - 0x40]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
lea eax, [ebp - 0x28]
movsd dword es:[edi], dword [esi]
push eax
push dword [ebp + 8]
movsd dword es:[edi], dword [esi]
call fcn.30009868
push dword [ebp - 0x28]
mov esi, eax
xor edi, edi
push edi
push esi
lea eax, [ebp - 0x40]
push eax
call dword [0x300014b8]
mov eax, dword [ebp - 0x20]
mov dword [eax + 8], ebx
mov eax, dword [ebp - 0x20]
mov dword [eax + 0xc], ebx
mov eax, dword [ebp - 0x20]
mov dword [eax + 0x10], ebx
mov eax, dword [ebp - 0x20]
mov dword [eax + 0x14], ebx
mov eax, dword [ebp + 0xc]
sub eax, edi
je 0x3005ae49
dec eax
je 0x30009280
dec eax
je 0x30009750
dec eax
je 0x3002c3d0
dec eax
jne 0x3002c3f9
mov eax, dword [0x301e4788]
mov dword [ebp - 0x24], eax
lea eax, [ebp - 0x28]
push eax
push dword [ebp + 8]
call fcn.3002d7b2
mov esi, eax
or esi, 0x40000000
or esi, 0x6000000
test byte [ebp + 0x1c], 0x80
jne 0x3005ae5c
test byte [ebp + 0x1c], 8
je 0x3005ae67
test byte [ebp + 0x1d], 0x20
jne 0x3005ae72
push dword [0x301debf4]
call fcn.30009d6b
test eax, eax
jne 0x3005ae7a
push 0xc
lea eax, [ebp - 0x1c]
push eax
mov eax, dword [ebp - 0x20]
movzx eax, word [eax + 4]
push eax
call fcn.3000998b
mov ebx, dword [ebp + 0x10]
add ebx, 2
push dword [ebp - 0x20]
mov eax, dword [ebp - 0x34]
push dword [0x301dec00]
sub eax, dword [ebp - 0x3c]
push edi
push dword [ebp - 0x24]
push eax
mov eax, dword [ebp - 0x38]
sub eax, dword [ebp - 0x40]
push eax
push dword [ebp - 0x3c]
lea eax, [ebp - 0x1c]
push dword [ebp - 0x40]
push esi
push ebx
push eax
push dword [ebp - 0x28]
call fcn.30009d20
cmp eax, edi
je 0x3005ae86
push 0x1b
push edi
push edi
push edi
push edi
push dword [ebp - 0x30]
push eax
call dword [fcn.3000166c]
mov eax, dword [ebp + 0xc]
cmp dword [eax*4 + 0x301e4760], edi
jne 0x3005aeaf
cmp dword [ebp - 0x30], edi
jne 0x30009c5c
test byte [ebp + 0x1c], 2
jne 0x3005aebe
mov eax, dword [ebp - 0x20]
mov ecx, dword [ebp - 4]
pop edi
pop esi
pop ebx
call fcn.30056b36
leave
ret 0x18
push dword [ebp + 0x70]
call fcn.30055208
jmp 0x3005516f
mov eax, dword [ebp + 0x18]
mov eax, dword [eax]
jmp 0x30009b1f
push edi
call fcn.30049318
jmp 0x30009860
dec eax
jne 0x3005ae29
push 1
call fcn.30049318
jmp 0x30009b8f
mov dword [ebp - 0x30], esi
jmp 0x30009b22
mov ecx, dword [ebp + 0x64]
pop edi
pop esi
pop ebx
call fcn.30056b36
add ebp, 0x68
leave
ret 0x10
push dword [ebp - 0x2c]
push 0x304
push 0
call fcn.300e1d83
dec eax
jne 0x3005aef2
inc dword [ebp - 0x2c]
jmp 0x300099ff
dec eax
dec eax
jne 0x30009ba6
mov eax, dword [0x301e4788]
mov dword [ebp - 0x24], eax
lea eax, [ebp - 0x28]
push eax
push dword [ebp + 8]
call fcn.3002d7b2
mov esi, eax
jmp 0x3005ae51
mov eax, dword [0x301e47a0]
mov dword [ebp - 0x24], eax
or esi, 0x80000000
jmp 0x30009ba6
and esi, 0xfdffffff
jmp 0x30009bb6
or esi, 0x8000000
jmp 0x30009bc0
or esi, 8
jmp 0x30009bca
mov dword [ebp - 0x28], 0x1000
jmp 0x30009bdd
push dword [ebp - 0x2c]
push 3
push edi
call fcn.300e1d83
dec eax
jne 0x3005aed0
inc dword [ebp - 0x2c]
push 0xc
lea eax, [ebp - 0x1c]
push eax
mov eax, dword [ebp - 0x20]
movzx eax, word [eax + 4]
push eax
call fcn.3000998b
jmp 0x30009bf6
push 1
push dword [ebp - 0x20]
call fcn.30019de4
jmp 0x30009c4d
call fcn.300152f9
push dword [ebp - 0x20]
call fcn.30015cb1
jmp 0x30009c5c
dec eax
jne 0x3005aee6
push dword [ebp - 0x44]
push dword [ebp - 0x20]
call dword [sym.imp.MSO.DLL_Ordinal_957]
xor eax, eax
jmp 0x30009c5f
push dword [ebp - 0x44]
push dword [ebp - 0x20]
call dword [sym.imp.MSO.DLL_Ordinal_957]
push 6
push dword [0x301e4ae8]
call fcn.301d8d74
call fcn.3010cfac
test eax, eax
je 0x3005af15
call fcn.3002bcc9
push dword [ebp + 0x20]
call fcn.3002bc9e
cmp dword [0x301e4790], 0
je 0x3005afdd
call fcn.3001a11e
test eax, eax
jne 0x3005afdd
xor ebx, ebx
cmp dword [0x301e4aec], ebx
push 4
pop esi
je 0x3005af66
mov eax, dword [0x301e4788]
cmp dword [ebp + 0x78], eax
je 0x3005af66
push eax
push dword [ebp + 0x78]
call dword [0x300014dc]
test eax, eax
jne 0x3005af66
push ebx
push dword [ebp + 0x78]
push edi
call fcn.30009580
cmp eax, esi
je 0x3005b642
cmp dword [0x301df2d4], ebx
push 3
pop edx
mov eax, edx
je 0x3005af82
movsx ecx, word [ebp + 0x7c]
sub ecx, edx
je 0x3005af7f
dec ecx
dec ecx
jne 0x3005af82
xor eax, eax
inc eax
mov ecx, dword [ebp + 0x20]
mov ecx, dword [ecx + 0x28]
shr ecx, 8
and ecx, 7
cmp dword [0x301e4aec], ebx
je 0x3005afc0
cmp ecx, edx
je 0x3005516f
cmp ecx, 5
je 0x3005516f
cmp ecx, esi
je 0x3005516f
cmp ecx, 7
je 0x3005516f
push 2
pop eax
jmp 0x3005516f
cmp ecx, edx
je 0x3005afd1
cmp ecx, 5
je 0x3005afd1
cmp ecx, esi
jne 0x3005516f
push dword [ebp + 0x7c]
push dword [ebp + 0x78]
push edi
jmp 0x3000f9d5
mov eax, dword [ebp + 0x20]
mov eax, dword [eax + 0x28]
shr eax, 8
and eax, 7
cmp eax, 3
je 0x3005afd1
cmp eax, 5
je 0x3005afd1
call fcn.3010cfa0
test eax, eax
jne 0x3005afd1
call fcn.3001a11e
neg eax
sbb eax, eax
inc eax
inc eax
jmp 0x3005516f
mov eax, esi
jmp 0x3005516f