Function at 0x30025200
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.30027260
mov edx, eax
mov dword [ebp - 0x18], edx
test edx, edx
je 0x30025555
movzx ecx, word [edx]
lea eax, [ecx*8]
sub eax, ecx
mov ecx, 0x8000
add eax, 0x30216b20
mov dword [ebp - 0x20], eax
movzx eax, byte [eax]
mov ebx, dword [eax*4 + 0x301e45d8]
mov ax, word [edx + 2]
and ax, cx
movzx eax, ax
mov dword [ebp - 0x30], eax
test ax, ax
je 0x30025291
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 0x300252c6
mov eax, dword [esi]
test eax, 0x2000
je 0x300252c6
cmp dword [esi + 0x20], 0
jne 0x300252c6
test byte [ebp - 0x1c], 8
je 0x300252c6
and eax, 0xffffdfff
mov dword [esi], eax
mov ecx, dword [esi + 0x38]
cmp ecx, 0xffffffff
je 0x300252c6
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 0x300252dc
test ebx, 0x800000
jmp 0x300252e2
test ebx, 0x8000000
jne 0x30025555
test bl, 1
je 0x3002533b
mov eax, ebx
not eax
test eax, 0x40000000
je 0x3002530f
mov ecx, dword [edx + 0x14]
inc dword [edx + 0x10]
lea eax, [ecx - 1]
mov dword [edx + 0x14], eax
test ecx, ecx
jle 0x30025555
mov ecx, dword [ebp - 0x10]
mov eax, dword [edx + 0x10]
movzx eax, byte [eax]
mov dword [ebp - 0x14], eax
test ebx, 0x10000000
je 0x30025328
test al, 0x38
jne 0x30025555
test ebx, 0x100000
je 0x3002533b
cmp eax, 0xc0
jb 0x30025555
inc dword [edx + 0x10]
mov eax, ecx
mov edx, dword [esi]
mov dword [ebp - 0xc], eax
test edx, 0x2000
je 0x30025359
mov eax, dword [eax*4 + 0x301e457c]
mov dword [ebp - 0xc], eax
jmp 0x3002538a
cmp eax, 2
jne 0x3002538a
mov eax, ebx
and eax, 0x3000000
cmp eax, 0x1000000
je 0x30025383
test edx, 0x2000000
je 0x3002537a
test byte [ebp - 0x1c], 8
jne 0x30025383
mov dword [ebp - 0xc], 1
jmp 0x3002538a
mov dword [ebp - 0xc], 2
test edx, 0x4000
je 0x3002539c
mov ecx, dword [ecx*4 + 0x301e4588]
mov dword [ebp - 0x10], ecx
push 0x40
push 0
push edi
call fcn.3015cdc0
mov eax, dword [ebp - 0x20]
add esp, 0xc
mov byte [edi + 0x34], 0xff
mov al, byte [eax + 2]
test al, al
je 0x3002548b
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.30027e30
add esp, 0x24
test eax, eax
je 0x30025555
mov eax, dword [ebp - 0x20]
mov al, byte [eax + 1]
test al, al
je 0x3002548b
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.30027e30
add esp, 0x24
test eax, eax
je 0x30025555
test ebx, 0x20000
je 0x3002548b
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.30027e30
add esp, 0x24
test eax, eax
je 0x30025555
test ebx, 0x40000
je 0x3002548b
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.30027e30
add esp, 0x24
test eax, eax
je 0x30025555
test ebx, 0x200000
je 0x30025510
mov edx, dword [ebp - 8]
mov eax, dword [edx + 0x14]
cmp eax, 1
jl 0x30025555
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 + 0x301e52c0]
test cx, cx
je 0x30025555
mov eax, ecx
and ecx, 0xe000
and eax, 0x1fff
cmp ecx, 0x2000
jne 0x300254e1
lea edx, [eax*4 + 0x302189e8]
jmp 0x300254eb
lea eax, [eax + eax*2]
lea edx, [eax*4 + 0x30217800]
test edx, edx
je 0x30025555
movzx eax, word [edx]
lea ecx, [eax*8]
sub ecx, eax
add ecx, 0x30216b20
mov dword [ebp - 0x20], ecx
movzx eax, byte [ecx]
mov ebx, dword [eax*4 + 0x301e45d8]
jmp 0x30025513
mov edx, dword [ebp - 0x18]
mov eax, ebx
and eax, 0x400000
mov dword [ebp - 0x18], eax
je 0x3002559e
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 0x30025555
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 0x30025596
cmp byte [ebp - 1], 0x20
jb 0x300255a1
push 0x40
push 0
push edi
call fcn.3015cdc0
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 0x30025953
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 0x30025555
jmp 0x300255a1
mov ecx, dword [ebp - 8]
mov eax, dword [ecx + 0x10]
sub eax, dword [esi + 8]
cmp eax, 0xf
jg 0x30025555
cmp dword [ebp - 0x28], 1
jne 0x300255c2
test bl, 0x10
je 0x300255c2
or dword [esi + 4], 0x10
or word [edi + 0x18], 1
jmp 0x300255ea
test bl, 0x20
je 0x300255d7
test byte [esi], 0x20
je 0x300255d7
or dword [esi + 4], 0x20
or word [edi + 0x18], 2
jmp 0x300255ea
test bl, 0x40
je 0x300255ea
test byte [esi], 0x40
je 0x300255ea
or dword [esi + 4], 0x40
or word [edi + 0x18], 4
mov eax, ebx
and eax, 0x14000
cmp eax, 0x14000
jne 0x3002561b
or dword [esi + 4], 0x4000
mov eax, dword [ebp - 0x10]
test eax, eax
jne 0x3002560c
movzx eax, word [edx + 2]
jmp 0x30025660
cmp eax, 1
jne 0x300257a5
movzx eax, word [edx + 8]
jmp 0x30025660
mov eax, ebx
and eax, 0xc000
cmp eax, 0xc000
jne 0x3002563c
mov ax, word [edx + 2]
lea ecx, [edi + 0x20]
mov word [ecx], ax
or dword [esi + 4], 0x4000
jmp 0x30025666
mov eax, dword [ebp - 0xc]
test eax, eax
jne 0x300256d0
mov eax, ebx
and eax, 0x1010008
cmp eax, 0x10000
jne 0x3002565c
or dword [esi + 4], 0x2000
mov ax, word [edx + 2]
lea ecx, [edi + 0x20]
mov word [ecx], ax
test ebx, 0x8000
je 0x3002567d
test dword [esi], 0x2000
je 0x3002567d
or dword [esi + 4], 0x2000
mov eax, ebx
and eax, 0x20000000
mov dword [ebp - 0x28], eax
je 0x300256a7
mov al, byte [edx + 4]
test al, 4
je 0x30025696
test byte [ebp - 0x1c], 8
jne 0x300256a0
test al, 8
je 0x300256a7
test byte [ebp - 0x1c], 0x10
je 0x300256a7
mov ax, word [edx + 8]
mov word [ecx], ax
cmp dword [ebp - 0x18], 0
je 0x300257bc
cmp dword [ebp - 0x28], 0
movzx eax, byte [ebp - 1]
movzx edx, word [edx + 2]
je 0x300257ae
mov ax, word [eax*2 + 0x301e4598]
jmp 0x300257b6
movzx ecx, word [edi + 0x18]
cmp eax, 1
jne 0x3002575d
or ecx, 0x100
mov word [edi + 0x18], cx
lea ecx, [edi + 0x20]
test ebx, 0x10000
je 0x3002574c
or dword [esi + 4], 0x2000
test ebx, 0x80000
je 0x30025738
cmp dword [ebp - 0x14], 0xc0
jb 0x30025721
movzx eax, word [edx + 2]
mov edi, ecx
movzx eax, ax
movzx eax, ax
mov word [edi], ax
mov edi, dword [ebp + 8]
jmp 0x30025666
movzx eax, word [edx + 8]
mov edi, ecx
movzx eax, ax
movzx eax, ax
mov word [edi], ax
mov edi, dword [ebp + 8]
jmp 0x30025666
movzx eax, word [edx + 8]
mov edi, ecx
movzx eax, ax
mov word [edi], ax
mov edi, dword [ebp + 8]
jmp 0x30025666
movzx eax, word [edx + 2]
mov edi, ecx
mov word [edi], ax
mov edi, dword [ebp + 8]
jmp 0x30025666
or ecx, 0x200
mov word [edi + 0x18], cx
test ebx, 0x4010000
je 0x3002565c
test ebx, 0x80000
je 0x30025788
cmp dword [ebp - 0x14], 0xc0
jae 0x30025555
test ebx, 0x4000000
je 0x30025615
test byte [ebp - 0x1c], 8
je 0x30025615
or dword [esi + 4], 0x2000000
movzx eax, word [edx + 0xa]
jmp 0x30025660
mov ax, word [eax*2 + 0x301e476c]
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 0x300257db
or ecx, 0x40
mov word [edi + 0x18], cx
mov ecx, dword [esi + 4]
xor ecx, dword [esi]
test ecx, 0x2000000
je 0x300257fb
mov edx, dword [esi + 0x2c]
cmp edx, 0xffffffff
je 0x300257fb
movzx eax, word [esi + 0x1c]
bts eax, edx
mov word [esi + 0x1c], ax
test ecx, 0x1f80
je 0x30025816
mov edx, dword [esi + 0x34]
cmp edx, 0xffffffff
je 0x30025816
movzx eax, word [esi + 0x1c]
bts eax, edx
mov word [esi + 0x1c], ax
test cl, 0x70
je 0x3002582e
mov edx, dword [esi + 0x30]
cmp edx, 0xffffffff
je 0x3002582e
movzx eax, word [esi + 0x1c]
bts eax, edx
mov word [esi + 0x1c], ax
test ecx, 0x2000
je 0x30025849
mov edx, dword [esi + 0x38]
cmp edx, 0xffffffff
je 0x30025849
movzx eax, word [esi + 0x1c]
bts eax, edx
mov word [esi + 0x1c], ax
test ecx, 0x4000
je 0x30025864
mov ecx, dword [esi + 0x3c]
cmp ecx, 0xffffffff
je 0x30025864
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 0x30025886
mov byte [edi + 0x33], 0xff
mov al, byte [edi + 0x34]
cmp al, 0xff
je 0x3002589a
movzx eax, al
mov eax, dword [eax*4 + 0x301ea1f0]
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