Function at 0x3f122ad6
Capabilities:
Inspect section memory permissions

Disassembly:
push ecx
mov eax, dword [esp + 8]
push ebx
push ebp
push esi
mov esi, ecx
push edi
and byte [esp + 0x13], 0
xor bl, bl
and byte [esi + 0x34], bl
and dword [esi + 0x30], 0
mov dword [esi + 0x2c], eax
mov eax, dword [esi + 0x14]
lea edi, [esi + 0x30]
mov ax, word [eax]
push eax
call fcn.3f121393
push 2
pop ebp
test eax, eax
jne 0x3f122b61
mov eax, 0xff
cmp dword [esi + 0x2c], eax
ja 0x3f122ba1
test bl, bl
jne 0x3f122ba1
mov eax, dword [esi + 0x14]
mov dword [esi + 0x1c], eax
mov dword [esi + 0x20], eax
mov ax, word [eax]
push eax
call fcn.3f11dc8a
test eax, eax
mov ebx, 0x40000000
je 0x3f122c26
add dword [esi + 0x14], ebp
mov eax, dword [esi + 0x14]
or byte [edi + 3], 0x80
cmp eax, dword [esi + 0x18]
je 0x3f122bc9
mov ax, word [eax]
push eax
call fcn.3f11dc8a
test eax, eax
je 0x3f122ba9
add dword [esi + 0x14], ebp
mov eax, dword [esi + 0x14]
jmp 0x3f122b47
mov eax, dword [esi + 0x14]
mov ax, word [eax]
cmp ax, 9
je 0x3f122b8f
push eax
call fcn.3f11dcaf
test eax, eax
je 0x3f122b7a
inc dword [esi + 0x2c]
add dword [esi + 0x14], ebp
mov eax, dword [esi + 0x14]
cmp eax, dword [esi + 0x18]
jne 0x3f122b93
mov al, 1
pop edi
pop esi
pop ebp
pop ebx
pop ecx
ret 4
mov bl, 1
jmp 0x3f122b6d
mov ax, word [eax]
push eax
call fcn.3f121393
jmp 0x3f122b04
mov dword [esi + 0x2c], eax
jmp 0x3f122b1e
mov eax, dword [esi + 0x14]
mov ax, word [eax]
push eax
call fcn.3f120025
test eax, eax
jne 0x3f122c12
mov eax, dword [esi + 0x14]
mov ax, word [eax]
push eax
call fcn.3f121393
test eax, eax
je 0x3f122c1c
mov ecx, dword [esi + 0x1c]
mov eax, dword [esi + 0x14]
sub eax, ecx
mov edx, eax
and edx, 0xfffffffe
cmp edx, 0x190
jge 0x3f3baf99
lea edx, [esp + 0x18]
sar eax, 1
push edx
push eax
push ecx
mov ecx, esi
call fcn.3f123225
mov ecx, dword [esi + 0x1c]
push dword [esp + 0x18]
mov edx, dword [esi + 0x14]
push dword [esi + 0x2c]
sub edx, ecx
sar edx, 1
push edx
push ecx
push eax
mov ecx, esi
call fcn.3f1277d8
jmp 0x3f122b85
add dword [esi + 0x14], ebp
or dword [edi], ebx
jmp 0x3f122ca9
mov eax, dword [esi + 0x14]
push edi
mov ax, word [eax]
push eax
jmp 0x3f122c9f
mov eax, dword [esi + 0x14]
mov ax, word [eax]
push eax
call fcn.3f120025
test eax, eax
jne 0x3f122c6c
mov eax, dword [esi + 0x14]
cmp byte [esi + 0x34], 0
mov cx, word [eax]
jne 0x3f3baee0
cmp cx, 0x2e
sete dl
test dl, dl
je 0x3f122c9d
add eax, 2
mov dword [esi + 0x14], eax
cmp eax, dword [esi + 0x18]
jne 0x3f122de0
mov ecx, esi
call fcn.3f12ab60
jmp 0x3f1231f2
add dword [esi + 0x14], ebp
mov eax, dword [esi + 0x14]
or dword [edi], ebx
push 1
pop ebp
mov ebx, ebp
cmp eax, dword [esi + 0x18]
je 0x3f122edd
mov ax, word [eax]
push eax
call fcn.3f120025
test eax, eax
je 0x3f122e7d
add dword [esi + 0x14], 2
mov eax, dword [esi + 0x14]
inc ebx
jmp 0x3f122c79
push edi
push ecx
mov ecx, esi
call fcn.3f129255
add dword [esi + 0x14], ebp
mov eax, dword [esi + 0x14]
cmp eax, dword [esi + 0x18]
je 0x3f1231f2
mov ax, word [eax]
push eax
call fcn.3f11dc8a
test eax, eax
je 0x3f122ccc
or byte [esi + 0x33], 0x80
add dword [esi + 0x14], 2
jmp 0x3f122ca9
mov eax, dword [esi + 0x14]
mov ax, word [eax]
push eax
call fcn.3f120025
test eax, eax
jne 0x3f122d24
mov eax, dword [esi + 0x14]
mov dl, byte [esi + 0x34]
test dl, dl
mov cx, word [eax]
jne 0x3f3baefb
cmp cx, 0x2e
sete cl
test cl, cl
jne 0x3f122d87
mov eax, dword [esi + 0x14]
mov ax, word [eax]
push eax
call fcn.3f121393
test eax, eax
jne 0x3f1231f2
lea eax, [esi + 0x30]
mov ecx, esi
push eax
mov eax, dword [esi + 0x14]
mov ax, word [eax]
push eax
call fcn.3f129255
jmp 0x3f122cc6
mov eax, dword [esi + 0x14]
mov cl, byte [esi + 0x34]
or byte [esi + 0x33], 0x40
lea edi, [esi + 0x30]
mov ax, word [eax - 2]
test cl, cl
jne 0x3f3baee9
cmp ax, 0x2e
sete dl
test dl, dl
jne 0x3f122cc6
test cl, cl
jne 0x3f3baef2
cmp ax, 0x2c
sete cl
test cl, cl
jne 0x3f122cc6
push eax
call fcn.3f121614
test eax, eax
jne 0x3f122cc6
mov eax, dword [esi + 0x14]
mov byte [esp + 0x13], 1
mov dword [esi + 0x20], eax
add eax, 2
mov dword [esi + 0x14], eax
jmp 0x3f122c74
mov ax, word [eax - 2]
test dl, dl
jne 0x3f3baf04
cmp ax, 0x2e
sete cl
test cl, cl
jne 0x3f122cfc
test dl, dl
jne 0x3f3baf0d
cmp ax, 0x2c
sete cl
test cl, cl
jne 0x3f122cfc
push eax
call fcn.3f121614
test eax, eax
jne 0x3f122cfc
mov eax, dword [esi + 0x14]
push 2
mov dword [esi + 0x20], eax
add eax, 2
mov dword [esi + 0x14], eax
mov byte [esp + 0x17], 1
pop ebp
jmp 0x3f122c57
mov ax, word [eax]
push eax
call fcn.3f120025
test eax, eax
jne 0x3f3baf16
mov eax, dword [esi + 0x14]
mov ax, word [eax]
push eax
call fcn.3f11dc8a
test eax, eax
jne 0x3f1231e9
mov eax, dword [esi + 0x14]
mov ax, word [eax]
push eax
call fcn.3f121393
test eax, eax
jne 0x3f122c60
lea eax, [esi + 0x30]
mov ecx, esi
push eax
mov eax, dword [esi + 0x14]
mov ax, word [eax]
push eax
call fcn.3f129255
mov ecx, esi
call fcn.3f12ab60
jmp 0x3f122ca6
add dword [esi + 0x14], ebp
mov eax, dword [esi + 0x14]
jmp 0x3f123007
add dword [esi + 0x14], ebp
mov eax, dword [esi + 0x14]
or byte [esi + 0x33], 0x80
jmp 0x3f122e71
add eax, 2
mov dword [esi + 0x14], eax
jmp 0x3f1230d9
lea eax, [esi + 0x30]
mov ecx, esi
push eax
mov eax, dword [esi + 0x14]
mov ax, word [eax]
push eax
call fcn.3f129255
add dword [esi + 0x14], ebp
mov eax, dword [esi + 0x14]
add eax, 0xfffffffe
push eax
push dword [esi + 0x20]
jmp 0x3f12317a
mov eax, dword [esi + 0x14]
cmp byte [esi + 0x34], 0
mov cx, word [eax]
jne 0x3f3baf2e
cmp cx, 0x2c
sete cl
test cl, cl
jne 0x3f122f31
mov eax, dword [esi + 0x14]
cmp byte [esi + 0x34], 0
mov cx, word [eax]
jne 0x3f3baf6a
cmp cx, 0x2e
sete dl
test dl, dl
jne 0x3f122fcf
push ecx
call fcn.3f11dc8a
test eax, eax
jne 0x3f12314d
mov eax, dword [esi + 0x14]
mov ax, word [eax]
push eax
call fcn.3f121393
test eax, eax
je 0x3f123186
mov eax, dword [esi + 0x14]
sub eax, dword [esi + 0x1c]
and al, 0xfe
cmp eax, 0x190
jge 0x3f3baf99
test byte [edi + 3], 0x20
jne 0x3f1231b7
cmp byte [esp + 0x13], 0
jne 0x3f1231d1
mov ecx, dword [esi]
call fcn.3f123206
mov ecx, dword [esi + 0x1c]
mov eax, dword [esi + 0x14]
sub eax, ecx
push ebp
sar eax, 1
push dword [esi + 0x2c]
mov dl, byte [esi + 0x34]
push eax
push ecx
push edx
push dword [esi + 0x30]
push eax
push ecx
mov ecx, dword [esi]
call fcn.3f2352d4
jmp 0x3f122c05
lea ecx, [eax + 2]
mov eax, dword [edi]
mov edx, 0x20000000
mov dword [esi + 0x14], ecx
test edx, eax
jne 0x3f122f6b
cmp ebx, 3
ja 0x3f122f6b
or eax, edx
cmp ecx, dword [esi + 0x18]
mov dword [edi], eax
je 0x3f122f9e
mov ax, word [ecx]
push eax
call fcn.3f120025
test eax, eax
je 0x3f122f76
add dword [esi + 0x14], 2
mov eax, dword [esi + 0x14]
xor ebx, ebx
jmp 0x3f122c9a
cmp ebx, 3
jne 0x3f1231ab
jmp 0x3f122f47
mov eax, dword [esi + 0x14]
mov ax, word [eax]
push eax
call fcn.3f11dc8a
test eax, eax
jne 0x3f3baf37
mov eax, dword [esi + 0x14]
mov ax, word [eax]
push eax
call fcn.3f121393
test eax, eax
je 0x3f3baf44
mov ecx, dword [esi + 0x14]
mov eax, ecx
sub eax, dword [esi + 0x1c]
and al, 0xfe
cmp eax, 0x190
jge 0x3f3baf99
cmp word [ecx - 2], 0x2e
lea eax, [ecx - 2]
jne 0x3f12311d
jmp 0x3f3baf5c
push eax
push dword [esi + 0x20]
jmp 0x3f1231dd
add eax, 2
test byte [edi + 3], 0x20
mov dword [esi + 0x14], eax
jne 0x3f123098
cmp eax, dword [esi + 0x18]
je 0x3f1230ef
mov ax, word [eax]
push eax
call fcn.3f120025
test eax, eax
je 0x3f1230a6
add dword [esi + 0x14], 2
mov eax, dword [esi + 0x14]
or byte [edi + 3], 0x10
push 2
pop ebp
cmp eax, dword [esi + 0x18]
je 0x3f12305e
mov ax, word [eax]
push eax
call fcn.3f120025
test eax, eax
jne 0x3f122e37
mov eax, dword [esi + 0x14]
mov ax, word [eax]
push eax
call fcn.3f11dc8a
test eax, eax
jne 0x3f122e42
mov eax, dword [esi + 0x14]
cmp byte [esi + 0x34], 0
mov cx, word [eax]
jne 0x3f3baf25
cmp cx, 0x2e
sete dl
test dl, dl
jne 0x3f122e4e
push ecx
call fcn.3f121393
test eax, eax
je 0x3f122e59
mov eax, dword [esi + 0x14]
mov ecx, eax
sub ecx, dword [esi + 0x1c]
and ecx, 0xfffffffe
cmp ecx, 0x190
jge 0x3f3baf99
cmp byte [esp + 0x13], 0
jne 0x3f1231e6
mov ecx, dword [esi]
call fcn.3f123206
mov ecx, dword [esi + 0x1c]
mov eax, dword [esi + 0x14]
sub eax, ecx
push 1
sar eax, 1
jmp 0x3f122f17
cmp ebx, 3
je 0x3f122fdf
jmp 0x3f3baf73
mov eax, dword [esi + 0x14]
mov ax, word [eax]
push eax
call fcn.3f11dc8a
test eax, eax
jne 0x3f1230e5
mov eax, dword [esi + 0x14]
mov ax, word [eax]
push eax
call fcn.3f121393
test eax, eax
jne 0x3f1230ef
mov eax, dword [esi + 0x14]
push edi
mov ecx, esi
mov ax, word [eax]
push eax
call fcn.3f129255
add dword [esi + 0x14], 2
mov ecx, esi
call fcn.3f12ab60
jmp 0x3f122ca9
add dword [esi + 0x14], 2
or byte [edi + 3], 0x80
jmp 0x3f1230d9
mov ecx, dword [esi + 0x14]
mov eax, ecx
sub eax, dword [esi + 0x1c]
and al, 0xfe
cmp eax, 0x190
jge 0x3f3baf99
cmp word [ecx - 2], 0x2e
lea eax, [ecx - 2]
jne 0x3f12311d
cmp ecx, dword [esi + 0xc]
ja 0x3f12311d
test byte [edi + 3], 0x20
je 0x3f1231c5
cmp byte [esp + 0x13], 0
mov dword [esi + 0x14], eax
jne 0x3f122fc6
mov ecx, dword [esi]
call fcn.3f123206
mov ecx, dword [esi + 0x1c]
mov eax, dword [esi + 0x14]
mov dl, byte [esi + 0x34]
push ebp
push dword [esi + 0x2c]
sub eax, ecx
sar eax, 1
push eax
push ecx
push edx
push dword [edi]
jmp 0x3f122f23
or byte [edi + 3], 0x80
mov edi, dword [edi]
add dword [esi + 0x14], 2
mov eax, dword [esi + 0x14]
test edi, 0x20000000
je 0x3f123167
jmp 0x3f3baf7f
test edi, 0x30000000
je 0x3f122ca9
add eax, 0xfffffffe
push eax
push dword [esi + 0x20]
mov ecx, esi
call fcn.3f2355fa
jmp 0x3f122ca9
mov eax, dword [esi + 0x14]
push edi
mov ecx, esi
mov ax, word [eax]
push eax
call fcn.3f129255
mov edi, dword [edi]
add dword [esi + 0x14], 2
mov eax, dword [esi + 0x14]
test edi, 0x20000000
je 0x3f123167
cmp ebx, 3
je 0x3f123167
mov ecx, esi
call fcn.3f239b13
jmp 0x3f122ca9
cmp ebx, 3
je 0x3f122efa
jmp 0x3f3baf8d
mov ecx, esi
call fcn.3f1290f0
jmp 0x3f122b85
test byte [esi + 0x33], 0x30
je 0x3f1231c5
push dword [esi + 0x14]
push dword [esi + 0x20]
mov ecx, esi
call fcn.3f2355fa
jmp 0x3f1231c5
push eax
jmp 0x3f1231da
or byte [esi + 0x33], 0x80
jmp 0x3f122e2b
mov eax, dword [esi + 0x14]
sub eax, dword [esi + 0x1c]
and al, 0xfe
cmp eax, 0x190
jl 0x3f1231c5
jmp 0x3f3baf99
cmp cx, 0x2c
jmp 0x3f122c4a
cmp ax, 0x2c
jmp 0x3f122d41
cmp ax, 0x2e
jmp 0x3f122d58
cmp cx, 0x2c
jmp 0x3f122cf1
cmp ax, 0x2c
jmp 0x3f122d97
cmp ax, 0x2e
jmp 0x3f122dae
add dword [esi + 0x14], ebp
mov eax, dword [esi + 0x14]
or byte [esi + 0x33], 0x54
jmp 0x3f123007
cmp cx, 0x2c
jmp 0x3f123045
cmp cx, 0x2e
jmp 0x3f122e91
add dword [esi + 0x14], 2
or byte [edi + 3], 0x80
jmp 0x3f1231ab
mov eax, dword [esi + 0x14]
push edi
mov ecx, esi
mov ax, word [eax]
push eax
call fcn.3f129255
add dword [esi + 0x14], 2
jmp 0x3f1231ab
cmp ecx, dword [esi + 0xc]
jbe 0x3f1231c5
jmp 0x3f12311d
cmp cx, 0x2c
jmp 0x3f122eb0
mov ecx, esi
call fcn.3f12ab60
jmp 0x3f1231ab
cmp ebx, 3
jne 0x3f122ca9
jmp 0x3f123167
mov ecx, esi
call fcn.3f239b13
jmp 0x3f1231c5
xor al, al
jmp 0x3f122b87