Function at 0x30024440
Capabilities:
Inspect section memory permissions

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x30
push ebx
push esi
mov eax, ecx
mov dword [ebp - 0x14], 0
mov esi, edx
mov dword [ebp - 8], eax
push edi
mov edi, dword [ebp + 8]
mov byte [ebp - 1], 0
mov ecx, dword [esi + 0x28]
mov dword [ebp - 0x1c], ecx
mov ecx, dword [eax + 0x10]
mov dword [ebp - 0x2c], ecx
mov ecx, eax
mov dword [ebp - 0x28], 0
call fcn.300264a0
mov edx, eax
mov dword [ebp - 0x18], edx
test edx, edx
je 0x30024795
movzx ecx, word [edx]
lea eax, [ecx*8]
sub eax, ecx
mov ecx, 0x8000
add eax, 0x3021cb20
mov dword [ebp - 0x20], eax
movzx eax, byte [eax]
mov ebx, dword [eax*4 + 0x301e9400]
mov ax, word [edx + 2]
and ax, cx
movzx eax, ax
mov dword [ebp - 0x30], eax
test ax, ax
je 0x300244d1
mov eax, dword [edx]
mov dword [ebp - 0x24], eax
shr eax, 0x10
and eax, 0x7fff
mov word [ebp - 0x22], ax
lea eax, [ebp - 0x24]
mov dword [ebp - 0x18], eax
cmp dword [esi + 0x18], 1
jne 0x30024506
mov eax, dword [esi]
test eax, 0x2000
je 0x30024506
cmp dword [esi + 0x20], 0
jne 0x30024506
test byte [ebp - 0x1c], 8
je 0x30024506
and eax, 0xffffdfff
mov dword [esi], eax
mov ecx, dword [esi + 0x38]
cmp ecx, 0xffffffff
je 0x30024506
movzx eax, word [esi + 0x1c]
bts eax, ecx
mov word [esi + 0x1c], ax
mov edx, dword [ebp - 8]
mov ecx, dword [edx + 0x18]
mov dword [ebp - 0x10], ecx
cmp ecx, 2
jne 0x3002451c
test ebx, 0x800000
jmp 0x30024522
test ebx, 0x8000000
jne 0x30024795
test bl, 1
je 0x3002457b
mov eax, ebx
not eax
test eax, 0x40000000
je 0x3002454f
mov ecx, dword [edx + 0x14]
inc dword [edx + 0x10]
lea eax, [ecx - 1]
mov dword [edx + 0x14], eax
test ecx, ecx
jle 0x30024795
mov ecx, dword [ebp - 0x10]
mov eax, dword [edx + 0x10]
movzx eax, byte [eax]
mov dword [ebp - 0x14], eax
test ebx, 0x10000000
je 0x30024568
test al, 0x38
jne 0x30024795
test ebx, 0x100000
je 0x3002457b
cmp eax, 0xc0
jb 0x30024795
inc dword [edx + 0x10]
mov eax, ecx
mov edx, dword [esi]
mov dword [ebp - 0xc], eax
test edx, 0x2000
je 0x30024599
mov eax, dword [eax*4 + 0x301e93a4]
mov dword [ebp - 0xc], eax
jmp 0x300245ca
cmp eax, 2
jne 0x300245ca
mov eax, ebx
and eax, 0x3000000
cmp eax, 0x1000000
je 0x300245c3
test edx, 0x2000000
je 0x300245ba
test byte [ebp - 0x1c], 8
jne 0x300245c3
mov dword [ebp - 0xc], 1
jmp 0x300245ca
mov dword [ebp - 0xc], 2
test edx, 0x4000
je 0x300245dc
mov ecx, dword [ecx*4 + 0x301e93b0]
mov dword [ebp - 0x10], ecx
push 0x40
push 0
push edi
call fcn.30162560
mov eax, dword [ebp - 0x20]
add esp, 0xc
mov byte [edi + 0x34], 0xff
mov al, byte [eax + 2]
test al, al
je 0x300246cb
lea ecx, [ebp - 0x28]
movzx eax, al
push ecx
push dword [ebp - 0x10]
mov ecx, dword [ebp - 8]
mov edx, edi
push dword [ebp - 0xc]
push esi
push dword [ebp - 0x14]
push 0
push eax
push ebx
push dword [ebp - 0x18]
call fcn.30027060
add esp, 0x24
test eax, eax
je 0x30024795
mov eax, dword [ebp - 0x20]
mov al, byte [eax + 1]
test al, al
je 0x300246cb
mov ecx, dword [ebp - 8]
mov edx, edi
push 0
push dword [ebp - 0x10]
movzx eax, al
push dword [ebp - 0xc]
push esi
push dword [ebp - 0x14]
push 1
push eax
push ebx
push dword [ebp - 0x18]
call fcn.30027060
add esp, 0x24
test eax, eax
je 0x30024795
test ebx, 0x20000
je 0x300246cb
mov ecx, dword [ebp - 0x18]
mov edx, edi
push 0
push dword [ebp - 0x10]
push dword [ebp - 0xc]
movzx eax, byte [ecx + 5]
push esi
push dword [ebp - 0x14]
push 2
push eax
push ebx
push ecx
mov ecx, dword [ebp - 8]
call fcn.30027060
add esp, 0x24
test eax, eax
je 0x30024795
test ebx, 0x40000
je 0x300246cb
mov ecx, dword [ebp - 0x18]
mov edx, edi
push 0
push dword [ebp - 0x10]
push dword [ebp - 0xc]
movzx eax, byte [ecx + 6]
push esi
push dword [ebp - 0x14]
push 3
push eax
push ebx
push ecx
mov ecx, dword [ebp - 8]
call fcn.30027060
add esp, 0x24
test eax, eax
je 0x30024795
test ebx, 0x200000
je 0x30024750
mov edx, dword [ebp - 8]
mov eax, dword [edx + 0x14]
cmp eax, 1
jl 0x30024795
mov ecx, dword [edx + 0x10]
dec eax
mov dword [edx + 0x14], eax
lea eax, [ecx + 1]
mov dword [edx + 0x10], eax
movzx eax, byte [ecx]
movzx ecx, word [eax*2 + 0x301ea0e8]
test cx, cx
je 0x30024795
mov eax, ecx
and ecx, 0xe000
and eax, 0x1fff
cmp ecx, 0x2000
jne 0x30024721
lea edx, [eax*4 + 0x3021e9e8]
jmp 0x3002472b
lea eax, [eax + eax*2]
lea edx, [eax*4 + 0x3021d800]
test edx, edx
je 0x30024795
movzx eax, word [edx]
lea ecx, [eax*8]
sub ecx, eax
add ecx, 0x3021cb20
mov dword [ebp - 0x20], ecx
movzx eax, byte [ecx]
mov ebx, dword [eax*4 + 0x301e9400]
jmp 0x30024753
mov edx, dword [ebp - 0x18]
mov eax, ebx
and eax, 0x400000
mov dword [ebp - 0x18], eax
je 0x300247de
mov eax, dword [ebp - 8]
mov edi, dword [ebp - 8]
mov ecx, dword [eax + 0x14]
lea eax, [ecx - 1]
mov dword [edi + 0x14], eax
mov edi, dword [ebp + 8]
test ecx, ecx
jle 0x30024795
mov ecx, dword [ebp - 8]
mov eax, dword [ecx + 0x10]
mov cl, byte [eax]
inc eax
mov byte [ebp - 1], cl
mov ecx, dword [ebp - 8]
mov dword [ecx + 0x10], eax
test ebx, 0x20000000
je 0x300247d6
cmp byte [ebp - 1], 0x20
jb 0x300247e1
push 0x40
push 0
push edi
call fcn.30162560
mov ecx, dword [ebp - 0x2c]
add esp, 0xc
mov byte [edi + 0x34], 0xff
mov byte [edi + 0x32], 1
mov dword [esi + 4], 0
cmp byte [ecx], 0x9b
jne 0x30024b93
or byte [edi + 0x37], 8
mov eax, 0x273a
mov word [edi + 0x20], ax
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp byte [ebp - 1], 8
jae 0x30024795
jmp 0x300247e1
mov ecx, dword [ebp - 8]
mov eax, dword [ecx + 0x10]
sub eax, dword [esi + 8]
cmp eax, 0xf
jg 0x30024795
cmp dword [ebp - 0x28], 1
jne 0x30024802
test bl, 0x10
je 0x30024802
or dword [esi + 4], 0x10
or word [edi + 0x18], 1
jmp 0x3002482a
test bl, 0x20
je 0x30024817
test byte [esi], 0x20
je 0x30024817
or dword [esi + 4], 0x20
or word [edi + 0x18], 2
jmp 0x3002482a
test bl, 0x40
je 0x3002482a
test byte [esi], 0x40
je 0x3002482a
or dword [esi + 4], 0x40
or word [edi + 0x18], 4
mov eax, ebx
and eax, 0x14000
cmp eax, 0x14000
jne 0x3002485b
or dword [esi + 4], 0x4000
mov eax, dword [ebp - 0x10]
test eax, eax
jne 0x3002484c
movzx eax, word [edx + 2]
jmp 0x300248a0
cmp eax, 1
jne 0x300249e5
movzx eax, word [edx + 8]
jmp 0x300248a0
mov eax, ebx
and eax, 0xc000
cmp eax, 0xc000
jne 0x3002487c
mov ax, word [edx + 2]
lea ecx, [edi + 0x20]
mov word [ecx], ax
or dword [esi + 4], 0x4000
jmp 0x300248a6
mov eax, dword [ebp - 0xc]
test eax, eax
jne 0x30024910
mov eax, ebx
and eax, 0x1010008
cmp eax, 0x10000
jne 0x3002489c
or dword [esi + 4], 0x2000
mov ax, word [edx + 2]
lea ecx, [edi + 0x20]
mov word [ecx], ax
test ebx, 0x8000
je 0x300248bd
test dword [esi], 0x2000
je 0x300248bd
or dword [esi + 4], 0x2000
mov eax, ebx
and eax, 0x20000000
mov dword [ebp - 0x28], eax
je 0x300248e7
mov al, byte [edx + 4]
test al, 4
je 0x300248d6
test byte [ebp - 0x1c], 8
jne 0x300248e0
test al, 8
je 0x300248e7
test byte [ebp - 0x1c], 0x10
je 0x300248e7
mov ax, word [edx + 8]
mov word [ecx], ax
cmp dword [ebp - 0x18], 0
je 0x300249fc
cmp dword [ebp - 0x28], 0
movzx eax, byte [ebp - 1]
movzx edx, word [edx + 2]
je 0x300249ee
mov ax, word [eax*2 + 0x301e93c0]
jmp 0x300249f6
movzx ecx, word [edi + 0x18]
cmp eax, 1
jne 0x3002499d
or ecx, 0x100
mov word [edi + 0x18], cx
lea ecx, [edi + 0x20]
test ebx, 0x10000
je 0x3002498c
or dword [esi + 4], 0x2000
test ebx, 0x80000
je 0x30024978
cmp dword [ebp - 0x14], 0xc0
jb 0x30024961
movzx eax, word [edx + 2]
mov edi, ecx
movzx eax, ax
movzx eax, ax
mov word [edi], ax
mov edi, dword [ebp + 8]
jmp 0x300248a6
movzx eax, word [edx + 8]
mov edi, ecx
movzx eax, ax
movzx eax, ax
mov word [edi], ax
mov edi, dword [ebp + 8]
jmp 0x300248a6
movzx eax, word [edx + 8]
mov edi, ecx
movzx eax, ax
mov word [edi], ax
mov edi, dword [ebp + 8]
jmp 0x300248a6
movzx eax, word [edx + 2]
mov edi, ecx
mov word [edi], ax
mov edi, dword [ebp + 8]
jmp 0x300248a6
or ecx, 0x200
mov word [edi + 0x18], cx
test ebx, 0x4010000
je 0x3002489c
test ebx, 0x80000
je 0x300249c8
cmp dword [ebp - 0x14], 0xc0
jae 0x30024795
test ebx, 0x4000000
je 0x30024855
test byte [ebp - 0x1c], 8
je 0x30024855
or dword [esi + 4], 0x2000000
movzx eax, word [edx + 0xa]
jmp 0x300248a0
mov ax, word [eax*2 + 0x301e9594]
add ax, dx
mov word [ecx], ax
mov eax, dword [ebp - 0x10]
and eax, 3
shl eax, 0xa
or ax, word [edi + 0x18]
movzx ecx, ax
mov word [edi + 0x18], ax
test ebx, ebx
jns 0x30024a1b
or ecx, 0x40
mov word [edi + 0x18], cx
mov ecx, dword [esi + 4]
xor ecx, dword [esi]
test ecx, 0x2000000
je 0x30024a3b
mov edx, dword [esi + 0x2c]
cmp edx, 0xffffffff
je 0x30024a3b
movzx eax, word [esi + 0x1c]
bts eax, edx
mov word [esi + 0x1c], ax
test ecx, 0x1f80
je 0x30024a56
mov edx, dword [esi + 0x34]
cmp edx, 0xffffffff
je 0x30024a56
movzx eax, word [esi + 0x1c]
bts eax, edx
mov word [esi + 0x1c], ax
test cl, 0x70
je 0x30024a6e
mov edx, dword [esi + 0x30]
cmp edx, 0xffffffff
je 0x30024a6e
movzx eax, word [esi + 0x1c]
bts eax, edx
mov word [esi + 0x1c], ax
test ecx, 0x2000
je 0x30024a89
mov edx, dword [esi + 0x38]
cmp edx, 0xffffffff
je 0x30024a89
movzx eax, word [esi + 0x1c]
bts eax, edx
mov word [esi + 0x1c], ax
test ecx, 0x4000
je 0x30024aa4
mov ecx, dword [esi + 0x3c]
cmp ecx, 0xffffffff
je 0x30024aa4
movzx eax, word [esi + 0x1c]
bts eax, ecx
mov word [esi + 0x1c], ax
mov ax, word [esi + 0x1c]
mov ebx, dword [ebp - 0x20]
mov word [edi + 0x1a], ax
mov eax, dword [ebp - 0x30]
or word [edi + 0x18], ax
cmp byte [edi + 0x33], 0
mov al, byte [ebx + 3]
mov byte [edi + 0x37], al
jne 0x30024ac6
mov byte [edi + 0x33], 0xff
mov al, byte [edi + 0x34]
cmp al, 0xff
je 0x30024ada
movzx eax, al
mov eax, dword [eax*4 + 0x301ef018]
or dword [edi + 0x1c], eax
mov dl, byte [ebx + 4]
mov al, dl
and al, 2
movzx ecx, al
mov al, dl
and al, 8
add cx, cx
movzx eax, al
or cx, ax
mov al, dl
and al, 0x20
add cx, cx
movzx eax, al
and dl, 0xd5
or cx, ax
movzx eax, dl
shl cx, 6
or cx, ax
mov word [edi + 0x38], cx
mov dl, byte [ebx + 5]
mov al, dl
and al, 2
movzx ecx, al
mov al, dl
and al, 8
add cx, cx
movzx eax, al
or cx, ax
mov al, dl
and al, 0x20
add cx, cx
movzx eax, al
and dl, 0xd5
or cx, ax
movzx eax, dl
shl cx, 6
or cx, ax
mov word [edi + 0x3a], cx
mov dl, byte [ebx + 6]
mov al, dl
and al, 2
movzx ecx, al
mov al, dl
and al, 8
add cx, cx
movzx eax, al
or cx, ax
mov al, dl
and al, 0x20
add cx, cx
movzx eax, al
and dl, 0xd5
or cx, ax
movzx eax, dl
shl cx, 6
or cx, ax
mov eax, dword [ebp - 8]
mov word [edi + 0x3c], cx
mov ecx, dword [ebp - 0x2c]
mov al, byte [eax + 0x10]
sub al, cl
mov byte [edi + 0x32], al
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
pop edi
pop esi
mov eax, 3
pop ebx
mov esp, ebp
pop ebp
ret