Function at 0x65f090
Capabilities:
Inspect section memory permissions

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x5164
call fcn.0049bfd0
mov eax, dword [0x79b544]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
mov eax, dword [ebp + 0x14]
mov edx, dword [ebp + 0xc]
mov ecx, dword [ebp + 0x1c]
mov dword [ebp - 0x50e4], eax
xor eax, eax
mov ebx, dword [ebp + 8]
mov dword [ebp - 0x50ec], eax
mov dword [ebp - 0x50f0], eax
mov dword [ebp - 0x5110], eax
xor ah, ah
mov byte [ebp - 0x50c9], al
mov byte [ebp - 0x50b9], al
mov byte [ebp - 0x50ca], ah
mov byte [ebp - 0x50c1], ah
lea eax, [ebp - 0x5004]
mov dword [ebp - 0x50d8], ecx
mov dword [ebp - 0x50c8], ebx
mov dword [ebp - 0x50d0], edx
mov dword [ebp - 0x511c], 0
mov dword [ebp - 0x50fc], 0
mov dword [ebp - 0x509c], eax
mov esi, dword [ebp + 0x10]
mov dword [ebp - 0x50dc], esi
mov edi, dword [ebp + 0x20]
test edx, edx
jne 0x65f13e
test esi, esi
mov eax, 0x7517d2
cmovne eax, edx
mov edx, eax
mov dword [ebp - 0x50d0], eax
test dword [ebp + 0x18], 0x1fff9fc0
jne 0x66036d
test ebx, ebx
je 0x660357
test edx, edx
je 0x660357
test ecx, ecx
je 0x660357
mov eax, dword [ebp - 0x50e4]
mov ecx, dword [ebp - 0x50dc]
add eax, edx
mov dword [ebp - 0x5124], eax
mov esi, eax
lea eax, [esi - 1]
mov dword [ebp - 0x5114], eax
cmp ecx, 0xffffffff
jne 0x65f1a8
push edx
call fcn.006622d0
mov edx, dword [ebp - 0x50d0]
mov ecx, eax
add esp, 4
mov dword [ebp - 0x50dc], ecx
mov dword [ebp - 0x511c], 1
lea eax, [ecx + edx]
mov dword [ebp - 0x50b8], eax
mov dword [ebp - 0x50e0], eax
mov dword [ebp - 0x50f8], eax
cmp dword [ebp - 0x50e4], ecx
jbe 0x65f1db
pop edi
pop esi
mov eax, 0xffffffdf
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0049b511
mov esp, ebp
pop ebp
ret
cmp dword [ebx + 0x38], 0x50435245
je 0x65f1fa
pop edi
pop esi
mov eax, 0xffffffe1
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0049b511
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebx + 0x48]
mov eax, ecx
and al, 7
cmp al, 1
je 0x65f21b
pop edi
pop esi
mov eax, 0xffffffe0
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0049b511
mov esp, ebp
pop ebp
ret
mov ebx, dword [ebx + 0x40]
mov eax, ebx
shr ecx, 0xe
and ecx, 0xc
shr eax, 0x13
or dword [ebp + 0x18], ecx
and eax, 1
mov ecx, dword [ebp + 0x18]
mov dword [ebp - 0x50d4], ebx
mov dword [ebp - 0x50c0], eax
test cl, 0x20
je 0x65f24a
mov eax, 2
jmp 0x65f252
mov eax, ecx
shr eax, 4
and eax, 1
movzx eax, ax
mov word [ebp - 0x5068], ax
test ax, ax
je 0x65f270
mov eax, ebx
or eax, ecx
test eax, 0x20000000
jne 0x66036d
test edi, edi
je 0x65f298
cmp dword [edi + 0x1c], 0xffffffff
je 0x65f298
test ebx, 0x800000
jne 0x65f298
pop edi
pop esi
mov eax, 0xffffffc8
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0049b511
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 0x50d8]
test byte [eax + 0x25], 1
je 0x65f2c5
push dword [eax + 8]
push dword [eax + 0x10]
mov eax, dword [eax + 4]
call eax
mov eax, dword [ebp - 0x50d8]
add esp, 8
mov edx, dword [ebp - 0x50d0]
mov ecx, dword [ebp + 0x18]
and byte [eax + 0x25], 0xfe
mov dword [eax + 0x10], 0
add eax, 0x20
cmp dword [ebp - 0x50c0], 0
mov dword [ebp - 0x50e8], eax
mov dword [ebp - 0x5054], edx
mov dword [eax], 0
je 0x65f45a
test ecx, 0x40000000
je 0x65f302
test ebx, 0x4000000
je 0x65f45a
mov ecx, dword [ebp - 0x50b8]
mov eax, ebx
xor edx, edx
and eax, 0x4000000
cmp esi, ecx
jae 0x65f332
test eax, eax
je 0x65f46d
nop dword [eax]
mov al, byte [esi]
and al, 0xc0
cmp al, 0x80
jne 0x65f332
inc esi
mov edx, 1
cmp esi, ecx
jb 0x65f320
mov ecx, esi
mov dword [ebp - 0x5054], ecx
test edx, edx
jne 0x65f37c
mov eax, dword [ebp - 0x50c8]
movzx edx, word [eax + 0x64]
test edx, edx
je 0x65f37c
mov edi, dword [ebp - 0x50d0]
cmp ecx, edi
jbe 0x65f379
dec ecx
mov dword [ebp - 0x5054], ecx
cmp ecx, edi
jbe 0x65f374
mov al, byte [ecx]
and al, 0xc0
cmp al, 0x80
jne 0x65f374
dec ecx
mov dword [ebp - 0x5054], ecx
cmp ecx, edi
ja 0x65f361
sub edx, 1
jne 0x65f352
mov edi, dword [ebp + 0x20]
mov eax, dword [ebp - 0x50dc]
push dword [ebp - 0x50e8]
sub eax, ecx
add eax, dword [ebp - 0x50d0]
push eax
push ecx
call fcn.00663c40
mov ecx, dword [ebp - 0x50d8]
add esp, 0xc
mov dword [ecx + 0x28], eax
test eax, eax
je 0x65f44e
nop dword [eax + eax]
mov eax, dword [ebp - 0x50e8]
mov ecx, dword [ebp - 0x5054]
mov edx, dword [ebp - 0x50d0]
sub ecx, edx
mov eax, dword [eax]
add eax, ecx
mov ecx, dword [ebp - 0x50e8]
mov dword [ecx], eax
test ebx, 0x4000000
je 0x65f4a6
mov ecx, dword [ebp - 0x50d8]
cmp dword [ecx + 0x28], 0
jg 0x65f4a6
add eax, edx
mov dword [ebp - 0x50b8], eax
cmp eax, esi
jae 0x65f49a
lea ecx, [eax + 1]
mov dword [ebp - 0x5054], ecx
cmp ecx, esi
jae 0x65f423
nop dword [eax]
mov al, byte [ecx]
and al, 0xc0
cmp al, 0x80
jne 0x65f423
inc ecx
mov dword [ebp - 0x5054], ecx
cmp ecx, esi
jb 0x65f410
mov eax, dword [ebp - 0x50dc]
push dword [ebp - 0x50e8]
sub eax, ecx
add eax, edx
push eax
push ecx
call fcn.00663c40
mov ecx, dword [ebp - 0x50d8]
add esp, 0xc
mov dword [ecx + 0x28], eax
test eax, eax
jne 0x65f3b0
mov eax, dword [ebp - 0x50e0]
mov dword [ebp - 0x50b8], eax
mov eax, dword [ebp - 0x50c8]
test edi, edi
jne 0x65f4c0
movq xmm0, qword [eax]
mov ebx, dword [eax + 8]
jmp 0x65f4c7
mov al, byte [esi]
and al, 0xc0
cmp al, 0x80
jne 0x65f332
xor eax, eax
cmp eax, dword [ebp - 0x50e4]
pop edi
sbb eax, eax
and eax, 0xfffffff2
pop esi
add eax, 0xffffffea
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0049b511
mov esp, ebp
pop ebp
ret
mov dword [ebp - 0x50fc], 2
jmp 0x65f45a
mov eax, dword [ebp - 0x50d8]
pop edi
pop esi
pop ebx
mov eax, dword [eax + 0x28]
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0049b511
mov esp, ebp
pop ebp
ret
movq xmm0, qword [edi]
mov ebx, dword [edi + 8]
mov ecx, dword [eax + 0x40]
test edi, edi
mov edx, 0x74d118
mov dword [ebp - 0x50ac], ebx
cmovne edx, edi
movq qword [ebp - 0x50b4], xmm0
mov edi, dword [ebp - 0x50dc]
mov eax, ecx
or eax, dword [ebp + 0x18]
shr eax, 0x1f
mov dword [ebp - 0x5104], eax
mov eax, ecx
shr eax, 8
and eax, 1
mov dword [ebp - 0x50e0], edx
cmp dword [edx + 0x1c], 0xffffffff
mov dword [ebp - 0x5118], eax
cmovne edi, dword [edx + 0x1c]
mov eax, dword [ebp - 0x50c8]
mov dword [ebp - 0x5164], 2
mov dword [ebp - 0x5128], 0
mov eax, dword [eax + 0x48]
mov dword [ebp - 0x5100], eax
mov eax, dword [ebp - 0x50d0]
add edi, eax
mov dword [ebp - 0x514c], eax
mov dword [ebp - 0x5120], edi
lea edi, [ebp - 0x5164]
mov dword [ebp - 0x5010], edi
mov edi, dword [ebp - 0x50b8]
mov eax, edi
sub eax, dword [ebp - 0x50d0]
mov dword [ebp - 0x5148], eax
mov eax, dword [edx + 0xc]
mov dword [ebp - 0x5008], eax
mov eax, dword [edx + 0x10]
mov edx, dword [ebp - 0x5100]
mov dword [ebp - 0x500c], eax
mov eax, dword [ebp - 0x50d0]
mov dword [ebp - 0x5058], eax
mov eax, dword [ebp - 0x50e4]
mov dword [ebp - 0x5070], eax
mov eax, edx
shr eax, 0xc
and eax, 1
mov dword [ebp - 0x5050], edi
mov dword [ebp - 0x5084], eax
mov eax, dword [ebp - 0x50c8]
cmp word [eax + 0x64], 0
ja 0x65f5c6
test edx, 0x2000
jne 0x65f5c6
xor eax, eax
jmp 0x65f5cb
mov eax, 1
mov dword [ebp - 0x5080], eax
mov eax, dword [ebp - 0x50c8]
mov dword [ebp - 0x5028], ecx
mov dword [ebp - 0x5020], 0
mov dword [ebp - 0x503c], 0
movzx edx, word [eax + 0x6e]
lea edi, [eax + 0x70]
movzx eax, word [eax + 0x6c]
mov ecx, eax
mov word [ebp - 0x5062], ax
imul ecx, edx
mov dword [ebp - 0x5040], 0
mov dword [ebp - 0x5060], edi
mov word [ebp - 0x5064], dx
mov dword [ebp - 0x501c], 0
add ecx, edi
mov dword [ebp - 0x505c], ecx
mov ecx, dword [ebp - 0x50c8]
mov ax, word [ecx + 0x60]
mov word [ebp - 0x5066], ax
movzx eax, word [ecx + 0x62]
dec eax
cmp eax, 5
ja case.default.0x65f650
jmp dword [eax*4 + 0x660384]
mov dword [ebp - 0x5018], 1
mov byte [ebp - 0x5014], 0xd
jmp 0x65f6bb
mov dword [ebp - 0x5018], 1
mov byte [ebp - 0x5014], 0xa
jmp 0x65f6bb
mov dword [ebp - 0x5018], 1
mov byte [ebp - 0x5014], 0
jmp 0x65f6bb
mov dword [ebp - 0x5018], 2
mov word [ebp - 0x5014], 0xa0d
jmp 0x65f6bb
mov dword [ebp - 0x501c], 1
jmp 0x65f6bb
mov dword [ebp - 0x501c], 2
movzx eax, word [ecx + 0x68]
mov edi, dword [ebp - 0x50e0]
lea eax, [eax*8 + 0x57]
mov edx, dword [edi + 0x20]
and eax, 0xfffffffc
cmp edx, dword [ecx + 0x4c]
mov dword [ebp - 0x50f4], eax
cmovae edx, dword [ecx + 0x4c]
mov eax, dword [ecx + 0x50]
mov ecx, dword [edi + 0x24]
cmp ecx, eax
mov dword [ebp - 0x5098], edx
cmovae ecx, eax
mov eax, dword [ebp - 0x50c8]
mov dword [ebp - 0x5094], ecx
mov ecx, dword [edi + 0x28]
mov edi, dword [ebp - 0x50f4]
mov eax, dword [eax + 0x54]
cmp ecx, eax
cmovae ecx, eax
mov dword [ebp - 0x5090], ecx
cmp edi, 0x800
ja 0x65f742
mov ebx, dword [ebp - 0x50f4]
mov ecx, 0x5000
mov eax, ecx
mov edi, dword [ebp - 0x509c]
xor edx, edx
mov dword [ebp - 0x50a4], edi
div ebx
sub ecx, edx
mov dword [ebp - 0x50a8], ecx
jmp 0x65f7aa
lea ecx, [edi + edi*4]
add ecx, ecx
mov eax, ecx
mov dword [ebp - 0x50a8], ecx
shr eax, 0xa
cmp eax, edx
jbe 0x65f783
mov ecx, edx
shl ecx, 0xa
cmp edi, ecx
jbe 0x65f775
pop edi
pop esi
mov eax, 0xffffffc1
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0049b511
mov esp, ebp
pop ebp
ret
mov eax, ecx
xor edx, edx
div edi
sub ecx, edx
mov dword [ebp - 0x50a8], ecx
push ebx
push ecx
call dword [ebp - 0x50b4]
mov edi, eax
add esp, 8
mov dword [ebp - 0x50a4], edi
test edi, edi
je 0x66032b
mov ecx, dword [ebp - 0x50a8]
mov ebx, dword [ebp - 0x50f4]
lea eax, [ebx - 0x54]
add ecx, edi
push eax
lea eax, [edi + 0x54]
mov dword [ebp - 0x50a0], ecx
push 0xff
push eax
call fcn.00506c70
mov edx, dword [ebp - 0x50c8]
add esp, 0xc
mov eax, dword [edx + 0xc]
mov ecx, dword [edx + 0x48]
mov dword [ebp - 0x507c], eax
lea edi, [eax + 0x100]
add eax, 0x340
mov dword [ebp - 0x5078], edi
mov dword [ebp - 0x5074], eax
test cl, 0x10
je 0x65f904
mov ah, byte [edx + 0x58]
mov dword [ebp - 0x50f0], 1
mov al, ah
mov byte [ebp - 0x50b9], ah
mov byte [ebp - 0x50c9], al
test cl, 0x20
je 0x65f92d
movzx edx, ah
mov bl, byte [edx + edi]
mov byte [ebp - 0x50b9], bl
mov ebx, dword [ebp - 0x50d4]
cmp al, 0x7f
jbe 0x65f877
test ebx, 0x20000
je 0x65f877
cmp dword [ebp - 0x50c0], 0
jne 0x65f877
mov eax, edx
and edx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x732070]
shl eax, 7
add eax, edx
movzx eax, word [eax*2 + 0x736470]
lea eax, [eax + eax*2]
mov ah, byte [eax*4 + 0x72de64]
add ah, byte [ebp - 0x50c9]
mov byte [ebp - 0x50b9], ah
mov edx, dword [ebp - 0x50c8]
test cl, cl
jns 0x65f938
mov al, byte [edx + 0x5c]
mov dword [ebp - 0x5110], 1
mov dl, al
mov byte [ebp - 0x50c1], al
mov byte [ebp - 0x50ca], dl
test ecx, 0x100
je 0x65f938
movzx ecx, al
cmp dl, 0x7f
mov edx, dword [ebp - 0x50c0]
mov al, byte [edi + ecx]
mov byte [ebp - 0x50c1], al
jbe 0x65f93e
test ebx, 0x20000
je 0x65f93e
test edx, edx
jne 0x65f93e
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x732070]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x736470]
lea eax, [eax + eax*2]
mov al, byte [eax*4 + 0x72de64]
add al, byte [ebp - 0x50ca]
mov byte [ebp - 0x50c1], al
jmp 0x65f93e
test dword [ebp - 0x5100], 0x200
jne 0x65f92d
mov ebx, dword [ebp - 0x50d4]
test cl, 0x40
je 0x65f87d
lea eax, [edx + 0x14]
mov dword [ebp - 0x50ec], eax
jmp 0x65f87d
mov ebx, dword [ebp - 0x50d4]
jmp 0x65f87d
mov edx, dword [ebp - 0x50c0]
mov edi, dword [ebp - 0x50b8]
mov eax, dword [ebp - 0x5050]
nop word [eax + eax]
mov ecx, dword [ebp - 0x5018]
xor ebx, ebx
mov dword [ebp - 0x50e0], ebx
mov dword [ebp - 0x50d4], ebx
mov dword [ebp - 0x5088], ebx
mov dword [ebp - 0x5108], ebx
mov dword [ebp - 0x510c], ebx
nop word [eax + eax]
mov ebx, dword [ebp - 0x50c8]
test dword [ebx + 0x40], 0x10000
jne 0x65ff7a
cmp dword [ebp - 0x5118], 0
je 0x65fa37
mov ebx, dword [ebp - 0x50b8]
mov edi, esi
cmp esi, ebx
jae 0x65fa31
test edx, edx
mov edx, dword [ebp - 0x501c]
je 0x65fb60
nop
test edx, edx
je 0x65f9f8
mov eax, dword [ebp - 0x5050]
cmp edi, eax
jae 0x65fa18
push dword [ebp - 0x50c0]
lea ecx, [ebp - 0x5018]
push ecx
push eax
push edx
push edi
call fcn.00661f30
add esp, 0x14
test eax, eax
jne 0x65fa31
mov ecx, dword [ebp - 0x5018]
mov edx, dword [ebp - 0x501c]
jmp 0x65fa18
sub eax, ecx
cmp edi, eax
ja 0x65fa18
mov al, byte [edi]
cmp al, byte [ebp - 0x5014]
jne 0x65fa18
cmp ecx, 1
je 0x65fa31
mov al, byte [edi + 1]
cmp al, byte [ebp - 0x5013]
je 0x65fa31
inc edi
cmp edi, ebx
jae 0x65fa31
nop dword [eax]
mov al, byte [edi]
and al, 0xc0
cmp al, 0x80
jne 0x65fb55
inc edi
cmp edi, ebx
jb 0x65fa20
mov dword [ebp - 0x50b8], edi
cmp dword [ebp - 0x5104], 0
je 0x65fbd5
mov ecx, dword [ebp - 0x50f0]
mov ebx, dword [ebp - 0x50ec]
test ecx, ecx
jne 0x65fa58
test ebx, ebx
je 0x65faa5
cmp esi, edi
sbb eax, eax
neg eax
cmp esi, edi
jae 0x65fa9d
mov al, byte [esi]
test ecx, ecx
je 0x65fa78
cmp al, byte [ebp - 0x50c9]
je 0x65faa5
cmp al, byte [ebp - 0x50b9]
je 0x65faa5
test ebx, ebx
je case.0x660045.997
movzx edx, al
mov eax, 1
mov ecx, edx
shr edx, 3
and ecx, 7
shl eax, cl
test byte [edx + ebx], al
mov eax, 0
setne al
test eax, eax
je case.0x660045.997
mov ecx, dword [ebp - 0x5050]
cmp word [ebp - 0x5068], 0
mov edi, ecx
mov edx, dword [ebp - 0x50c8]
mov dword [ebp - 0x50b8], edi
jne 0x65ff7c
movzx eax, word [edx + 0x66]
sub ecx, esi
cmp ecx, eax
jl case.0x660045.997
mov edi, dword [ebp - 0x50f0]
add edi, esi
cmp dword [ebp - 0x5110], 0
je 0x65ff7c
cmp edi, dword [ebp - 0x5114]
jbe 0x65ff7c
cmp ecx, 0x1388
jb 0x65fb17
cmp dword [ebp - 0x5104], 0
jne 0x65ff7c
cmp ecx, 0x4c4b40
jae 0x65ff7c
mov al, byte [ebp - 0x50ca]
movzx ecx, al
cmp al, byte [ebp - 0x50c1]
je 0x65ff45
mov ebx, dword [ebp - 0x5050]
sub ebx, edi
push ebx
push ecx
push edi
call fcn.00506bc0
add esp, 0xc
test eax, eax
jne 0x65ff60
movzx eax, byte [ebp - 0x50c1]
push ebx
push eax
jmp 0x65ff4f
mov eax, dword [ebp - 0x5050]
jmp 0x65f9c0
test edx, edx
je 0x65fb9c
mov eax, dword [ebp - 0x5050]
cmp edi, eax
jae 0x65fbc4
push dword [ebp - 0x50c0]
lea ecx, [ebp - 0x5018]
push ecx
push eax
push edx
push edi
call fcn.00661f30
add esp, 0x14
test eax, eax
jne 0x65fa31
mov ecx, dword [ebp - 0x5018]
mov edx, dword [ebp - 0x501c]
jmp 0x65fbc4
sub eax, ecx
cmp edi, eax
ja 0x65fbc4
mov al, byte [edi]
cmp al, byte [ebp - 0x5014]
jne 0x65fbc4
cmp ecx, 1
je 0x65fa31
mov al, byte [edi + 1]
cmp al, byte [ebp - 0x5013]
je 0x65fa31
inc edi
cmp edi, ebx
jae 0x65fa31
mov eax, dword [ebp - 0x5050]
jmp 0x65fb60
cmp dword [ebp - 0x50f0], 0
je 0x65fd71
mov al, byte [ebp - 0x50c9]
mov ebx, edi
mov dl, byte [ebp - 0x50b9]
sub ebx, esi
cmp al, dl
je 0x65fc98
mov ecx, dword [ebp - 0x5108]
test ecx, ecx
je 0x65fc1c
cmp esi, ecx
ja 0x65fc1c
mov eax, dword [ebp - 0x50b8]
mov edi, ecx
cmp ecx, eax
mov ecx, 0
cmove edi, ecx
jmp 0x65fc45
push ebx
movzx eax, al
push eax
push esi
call fcn.00506bc0
mov dl, byte [ebp - 0x50b9]
mov edi, eax
mov eax, dword [ebp - 0x50b8]
add esp, 0xc
test edi, edi
mov ecx, edi
cmove ecx, eax
mov dword [ebp - 0x5108], ecx
mov ecx, dword [ebp - 0x510c]
test ecx, ecx
je 0x65fc5e
cmp esi, ecx
ja 0x65fc5e
xor edx, edx
mov esi, ecx
cmp ecx, eax
cmove esi, edx
jmp 0x65fc81
push ebx
movzx eax, dl
push eax
push esi
call fcn.00506bc0
mov esi, eax
add esp, 0xc
mov eax, dword [ebp - 0x50b8]
test esi, esi
mov ecx, esi
cmove ecx, eax
mov dword [ebp - 0x510c], ecx
test edi, edi
jne 0x65fc8c
test esi, esi
cmove esi, eax
jmp 0x65fcad
test esi, esi
je 0x65fc94
cmp edi, esi
jae 0x65fcad
mov esi, edi
jmp 0x65fcad
push ebx
movzx eax, al
push eax
push esi
call fcn.00506bc0
mov esi, eax
add esp, 0xc
test esi, esi
cmove esi, edi
cmp word [ebp - 0x5068], 0
mov ecx, dword [ebp - 0x5050]
jne 0x65faab
cmp esi, ecx
jb 0x65faab
xor ebx, ebx
cmp dword [ebp - 0x50c0], 0
mov edi, dword [ebp - 0x50b8]
je 0x65fd13
mov ecx, dword [ebp - 0x50f8]
cmp edi, ecx
je 0x65fd13
test ebx, ebx
je 0x65fced
cmp ebx, 0xfffffffe
jne 0x65fd13
mov ebx, dword [ebp - 0x50e8]
lea esi, [edi + 1]
cmp esi, ecx
jae 0x65fd11
nop word [eax + eax]
mov al, byte [esi]
and al, 0xc0
cmp al, 0x80
jne 0x66018b
inc esi
cmp esi, ecx
jb 0x65fd00
xor ebx, ebx
mov eax, dword [ebp - 0x50a4]
cmp eax, dword [ebp - 0x509c]
je 0x65fd31
push dword [ebp - 0x50ac]
push eax
call dword [ebp - 0x50b0]
add esp, 8
mov ecx, dword [ebp - 0x50d8]
mov eax, dword [ebp - 0x50c8]
mov dword [ecx + 0xc], eax
mov eax, dword [ebp - 0x5040]
mov dword [ecx + 0x14], eax
mov byte [ecx + 0x24], 0
cmp ebx, 1
jne 0x6602b7
movzx eax, word [ecx + 0x26]
mov ecx, dword [ebp - 0x506c]
add eax, eax
cmp ecx, eax
jl 0x660210
xor edx, edx
jmp 0x66021a
test dword [ebp - 0x5100], 0x200
je 0x65ff0a
mov eax, dword [ebp - 0x50e4]
mov edx, dword [ebp - 0x5058]
add eax, edx
cmp esi, eax
jbe 0x65faa5
cmp esi, edi
jae 0x65fecf
mov ebx, dword [ebp - 0x50c0]
mov edi, dword [ebp - 0x501c]
test ebx, ebx
je 0x65fe53
mov ecx, dword [ebp - 0x50b8]
nop dword [eax]
test edi, edi
je 0x65fdf7
cmp esi, edx
jbe 0x65fe36
push ebx
lea eax, [ebp - 0x5018]
push eax
push edx
push edi
push esi
call fcn.00662090
add esp, 0x14
test eax, eax
jne 0x65fec9
mov edx, dword [ebp - 0x5058]
mov edi, dword [ebp - 0x501c]
mov ecx, dword [ebp - 0x50b8]
jmp 0x65fe36
mov ebx, dword [ebp - 0x5018]
lea eax, [edx + ebx]
cmp esi, eax
jb 0x65fe30
mov ecx, esi
sub ecx, ebx
mov al, byte [ecx]
cmp al, byte [ebp - 0x5014]
jne 0x65fe2a
cmp ebx, 1
je 0x65fec9
mov al, byte [ecx + 1]
cmp al, byte [ebp - 0x5013]
je 0x65fec9
mov ecx, dword [ebp - 0x50b8]
mov ebx, dword [ebp - 0x50c0]
inc esi
cmp esi, ecx
jae 0x65fec9
nop
mov al, byte [esi]
and al, 0xc0
cmp al, 0x80
jne 0x65fdc0
inc esi
cmp esi, ecx
jb 0x65fe40
jmp 0x65fec9
mov eax, dword [ebp - 0x50b8]
nop dword [eax]
test edi, edi
je 0x65fe8d
cmp esi, edx
jbe 0x65fec4
push ebx
lea eax, [ebp - 0x5018]
push eax
push edx
push edi
push esi
call fcn.00662090
add esp, 0x14
test eax, eax
jne 0x65fec9
mov edx, dword [ebp - 0x5058]
mov edi, dword [ebp - 0x501c]
jmp 0x65febe
mov ebx, dword [ebp - 0x5018]
lea eax, [edx + ebx]
cmp esi, eax
jb 0x65feb8
mov ecx, esi
sub ecx, ebx
mov al, byte [ecx]
cmp al, byte [ebp - 0x5014]
jne 0x65feb8
cmp ebx, 1
je 0x65fec9
mov al, byte [ecx + 1]
cmp al, byte [ebp - 0x5013]
je 0x65fec9
mov ebx, dword [ebp - 0x50c0]
mov eax, dword [ebp - 0x50b8]
inc esi
cmp esi, eax
jb 0x65fe60
mov edi, dword [ebp - 0x50b8]
cmp byte [esi - 1], 0xd
jne 0x65faa5
mov eax, dword [ebp - 0x501c]
cmp eax, 1
je 0x65feed
cmp eax, 2
jne 0x65faa5
cmp esi, edi
jae 0x65faa5
cmp byte [esi], 0xa
mov ecx, dword [ebp - 0x5050]
jne 0x65faab
inc esi
jmp 0x65faab
mov ebx, dword [ebp - 0x50ec]
test ebx, ebx
je 0x65faa5
cmp esi, edi
jae 0x65fcad
movzx edx, byte [esi]
mov eax, 1
mov ecx, edx
shr edx, 3
and ecx, 7
shl eax, cl
test byte [edx + ebx], al
jne 0x65fcad
inc esi
cmp esi, edi
jb 0x65ff20
jmp 0x65fcad
mov eax, dword [ebp - 0x5050]
sub eax, edi
push eax
push ecx
push edi
call fcn.00506bc0
add esp, 0xc
test eax, eax
je case.0x660045.997
cmp eax, dword [ebp - 0x5050]
jae case.0x660045.997
mov edx, dword [ebp - 0x50c8]
mov dword [ebp - 0x5114], eax
jmp 0x65ff7c
mov edx, ebx
cmp esi, dword [ebp - 0x5120]
ja case.0x660045.997
mov ecx, dword [ebp - 0x50d8]
mov eax, esi
sub eax, dword [ebp - 0x50d0]
or dword [ebp - 0x5128], 1
mov dword [ebp - 0x5144], eax
mov eax, dword [ebp - 0x50fc]
or eax, dword [ebp + 0x18]
mov dword [ebp - 0x502c], eax
lea eax, [ebp - 0x50b4]
push eax
push dword [ebp - 0x50f4]
movzx eax, word [edx + 0x68]
push eax
movzx eax, word [ecx + 0x26]
push eax
lea eax, [ecx + 0x2c]
mov dword [ebp - 0x5048], esi
push eax
push dword [ebp - 0x505c]
mov dword [ebp - 0x5044], esi
push esi
mov dword [ebp - 0x508c], 0
mov dword [ebp - 0x506c], 0
mov dword [ebp - 0x5024], 0
call fcn.0064fe40
add esp, 0x1c
mov ebx, eax
cmp dword [ebp - 0x5088], 0
je 0x66002c
cmp dword [ebp - 0x50d4], 0
jne 0x66002c
mov eax, dword [ebp - 0x5048]
mov dword [ebp - 0x50d4], eax
mov dword [ebp - 0x50e0], esi
test ebx, ebx
jg case.default.0x660045
je case.0x660045.996
lea eax, [ebx + 0x3e5]
cmp eax, 4
ja case.default.0x660045
xchg ah, bh
invalid
invalid
jmp dword [eax*4 + 0x66039c]
mov eax, dword [ebp - 0x5024]
mov edi, esi
mov dword [ebp - 0x5020], eax
jmp 0x660094
mov edi, dword [ebp - 0x5034]
cmp edi, esi
ja 0x660094
mov ecx, dword [ebp - 0x50c0]
lea edi, [esi + 1]
mov dword [ebp - 0x5020], 0
test ecx, ecx
je 0x66009a
mov ecx, dword [ebp - 0x50b8]
cmp edi, ecx
jae 0x660094
mov al, byte [edi]
and al, 0xc0
cmp al, 0x80
jne 0x660094
inc edi
cmp edi, ecx
jb 0x660087
mov ecx, dword [ebp - 0x50c0]
mov edx, dword [ebp - 0x501c]
xor ebx, ebx
cmp dword [ebp - 0x5118], ebx
je 0x6600dd
mov eax, dword [ebp - 0x5050]
test edx, edx
je 0x660154
cmp esi, eax
jae 0x6600dd
push ecx
lea ecx, [ebp - 0x5018]
push ecx
push eax
push edx
push esi
call fcn.00661f30
add esp, 0x14
test eax, eax
jne case.default.0x660045
mov edx, dword [ebp - 0x501c]
mov ecx, dword [ebp - 0x5018]
mov esi, edi
cmp dword [ebp - 0x5104], ebx
jne case.default.0x660045
mov eax, dword [ebp - 0x50b8]
cmp edi, eax
ja case.default.0x660045
cmp edi, dword [ebp - 0x5124]
jbe 0x660137
cmp byte [edi - 1], 0xd
jne 0x660137
cmp edi, eax
jae 0x660137
cmp byte [edi], 0xa
jne 0x660137
mov eax, dword [ebp - 0x50c8]
test dword [eax + 0x48], 0x800
jne 0x660137
cmp edx, 1
je 0x660134
cmp edx, 2
je 0x660134
cmp ecx, 2
jne 0x660137
lea esi, [edi + 1]
mov eax, dword [ebp - 0x5050]
mov edi, dword [ebp - 0x50b8]
mov edx, dword [ebp - 0x50c0]
mov dword [ebp - 0x5040], ebx
jmp 0x65f980
mov ecx, dword [ebp - 0x5018]
sub eax, ecx
cmp esi, eax
ja 0x6600e3
mov al, byte [esi]
cmp al, byte [ebp - 0x5014]
jne 0x6600e3
cmp ecx, 1
je case.default.0x660045
mov al, byte [esi + 1]
cmp al, byte [ebp - 0x5013]
je case.default.0x660045
jmp 0x6600e3
mov eax, dword [ebp - 0x50dc]
sub eax, esi
mov dword [ebp - 0x5054], esi
add eax, dword [ebp - 0x50d0]
push ebx
push eax
push esi
call fcn.00663c40
add esp, 0xc
test eax, eax
je 0x6601e7
mov ecx, dword [ebp - 0x50f8]
jns 0x65fcf3
mov edi, dword [ebx]
add edi, esi
mov dword [ebp - 0x50b8], edi
mov dword [ebp - 0x5050], edi
cmp edi, esi
jbe 0x65fcf3
mov edx, dword [ebp - 0x50c0]
mov dword [ebp - 0x50fc], 3
jmp 0x65f944
mov eax, dword [ebp - 0x50f8]
mov edi, eax
mov edx, dword [ebp - 0x50c0]
mov dword [ebp - 0x50b8], edi
mov dword [ebp - 0x5050], eax
mov dword [ebp - 0x50fc], 1
jmp 0x65f950
mov eax, ecx
cdq
sub eax, edx
mov edx, eax
sar edx, 1
inc edx
mov ebx, dword [ebp - 0x50d0]
sub esi, ebx
mov eax, dword [ebp - 0x5048]
mov ecx, dword [ebp - 0x504c]
sub eax, ebx
cmp dword [ebp - 0x5044], ecx
mov edi, dword [ebp - 0x50d8]
cmova ecx, dword [ebp - 0x5044]
sub ecx, ebx
test dword [ebp + 0x18], 0x4000
mov dword [edi + 0x28], edx
mov dword [edi + 0x20], esi
mov dword [edi + 0x18], eax
mov dword [edi + 0x1c], ecx
je 0x6602a1
mov esi, dword [ebp - 0x50dc]
push dword [edi + 8]
add esi, dword [ebp - 0x511c]
mov eax, dword [edi]
push esi
call eax
add esp, 8
mov dword [edi + 0x10], eax
test eax, eax
je 0x66032b
push esi
push ebx
push eax
call fcn.00506640
mov edx, dword [edi + 0x28]
add esp, 0xc
or byte [edi + 0x25], 1
mov eax, edx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0049b511
mov esp, ebp
pop ebp
ret
mov dword [edi + 0x10], ebx
mov eax, edx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0049b511
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 0x503c]
mov dword [ecx + 0x14], eax
test ebx, ebx
je 0x6602c9
cmp ebx, 0xfffffffe
jne 0x660315
mov ebx, dword [ebp - 0x50e0]
test ebx, ebx
je 0x660312
mov eax, dword [ebp - 0x50d0]
sub ebx, eax
mov dword [ecx + 0x2c], ebx
sub edi, eax
mov dword [ecx + 0x20], ebx
mov ebx, dword [ebp - 0x50d4]
sub ebx, eax
mov dword [ecx + 0x30], edi
mov dword [ecx + 0x18], ebx
mov ebx, 0xfffffffe
mov dword [ecx + 0x1c], edi
pop edi
mov dword [ecx + 0x10], eax
mov eax, ebx
pop esi
mov dword [ecx + 0x28], ebx
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0049b511
mov esp, ebp
pop ebp
ret
or ebx, 0xffffffff
pop edi
pop esi
mov dword [ecx + 0x28], ebx
mov eax, ebx
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0049b511
mov esp, ebp
pop ebp
ret
pop edi
pop esi
mov eax, 0xffffffd0
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0049b511
mov esp, ebp
pop ebp
ret
pop edi
pop esi
mov eax, 0xffffffd4
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0049b511
mov esp, ebp
pop ebp
ret
pop edi
pop esi
mov eax, 0xffffffcd
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0049b511
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp - 4]
mov eax, 0xffffffde
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0049b511
mov esp, ebp
pop ebp
ret