Function at 0x300244d0
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.30026530
mov edx, eax
mov dword [ebp - 0x18], edx
test edx, edx
je 0x30024825
movzx ecx, word [edx]
lea eax, [ecx*8]
sub eax, ecx
mov ecx, 0x8000
add eax, 0x3021bb20
mov dword [ebp - 0x20], eax
movzx eax, byte [eax]
mov ebx, dword [eax*4 + 0x301e84b8]
mov ax, word [edx + 2]
and ax, cx
movzx eax, ax
mov dword [ebp - 0x30], eax
test ax, ax
je 0x30024561
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 0x30024596
mov eax, dword [esi]
test eax, 0x2000
je 0x30024596
cmp dword [esi + 0x20], 0
jne 0x30024596
test byte [ebp - 0x1c], 8
je 0x30024596
and eax, 0xffffdfff
mov dword [esi], eax
mov ecx, dword [esi + 0x38]
cmp ecx, 0xffffffff
je 0x30024596
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 0x300245ac
test ebx, 0x800000
jmp 0x300245b2
test ebx, 0x8000000
jne 0x30024825
test bl, 1
je 0x3002460b
mov eax, ebx
not eax
test eax, 0x40000000
je 0x300245df
mov ecx, dword [edx + 0x14]
inc dword [edx + 0x10]
lea eax, [ecx - 1]
mov dword [edx + 0x14], eax
test ecx, ecx
jle 0x30024825
mov ecx, dword [ebp - 0x10]
mov eax, dword [edx + 0x10]
movzx eax, byte [eax]
mov dword [ebp - 0x14], eax
test ebx, 0x10000000
je 0x300245f8
test al, 0x38
jne 0x30024825
test ebx, 0x100000
je 0x3002460b
cmp eax, 0xc0
jb 0x30024825
inc dword [edx + 0x10]
mov eax, ecx
mov edx, dword [esi]
mov dword [ebp - 0xc], eax
test edx, 0x2000
je 0x30024629
mov eax, dword [eax*4 + 0x301e845c]
mov dword [ebp - 0xc], eax
jmp 0x3002465a
cmp eax, 2
jne 0x3002465a
mov eax, ebx
and eax, 0x3000000
cmp eax, 0x1000000
je 0x30024653
test edx, 0x2000000
je 0x3002464a
test byte [ebp - 0x1c], 8
jne 0x30024653
mov dword [ebp - 0xc], 1
jmp 0x3002465a
mov dword [ebp - 0xc], 2
test edx, 0x4000
je 0x3002466c
mov ecx, dword [ecx*4 + 0x301e8468]
mov dword [ebp - 0x10], ecx
push 0x40
push 0
push edi
call fcn.30160f00
mov eax, dword [ebp - 0x20]
add esp, 0xc
mov byte [edi + 0x34], 0xff
mov al, byte [eax + 2]
test al, al
je 0x3002475b
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.300270f0
add esp, 0x24
test eax, eax
je 0x30024825
mov eax, dword [ebp - 0x20]
mov al, byte [eax + 1]
test al, al
je 0x3002475b
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.300270f0
add esp, 0x24
test eax, eax
je 0x30024825
test ebx, 0x20000
je 0x3002475b
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.300270f0
add esp, 0x24
test eax, eax
je 0x30024825
test ebx, 0x40000
je 0x3002475b
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.300270f0
add esp, 0x24
test eax, eax
je 0x30024825
test ebx, 0x200000
je 0x300247e0
mov edx, dword [ebp - 8]
mov eax, dword [edx + 0x14]
cmp eax, 1
jl 0x30024825
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 + 0x301e91a0]
test cx, cx
je 0x30024825
mov eax, ecx
and ecx, 0xe000
and eax, 0x1fff
cmp ecx, 0x2000
jne 0x300247b1
lea edx, [eax*4 + 0x3021d9e8]
jmp 0x300247bb
lea eax, [eax + eax*2]
lea edx, [eax*4 + 0x3021c800]
test edx, edx
je 0x30024825
movzx eax, word [edx]
lea ecx, [eax*8]
sub ecx, eax
add ecx, 0x3021bb20
mov dword [ebp - 0x20], ecx
movzx eax, byte [ecx]
mov ebx, dword [eax*4 + 0x301e84b8]
jmp 0x300247e3
mov edx, dword [ebp - 0x18]
mov eax, ebx
and eax, 0x400000
mov dword [ebp - 0x18], eax
je 0x3002486e
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 0x30024825
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 0x30024866
cmp byte [ebp - 1], 0x20
jb 0x30024871
push 0x40
push 0
push edi
call fcn.30160f00
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 0x30024c23
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 0x30024825
jmp 0x30024871
mov ecx, dword [ebp - 8]
mov eax, dword [ecx + 0x10]
sub eax, dword [esi + 8]
cmp eax, 0xf
jg 0x30024825
cmp dword [ebp - 0x28], 1
jne 0x30024892
test bl, 0x10
je 0x30024892
or dword [esi + 4], 0x10
or word [edi + 0x18], 1
jmp 0x300248ba
test bl, 0x20
je 0x300248a7
test byte [esi], 0x20
je 0x300248a7
or dword [esi + 4], 0x20
or word [edi + 0x18], 2
jmp 0x300248ba
test bl, 0x40
je 0x300248ba
test byte [esi], 0x40
je 0x300248ba
or dword [esi + 4], 0x40
or word [edi + 0x18], 4
mov eax, ebx
and eax, 0x14000
cmp eax, 0x14000
jne 0x300248eb
or dword [esi + 4], 0x4000
mov eax, dword [ebp - 0x10]
test eax, eax
jne 0x300248dc
movzx eax, word [edx + 2]
jmp 0x30024930
cmp eax, 1
jne 0x30024a75
movzx eax, word [edx + 8]
jmp 0x30024930
mov eax, ebx
and eax, 0xc000
cmp eax, 0xc000
jne 0x3002490c
mov ax, word [edx + 2]
lea ecx, [edi + 0x20]
mov word [ecx], ax
or dword [esi + 4], 0x4000
jmp 0x30024936
mov eax, dword [ebp - 0xc]
test eax, eax
jne 0x300249a0
mov eax, ebx
and eax, 0x1010008
cmp eax, 0x10000
jne 0x3002492c
or dword [esi + 4], 0x2000
mov ax, word [edx + 2]
lea ecx, [edi + 0x20]
mov word [ecx], ax
test ebx, 0x8000
je 0x3002494d
test dword [esi], 0x2000
je 0x3002494d
or dword [esi + 4], 0x2000
mov eax, ebx
and eax, 0x20000000
mov dword [ebp - 0x28], eax
je 0x30024977
mov al, byte [edx + 4]
test al, 4
je 0x30024966
test byte [ebp - 0x1c], 8
jne 0x30024970
test al, 8
je 0x30024977
test byte [ebp - 0x1c], 0x10
je 0x30024977
mov ax, word [edx + 8]
mov word [ecx], ax
cmp dword [ebp - 0x18], 0
je 0x30024a8c
cmp dword [ebp - 0x28], 0
movzx eax, byte [ebp - 1]
movzx edx, word [edx + 2]
je 0x30024a7e
mov ax, word [eax*2 + 0x301e8478]
jmp 0x30024a86
movzx ecx, word [edi + 0x18]
cmp eax, 1
jne 0x30024a2d
or ecx, 0x100
mov word [edi + 0x18], cx
lea ecx, [edi + 0x20]
test ebx, 0x10000
je 0x30024a1c
or dword [esi + 4], 0x2000
test ebx, 0x80000
je 0x30024a08
cmp dword [ebp - 0x14], 0xc0
jb 0x300249f1
movzx eax, word [edx + 2]
mov edi, ecx
movzx eax, ax
movzx eax, ax
mov word [edi], ax
mov edi, dword [ebp + 8]
jmp 0x30024936
movzx eax, word [edx + 8]
mov edi, ecx
movzx eax, ax
movzx eax, ax
mov word [edi], ax
mov edi, dword [ebp + 8]
jmp 0x30024936
movzx eax, word [edx + 8]
mov edi, ecx
movzx eax, ax
mov word [edi], ax
mov edi, dword [ebp + 8]
jmp 0x30024936
movzx eax, word [edx + 2]
mov edi, ecx
mov word [edi], ax
mov edi, dword [ebp + 8]
jmp 0x30024936
or ecx, 0x200
mov word [edi + 0x18], cx
test ebx, 0x4010000
je 0x3002492c
test ebx, 0x80000
je 0x30024a58
cmp dword [ebp - 0x14], 0xc0
jae 0x30024825
test ebx, 0x4000000
je 0x300248e5
test byte [ebp - 0x1c], 8
je 0x300248e5
or dword [esi + 4], 0x2000000
movzx eax, word [edx + 0xa]
jmp 0x30024930
mov ax, word [eax*2 + 0x301e864c]
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 0x30024aab
or ecx, 0x40
mov word [edi + 0x18], cx
mov ecx, dword [esi + 4]
xor ecx, dword [esi]
test ecx, 0x2000000
je 0x30024acb
mov edx, dword [esi + 0x2c]
cmp edx, 0xffffffff
je 0x30024acb
movzx eax, word [esi + 0x1c]
bts eax, edx
mov word [esi + 0x1c], ax
test ecx, 0x1f80
je 0x30024ae6
mov edx, dword [esi + 0x34]
cmp edx, 0xffffffff
je 0x30024ae6
movzx eax, word [esi + 0x1c]
bts eax, edx
mov word [esi + 0x1c], ax
test cl, 0x70
je 0x30024afe
mov edx, dword [esi + 0x30]
cmp edx, 0xffffffff
je 0x30024afe
movzx eax, word [esi + 0x1c]
bts eax, edx
mov word [esi + 0x1c], ax
test ecx, 0x2000
je 0x30024b19
mov edx, dword [esi + 0x38]
cmp edx, 0xffffffff
je 0x30024b19
movzx eax, word [esi + 0x1c]
bts eax, edx
mov word [esi + 0x1c], ax
test ecx, 0x4000
je 0x30024b34
mov ecx, dword [esi + 0x3c]
cmp ecx, 0xffffffff
je 0x30024b34
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 0x30024b56
mov byte [edi + 0x33], 0xff
mov al, byte [edi + 0x34]
cmp al, 0xff
je 0x30024b6a
movzx eax, al
mov eax, dword [eax*4 + 0x301ee0d0]
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