Function at 0x562ad4
Capabilities:
Inspect section memory permissions

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x5170
call fcn.00565e50
mov eax, dword [0x5ef0d4]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
mov ecx, dword [ebp + 0x10]
xor eax, eax
mov edx, dword [ebp + 8]
mov ebx, dword [ebp + 0x14]
mov esi, dword [ebp + 0xc]
mov dword [ebp - 0x50ec], ebx
add ebx, esi
mov dword [ebp - 0x511c], eax
mov dword [ebp - 0x50f0], eax
mov dword [ebp - 0x50d8], eax
mov dword [ebp - 0x510c], eax
mov dword [ebp - 0x5104], eax
mov dword [ebp - 0x50fc], eax
mov byte [ebp - 0x50c9], al
mov byte [ebp - 0x50b5], al
mov byte [ebp - 0x50d1], al
mov byte [ebp - 0x50bd], al
mov dword [ebp - 0x50f4], eax
lea eax, [ebp - 0x5004]
mov dword [ebp - 0x50c4], edx
mov dword [ebp - 0x50dc], esi
mov dword [ebp - 0x50e8], ecx
mov dword [ebp - 0x5128], ebx
mov dword [ebp - 0x50e0], ebx
mov dword [ebp - 0x509c], eax
mov edi, dword [ebp + 0x1c]
mov dword [ebp - 0x50f8], edi
lea edi, [ebx - 1]
mov dword [ebp - 0x5110], edi
mov edi, dword [ebp - 0x50f8]
cmp ecx, 0xffffffff
jne 0x562bac
push esi
call fcn.00554cc1
mov edx, dword [ebp - 0x50c4]
pop ecx
mov ecx, eax
mov dword [ebp - 0x511c], 1
mov dword [ebp - 0x50e8], ecx
test dword [ebp + 0x18], 0x1fff9fc0
lea eax, [ecx + esi]
mov dword [ebp - 0x50c8], eax
mov dword [ebp - 0x512c], eax
jne 0x563b6f
test edx, edx
je 0x563b6b
test esi, esi
je 0x563b6b
test edi, edi
je 0x563b6b
cmp dword [ebp - 0x50ec], ecx
jbe 0x562bef
push 0xffffffffffffffdf
jmp 0x563b71
cmp dword [edx + 0x38], 0x50435245
je 0x562bff
push 0xffffffffffffffe1
jmp 0x563b71
mov ecx, dword [edx + 0x48]
mov eax, ecx
and al, 7
cmp al, 1
je 0x562c11
push 0xffffffffffffffe0
jmp 0x563b71
mov esi, dword [edx + 0x40]
mov eax, esi
shr eax, 0x13
and eax, 1
shr ecx, 0xe
and ecx, 0xc
mov dword [ebp - 0x50bc], eax
or dword [ebp + 0x18], ecx
mov edx, dword [ebp + 0x18]
mov eax, edx
shr eax, 4
and eax, 1
mov dword [ebp - 0x50e4], 2
test dl, 0x20
mov dword [ebp - 0x50d0], esi
cmovne eax, dword [ebp - 0x50e4]
movzx eax, ax
mov word [ebp - 0x5068], ax
test ax, ax
je 0x562c6e
mov eax, esi
or eax, edx
test eax, 0x20000000
jne 0x563b6f
mov eax, dword [ebp + 0x20]
test eax, eax
je 0x562c8a
cmp dword [eax + 0x1c], 0xffffffff
je 0x562c8a
test esi, 0x800000
jne 0x562c8a
push 0xffffffffffffffc8
jmp 0x563b71
test byte [edi + 0x25], 1
je 0x562c9f
push dword [edi + 8]
push dword [edi + 0x10]
call dword [edi + 4]
and byte [edi + 0x25], 0xfe
pop ecx
pop ecx
xor edx, edx
lea eax, [edi + 0x20]
mov dword [ebp - 0x5130], eax
mov dword [eax], edx
mov eax, dword [ebp - 0x50dc]
mov dword [edi + 0x10], edx
mov dword [ebp - 0x5054], eax
cmp dword [ebp - 0x50bc], edx
je 0x562dec
test dword [ebp + 0x18], 0x40000000
mov ecx, 0x4000000
je 0x562cdd
test ecx, esi
je 0x562dec
mov eax, esi
and eax, ecx
mov ecx, dword [ebp - 0x50c8]
cmp ebx, ecx
jae 0x562d05
test eax, eax
je 0x562d33
mov al, byte [ebx]
and al, 0xc0
cmp al, 0x80
jne 0x562d05
xor edx, edx
inc ebx
inc edx
mov dword [ebp - 0x50e0], ebx
cmp ebx, ecx
jb 0x562cef
mov ecx, ebx
mov dword [ebp - 0x5054], ecx
test edx, edx
jne 0x562dc7
mov eax, dword [ebp - 0x50c4]
movzx edx, word [eax + 0x64]
test edx, edx
je 0x562dc7
mov ebx, dword [ebp - 0x50dc]
cmp ecx, ebx
jbe 0x562d68
jmp 0x562d58
mov al, byte [ebx]
and al, 0xc0
cmp al, 0x80
jne 0x562d05
xor eax, eax
cmp eax, dword [ebp - 0x50ec]
sbb eax, eax
and eax, 0xfffffff2
add eax, 0xffffffea
jmp 0x563b72
mov al, byte [ecx]
and al, 0xc0
cmp al, 0x80
jne 0x562d63
dec ecx
mov dword [ebp - 0x5054], ecx
cmp ecx, ebx
ja 0x562d50
sub edx, 1
jne 0x562d2d
mov ebx, dword [ebp - 0x50e0]
jmp 0x562dc7
mov ecx, dword [ebp - 0x5054]
sub ecx, dword [ebp - 0x50dc]
mov eax, dword [edi + 0x20]
add eax, ecx
mov dword [edi + 0x20], eax
test esi, 0x4000000
je 0x563b08
xor edx, edx
cmp dword [edi + 0x28], edx
jg 0x563b08
add eax, dword [ebp - 0x50dc]
mov dword [ebp - 0x50c8], eax
cmp eax, ebx
jae 0x562eee
lea ecx, [eax + 1]
jmp 0x562dbd
mov al, byte [ecx]
and al, 0xc0
cmp al, 0x80
jne 0x562dc7
inc ecx
mov dword [ebp - 0x5054], ecx
cmp ecx, ebx
jb 0x562db4
lea eax, [edi + 0x20]
push eax
mov eax, dword [ebp - 0x50e8]
sub eax, ecx
add eax, dword [ebp - 0x50dc]
push eax
push ecx
call fcn.005561e3
add esp, 0xc
mov dword [edi + 0x28], eax
test eax, eax
jne 0x562d70
xor edx, edx
mov eax, dword [ebp + 0x20]
lea edi, [ebp - 0x50b4]
mov esi, dword [ebp - 0x50c4]
test eax, eax
je 0x562e01
mov esi, eax
movsd dword es:[edi], dword [esi]
test eax, eax
mov dword [ebp - 0x5134], edx
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov edi, 0x5be1cc
cmovne edi, eax
mov eax, dword [ebp - 0x50c4]
mov ecx, dword [eax + 0x40]
mov esi, ecx
or esi, dword [ebp + 0x18]
mov eax, dword [eax + 0x48]
shr esi, 0x1f
mov dword [ebp - 0x5100], esi
mov esi, ecx
shr eax, 9
shr esi, 8
and eax, 1
and esi, 1
mov dword [ebp - 0x5108], eax
cmp dword [edi + 0x1c], 0xffffffff
mov eax, dword [ebp - 0x50dc]
mov dword [ebp - 0x5118], esi
mov esi, dword [ebp - 0x50e8]
cmovne esi, dword [edi + 0x1c]
add esi, eax
mov dword [ebp - 0x5158], eax
mov dword [ebp - 0x5124], esi
lea esi, [ebp - 0x5170]
mov dword [ebp - 0x5010], esi
mov esi, dword [ebp - 0x50e4]
mov dword [ebp - 0x5170], esi
mov esi, dword [ebp - 0x50c8]
mov eax, esi
sub eax, dword [ebp - 0x50dc]
mov dword [ebp - 0x5154], eax
mov eax, dword [edi + 0xc]
mov dword [ebp - 0x5008], eax
mov eax, dword [edi + 0x10]
mov dword [ebp - 0x500c], eax
mov eax, dword [ebp - 0x50dc]
mov dword [ebp - 0x5058], eax
mov eax, dword [ebp - 0x50ec]
mov dword [ebp - 0x5050], esi
mov esi, dword [ebp - 0x50c4]
mov dword [ebp - 0x5070], eax
mov eax, dword [esi + 0x48]
shr eax, 0xc
and eax, 1
mov dword [ebp - 0x5084], eax
cmp word [esi + 0x64], dx
ja 0x562eff
test dword [esi + 0x48], 0x2000
jne 0x562eff
mov eax, edx
jmp 0x562f02
mov eax, dword [ebp - 0x50e4]
mov dword [ebp - 0x50f4], eax
jmp 0x562dec
xor eax, eax
inc eax
mov dword [ebp - 0x5080], eax
add esi, 0x70
mov eax, dword [ebp - 0x50c4]
mov dword [ebp - 0x5028], ecx
mov dword [ebp - 0x5020], edx
mov dword [ebp - 0x503c], edx
mov dword [ebp - 0x5040], edx
movzx edx, word [eax + 0x6e]
movzx eax, word [eax + 0x6c]
mov ecx, eax
mov dword [ebp - 0x5060], esi
imul ecx, edx
mov word [ebp - 0x5062], ax
mov word [ebp - 0x5064], dx
add ecx, esi
mov esi, dword [ebp - 0x50c4]
mov dword [ebp - 0x505c], ecx
xor ecx, ecx
mov dword [ebp - 0x501c], ecx
mov ax, word [esi + 0x60]
mov word [ebp - 0x5066], ax
movzx eax, word [esi + 0x62]
sub eax, 1
je 0x562fd6
sub eax, 1
je 0x562fcd
sub eax, 1
je 0x562fb6
sub eax, 1
je 0x562faa
sub eax, 1
je 0x562f9c
sub eax, 1
je 0x562f94
push 0xffffffffffffffd4
jmp 0x563b71
mov byte [ebp - 0x5014], cl
jmp 0x562fdd
mov eax, dword [ebp - 0x50e4]
mov dword [ebp - 0x501c], eax
jmp 0x562fe7
mov dword [ebp - 0x501c], 1
jmp 0x562fe7
mov eax, dword [ebp - 0x50e4]
mov dword [ebp - 0x5018], eax
mov word [ebp - 0x5014], 0xa0d
jmp 0x562fe7
mov byte [ebp - 0x5014], 0xa
jmp 0x562fdd
mov byte [ebp - 0x5014], 0xd
mov dword [ebp - 0x5018], 1
movzx eax, word [esi + 0x68]
mov edx, dword [edi + 0x20]
cmp edx, dword [esi + 0x4c]
cmovae edx, dword [esi + 0x4c]
lea eax, [eax*8 + 0x54]
mov dword [ebp - 0x5114], eax
mov eax, dword [edi + 0x24]
cmp eax, dword [esi + 0x50]
mov dword [ebp - 0x5098], edx
cmovae eax, dword [esi + 0x50]
mov dword [ebp - 0x5094], eax
mov eax, dword [edi + 0x28]
cmp eax, dword [esi + 0x54]
mov edi, dword [ebp - 0x5114]
cmovae eax, dword [esi + 0x54]
mov dword [ebp - 0x5090], eax
cmp edi, 0x800
ja 0x563057
mov ecx, 0x5000
mov esi, dword [ebp - 0x509c]
mov eax, ecx
mov dword [ebp - 0x50a4], esi
xor edx, edx
div edi
sub ecx, edx
mov dword [ebp - 0x50a8], ecx
jmp 0x5630ac
imul ecx, edi, 0xa
mov eax, ecx
mov dword [ebp - 0x50a8], ecx
shr eax, 0xa
cmp eax, edx
jbe 0x563087
mov ecx, edx
shl ecx, 0xa
cmp edi, ecx
jbe 0x563079
push 0xffffffffffffffc1
jmp 0x563b71
mov eax, ecx
xor edx, edx
div edi
sub ecx, edx
mov dword [ebp - 0x50a8], ecx
push dword [ebp - 0x50ac]
push ecx
call dword [ebp - 0x50b4]
mov esi, eax
mov dword [ebp - 0x50a4], esi
pop ecx
pop ecx
test esi, esi
je 0x563b67
mov ecx, dword [ebp - 0x50a8]
mov eax, dword [ebp - 0x50c4]
add ecx, esi
mov dword [ebp - 0x50a0], ecx
movzx eax, word [eax + 0x68]
shl eax, 3
push eax
lea eax, [esi + 0x54]
push 0xff
push eax
call fcn.005683c0
mov ecx, dword [ebp - 0x50c4]
add esp, 0xc
mov edi, dword [ebp - 0x50d0]
mov eax, dword [ecx + 0xc]
mov edx, dword [ecx + 0x48]
mov dword [ebp - 0x507c], eax
lea esi, [eax + 0x100]
add eax, 0x340
mov dword [ebp - 0x5078], esi
mov dword [ebp - 0x5074], eax
test dl, 0x10
je 0x5632a0
mov al, byte [ecx + 0x58]
mov dword [ebp - 0x50d8], 1
mov ah, al
mov byte [ebp - 0x50b5], al
mov byte [ebp - 0x50c9], ah
test dl, 0x20
je 0x5632b7
movzx ecx, al
cmp ah, 0x7f
mov al, byte [ecx + esi]
mov byte [ebp - 0x50b5], al
mov eax, dword [ebp - 0x50bc]
jbe 0x56318a
test edi, 0x20000
je 0x56318a
test eax, eax
jne 0x56318a
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x5c17d8]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x5c5bd8]
imul eax, eax, 0xc
mov al, byte [eax + 0x5bea24]
add al, byte [ebp - 0x50c9]
mov byte [ebp - 0x50b5], al
mov eax, dword [ebp - 0x50bc]
mov ecx, dword [ebp - 0x50c4]
test dl, dl
jns 0x563206
mov cl, byte [ecx + 0x5c]
mov dword [ebp - 0x510c], 1
mov byte [ebp - 0x50bd], cl
mov byte [ebp - 0x50d1], cl
test edx, 0x100
je 0x563206
movzx ecx, cl
mov dl, byte [esi + ecx]
mov byte [ebp - 0x50bd], dl
mov dl, byte [ebp - 0x50d1]
cmp dl, 0x7f
jbe 0x563206
test edi, 0x20000
je 0x563206
test eax, eax
jne 0x563206
mov eax, ecx
and ecx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x5c17d8]
shl eax, 7
add eax, ecx
movzx eax, word [eax*2 + 0x5c5bd8]
imul eax, eax, 0xc
mov cl, byte [eax + 0x5bea24]
add cl, dl
mov byte [ebp - 0x50bd], cl
mov edx, dword [ebp - 0x50c8]
xor eax, eax
xor edi, edi
and dword [ebp - 0x5088], eax
mov dword [ebp - 0x5120], eax
mov dword [ebp - 0x50d0], edi
mov ecx, dword [ebp - 0x50c4]
test dword [ecx + 0x40], 0x10000
jne 0x563793
cmp dword [ebp - 0x5118], 0
mov edi, dword [ebp - 0x5018]
je 0x563397
cmp dword [ebp - 0x50bc], 0
mov esi, ebx
je 0x563311
cmp ebx, edx
jae 0x56338f
mov ecx, dword [ebp - 0x501c]
mov eax, dword [ebp - 0x5050]
test ecx, ecx
je 0x5632d4
cmp esi, eax
jae 0x5632c2
push dword [ebp - 0x50bc]
lea edx, [ebp - 0x5018]
push edx
push eax
push ecx
push esi
call fcn.0055492e
mov edi, dword [ebp - 0x5018]
add esp, 0x14
mov ecx, dword [ebp - 0x501c]
test eax, eax
je 0x5632c2
xor eax, eax
inc eax
jmp 0x5632c4
cmp dword [ebp - 0x5108], 0
jne 0x5632b7
test dl, 0x40
je 0x5632b7
lea eax, [ecx + 0x14]
mov dword [ebp - 0x50f0], eax
mov eax, dword [ebp - 0x50bc]
jmp 0x563190
xor eax, eax
test eax, eax
jne 0x56338f
mov edx, dword [ebp - 0x50c8]
jmp 0x56330a
sub eax, edi
cmp esi, eax
ja 0x56330a
mov al, byte [esi]
cmp al, byte [ebp - 0x5014]
jne 0x56330a
cmp edi, 1
je 0x56338f
mov al, byte [esi + 1]
cmp al, byte [ebp - 0x5013]
je 0x56338f
jmp 0x56330a
mov al, byte [esi]
and al, 0xc0
cmp al, 0x80
jne 0x563265
inc esi
cmp esi, edx
jb 0x5632fe
jmp 0x56338f
cmp ebx, edx
jae 0x56338f
mov ecx, dword [ebp - 0x501c]
mov eax, dword [ebp - 0x5050]
test ecx, ecx
je 0x563364
cmp esi, eax
jae 0x563356
push dword [ebp - 0x50bc]
lea edx, [ebp - 0x5018]
push edx
push eax
push ecx
push esi
call fcn.0055492e
mov edi, dword [ebp - 0x5018]
add esp, 0x14
mov ecx, dword [ebp - 0x501c]
test eax, eax
je 0x563356
xor eax, eax
inc eax
jmp 0x563358
xor eax, eax
test eax, eax
jne 0x563389
mov edx, dword [ebp - 0x50c8]
jmp 0x563384
sub eax, edi
cmp esi, eax
ja 0x563384
mov al, byte [esi]
cmp al, byte [ebp - 0x5014]
jne 0x563384
cmp edi, 1
je 0x563389
mov al, byte [esi + 1]
cmp al, byte [ebp - 0x5013]
je 0x563389
inc esi
cmp esi, edx
jb 0x56331b
mov ebx, dword [ebp - 0x50e0]
mov edx, esi
mov dword [ebp - 0x50c8], edx
cmp dword [ebp - 0x5100], 0
je 0x563447
mov edi, dword [ebp - 0x50d8]
mov esi, dword [ebp - 0x50f0]
test edi, edi
jne 0x5633bc
test esi, esi
je 0x5636c6
cmp ebx, edx
sbb eax, eax
neg eax
cmp ebx, edx
jae 0x563401
mov al, byte [ebx]
test edi, edi
je 0x5633e4
cmp al, byte [ebp - 0x50c9]
je 0x5636c6
cmp al, byte [ebp - 0x50b5]
je 0x5636c6
test esi, esi
je 0x563409
movzx edx, al
xor eax, eax
mov ecx, edx
inc eax
and ecx, 7
shr edx, 3
shl eax, cl
push 0
test byte [edx + esi], al
pop eax
setne al
test eax, eax
jne 0x5636c6
xor esi, esi
cmp dword [ebp - 0x50bc], 0
je 0x5639cb
mov edx, dword [ebp - 0x50c8]
mov edi, dword [ebp - 0x512c]
cmp edx, edi
je 0x5639cb
test esi, esi
je 0x563439
cmp esi, 0xfffffffe
jne 0x5639cb
mov esi, dword [ebp - 0x5130]
lea ebx, [edx + 1]
jmp 0x5639c5
cmp dword [ebp - 0x50d8], 0
je 0x56351e
mov cl, byte [ebp - 0x50b5]
mov esi, edx
mov dl, byte [ebp - 0x50c9]
sub esi, ebx
cmp dl, cl
je 0x563500
xor eax, eax
xor edi, edi
mov dword [ebp - 0x50e0], eax
cmp dword [ebp - 0x5104], eax
jne 0x5634ae
push esi
movzx eax, dl
push eax
push ebx
call fcn.0056a730
mov cl, byte [ebp - 0x50b5]
mov edi, eax
mov eax, dword [ebp - 0x50e0]
add esp, 0xc
test edi, edi
jne 0x5634aa
mov dword [ebp - 0x5104], 1
jmp 0x5634ae
mov esi, edi
sub esi, ebx
cmp dword [ebp - 0x50fc], 0
jne 0x5634e0
push esi
movzx eax, cl
push eax
push ebx
call fcn.0056a730
add esp, 0xc
test eax, eax
jne 0x5634d9
test edi, edi
jne 0x5634d9
mov dword [ebp - 0x50fc], 1
jmp 0x5634e4
and dword [ebp - 0x50fc], 0
test edi, edi
jne 0x5634ea
mov ebx, eax
test eax, eax
jmp 0x563512
test eax, eax
je 0x5634f9
cmp edi, eax
jb 0x5634f9
mov ebx, eax
jmp 0x5636aa
mov ebx, edi
jmp 0x5636aa
push esi
movzx eax, dl
push eax
push ebx
call fcn.0056a730
mov ebx, eax
add esp, 0xc
test ebx, ebx
cmove ebx, dword [ebp - 0x50c8]
jmp 0x5636aa
cmp dword [ebp - 0x5108], 0
je 0x56367c
mov eax, dword [ebp - 0x50ec]
mov edx, dword [ebp - 0x5058]
add eax, edx
cmp ebx, eax
jbe 0x5636c0
mov esi, dword [ebp - 0x50c8]
cmp ebx, esi
jae 0x563651
mov ecx, dword [ebp - 0x50bc]
test ecx, ecx
je 0x5635e3
mov eax, dword [ebp - 0x501c]
test eax, eax
je 0x56359f
cmp ebx, edx
jbe 0x563593
push ecx
lea ecx, [ebp - 0x5018]
push ecx
push edx
push eax
push ebx
call fcn.00554aa7
mov edx, dword [ebp - 0x5058]
add esp, 0x14
mov edi, dword [ebp - 0x5018]
test eax, eax
je 0x563593
xor eax, eax
inc eax
jmp 0x563595
xor eax, eax
test eax, eax
jne 0x563651
jmp 0x5635cc
lea eax, [edx + edi]
cmp ebx, eax
jb 0x5635dc
mov ecx, ebx
sub ecx, edi
mov al, byte [ecx]
cmp al, byte [ebp - 0x5014]
jne 0x5635cc
cmp edi, 1
je 0x563651
mov al, byte [ecx + 1]
cmp al, byte [ebp - 0x5013]
je 0x563651
mov ecx, dword [ebp - 0x50bc]
jmp 0x5635dc
mov al, byte [ebx]
and al, 0xc0
cmp al, 0x80
jne 0x56355d
inc ebx
cmp ebx, esi
jb 0x5635d4
jmp 0x563651
mov eax, dword [ebp - 0x501c]
test eax, eax
je 0x563621
cmp ebx, edx
jbe 0x563619
push ecx
lea ecx, [ebp - 0x5018]
push ecx
push edx
push eax
push ebx
call fcn.00554aa7
mov edx, dword [ebp - 0x5058]
add esp, 0x14
mov edi, dword [ebp - 0x5018]
test eax, eax
je 0x563619
xor eax, eax
inc eax
jmp 0x56361b
xor eax, eax
test eax, eax
jne 0x563651
jmp 0x563646
lea eax, [edx + edi]
cmp ebx, eax
jb 0x56364c
mov ecx, ebx
sub ecx, edi
mov al, byte [ecx]
cmp al, byte [ebp - 0x5014]
jne 0x563646
cmp edi, 1
je 0x563651
mov al, byte [ecx + 1]
cmp al, byte [ebp - 0x5013]
je 0x563651
mov ecx, dword [ebp - 0x50bc]
inc ebx
cmp ebx, esi
jb 0x5635e3
cmp byte [ebx - 1], 0xd
jne 0x5636c0
mov eax, dword [ebp - 0x501c]
cmp eax, 1
je 0x56366a
cmp eax, dword [ebp - 0x50e4]
jne 0x5636c0
cmp ebx, esi
jae 0x5636c0
cmp byte [ebx], 0xa
mov edi, dword [ebp - 0x50d8]
jne 0x5636c6
inc ebx
jmp 0x5636c6
mov edi, dword [ebp - 0x50f0]
test edi, edi
je 0x5636c0
cmp ebx, edx
jae 0x5636aa
mov esi, dword [ebp - 0x50c8]
movzx edx, byte [ebx]
xor eax, eax
mov ecx, edx
inc eax
and ecx, 7
shr edx, 3
shl eax, cl
test byte [edx + edi], al
jne 0x5636aa
inc ebx
cmp ebx, esi
jb 0x563690
cmp word [ebp - 0x5068], 0
jne 0x5636c0
cmp ebx, dword [ebp - 0x5050]
jae 0x563409
mov edi, dword [ebp - 0x50d8]
cmp word [ebp - 0x5068], 0
mov edx, dword [ebp - 0x5050]
mov dword [ebp - 0x50c8], edx
jne 0x563787
mov eax, dword [ebp - 0x50c4]
mov ecx, edx
sub ecx, ebx
movzx eax, word [eax + 0x66]
cmp ecx, eax
jl 0x563409
cmp dword [ebp - 0x510c], 0
lea esi, [edi + ebx]
je 0x563787
cmp esi, dword [ebp - 0x5110]
jbe 0x563787
cmp ecx, 0x1388
jb 0x563727
cmp dword [ebp - 0x5100], 0
jne 0x563787
cmp ecx, 0x4c4b40
jae 0x563787
mov al, byte [ebp - 0x50d1]
movzx ecx, al
cmp al, byte [ebp - 0x50bd]
je 0x56375a
mov edi, dword [ebp - 0x5050]
sub edi, esi
push edi
push ecx
push esi
call fcn.0056a730
add esp, 0xc
test eax, eax
jne 0x563775
movzx eax, byte [ebp - 0x50bd]
push edi
push eax
jmp 0x563764
mov eax, dword [ebp - 0x5050]
sub eax, esi
push eax
push ecx
push esi
call fcn.0056a730
add esp, 0xc
test eax, eax
je 0x563409
cmp eax, dword [ebp - 0x50c8]
jae 0x563409
mov dword [ebp - 0x5110], eax
mov ecx, dword [ebp - 0x50c4]
mov edi, dword [ebp - 0x50d0]
cmp ebx, dword [ebp - 0x5124]
ja 0x563409
or dword [ebp - 0x5134], 1
mov eax, ebx
sub eax, dword [ebp - 0x50dc]
mov dword [ebp - 0x5150], eax
mov eax, dword [ebp - 0x50f4]
or eax, dword [ebp + 0x18]
and dword [ebp - 0x508c], 0
and dword [ebp - 0x506c], 0
and dword [ebp - 0x5024], 0
mov dword [ebp - 0x502c], eax
lea eax, [ebp - 0x50b4]
push eax
movzx eax, word [ecx + 0x68]
push dword [ebp - 0x5114]
mov ecx, dword [ebp - 0x50f8]
push eax
mov dword [ebp - 0x5048], ebx
mov dword [ebp - 0x5044], ebx
movzx eax, word [ecx + 0x26]
push eax
lea eax, [ecx + 0x2c]
push eax
push dword [ebp - 0x505c]
push ebx
call fcn.00556654
add esp, 0x1c
mov esi, eax
cmp dword [ebp - 0x5088], 0
je 0x563835
test edi, edi
jne 0x563835
mov eax, dword [ebp - 0x5048]
mov dword [ebp - 0x50d0], eax
mov dword [ebp - 0x5120], ebx
cmp esi, 0xfffffc1b
je 0x563409
cmp esi, 0xfffffc1c
je 0x5638c7
cmp esi, 0xfffffc1d
je 0x5638bd
cmp esi, 0xfffffc1e
je 0x56386b
cmp esi, 0xfffffc1f
je 0x5638c7
test esi, esi
jne 0x56340b
jmp 0x5638c7
mov eax, dword [ebp - 0x5024]
mov edi, ebx
mov dword [ebp - 0x5020], eax
mov ecx, dword [ebp - 0x50bc]
mov edx, dword [ebp - 0x501c]
xor esi, esi
cmp dword [ebp - 0x5118], esi
je 0x563900
mov eax, dword [ebp - 0x5050]
test edx, edx
je 0x563981
cmp ebx, eax
jae 0x5638f0
push ecx
lea ecx, [ebp - 0x5018]
push ecx
push eax
push edx
push ebx
call fcn.0055492e
add esp, 0x14
test eax, eax
je 0x5638f0
xor eax, eax
inc eax
jmp 0x5638f2
mov edi, dword [ebp - 0x5034]
cmp edi, ebx
ja 0x563879
and dword [ebp - 0x5020], 0
lea edi, [ebx + 1]
mov ecx, dword [ebp - 0x50bc]
test ecx, ecx
je 0x56387f
mov ecx, dword [ebp - 0x50c8]
cmp edi, ecx
jae 0x563879
mov al, byte [edi]
and al, 0xc0
cmp al, 0x80
jne 0x563879
inc edi
jmp 0x5638e1
xor eax, eax
test eax, eax
jne 0x56340b
mov edx, dword [ebp - 0x501c]
mov ecx, dword [ebp - 0x5018]
mov ebx, edi
mov dword [ebp - 0x50e0], ebx
cmp dword [ebp - 0x5100], esi
jne 0x56340b
mov eax, dword [ebp - 0x50c8]
cmp edi, eax
ja 0x56340b
cmp edi, dword [ebp - 0x5128]
jbe 0x56396a
cmp byte [edi - 1], 0xd
jne 0x56396a
cmp edi, eax
jae 0x56396a
cmp byte [edi], 0xa
jne 0x56396a
mov eax, dword [ebp - 0x50c4]
test dword [eax + 0x48], 0x800
jne 0x56396a
cmp edx, 1
je 0x563961
mov eax, dword [ebp - 0x50e4]
cmp edx, eax
je 0x563961
cmp ecx, eax
jne 0x56396a
lea ebx, [edi + 1]
mov dword [ebp - 0x50e0], ebx
and dword [ebp - 0x5040], esi
mov edx, dword [ebp - 0x50c8]
mov edi, dword [ebp - 0x50d0]
jmp 0x563222
mov ecx, dword [ebp - 0x5018]
sub eax, ecx
cmp ebx, eax
ja 0x563906
mov al, byte [ebx]
cmp al, byte [ebp - 0x5014]
jne 0x563906
cmp ecx, 1
je 0x56340b
mov al, byte [ebx + 1]
cmp al, byte [ebp - 0x5013]
je 0x56340b
jmp 0x563906
mov al, byte [ebx]
and al, 0xc0
cmp al, 0x80
jne 0x563a22
inc ebx
cmp ebx, edi
jb 0x5639bc
xor esi, esi
mov eax, dword [ebp - 0x50a4]
cmp eax, dword [ebp - 0x509c]
je 0x5639e8
push dword [ebp - 0x50ac]
push eax
call dword [ebp - 0x50b0]
pop ecx
pop ecx
mov edi, dword [ebp - 0x50f8]
mov eax, dword [ebp - 0x50c4]
mov dword [edi + 0xc], eax
mov eax, dword [ebp - 0x5040]
mov dword [edi + 0x14], eax
mov byte [edi + 0x24], 0
cmp esi, 1
jne 0x563b12
movzx eax, word [edi + 0x26]
add eax, eax
cmp dword [ebp - 0x506c], eax
jl 0x563a98
xor eax, eax
jmp 0x563aa4
mov eax, dword [ebp - 0x50e8]
sub eax, ebx
mov dword [ebp - 0x5054], ebx
add eax, dword [ebp - 0x50dc]
push esi
push eax
push ebx
call fcn.005561e3
add esp, 0xc
test eax, eax
je 0x563a75
mov edx, dword [ebp - 0x50c8]
jns 0x56343f
mov edx, dword [esi]
add edx, ebx
mov dword [ebp - 0x50c8], edx
mov dword [ebp - 0x5050], edx
cmp edx, ebx
jbe 0x56343f
mov dword [ebp - 0x50f4], 3
jmp 0x563a8d
mov edx, edi
mov dword [ebp - 0x5050], edi
mov dword [ebp - 0x50c8], edx
mov dword [ebp - 0x50f4], 1
mov dword [ebp - 0x50e0], ebx
jmp 0x56320c
mov eax, dword [ebp - 0x506c]
cdq
sub eax, edx
sar eax, 1
inc eax
mov esi, dword [ebp - 0x50dc]
sub ebx, esi
mov dword [edi + 0x28], eax
mov eax, dword [ebp - 0x5048]
sub eax, esi
mov dword [edi + 0x20], ebx
mov dword [edi + 0x18], eax
mov eax, dword [ebp - 0x504c]
cmp dword [ebp - 0x5044], eax
cmova eax, dword [ebp - 0x5044]
sub eax, esi
test dword [ebp + 0x18], 0x4000
mov dword [edi + 0x1c], eax
je 0x563b0d
mov ebx, dword [ebp - 0x50e8]
push dword [edi + 8]
add ebx, dword [ebp - 0x511c]
push ebx
call dword [edi]
mov dword [edi + 0x10], eax
pop ecx
pop ecx
test eax, eax
je 0x563b67
push ebx
push esi
push eax
call fcn.00568520
add esp, 0xc
or byte [edi + 0x25], 1
mov eax, dword [edi + 0x28]
jmp 0x563b72
mov dword [edi + 0x10], esi
jmp 0x563b08
mov eax, dword [ebp - 0x503c]
mov dword [edi + 0x14], eax
test esi, esi
je 0x563b24
cmp esi, 0xfffffffe
jne 0x563b60
mov edx, dword [ebp - 0x5120]
test edx, edx
je 0x563b5d
mov ecx, dword [ebp - 0x50dc]
sub edx, ecx
mov eax, dword [ebp - 0x50c8]
mov dword [edi + 0x2c], edx
sub eax, ecx
mov dword [edi + 0x20], edx
mov edx, dword [ebp - 0x50d0]
sub edx, ecx
mov dword [edi + 0x10], ecx
push 0xfffffffffffffffe
mov dword [edi + 0x30], eax
mov dword [edi + 0x18], edx
mov dword [edi + 0x1c], eax
pop esi
jmp 0x563b60
or esi, 0xffffffff
mov dword [edi + 0x28], esi
mov eax, esi
jmp 0x563b72
push 0xffffffffffffffd0
jmp 0x563b71
push 0xffffffffffffffcd
jmp 0x563b71
push 0xffffffffffffffde
pop eax
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00565e42
leave
ret