Function at 0x720028
Capabilities:
Inspect section memory permissions

Disassembly:
push ebp
mov ebp, esp
push eax
mov eax, 2
add esp, 0xfffff004
push eax
dec eax
jne 0x720031
add esp, 0xffffff3c
mov eax, dword [ebp - 4]
test dword [esp], ebx
push ebx
push esi
push edi
mov dword [ebp - 8], ecx
mov dword [ebp - 4], eax
mov dword [ebp - 0xc], 1
xor eax, eax
xor esi, esi
mov dword [ebp - 0x20], eax
mov edi, edx
mov eax, dword [ebp - 4]
lea ebx, [ebp - 0xc8]
mov dword [ebp - 0x34], eax
cmp dword [ebp + 0x10], 0
jne 0x720088
cmp dword [ebp - 8], 0
je 0x720081
mov edx, dword [ebp - 8]
mov dword [edx], 0x63
xor eax, eax
jmp 0x720a7e
mov edx, dword [ebp + 0x10]
xor ecx, ecx
mov dword [edx], ecx
cmp dword [ebp - 8], 0
je 0x72009c
mov ecx, dword [ebp - 8]
xor eax, eax
mov dword [ecx], eax
cmp dword [ebp + 0xc], 0
jne 0x7200ae
mov dword [ebp - 0x20], 0x10
jmp 0x720880
mov edx, dword [ebp + 0xc]
xor eax, eax
mov dword [edx], eax
cmp dword [ebp + 8], 0
jne 0x7200c2
mov dword [ebp + 8], 0x9e126c
mov edx, dword [ebp + 8]
mov dword [ebx], edx
mov ecx, dword [ebp + 8]
add ecx, 0x100
mov dword [ebx + 4], ecx
mov ecx, dword [ebp + 8]
add ecx, 0x200
mov dword [ebx + 8], ecx
mov eax, dword [ebp + 8]
add eax, 0x340
test edi, 0xd8038580
mov dword [ebx + 0xc], eax
je 0x72030c
mov dword [ebp - 0x20], 0x11
jmp 0x72086e
xor edx, edx
xor ecx, ecx
mov dword [ebp - 0x38], edx
mov eax, esi
mov dword [ebp - 0x3c], ecx
add eax, eax
add eax, dword [ebp - 0x34]
mov ecx, 6
add eax, 4
mov edx, str.UTF16_
call fcn.0073f384
test eax, eax
jne 0x720141
add esi, 8
or edi, 0x800
jmp 0x72030c
mov eax, esi
mov edx, str.UTF_
add eax, eax
mov ecx, 4
add eax, dword [ebp - 0x34]
add eax, 4
call fcn.0073f384
test eax, eax
jne 0x72016e
add esi, 6
or edi, 0x800
jmp 0x72030c
mov eax, esi
mov edx, str.UCP_
add eax, eax
mov ecx, 4
add eax, dword [ebp - 0x34]
add eax, 4
call fcn.0073f384
test eax, eax
jne 0x72019b
add esi, 6
or edi, 0x20000000
jmp 0x72030c
mov eax, esi
mov edx, str.NO_START_OPT_
add eax, eax
mov ecx, 0xd
add eax, dword [ebp - 0x34]
add eax, 4
call fcn.0073f384
test eax, eax
jne 0x7201c6
add esi, 0xf
or edi, 0x4000000
jmp 0x72030c
mov eax, esi
mov edx, 0x9df9d8
add eax, eax
mov ecx, 3
add eax, dword [ebp - 0x34]
add eax, 4
call fcn.0073f384
test eax, eax
jne 0x7201f2
mov dword [ebp - 0x38], 0x100000
add esi, 5
jmp 0x7202ec
mov eax, esi
mov edx, 0x9df9dc
add eax, eax
mov ecx, 3
add eax, dword [ebp - 0x34]
add eax, 4
call fcn.0073f384
test eax, eax
jne 0x72021e
mov dword [ebp - 0x38], 0x200000
add esi, 5
jmp 0x7202ec
mov eax, esi
mov edx, str.CRLF_
add eax, eax
mov ecx, 5
add eax, dword [ebp - 0x34]
add eax, 4
call fcn.0073f384
test eax, eax
jne 0x72024a
mov dword [ebp - 0x38], 0x300000
add esi, 7
jmp 0x7202ec
mov eax, esi
mov edx, str.ANY_
add eax, eax
mov ecx, 4
add eax, dword [ebp - 0x34]
add eax, 4
call fcn.0073f384
test eax, eax
jne 0x720273
mov dword [ebp - 0x38], 0x400000
add esi, 6
jmp 0x7202ec
mov eax, esi
mov edx, str.ANYCRLF_
add eax, eax
mov ecx, 8
add eax, dword [ebp - 0x34]
add eax, 4
call fcn.0073f384
test eax, eax
jne 0x72029c
mov dword [ebp - 0x38], 0x500000
add esi, 0xa
jmp 0x7202ec
mov eax, esi
mov edx, str.BSR_ANYCRLF_
add eax, eax
mov ecx, 0xc
add eax, dword [ebp - 0x34]
add eax, 4
call fcn.0073f384
test eax, eax
jne 0x7202c5
mov dword [ebp - 0x3c], 0x800000
add esi, 0xe
jmp 0x7202ec
mov eax, esi
mov edx, str.BSR_UNICODE_
add eax, eax
mov ecx, 0xc
add eax, dword [ebp - 0x34]
add eax, 4
call fcn.0073f384
test eax, eax
jne 0x7202ec
mov dword [ebp - 0x3c], 0x1000000
add esi, 0xe
cmp dword [ebp - 0x38], 0
je 0x7202fd
and edi, 0xff8fffff
or edi, dword [ebp - 0x38]
jmp 0x72030c
cmp dword [ebp - 0x3c], 0
je 0x720329
and edi, 0xfe7fffff
or edi, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x34]
movzx edx, word [eax + esi*2]
cmp edx, 0x28
jne 0x720329
mov ecx, dword [ebp - 0x34]
movzx eax, word [ecx + esi*2 + 2]
cmp eax, 0x2a
je 0x720107
test edi, 0x800
setne dl
and edx, 1
mov dword [ebp - 0x24], edx
cmp dword [ebp - 0x24], 0
je 0x720367
test edi, 0x2000
jne 0x720367
mov ecx, dword [ebp + 0xc]
or edx, 0xffffffff
mov eax, dword [ebp - 4]
call fcn.00773b04
mov dword [ebp - 0x20], eax
test eax, eax
je 0x720367
mov dword [ebp - 0x20], 0x4a
jmp 0x720880
mov edx, edi
and edx, 0x1800000
cmp edx, 0x1800000
jne 0x720383
mov dword [ebp - 0x20], 0x38
jmp 0x72086e
mov ecx, edi
and ecx, 0x700000
cmp ecx, 0x300000
jg 0x7203ac
je 0x7203d3
sub ecx, 1
jb 0x7203be
sub ecx, 0xfffff
je 0x7203c5
sub ecx, 0x100000
je 0x7203cc
jmp 0x7203e6
sub ecx, 0x400000
je 0x7203da
sub ecx, 0x100000
je 0x7203df
jmp 0x7203e6
mov eax, 0xd0a
jmp 0x7203f2
mov eax, 0xd
jmp 0x7203f2
mov eax, 0xa
jmp 0x7203f2
mov eax, 0xd0a
jmp 0x7203f2
or eax, 0xffffffff
jmp 0x7203f2
mov eax, 0xfffffffe
jmp 0x7203f2
mov dword [ebp - 0x20], 0x38
jmp 0x72086e
cmp eax, 0xfffffffe
jne 0x720400
mov dword [ebx + 0x68], 2
jmp 0x720443
test eax, eax
jge 0x72040d
mov dword [ebx + 0x68], 1
jmp 0x720443
xor edx, edx
cmp eax, 0xff
mov dword [ebx + 0x68], edx
jle 0x720438
mov dword [ebx + 0x6c], 2
mov ecx, eax
sar ecx, 8
and cx, 0xff
mov word [ebx + 0x70], cx
and ax, 0xff
mov word [ebx + 0x72], ax
jmp 0x720443
mov dword [ebx + 0x6c], 1
mov word [ebx + 0x70], ax
xor ecx, ecx
xor eax, eax
mov dword [ebx + 0x44], ecx
mov dword [ebx + 0x48], eax
xor edx, edx
xor eax, eax
mov dword [ebx + 0x3c], edx
mov dword [ebx + 0x38], edx
mov dword [ebx + 0x2c], eax
xor ecx, ecx
mov dword [ebx + 0x30], ecx
xor ecx, ecx
mov dword [ebx + 0x28], ecx
lea eax, [ebp - 0x20c8]
mov dword [ebx + 0x14], eax
lea edx, [ebp - 0x20c8]
mov dword [ebx + 0x24], edx
lea ecx, [ebp - 0x20c8]
mov dword [ebx + 0x10], ecx
mov dword [ebx + 0x34], 0x1000
mov eax, dword [ebp - 4]
mov dword [ebx + 0x18], eax
mov eax, dword [ebp - 4]
call fcn.0073f3b8
add eax, eax
xor edx, edx
add eax, dword [ebp - 4]
xor ecx, ecx
mov dword [ebx + 0x1c], eax
mov dword [ebx + 0x58], edx
mov dword [ebx + 0x4c], ecx
xor ecx, ecx
mov dword [ebx + 0x40], ecx
mov dword [ebx + 0x50], edi
xor eax, eax
mov ecx, esi
mov dword [ebx + 0x54], eax
xor edx, edx
mov dword [ebx + 0x20], edx
add ecx, ecx
add dword [ebp - 0x34], ecx
lea eax, [ebp - 0x20c8]
mov dword [ebp - 0x2c], eax
lea ecx, [ebp - 0x20]
mov edx, dword [ebp - 0x2c]
lea eax, [ebp - 0x10]
mov word [edx], 0x7d
push ecx
push 0
push 0
push 0
push 0
push eax
lea edx, [ebp - 0x18]
push edx
lea ecx, [ebp - 0x14]
push ecx
lea eax, [ebp - 0x1c]
push eax
push 0
push ebx
lea edx, [ebp - 0xc]
push edx
lea edx, [ebp - 0x2c]
mov eax, dword [ebx + 0x50]
lea ecx, [ebp - 0x34]
call fcn.0071f668
cmp dword [ebp - 0x20], 0
jne 0x72086e
cmp dword [ebp - 0xc], 0x40000000
jle 0x720520
mov dword [ebp - 0x20], 0x14
jmp 0x72086e
mov ecx, dword [ebx + 0x2c]
imul ecx, dword [ebx + 0x30]
add ecx, dword [ebp - 0xc]
add ecx, ecx
add ecx, 0x28
mov dword [ebp - 0x28], ecx
mov eax, dword [ebp - 0x28]
call fcn.0070f308
mov edi, eax
test edi, edi
jne 0x72054c
mov dword [ebp - 0x20], 0x15
jmp 0x72086e
mov dword [edi], 0x50435245
mov eax, dword [ebp - 0x28]
mov dword [edi + 4], eax
mov edx, dword [ebx + 0x50]
mov dword [edi + 8], edx
mov edx, 0x9e126c
mov cx, word [ebx + 0x54]
mov word [edi + 0xc], cx
mov word [edi + 0x14], 0
mov word [edi + 0x16], 0
mov word [edi + 0x18], 0x14
mov cx, word [ebx + 0x30]
mov word [edi + 0x1a], cx
mov ax, word [ebx + 0x2c]
mov word [edi + 0x1c], ax
mov word [edi + 0x1e], 0
cmp edx, dword [ebp + 8]
jne 0x72059c
xor ecx, ecx
jmp 0x72059f
mov ecx, dword [ebp + 8]
mov dword [edi + 0x20], ecx
xor eax, eax
mov dword [edi + 0x24], eax
xor ecx, ecx
mov edx, dword [ebx + 0x38]
xor eax, eax
mov dword [ebx + 0x3c], edx
mov dword [ebx + 0x4c], ecx
mov dword [ebx + 0x38], eax
xor edx, edx
mov dword [ebx + 0x40], edx
xor ecx, ecx
mov dword [ebx + 0x2c], ecx
add esi, esi
movzx eax, word [edi + 0x18]
add eax, eax
add eax, edi
mov dword [ebx + 0x28], eax
movzx ecx, word [edi + 0x1c]
movzx edx, word [edi + 0x1a]
imul edx, ecx
add edx, edx
xor ecx, ecx
add edx, eax
mov dword [ebp - 0x30], edx
mov eax, dword [ebp - 0x30]
mov dword [ebx + 0x14], eax
xor eax, eax
mov edx, dword [ebx + 0x10]
mov dword [ebx + 0x24], edx
mov dword [ebx + 0x58], ecx
mov dword [ebx + 0x5c], eax
xor edx, edx
mov dword [ebx + 0x60], edx
xor ecx, ecx
mov dword [ebx + 0x64], ecx
xor eax, eax
mov dword [ebx + 0x20], eax
lea eax, [ebp - 0x20]
add esi, dword [ebp - 4]
mov dword [ebp - 0x34], esi
mov edx, dword [ebp - 0x30]
mov dword [ebp - 0x2c], edx
lea edx, [ebp - 0x10]
mov ecx, dword [ebp - 0x2c]
mov word [ecx], 0x7d
push eax
push 0
push 0
push 0
push 0
push edx
lea ecx, [ebp - 0x18]
push ecx
lea eax, [ebp - 0x14]
push eax
lea edx, [ebp - 0x1c]
push edx
push 0
push ebx
push 0
mov eax, dword [edi + 8]
lea edx, [ebp - 0x2c]
lea ecx, [ebp - 0x34]
call fcn.0071f668
mov cx, word [ebx + 0x38]
mov word [edi + 0x10], cx
mov ax, word [ebx + 0x44]
mov word [edi + 0x12], ax
mov dx, word [ebx + 0x40]
mov word [edi + 0xe], dx
mov cx, word [ebx + 0x54]
or cx, 2
mov word [edi + 0xc], cx
cmp dword [ebx + 0x5c], 0
je 0x72067e
xor eax, eax
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x1c], 0xffffffff
cmp dword [ebp - 0x20], 0
jne 0x720694
mov edx, dword [ebp - 0x34]
cmp word [edx], 0
je 0x720694
mov dword [ebp - 0x20], 0x16
mov ecx, dword [ebp - 0x2c]
mov word [ecx], 0
add dword [ebp - 0x2c], 2
mov eax, dword [ebp - 0x2c]
sub eax, dword [ebp - 0x30]
sar eax, 1
jns 0x7206ad
adc eax, 0
cmp eax, dword [ebp - 0xc]
jle 0x7206b9
mov dword [ebp - 0x20], 0x17
mov edx, dword [ebx + 0x24]
cmp edx, dword [ebx + 0x10]
jbe 0x720762
mov dword [ebp - 0x40], 0xffffffff
xor ecx, ecx
mov dword [ebp - 0x44], ecx
jmp 0x720750
sub dword [ebx + 0x24], 4
mov eax, dword [ebx + 0x24]
mov edx, dword [ebp - 0x30]
movzx esi, word [eax]
movzx eax, word [eax + 2]
shl esi, 0x10
or esi, eax
mov eax, dword [ebp - 0x30]
movzx ecx, word [edx + esi*2]
movzx edx, word [eax + esi*2 + 2]
shl ecx, 0x10
or ecx, edx
mov dword [ebp - 0x48], ecx
mov ecx, dword [ebp - 0x48]
cmp ecx, dword [ebp - 0x40]
je 0x72071c
mov ecx, dword [ebp - 0x48]
mov edx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x30]
call fcn.007195d8
mov dword [ebp - 0x44], eax
mov ecx, dword [ebp - 0x48]
mov dword [ebp - 0x40], ecx
cmp dword [ebp - 0x44], 0
jne 0x72072b
mov dword [ebp - 0x20], 0x35
jmp 0x720750
mov edx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x44]
sub eax, dword [ebp - 0x30]
sar eax, 1
jns 0x72073b
adc eax, 0
mov ecx, eax
sar ecx, 0x10
mov word [edx + esi*2], cx
mov edx, dword [ebp - 0x30]
and ax, 0xffff
mov word [edx + esi*2 + 2], ax
cmp dword [ebp - 0x20], 0
jne 0x720762
mov eax, dword [ebx + 0x24]
cmp eax, dword [ebx + 0x10]
ja 0x7206d3
cmp dword [ebx + 0x34], 0x1000
jle 0x720773
mov eax, dword [ebx + 0x10]
call fcn.0070f328
cmp dword [ebp - 0x20], 0
jne 0x72078a
mov dx, word [edi + 0x12]
cmp dx, word [edi + 0x10]
jbe 0x72078a
mov dword [ebp - 0x20], 0xf
cmp dword [ebx + 0x64], 0
je 0x720861
or ecx, 0xffffffff
mov edx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x30]
call fcn.007195d8
mov esi, eax
test esi, esi
je 0x720861
movzx eax, word [esi + 2]
shl eax, 0x10
movzx edx, word [esi + 4]
or eax, edx
jne 0x720847
movzx ecx, word [esi - 4]
shl ecx, 0x10
movzx eax, word [esi - 2]
or ecx, eax
add ecx, ecx
add ecx, esi
add ecx, 0xfffffffa
mov dword [ebp - 0x4c], ecx
mov edx, dword [ebp - 0x4c]
movzx ecx, word [edx]
mov dword [ebp - 0x50], ecx
mov ecx, dword [ebp - 0x4c]
mov word [ecx], 0
push ebx
test byte [edi + 9], 8
setne dl
and edx, 1
mov ecx, 1
mov eax, esi
call fcn.0071926c
mov cx, word [ebp - 0x50]
mov edx, dword [ebp - 0x4c]
test eax, eax
mov word [edx], cx
jge 0x72082e
cmp eax, 0xfffffffe
jne 0x720818
mov edx, 0x24
jmp 0x720829
cmp eax, 0xfffffffc
jne 0x720824
mov edx, 0x46
jmp 0x720829
mov edx, 0x19
mov dword [ebp - 0x20], edx
jmp 0x720861
cmp eax, dword [ebx + 0x40]
jle 0x720836
mov dword [ebx + 0x40], eax
mov ecx, eax
sar ecx, 0x10
mov word [esi + 2], cx
and ax, 0xffff
mov word [esi + 4], ax
add esi, 6
or ecx, 0xffffffff
mov edx, dword [ebp - 0x24]
mov eax, esi
call fcn.007195d8
mov esi, eax
test esi, esi
jne 0x7207ac
cmp dword [ebp - 0x20], 0
je 0x7208a2
mov eax, edi
call fcn.0070f328
mov edx, dword [ebp - 0x34]
sub edx, dword [ebp - 4]
sar edx, 1
jns 0x72087b
adc edx, 0
mov ecx, dword [ebp + 0xc]
mov dword [ecx], edx
mov eax, dword [ebp - 0x20]
call fcn.00718354
mov edx, dword [ebp + 0x10]
mov dword [edx], eax
cmp dword [ebp - 8], 0
je 0x72089b
mov ecx, dword [ebp - 8]
mov ebx, dword [ebp - 0x20]
mov dword [ecx], ebx
xor eax, eax
jmp 0x720a7e
test byte [edi + 8], 0x10
jne 0x7209b0
push 0
mov ecx, ebx
xor edx, edx
mov eax, dword [ebp - 0x30]
call fcn.0071faf4
test eax, eax
je 0x7208c7
or dword [edi + 8], 0x10
jmp 0x7209b0
cmp dword [ebp - 0x18], 0
jge 0x7208dd
lea edx, [ebp - 0x18]
xor ecx, ecx
mov eax, dword [ebp - 0x30]
call fcn.0071fe74
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x18], 0
jl 0x720998
mov ax, word [ebp - 0x10]
and ax, 0xffff
mov word [edi + 0x14], ax
test byte [ebp - 0x18], 1
je 0x720991
cmp dword [ebp - 0x24], 0
je 0x720971
movzx edx, ax
cmp edx, 0x80
jge 0x720929
movzx ecx, word [edi + 0x14]
mov esi, dword [ebx + 4]
xor eax, eax
mov al, byte [esi + ecx]
movzx edx, word [edi + 0x14]
cmp eax, edx
je 0x720991
or word [edi + 0xc], 0x20
jmp 0x720991
movzx eax, word [edi + 0x14]
mov edx, eax
test edx, edx
jns 0x720936
add edx, 0x7f
sar edx, 7
xor ecx, ecx
mov cl, byte [edx + 0x9ffa34]
shl ecx, 7
mov edx, eax
and edx, 0x8000007f
jns 0x720953
dec edx
or edx, 0xffffff80
inc edx
add ecx, edx
movzx ecx, word [ecx*2 + 0x9f2f34]
mov edx, dword [ecx*8 + 0x9f1b98]
add edx, eax
cmp edx, eax
je 0x720991
or word [edi + 0xc], 0x20
jmp 0x720991
cmp word [edi + 0x14], 0xff
ja 0x720991
movzx eax, word [edi + 0x14]
mov ecx, dword [ebx + 4]
movzx ecx, byte [ecx + eax]
movzx eax, word [edi + 0x14]
cmp ecx, eax
je 0x720991
or word [edi + 0xc], 0x20
or word [edi + 0xc], 0x10
jmp 0x7209b0
push 0
mov ecx, ebx
xor edx, edx
mov eax, dword [ebp - 0x30]
call fcn.0071fc78
test eax, eax
je 0x7209b0
or word [edi + 0xc], 0x100
cmp dword [ebp - 0x1c], 0
jl 0x720a7c
test byte [edi + 8], 0x10
je 0x7209ca
test byte [ebp - 0x1c], 2
je 0x720a7c
mov cx, word [ebp - 0x14]
and cx, 0xffff
mov word [edi + 0x16], cx
test byte [ebp - 0x1c], 1
je 0x720a77
cmp dword [ebp - 0x24], 0
je 0x720a56
movzx eax, word [edi + 0x16]
cmp eax, 0x80
jge 0x720a0d
movzx edx, word [edi + 0x16]
mov eax, dword [ebx + 4]
movzx ecx, word [edi + 0x16]
movzx edx, byte [eax + edx]
cmp edx, ecx
je 0x720a77
or word [edi + 0xc], 0x80
jmp 0x720a77
movzx eax, word [edi + 0x16]
mov edx, eax
test edx, edx
jns 0x720a1a
add edx, 0x7f
sar edx, 7
xor ecx, ecx
mov cl, byte [edx + 0x9ffa34]
shl ecx, 7
mov edx, eax
and edx, 0x8000007f
jns 0x720a37
dec edx
or edx, 0xffffff80
inc edx
add ecx, edx
movzx ecx, word [ecx*2 + 0x9f2f34]
mov edx, dword [ecx*8 + 0x9f1b98]
add edx, eax
cmp edx, eax
je 0x720a77
or word [edi + 0xc], 0x80
jmp 0x720a77
cmp word [edi + 0x16], 0xff
ja 0x720a77
movzx eax, word [edi + 0x16]
mov ecx, dword [ebx + 4]
movzx esi, byte [ecx + eax]
movzx eax, word [edi + 0x16]
cmp esi, eax
je 0x720a77
or word [edi + 0xc], 0x80
or word [edi + 0xc], 0x40
mov eax, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc