Function at 0x5fa234
Capabilities:
Enumerate pe sections

Disassembly:
test dword [0x7eda90], 0xffffff80
jne 0x5fa25c
test dword [0x7eda90], 0xffffffff
jne 0x5fb220
call fcn.006a6b5c
jmp fcn.005fa234
push edi
push esi
push ebp
push ebx
push ecx
mov eax, 0x28
call fcn.00696350
mov ecx, dword [esp + 0x28]
mov ebx, ecx
mov edx, dword [esp + 0x40]
mov ebp, dword [esp + 0x44]
movzx ecx, word [esp + 0x48]
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x14], ebx
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], edx
mov dword [ebx + 0xf], ebp
mov word [ebx + 0x1f], cx
mov eax, dword [ebp]
mov ecx, ebp
call dword [eax + 0x2c]
mov dword [ebx + 0x25], eax
movzx edx, byte [ebx + 9]
and edx, 0xfffffff7
movzx esi, byte [eax + 9]
and esi, 8
or edx, esi
mov byte [ebx + 9], dl
movzx edi, word [ebp + 0x13]
mov word [ebx + 0x13], di
movzx ecx, byte [ebp + 0x16]
mov byte [ebx + 0x16], cl
movzx edx, byte [ebp + 0x15]
mov byte [ebx + 0x15], dl
mov edx, dword [esp + 0x4c]
mov dword [ebx + 0x2d], edx
movzx edx, byte [ebp + 0xa]
and edx, 0x3f
cmp edx, 3
je 0x5fb209
cmp edx, 4
je 0x5fb1c8
mov edx, dword [ebp + 0x2d]
mov ecx, dword [edx + 0x29]
mov dword [ebx + 0x29], ecx
mov esi, dword [ebp + 0x29]
mov dword [ebx + 0x35], esi
or byte [ebx + 0x11c], 1
mov edi, dword [esp + 0x54]
mov dword [ebx + 0xa7], edi
mov edx, dword [esp + 0x58]
mov dword [ebx + 0xab], edx
mov edx, dword [esp + 0x60]
test edx, edx
je 0x5fb193
mov eax, dword [esp + 0x60]
mov dword [ebx + 0x35], eax
mov dword [ebx + 0x31], ebp
movzx eax, byte [ebp + 0xa]
and eax, 0x3f
cmp eax, 4
je 0x5fb152
movzx ecx, word [esp + 0x48]
call fcn.005eb18c
mov dword [ebx + 0x21], eax
mov edx, dword [ebx + 0x25]
add edx, 0x9f
push edx
push ebx
mov ecx, eax
call fcn.005a5090
mov dword [ebx + 0x21], eax
mov ecx, eax
call fcn.005eb074
test eax, eax
je 0x5fa376
mov ecx, dword [ebx + 0x21]
call fcn.005eb074
push eax
mov ecx, ebx
call fcn.004fa294
mov eax, dword [ebx + 0x25]
add eax, 0x9f
push eax
mov ecx, dword [ebx + 0x21]
call fcn.005a4fc8
mov dword [esp + 0x24], eax
mov eax, dword [ebx + 0x21]
mov esi, dword [eax + 8]
movzx edx, word [esi + 0x2e]
test edx, edx
je 0x5fa3ad
movzx eax, word [esi + 0x30]
push eax
push dword [esi + 0x36]
push edx
mov ecx, ebx
mov dword [esp + 0x2c], esi
call fcn.00622ba0
mov edi, dword [ebx + 0x2d]
test edi, edi
je 0x5fb022
movzx eax, byte [ebx + 0x11a]
or eax, 2
or eax, 1
mov byte [ebx + 0x11a], al
movzx edx, byte [ebx + 0x11b]
and edx, 0xffffffef
movzx ecx, byte [edi + 0x11b]
and ecx, 0x10
or edx, ecx
mov byte [ebx + 0x11b], dl
and edx, 0xffffffbf
movzx edi, byte [edi + 0x11b]
and edi, 0x40
or edx, edi
mov byte [ebx + 0x11b], dl
test dl, 0x40
je 0x5fa40a
or edx, 0x20
mov byte [ebx + 0x11b], dl
mov edi, dword [esi + 0x42]
mov ecx, 1
cmp edi, 2
mov edi, 0
cmove edi, ecx
and eax, 0xfffffffb
and edi, 1
shl edi, 2
or eax, edi
mov byte [ebx + 0x11a], al
movzx ecx, byte [ebp + 0xa]
and ecx, 0x3f
cmp ecx, 4
je 0x5fa43d
mov ebp, dword [ebx + 0x2d]
test ebp, ebp
je 0x5fa47e
movzx ecx, byte [ebp + 0x11a]
test cl, 0x40
je 0x5fa47e
or eax, 0x40
mov byte [ebx + 0x11a], al
mov ecx, dword [ebp + 0xb9]
mov dword [ebx + 0xb9], ecx
mov ebp, dword [ebp + 0xbd]
mov dword [ebx + 0xbd], ebp
and eax, 0xffffff7f
mov byte [ebx + 0x11a], al
jmp 0x5fa518
mov ecx, dword [esi + 0x5a]
mov ebp, 1
xor edi, edi
cmp ecx, 2
cmove edi, ebp
and eax, 0xffffffbf
and edi, 1
shl edi, 6
or eax, edi
mov byte [ebx + 0x11a], al
test al, 0x40
je 0x5fa518
push 0
push 0xc
mov ecx, 0x6ff95c
mov dword [esp + 0x28], esi
call fcn.004e566c
test eax, eax
je 0x5fa4c9
mov dword [eax], 0x6b8578
xor edx, edx
mov dword [eax + 4], edx
mov dword [eax + 8], edx
jmp 0x5fa4cb
xor eax, eax
mov dword [ebx + 0xb9], eax
push 0
push 0xc
mov ecx, 0x6ff95c
mov dword [esp + 0x28], esi
call fcn.004e566c
test eax, eax
je 0x5fa4f7
mov dword [eax], 0x6b8578
xor edx, edx
mov dword [eax + 4], edx
mov dword [eax + 8], edx
jmp 0x5fa4f9
xor eax, eax
mov dword [ebx + 0xbd], eax
movzx eax, byte [ebx + 0x11a]
or eax, 0x80
mov byte [ebx + 0x11a], al
movzx edx, byte [ebx + 0x11b]
test dl, 0x10
je 0x5fa527
cmp dword [ebx + 0x2d], 0
je 0x5faad1
movzx eax, word [esi + 0xc]
test eax, eax
je 0x5fa598
push 0
push 0x14
mov ecx, 0x6ffaa0
mov dword [esp + 0x28], esi
call fcn.004e566c
test eax, eax
je 0x5fa55b
push 0
push 0x606c24
push 0x1f
mov ecx, eax
mov dword [esp + 0x2c], esi
call fcn.004efac8
jmp 0x5fa55d
xor eax, eax
mov dword [ebx + 0x6f], eax
movzx ecx, word [esi + 0xc]
mov dword [esp + 0x20], esi
call fcn.005414f0
mov ebp, eax
test ebp, ebp
je 0x5fa598
movzx eax, word [ebp]
mov word [esp + 0x28], ax
lea edx, [esp + 0x28]
push edx
mov ecx, dword [ebx + 0x6f]
call fcn.004ede5c
test eax, eax
je 0x5fafec
mov ebp, dword [ebp + 2]
test ebp, ebp
jne 0x5fa573
movzx eax, word [esi + 2]
test eax, eax
jne 0x5faa3c
movzx eax, word [esi + 4]
test eax, eax
jne 0x5faa3c
cmp dword [ebx + 0x2d], 0
je 0x5fad17
mov edx, dword [esi + 0x56]
xor edi, edi
cmp edx, 2
mov ebp, 1
cmovne ebp, edi
movzx eax, byte [ebx + 0x11b]
and eax, 0xfffffffd
and ebp, 1
add ebp, ebp
or eax, ebp
mov byte [ebx + 0x11b], al
push edi
push 8
mov ecx, 0x6ffa94
mov dword [esp + 0x28], esi
call fcn.004e566c
test eax, eax
je 0x5fa5ff
xor edx, edx
mov dword [eax], edx
mov dword [eax + 4], edx
jmp 0x5fa601
xor eax, eax
mov dword [ebx + 0x59], eax
movzx eax, byte [ebx + 9]
test al, 8
je 0x5fa63b
movzx eax, word [esi + 0x22]
test eax, eax
je 0x5fa63f
movzx eax, word [esi + 0x28]
test eax, eax
je 0x5fa62d
mov word [ebx + 0x69], ax
or byte [ebx + 0x11b], 4
movzx eax, word [esi + 0x22]
jmp 0x5fa63f
movzx eax, word [esi + 0x26]
mov word [ebx + 0x69], ax
movzx eax, word [esi + 0x22]
jmp 0x5fa63f
movzx eax, word [esi + 0x22]
test eax, eax
jne 0x5fa660
movzx ecx, word [esi + 6]
test ecx, ecx
jne 0x5fabce
movzx ecx, word [esi + 8]
test ecx, ecx
jne 0x5fab0b
jmp 0x5faaa9
movzx ecx, word [esi + 6]
mov dword [esp + 0x20], esi
call fcn.005414f0
mov edi, eax
test edi, edi
je 0x5fa6f7
movzx eax, word [edi]
movzx edx, word [esi + 0x22]
cmp eax, edx
je 0x5fa707
push 1
push 0xb3
mov ecx, 0x6ffaf4
call fcn.004e566c
test eax, eax
je 0x5fa6a6
mov ecx, eax
call fcn.005f10dc
mov ebp, eax
jmp 0x5fa6a8
xor ebp, ebp
push ebp
mov ecx, dword [ebx + 0x59]
call fcn.005a4e90
xor ecx, ecx
movzx edx, word [edi]
push ecx
push 1
mov eax, dword [esp + 0x64]
push eax
push dword [ebx + 0x2d]
push edx
push ecx
push ebx
mov eax, dword [esp + 0x5c]
push eax
mov ecx, ebp
call fcn.005f110c
movzx eax, byte [ebx + 0x11b]
test al, 0x10
je 0x5fa6f0
cmp ebx, dword [ebx + 0x2d]
je 0x5fa6e9
mov ecx, ebp
call fcn.005f46dc
jmp 0x5fa6f0
or byte [ebp + 0x90], 0x80
mov edi, dword [edi + 2]
test edi, edi
jne 0x5fa677
push str.Could_not_find_the_Repeated_Line_
mov ecx, ebx
mov dword [esp + 0x24], esi
call fcn.004fa294
movzx eax, word [esi + 0x24]
movzx edx, word [0x7bc0fc]
cmp eax, edx
je 0x5fa857
movzx edx, word [0x7bc100]
cmp eax, edx
jne 0x5fa745
push 0
push 1
mov ecx, dword [ebx + 0x25]
mov dword [esp + 0x28], esi
call fcn.004fdf94
mov dword [ebx + 0x39], eax
test eax, eax
je 0x5faca2
jmp 0x5fa870
mov ebp, dword [ebx]
movzx edx, byte [ebx + 9]
and edx, 8
shr edx, 3
push edx
push ebx
push eax
mov ecx, ebx
mov dword [esp + 0x2c], esi
call dword [ebp + 0x40]
mov dword [ebx + 0x39], eax
test eax, eax
je 0x5fa8e9
movzx ecx, byte [ebx + 9]
test cl, 8
jne 0x5fa784
mov edx, dword [ebx + 0x31]
movzx ebp, byte [edx + 0xa]
and ebp, 0x3f
cmp ebp, 3
je 0x5facc3
test cl, 8
je 0x5fa791
movzx eax, word [esi + 0x2a]
test eax, eax
jne 0x5fa799
mov eax, dword [ebx + 0x39]
jmp 0x5fa84e
mov dword [esp + 0x20], esi
call fcn.0053e764
mov dword [esp + 8], eax
movzx eax, word [esi + 0x2a]
push 0x2000
push ebx
push 0xffffffffffffffff
push ebx
push 2
push eax
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x38], esi
call fcn.00540d50
test eax, eax
jne 0x5fa83e
mov eax, dword [esp + 8]
lea ecx, [eax + 0x38]
mov dword [esp + 0x20], esi
call fcn.0051a328
mov dword [esp + 4], eax
test eax, eax
jle 0x5fa83e
mov ecx, dword [ebx + 0x25]
mov eax, dword [ecx]
mov dword [esp + 0x20], esi
call dword [eax + 0x54]
cmp eax, 0xfffffffc
je 0x5fa801
mov ecx, dword [ebx + 0x25]
mov eax, dword [ecx]
mov dword [esp + 0x20], esi
call dword [eax + 0x54]
cmp eax, 0xfffffffa
jne 0x5fa82d
mov ecx, dword [ebx + 0x39]
mov ebp, dword [ecx + 0x25]
mov eax, dword [esp + 4]
cmp ebp, eax
jge 0x5fa83e
mov dword [esp + 0x20], esi
mov esi, eax
jmp 0x5fa81a
mov ecx, dword [ebx + 0x39]
mov eax, dword [ecx]
xor edx, edx
push edx
push edx
call dword [eax + 0x60]
inc ebp
cmp ebp, esi
jl 0x5fa817
jmp 0x5facba
mov ecx, dword [ebx + 0x25]
mov eax, dword [ecx]
mov dword [esp + 0x20], esi
call dword [eax + 0x54]
cmp eax, 0xfffffff9
je 0x5fa801
mov ecx, dword [esp + 8]
mov dword [esp + 0x20], esi
call fcn.0053e75c
mov eax, dword [ebx + 0x39]
test eax, eax
jne 0x5fa870
jmp 0x5fa8e9
push 1
mov ecx, dword [ebx + 0x25]
mov dword [esp + 0x24], esi
call fcn.004fe050
mov dword [ebx + 0x39], eax
test eax, eax
je 0x5facff
movzx edx, byte [ebx + 9]
test dl, 8
je 0x5fa881
movzx edx, word [ebx + 0x69]
test edx, edx
jne 0x5fa886
mov edx, dword [eax + 0x25]
jmp 0x5fa8a2
mov edx, dword [eax + 0x25]
test edx, edx
jne 0x5fa8a2
mov ebp, dword [eax]
xor edx, edx
push edx
push edx
mov ecx, eax
mov dword [esp + 0x28], esi
call dword [ebp + 0x60]
mov eax, dword [ebx + 0x39]
mov edx, dword [eax + 0x25]
mov dword [ebx + 0x65], edx
lea edx, [esp + 0x14]
push edx
push 0x5fc1d0
mov ecx, eax
mov dword [esp + 0x28], esi
call fcn.0051d888
movzx eax, byte [ebx + 9]
test al, 8
je 0x5fa8d8
push 8
push 0x2000
push ebx
mov ecx, dword [ebx + 0x39]
mov dword [esp + 0x2c], esi
call fcn.004f7a0c
jmp 0x5fa8e9
push 8
push 1
push ebx
mov ecx, dword [ebx + 0x39]
mov dword [esp + 0x2c], esi
call fcn.004f7a0c
mov ebp, dword [edi + 2]
test ebp, ebp
je 0x5fa95c
mov dword [esp + 0x20], esi
mov edi, dword [esp + 0x40]
push 1
push 0xb3
mov ecx, 0x6ffaf4
call fcn.004e566c
test eax, eax
je 0x5fa918
mov ecx, eax
call fcn.005f10dc
mov esi, eax
jmp 0x5fa91a
xor esi, esi
push esi
mov ecx, dword [ebx + 0x59]
call fcn.005a4e90
xor ecx, ecx
movzx edx, word [ebp]
push ecx
push 1
mov eax, dword [esp + 0x64]
push eax
push dword [ebx + 0x2d]
push edx
push ecx
push ebx
push edi
mov ecx, esi
call fcn.005f110c
movzx eax, byte [ebx + 0x11b]
test al, 0x10
je 0x5fa951
mov ecx, esi
call fcn.005f46dc
mov ebp, dword [ebp + 2]
test ebp, ebp
jne 0x5fa8f8
mov esi, dword [esp + 0x20]
movzx eax, word [esi + 8]
test eax, eax
je 0x5faaa9
push 0
lea ecx, [esp + 4]
mov dword [esp + 0x24], esi
call fcn.0050a9a0
mov edx, dword [ebx]
movzx eax, word [0x7bc13c]
push eax
mov ecx, ebx
mov dword [esp + 0x24], esi
call dword [edx + 0x20]
lea edx, [esp]
push 1
push edx
mov ecx, eax
mov dword [esp + 0x28], esi
call fcn.00502a8c
mov ecx, dword [ebx + 0x25]
mov eax, dword [ecx]
mov dword [esp + 0x20], esi
call dword [eax + 0x54]
cmp eax, 0xfffffff3
je 0x5facda
mov eax, 1
xor ebp, ebp
cmp ebx, dword [ebx + 0x2d]
cmovne ebp, eax
movzx ecx, word [esi + 8]
call fcn.005414f0
mov esi, eax
test esi, esi
je 0x5faa32
push 1
push 0xb3
mov ecx, 0x6ffaf4
call fcn.004e566c
test eax, eax
je 0x5fa9ec
mov ecx, eax
call fcn.005f10dc
mov edi, eax
jmp 0x5fa9ee
xor edi, edi
push edi
mov ecx, dword [ebx + 0x59]
call fcn.005a4e90
xor ecx, ecx
movzx edx, word [esi]
push ecx
push ebp
mov eax, dword [esp + 0x64]
push eax
push dword [ebx + 0x2d]
push edx
push ecx
push ebx
mov eax, dword [esp + 0x5c]
push eax
mov ecx, edi
call fcn.005f110c
movzx eax, byte [ebx + 0x11b]
test al, 0x10
je 0x5faa2b
test ebp, ebp
je 0x5faa2b
mov ecx, edi
call fcn.005f46dc
mov esi, dword [esi + 2]
test esi, esi
jne 0x5fa9cc
lea ecx, [esp]
call fcn.0050aa58
jmp 0x5faaa9
push 0
push 8
mov ecx, 0x6ffa94
mov dword [esp + 0x28], esi
call fcn.004e566c
test eax, eax
je 0x5faa5b
xor edx, edx
mov dword [eax], edx
mov dword [eax + 4], edx
jmp 0x5faa5d
xor eax, eax
mov dword [ebx + 0x51], eax
movzx eax, byte [ebx + 0x11b]
test al, 0x10
je 0x5faa75
cmp dword [ebx + 0x2d], 0
je 0x5fad43
movzx eax, byte [ebx + 9]
test al, 8
jne 0x5faa91
movzx eax, byte [ebx + 0x11b]
test al, 0x10
je 0x5faa91
cmp ebx, dword [ebx + 0x2d]
je 0x5fad6f
movzx ecx, word [esi + 2]
test ecx, ecx
jne 0x5faf28
movzx ecx, word [esi + 4]
test ecx, ecx
jne 0x5fae70
mov eax, dword [esp + 0x24]
test eax, eax
je 0x5faac7
mov eax, dword [ebx + 0x25]
add eax, 0x9f
push eax
mov edx, dword [esp + 0x28]
push edx
mov ecx, dword [ebx + 0x21]
call fcn.005a4fac
add esp, 0x2c
pop ebx
pop ebp
pop esi
pop edi
ret 0x24
movzx edx, word [esi + 2]
test edx, edx
jne 0x5faaee
movzx edx, word [esi + 4]
test edx, edx
jne 0x5faaee
movzx eax, word [esi + 6]
test eax, eax
je 0x5faaf6
jmp 0x5fa527
test al, 2
jne 0x5fa527
push str.Syntax_Error_
mov ecx, ebx
mov dword [esp + 0x24], esi
call fcn.004fa294
jmp 0x5fa527
call fcn.005414f0
mov ebp, eax
test ebp, ebp
je 0x5faaa9
mov dword [esp], ebx
mov edi, dword [esp + 0x14]
mov esi, dword [esp + 0x1c]
movzx eax, word [ebp]
mov dword [esp + 4], eax
mov edx, dword [esp + 0x18]
mov dword [esp + 8], edx
push 1
push 0xb3
mov ecx, 0x6ffaf4
call fcn.004e566c
test eax, eax
je 0x5fab51
mov ecx, eax
call fcn.005f10dc
mov ebx, eax
jmp 0x5fab53
xor ebx, ebx
push ebx
mov ecx, dword [edi + 0x59]
call fcn.005a4e90
xor ecx, ecx
push ecx
push ecx
mov eax, dword [esp + 0x10]
push eax
push dword [edi + 0x2d]
mov edx, dword [esp + 0x14]
push edx
push ecx
push edi
push esi
mov ecx, ebx
call fcn.005f110c
movzx eax, byte [edi + 0x11b]
and eax, 0x10
cmp eax, 0x10
je 0x5fabb0
push ebx
mov ecx, edi
call fcn.005fc860
test eax, eax
je 0x5fab9d
push 1
push ebx
mov ecx, dword [edi + 0x2d]
call fcn.005fc6ec
mov ebp, dword [ebp + 2]
test ebp, ebp
jne 0x5fab19
mov ebx, dword [esp]
jmp 0x5faaa9
cmp edi, dword [edi + 0x2d]
je 0x5fabbe
mov ecx, ebx
call fcn.005f46dc
jmp 0x5fab86
mov eax, dword [edi + 0x21]
mov edx, dword [eax + 8]
movzx ecx, word [edx + 0x22]
test ecx, ecx
je 0x5fabb5
jmp 0x5fab86
mov dword [esp + 0x20], esi
call fcn.005414f0
mov ebp, eax
test ebp, ebp
je 0x5fa64f
mov dword [esp + 0x20], esi
mov dword [esp], ebx
mov edi, dword [esp + 0x14]
mov esi, dword [esp + 0x1c]
movzx eax, word [ebp]
mov dword [esp + 4], eax
mov edx, dword [esp + 0x18]
mov dword [esp + 8], edx
push 1
push 0xb3
mov ecx, 0x6ffaf4
call fcn.004e566c
test eax, eax
je 0x5fac20
mov ecx, eax
call fcn.005f10dc
mov ebx, eax
jmp 0x5fac22
xor ebx, ebx
push ebx
mov ecx, dword [edi + 0x59]
call fcn.005a4e90
xor ecx, ecx
push ecx
push 1
mov eax, dword [esp + 0x10]
push eax
push dword [edi + 0x2d]
mov edx, dword [esp + 0x14]
push edx
push ecx
push edi
push esi
mov ecx, ebx
call fcn.005f110c
movzx eax, byte [edi + 0x11b]
and eax, 0x10
cmp eax, 0x10
je 0x5fac84
push ebx
mov ecx, edi
call fcn.005fc860
test eax, eax
je 0x5fac6d
push 1
push ebx
mov ecx, dword [edi + 0x2d]
call fcn.005fc6ec
mov ebp, dword [ebp + 2]
test ebp, ebp
jne 0x5fabe8
mov esi, dword [esp + 0x20]
mov ebx, dword [esp]
jmp 0x5fa64f
cmp edi, dword [edi + 0x2d]
je 0x5fac92
mov ecx, ebx
call fcn.005f46dc
jmp 0x5fac56
mov eax, dword [edi + 0x21]
mov edx, dword [eax + 8]
movzx ecx, word [edx + 0x22]
test ecx, ecx
je 0x5fac89
jmp 0x5fac56
push str.Could_not_find_the_Collection_
mov ecx, ebx
mov dword [esp + 0x24], esi
call fcn.004fa294
mov eax, dword [ebx + 0x39]
jmp 0x5fa84e
mov esi, dword [esp + 0x20]
jmp 0x5fa83e
mov edx, dword [eax]
push dword [ebx + 0x25]
mov ecx, eax
mov dword [esp + 0x24], esi
call dword [edx + 0x64]
movzx ecx, byte [ebx + 9]
jmp 0x5fa784
mov eax, dword [ebx + 0x21]
mov edx, dword [eax + 8]
mov ecx, dword [edx + 0x5e]
cmp ecx, 1
je 0x5facf2
mov ebp, 1
jmp 0x5fa9bd
mov eax, dword [esp]
cmp dword [eax], 2
je 0x5face8
jmp 0x5fa9b0
push str.Could_not_find_the_Collection_
mov ecx, ebx
mov dword [esp + 0x24], esi
call fcn.004fa294
mov eax, dword [ebx + 0x39]
jmp 0x5fa84e
mov dword [ebx + 0x2d], ebx
mov ecx, 0x1c
mov dword [esp + 0x20], esi
call fcn.004dbcd8
test eax, eax
je 0x5fad39
mov edx, 0xffffffff
mov dword [eax + 0x14], edx
mov dword [eax + 0x18], edx
jmp 0x5fad3b
xor eax, eax
mov dword [ebx + 0x5d], eax
jmp 0x5fa5ba
mov dword [ebx + 0x2d], ebx
mov ecx, 0x1c
mov dword [esp + 0x20], esi
call fcn.004dbcd8
test eax, eax
je 0x5fad65
mov edx, 0xffffffff
mov dword [eax + 0x14], edx
mov dword [eax + 0x18], edx
jmp 0x5fad67
xor eax, eax
mov dword [ebx + 0x5d], eax
jmp 0x5faa75
movzx eax, word [esi + 0x22]
test eax, eax
je 0x5faa91
movzx ecx, word [esi + 2]
mov dword [esp + 0x20], esi
call fcn.005414f0
mov ebp, eax
cmp dword [ebp + 2], 0
je 0x5fada0
push str.Only_ONE_part_name_allowed_
mov ecx, ebx
mov dword [esp + 0x24], esi
call fcn.004fa294
movzx eax, word [ebp]
movzx edx, word [esi + 0x22]
cmp eax, edx
jne 0x5fae5b
mov eax, dword [ebx]
movzx esi, word [esi + 0x24]
push 0
push ebx
push esi
mov ecx, ebx
call dword [eax + 0x40]
mov dword [ebx + 0x39], eax
test eax, eax
je 0x5faaa9
mov ecx, eax
call fcn.0051d6a0
mov esi, eax
test esi, esi
je 0x5faaa9
mov ecx, 0x11d
call fcn.004dbcd8
mov edi, eax
test edi, edi
je 0x5fae1a
push 4
push 0
mov ecx, edi
call fcn.004fa25c
mov dword [edi], 0x7f18e0
movzx eax, word [0x7e8200]
mov word [edi + 0xaf], ax
movzx edx, word [0x7e8200]
mov word [edi + 0xb1], dx
jmp 0x5fae1c
xor edi, edi
push edi
mov ecx, dword [ebx + 0x51]
call fcn.005a4e90
movzx ecx, word [ebp]
push esi
push 0
mov eax, dword [esp + 0x60]
push eax
mov edx, dword [esp + 0x60]
push edx
push 1
push dword [ebx + 0x2d]
push ecx
push ebx
mov eax, dword [esp + 0x60]
push eax
mov ecx, edi
call fcn.005fa234
mov ecx, esi
call fcn.004fa084
mov esi, eax
test esi, esi
jne 0x5faddb
jmp 0x5faaa9
push str.Could_not_find_the_Repeated_Part_
mov ecx, ebx
mov dword [esp + 0x24], esi
call fcn.004fa294
jmp 0x5fadb0
call fcn.005414f0
mov ebp, eax
test ebp, ebp
je 0x5faaa9
mov dword [esp], ebx
mov edi, dword [esp + 0x14]
mov esi, dword [esp + 0x1c]
mov dword [esp + 8], esi
movzx esi, word [ebp]
mov eax, dword [esp + 0x18]
mov dword [esp + 4], eax
mov ecx, 0x11d
call fcn.004dbcd8
mov ebx, eax
test ebx, ebx
je 0x5faed9
push 4
push 0
mov ecx, ebx
call fcn.004fa25c
mov dword [ebx], 0x7f18e0
movzx eax, word [0x7e8200]
mov word [ebx + 0xaf], ax
movzx edx, word [0x7e8200]
mov word [ebx + 0xb1], dx
jmp 0x5faedb
xor ebx, ebx
push ebx
mov ecx, dword [edi + 0x51]
call fcn.005a4e90
cmp dword [edi + 0x5d], 0
je 0x5faeee
mov ecx, edi
jmp 0x5faef1
mov ecx, dword [edi + 0x2d]
xor edx, edx
push edx
mov eax, dword [esp + 8]
push eax
push dword [edi + 0xab]
push dword [edi + 0xa7]
push edx
push ecx
push esi
push edi
mov esi, dword [esp + 0x28]
push esi
mov ecx, ebx
call fcn.005fa234
mov ebp, dword [ebp + 2]
test ebp, ebp
jne 0x5fae82
mov ebx, dword [esp]
jmp 0x5faaa9
mov dword [esp + 0x20], esi
call fcn.005414f0
mov ebp, eax
test ebp, ebp
je 0x5faa9d
mov dword [esp + 0x20], esi
mov dword [esp], ebx
mov edi, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov dword [esp + 8], eax
movzx edx, word [ebp]
mov dword [esp + 4], edx
mov esi, dword [esp + 0x18]
mov ecx, 0x11d
call fcn.004dbcd8
mov ebx, eax
test ebx, ebx
je 0x5faf99
push 4
push 0
mov ecx, ebx
call fcn.004fa25c
mov dword [ebx], 0x7f18e0
movzx eax, word [0x7e8200]
mov word [ebx + 0xaf], ax
movzx edx, word [0x7e8200]
mov word [ebx + 0xb1], dx
jmp 0x5faf9b
xor ebx, ebx
push ebx
mov ecx, dword [edi + 0x51]
call fcn.005a4e90
cmp dword [edi + 0x5d], 0
je 0x5fafae
mov eax, edi
jmp 0x5fafb1
mov eax, dword [edi + 0x2d]
push 0
push esi
push dword [edi + 0xab]
push dword [edi + 0xa7]
push 1
push eax
mov eax, dword [esp + 0x1c]
push eax
push edi
mov edx, dword [esp + 0x28]
push edx
mov ecx, ebx
call fcn.005fa234
mov ebp, dword [ebp + 2]
test ebp, ebp
jne 0x5faf42
mov esi, dword [esp + 0x20]
mov ebx, dword [esp]
jmp 0x5faa9d
mov ecx, 0x31
call fcn.004dbcd8
mov ecx, eax
test ecx, ecx
je 0x5fb012
movzx eax, word [ebp]
mov edx, dword [ebx + 0x25]
movsx edi, word [edx + 0x3d]
inc edi
push ebx
push edi
push eax
call fcn.00615338
jmp 0x5fb014
xor eax, eax
push eax
mov ecx, dword [ebx + 0x6f]
call fcn.004ef100
jmp 0x5fa591
mov eax, dword [esi + 0x46]
mov edx, 1
xor ecx, ecx
cmp eax, 2
cmove ecx, edx
movzx eax, byte [ebx + 0x11a]
and eax, 0xfffffffd
and ecx, 1
add ecx, ecx
or eax, ecx
mov byte [ebx + 0x11a], al
test al, 2
je 0x5fb056
movzx edx, byte [ebx + 0x11b]
jmp 0x5fb07b
mov edx, dword [esi + 0x52]
mov ecx, 1
xor edi, edi
cmp edx, 2
cmove edi, ecx
movzx edx, byte [ebx + 0x11b]
and edx, 0xfffffffe
and edi, 1
or edx, edi
mov byte [ebx + 0x11b], dl
and eax, 0xfffffffe
movzx ecx, byte [esp + 0x50]
and ecx, 1
or eax, ecx
mov byte [ebx + 0x11a], al
mov ecx, dword [esi + 0x3a]
cmp ecx, 2
je 0x5fb09b
cmp ecx, 3
jne 0x5fb0a2
mov ecx, 1
jmp 0x5fb0a4
xor ecx, ecx
and edx, 0xffffffef
and ecx, 1
shl ecx, 4
or edx, ecx
mov byte [ebx + 0x11b], dl
and edx, 0xffffffbf
mov edi, dword [esi + 0x3a]
mov ecx, 1
cmp edi, 3
mov edi, 0
cmove edi, ecx
and edi, 1
shl edi, 6
or edx, edi
mov byte [ebx + 0x11b], dl
movzx ecx, byte [ebp + 0xa]
and ecx, 0x3f
cmp ecx, 4
je 0x5fb138
movzx ecx, word [esi + 0xe]
test ecx, ecx
je 0x5fa3fc
lea eax, [ecx*8]
lea ecx, [eax + ecx*4 + 0x700800]
lea edi, [esp + 0xc]
lea edx, [esp + 0x10]
push edx
push edi
push 0x3a
mov dword [esp + 0x2c], esi
call fcn.0053f008
movzx ecx, word [esp + 0xc]
mov dword [esp + 0x20], esi
call fcn.0054c478
mov dword [ebx + 0x73], eax
movzx eax, byte [ebx + 0x11a]
movzx edx, byte [ebx + 0x11b]
jmp 0x5fa3fc
movzx ecx, byte [ebp + 0x11b]
test cl, 1
je 0x5fb0e5
or edx, 1
or edx, 0x10
mov byte [ebx + 0x11b], dl
jmp 0x5fb0e5
cmp dword [ebp + 0x39], 0
jne 0x5fa339
mov eax, dword [ebp + 0xf]
mov dword [ebx + 0x31], eax
movzx edx, byte [eax + 0xa]
and edx, 0x3f
cmp edx, 4
jne 0x5fa339
cmp dword [eax + 0x39], 0
jne 0x5fa339
mov eax, dword [eax + 0xf]
mov dword [ebx + 0x31], eax
movzx edx, byte [eax + 0xa]
and edx, 0x3f
cmp edx, 4
je 0x5fb172
jmp 0x5fa339
mov ecx, dword [ebx + 0xf]
movzx edx, byte [ecx + 0xa]
and edx, 0x3f
cmp edx, 5
jne 0x5fb1ad
mov eax, dword [ecx + 0x29]
mov dword [ebx + 0x35], eax
jmp 0x5fa326
cmp edx, 4
jne 0x5fb1bd
mov eax, dword [ecx + 0x35]
mov dword [ebx + 0x35], eax
jmp 0x5fa326
mov eax, dword [eax + 0x31]
mov dword [ebx + 0x35], eax
jmp 0x5fa326
mov ecx, dword [ebp + 0x29]
mov dword [ebx + 0x29], ecx
mov esi, dword [ebp + 0x35]
mov dword [ebx + 0x35], esi
movzx edx, byte [ebx + 0x11c]
and edx, 0xfffffffe
movzx edi, byte [ebp + 0x11c]
and edi, 1
or edx, edi
mov byte [ebx + 0x11c], dl
mov edx, dword [esp + 0x54]
mov dword [ebx + 0xa7], edx
mov edx, dword [esp + 0x58]
mov dword [ebx + 0xab], edx
jmp 0x5fa313
mov dword [ebx + 0x29], ebp
mov edx, dword [eax + 0x31]
mov dword [ebx + 0x35], edx
and byte [ebx + 0x11c], 0xfe
jmp 0x5fa313
push edi
push esi
push ebp
push ebx
push ecx
mov eax, 0x2c
call fcn.00696350
mov ecx, dword [esp + 0x2c]
mov ebp, ecx
mov edx, dword [esp + 0x44]
mov ebx, dword [esp + 0x48]
movzx ecx, word [esp + 0x4c]
mov eax, dword [esp + 0x60]
mov dword [esp + 0x14], ebp
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], edx
mov dword [ebp + 0xf], ebx
mov word [ebp + 0x1f], cx
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x2c]
mov dword [ebp + 0x25], eax
movzx esi, byte [eax + 9]
and esi, 8
movzx edx, byte [ebp + 9]
and edx, 0xfffffff7
or edx, esi
mov byte [ebp + 9], dl
movzx edi, word [ebx + 0x13]
mov word [ebp + 0x13], di
movzx ecx, byte [ebx + 0x16]
mov byte [ebp + 0x16], cl
movzx edx, byte [ebx + 0x15]
mov byte [ebp + 0x15], dl
mov edx, dword [esp + 0x50]
mov dword [ebp + 0x2d], edx
movzx edx, byte [ebx + 0xa]
and edx, 0x3f
cmp edx, 3
je 0x5fc1ba
cmp edx, 4
je 0x5fc179
mov edx, dword [ebx + 0x2d]
mov ecx, dword [edx + 0x29]
mov dword [ebp + 0x29], ecx
mov esi, dword [ebx + 0x29]
mov dword [ebp + 0x35], esi
or byte [ebp + 0x11c], 1
mov edi, dword [esp + 0x58]
mov dword [ebp + 0xa7], edi
mov edx, dword [esp + 0x5c]
mov dword [ebp + 0xab], edx
mov edx, dword [esp + 0x64]
test edx, edx
je 0x5fc144
mov eax, dword [esp + 0x64]
mov dword [ebp + 0x35], eax
mov dword [ebp + 0x31], ebx
movzx eax, byte [ebx + 0xa]
and eax, 0x3f
cmp eax, 4
je 0x5fc103
movzx ecx, word [esp + 0x4c]
call fcn.005eb18c
mov dword [ebp + 0x21], eax
mov edx, dword [ebp + 0x25]
add edx, 0x9f
push edx
push ebp
mov ecx, eax
call fcn.005a5090
mov dword [ebp + 0x21], eax
mov ecx, eax
call fcn.005eb074
test eax, eax
je 0x5fb339
mov ecx, dword [ebp + 0x21]
call fcn.005eb074
push eax
mov ecx, ebp
call fcn.004fa294
mov eax, dword [ebp + 0x25]
add eax, 0x9f
push eax
mov ecx, dword [ebp + 0x21]
call fcn.005a4fc8
mov dword [esp + 0x24], eax
mov eax, dword [ebp + 0x21]
mov edx, dword [eax + 8]
mov dword [esp + 0x28], edx
movzx ecx, word [edx + 0x2e]
test ecx, ecx
je 0x5fb370
movzx eax, word [edx + 0x30]
push eax
push dword [edx + 0x36]
push ecx
mov ecx, ebp
call fcn.00622ba0
mov esi, dword [ebp + 0x2d]
test esi, esi
je 0x5fbf9e
movzx edx, byte [ebp + 0x11a]
or edx, 2
or edx, 1
mov dword [esp + 4], edx
mov byte [ebp + 0x11a], dl
movzx eax, byte [ebp + 0x11b]
and eax, 0xffffffef
movzx ecx, byte [esi + 0x11b]
and ecx, 0x10
or eax, ecx
mov byte [ebp + 0x11b], al
and eax, 0xffffffbf
movzx esi, byte [esi + 0x11b]
and esi, 0x40
or eax, esi
mov dword [esp + 0x20], eax
mov byte [ebp + 0x11b], al
mov eax, dword [esp + 0x20]
test al, 0x40
je 0x5fb3dc
or eax, 0x20
mov dword [esp + 0x20], eax
mov byte [ebp + 0x11b], al
mov esi, dword [esp + 0x28]
mov edi, dword [esi + 0x42]
xor eax, eax
mov dword [esp], eax
cmp edi, 2
mov edx, eax
sete dl
mov ecx, dword [esp + 4]
and ecx, 0xfffffffb
and edx, 1
shl edx, 2
or ecx, edx
mov dword [esp + 4], ecx
mov byte [ebp + 0x11a], cl
movzx eax, byte [ebx + 0xa]
and eax, 0x3f
cmp eax, 4
je 0x5fb418
mov ebx, dword [ebp + 0x2d]
test ebx, ebx
je 0x5fb45e
movzx eax, byte [ebx + 0x11a]
test al, 0x40
je 0x5fb45e
mov eax, ecx
or eax, 0x40
mov byte [ebp + 0x11a], al
mov edx, dword [ebx + 0xb9]
mov dword [ebp + 0xb9], edx
mov ecx, dword [ebx + 0xbd]
mov dword [ebp + 0xbd], ecx
and eax, 0xffffff7f
mov dword [esp + 4], eax
mov byte [ebp + 0x11a], al
jmp 0x5fb4fd
mov edi, dword [esi + 0x5a]
xor eax, eax
mov dword [esp], eax
cmp edi, 2
mov edx, eax
sete dl
and ecx, 0xffffffbf
and edx, 1
shl edx, 6
or ecx, edx
mov dword [esp + 4], ecx
mov byte [ebp + 0x11a], cl
test cl, 0x40
je 0x5fb4fd
push 0
push 0xc
mov ecx, 0x6ff95c
call fcn.004e566c
test eax, eax
je 0x5fb4aa
mov dword [eax], 0x6b8578
xor edx, edx
mov dword [eax + 4], edx
mov dword [eax + 8], edx
jmp 0x5fb4ac
xor eax, eax
mov dword [ebp + 0xb9], eax
push 0
push 0xc
mov ecx, 0x6ff95c
call fcn.004e566c
test eax, eax
je 0x5fb4d4
mov dword [eax], 0x6b8578
xor edx, edx
mov dword [eax + 4], edx
mov dword [eax + 8], edx
jmp 0x5fb4d6
xor eax, eax
mov dword [ebp + 0xbd], eax
movzx eax, byte [ebp + 0x11a]
or eax, 0x80
mov dword [esp + 4], eax
mov byte [ebp + 0x11a], al
movzx edx, byte [ebp + 0x11b]
mov dword [esp + 0x20], edx
mov eax, dword [esp + 0x20]
test al, 0x10
je 0x5fb50f
cmp dword [ebp + 0x2d], 0
je 0x5fba81
mov eax, esi
movzx edx, word [eax + 0xc]
test edx, edx
je 0x5fb577
push 0
push 0x14
mov ecx, 0x6ffaa0
call fcn.004e566c
test eax, eax
je 0x5fb53d
push 0
push 0x606c24
push 0x1f
mov ecx, eax
call fcn.004efac8
jmp 0x5fb53f
xor eax, eax
mov dword [ebp + 0x6f], eax
mov eax, esi
movzx ecx, word [eax + 0xc]
call fcn.005414f0
mov ebx, eax
test ebx, ebx
je 0x5fb577
movzx eax, word [ebx]
mov word [esp + 0x2c], ax
lea edx, [esp + 0x2c]
push edx
mov ecx, dword [ebp + 0x6f]
call fcn.004ede5c
test eax, eax
je 0x5fbf69
mov ebx, dword [ebx + 2]
test ebx, ebx
jne 0x5fb553
mov eax, dword [esp + 0x28]
movzx edx, word [eax + 2]
test edx, edx
jne 0x5fb9e8
movzx edx, word [eax + 4]
test edx, edx
jne 0x5fb9e8
cmp dword [ebp + 0x2d], 0
je 0x5fbca9
mov esi, dword [esp + 0x28]
mov edi, dword [esi + 0x56]
xor eax, eax
cmp edi, 2
sete al
movzx edx, byte [ebp + 0x11b]
and edx, 0xfffffffd
and eax, 1
add eax, eax
or edx, eax
mov byte [ebp + 0x11b], dl
push 0
push 8
mov ecx, 0x6ffa94
call fcn.004e566c
test eax, eax
je 0x5fb5de
xor edx, edx
mov dword [eax], edx
mov dword [eax + 4], edx
jmp 0x5fb5e0
xor eax, eax
mov dword [ebp + 0x59], eax
movzx eax, byte [ebp + 9]
test al, 8
je 0x5fb622
mov eax, esi
movzx eax, word [eax + 0x22]
test eax, eax
je 0x5fb628
mov eax, esi
movzx eax, word [eax + 0x28]
test eax, eax
je 0x5fb612
mov word [ebp + 0x69], ax
or byte [ebp + 0x11b], 4
mov eax, esi
movzx eax, word [eax + 0x22]
jmp 0x5fb628
mov edx, esi
movzx eax, word [edx + 0x26]
mov word [ebp + 0x69], ax
movzx eax, word [edx + 0x22]
jmp 0x5fb628
mov eax, esi
movzx eax, word [eax + 0x22]
test eax, eax
jne 0x5fb64f
mov eax, esi
movzx ecx, word [eax + 6]
test ecx, ecx
jne 0x5fbb7f
mov eax, dword [esp + 0x28]
movzx ecx, word [eax + 8]
test ecx, ecx
jne 0x5fbabd
jmp 0x5fba59
mov eax, esi
movzx ecx, word [eax + 6]
call fcn.005414f0
mov edi, eax
test edi, edi
je 0x5fb6e0
movzx eax, word [edi]
movzx edx, word [esi + 0x22]
cmp eax, edx
je 0x5fb6ec
push 1
push 0xb3
mov ecx, 0x6ffaf4
call fcn.004e566c
test eax, eax
je 0x5fb68f
mov ecx, eax
call fcn.005f10dc
mov ebx, eax
jmp 0x5fb691
xor ebx, ebx
push ebx
mov ecx, dword [ebp + 0x59]
call fcn.005a4e90
xor ecx, ecx
movzx edx, word [edi]
push ecx
push 1
mov eax, dword [esp + 0x68]
push eax
push dword [ebp + 0x2d]
push edx
push ecx
push ebp
mov eax, dword [esp + 0x60]
push eax
mov ecx, ebx
call fcn.005f110c
movzx eax, byte [ebp + 0x11b]
test al, 0x10
je 0x5fb6d9
cmp ebp, dword [ebp + 0x2d]
je 0x5fb6d2
mov ecx, ebx
call fcn.005f46dc
jmp 0x5fb6d9
or byte [ebx + 0x90], 0x80
mov edi, dword [edi + 2]
test edi, edi
jne 0x5fb664
push str.Could_not_find_the_Repeated_Line_
mov ecx, ebp
call fcn.004fa294
mov eax, dword [esp + 0x28]
movzx ecx, word [eax + 0x24]
movzx edx, word [0x7bc0fc]
cmp ecx, edx
je 0x5fb824
movzx eax, word [0x7bc100]
cmp ecx, eax
jne 0x5fb72a
push 0
push 1
mov ecx, dword [ebp + 0x25]
call fcn.004fdf94
mov dword [ebp + 0x39], eax
test eax, eax
je 0x5fbc46
jmp 0x5fb839
movzx eax, byte [ebp + 9]
and eax, 8
shr eax, 3
mov edx, dword [ebp]
push eax
push ebp
push ecx
mov ecx, ebp
call dword [edx + 0x40]
mov dword [ebp + 0x39], eax
test eax, eax
je 0x5fb8a2
movzx esi, byte [ebp + 9]
test esi, 8
jne 0x5fb769
mov edx, dword [ebp + 0x31]
movzx ebx, byte [edx + 0xa]
and ebx, 0x3f
cmp ebx, 3
je 0x5fbc5a
test esi, 8
je 0x5fb77d
mov eax, dword [esp + 0x28]
movzx edx, word [eax + 0x2a]
test edx, edx
jne 0x5fb785
mov eax, dword [ebp + 0x39]
jmp 0x5fb81b
call fcn.0053e764
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x28]
movzx edx, word [eax + 0x2a]
push 0x2000
push ebp
push 0xffffffffffffffff
push ebp
push 2
push edx
mov ecx, dword [esp + 0x38]
call fcn.00540d50
test eax, eax
jne 0x5fb80f
mov eax, dword [esp + 0x20]
lea ecx, [eax + 0x38]
call fcn.0051a328
mov dword [esp + 4], eax
test eax, eax
jle 0x5fb80f
mov ecx, dword [ebp + 0x25]
mov eax, dword [ecx]
call dword [eax + 0x54]
cmp eax, 0xfffffffc
je 0x5fb7dd
mov ecx, dword [ebp + 0x25]
mov eax, dword [ecx]
call dword [eax + 0x54]
cmp eax, 0xfffffffa
jne 0x5fb802
mov ecx, dword [ebp + 0x39]
mov ebx, dword [ecx + 0x25]
mov eax, dword [esp + 4]
cmp ebx, eax
jge 0x5fb80f
mov esi, eax
jmp 0x5fb7f2
mov ecx, dword [ebp + 0x39]
mov eax, dword [ecx]
xor edx, edx
push edx
push edx
call dword [eax + 0x60]
inc ebx
cmp ebx, esi
jl 0x5fb7ef
jmp 0x5fb80f
mov ecx, dword [ebp + 0x25]
mov eax, dword [ecx]
call dword [eax + 0x54]
cmp eax, 0xfffffff9
je 0x5fb7dd
mov ecx, dword [esp + 0x20]
call fcn.0053e75c
mov eax, dword [ebp + 0x39]
test eax, eax
jne 0x5fb839
jmp 0x5fb8a2
push 1
mov ecx, dword [ebp + 0x25]
call fcn.004fe050
mov dword [ebp + 0x39], eax
test eax, eax
je 0x5fbc95
movzx edx, byte [ebp + 9]
test dl, 8
je 0x5fb84a
movzx edx, word [ebp + 0x69]
test edx, edx
jne 0x5fb84f
mov edx, dword [eax + 0x25]
jmp 0x5fb867
mov edx, dword [eax + 0x25]
test edx, edx
jne 0x5fb867
mov ebx, dword [eax]
xor edx, edx
push edx
push edx
mov ecx, eax
call dword [ebx + 0x60]
mov eax, dword [ebp + 0x39]
mov edx, dword [eax + 0x25]
mov dword [ebp + 0x65], edx
lea edx, [esp + 0x14]
push edx
push 0x5fc1d0
mov ecx, eax
call fcn.0051d888
movzx eax, byte [ebp + 9]
test al, 8
je 0x5fb895
push 8
push 0x2000
push ebp
mov ecx, dword [ebp + 0x39]
call fcn.004f7a0c
jmp 0x5fb8a2
push 8
push 1
push ebp
mov ecx, dword [ebp + 0x39]
call fcn.004f7a0c
mov ebx, dword [edi + 2]
test ebx, ebx
je 0x5fb90c
mov edi, dword [esp + 0x60]
push 1
push 0xb3
mov ecx, 0x6ffaf4
call fcn.004e566c
test eax, eax
je 0x5fb8cd
mov ecx, eax
call fcn.005f10dc
mov esi, eax
jmp 0x5fb8cf
xor esi, esi
push esi
mov ecx, dword [ebp + 0x59]
call fcn.005a4e90
xor edx, edx
movzx eax, word [ebx]
push edx
push 1
push edi
push dword [ebp + 0x2d]
push eax
push edx
push ebp
mov eax, dword [esp + 0x60]
push eax
mov ecx, esi
call fcn.005f110c
movzx eax, byte [ebp + 0x11b]
test al, 0x10
je 0x5fb905
mov ecx, esi
call fcn.005f46dc
mov ebx, dword [ebx + 2]
test ebx, ebx
jne 0x5fb8ad
mov eax, dword [esp + 0x28]
movzx edx, word [eax + 8]
test edx, edx
je 0x5fba59
push 0
lea ecx, [esp + 4]
call fcn.0050a9a0
mov edx, dword [ebp]
movzx eax, word [0x7bc13c]
push eax
mov ecx, ebp
call dword [edx + 0x20]
lea edx, [esp]
push 1
push edx
mov ecx, eax
call fcn.00502a8c
mov ecx, dword [ebp + 0x25]
mov eax, dword [ecx]
call dword [eax + 0x54]
cmp eax, 0xfffffff3
je 0x5fbc6d
xor eax, eax
cmp ebp, dword [ebp + 0x2d]
setne al
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x28]
movzx ecx, word [eax + 8]
call fcn.005414f0
mov esi, eax
test esi, esi
je 0x5fb9de
mov ebx, dword [esp + 0x20]
push 1
push 0xb3
mov ecx, 0x6ffaf4
call fcn.004e566c
test eax, eax
je 0x5fb998
mov ecx, eax
call fcn.005f10dc
mov edi, eax
jmp 0x5fb99a
xor edi, edi
push edi
mov ecx, dword [ebp + 0x59]
call fcn.005a4e90
xor ecx, ecx
movzx edx, word [esi]
push ecx
push ebx
mov eax, dword [esp + 0x68]
push eax
push dword [ebp + 0x2d]
push edx
push ecx
push ebp
mov eax, dword [esp + 0x60]
push eax
mov ecx, edi
call fcn.005f110c
movzx eax, byte [ebp + 0x11b]
test al, 0x10
je 0x5fb9d7
test ebx, ebx
je 0x5fb9d7
mov ecx, edi
call fcn.005f46dc
mov esi, dword [esi + 2]
test esi, esi
jne 0x5fb978
lea ecx, [esp]
call fcn.0050aa58
jmp 0x5fba59
push 0
push 8
mov ecx, 0x6ffa94
call fcn.004e566c
test eax, eax
je 0x5fba03
xor edx, edx
mov dword [eax], edx
mov dword [eax + 4], edx
jmp 0x5fba05
xor eax, eax
mov dword [ebp + 0x51], eax
movzx eax, byte [ebp + 0x11b]
test al, 0x10
je 0x5fba1d
cmp dword [ebp + 0x2d], 0
je 0x5fbcd1
movzx eax, byte [ebp + 9]
test al, 8
jne 0x5fba39
movzx eax, byte [ebp + 0x11b]
test al, 0x10
je 0x5fba39
cmp ebp, dword [ebp + 0x2d]
je 0x5fbcf9
mov eax, dword [esp + 0x28]
movzx ecx, word [eax + 2]
test ecx, ecx
jne 0x5fbeb1
mov eax, dword [esp + 0x28]
movzx ecx, word [eax + 4]
test ecx, ecx
jne 0x5fbdf9
mov eax, dword [esp + 0x24]
test eax, eax
je 0x5fba77
mov eax, dword [ebp + 0x25]
add eax, 0x9f
push eax
mov edx, dword [esp + 0x28]
push edx
mov ecx, dword [ebp + 0x21]
call fcn.005a4fac
add esp, 0x30
pop ebx
pop ebp
pop esi
pop edi
ret 0x24
mov eax, esi
movzx edx, word [eax + 2]
test edx, edx
jne 0x5fbaa0
movzx edx, word [eax + 4]
test edx, edx
jne 0x5fbaa0
movzx edx, word [eax + 6]
test edx, edx
je 0x5fbaac
jmp 0x5fb50f
mov eax, dword [esp + 4]
test al, 2
jne 0x5fb50f
push str.Syntax_Error_
mov ecx, ebp
call fcn.004fa294
jmp 0x5fb50f
call fcn.005414f0
mov ebx, eax
test ebx, ebx
je 0x5fba59
mov dword [esp], ebp
mov edi, dword [esp + 0x14]
mov esi, dword [esp + 0x1c]
movzx eax, word [ebx]
mov dword [esp + 0x20], eax
mov edx, dword [esp + 0x18]
mov dword [esp + 0x28], edx
push 1
push 0xb3
mov ecx, 0x6ffaf4
call fcn.004e566c
test eax, eax
je 0x5fbb02
mov ecx, eax
call fcn.005f10dc
mov ebp, eax
jmp 0x5fbb04
xor ebp, ebp
push ebp
mov ecx, dword [edi + 0x59]
call fcn.005a4e90
xor ecx, ecx
push ecx
push ecx
mov eax, dword [esp + 0x30]
push eax
push dword [edi + 0x2d]
mov edx, dword [esp + 0x30]
push edx
push ecx
push edi
push esi
mov ecx, ebp
call fcn.005f110c
movzx eax, byte [edi + 0x11b]
and eax, 0x10
cmp eax, 0x10
je 0x5fbb61
push ebp
mov ecx, edi
call fcn.005fc860
test eax, eax
je 0x5fbb4e
push 1
push ebp
mov ecx, dword [edi + 0x2d]
call fcn.005fc6ec
mov ebx, dword [ebx + 2]
test ebx, ebx
jne 0x5fbacb
mov ebp, dword [esp]
jmp 0x5fba59
cmp edi, dword [edi + 0x2d]
je 0x5fbb6f
mov ecx, ebp
call fcn.005f46dc
jmp 0x5fbb37
mov eax, dword [edi + 0x21]
mov edx, dword [eax + 8]
movzx ecx, word [edx + 0x22]
test ecx, ecx
je 0x5fbb66
jmp 0x5fbb37
call fcn.005414f0
mov ebx, eax
test ebx, ebx
je 0x5fb63a
mov dword [esp], ebp
mov edi, dword [esp + 0x14]
mov esi, dword [esp + 0x1c]
movzx eax, word [ebx]
mov dword [esp + 4], eax
mov edx, dword [esp + 0x18]
mov dword [esp + 0x20], edx
push 1
push 0xb3
mov ecx, 0x6ffaf4
call fcn.004e566c
test eax, eax
je 0x5fbbc8
mov ecx, eax
call fcn.005f10dc
mov ebp, eax
jmp 0x5fbbca
xor ebp, ebp
push ebp
mov ecx, dword [edi + 0x59]
call fcn.005a4e90
xor ecx, ecx
push ecx
push 1
mov eax, dword [esp + 0x28]
push eax
push dword [edi + 0x2d]
mov edx, dword [esp + 0x14]
push edx
push ecx
push edi
push esi
mov ecx, ebp
call fcn.005f110c
movzx eax, byte [edi + 0x11b]
and eax, 0x10
cmp eax, 0x10
je 0x5fbc28
push ebp
mov ecx, edi
call fcn.005fc860
test eax, eax
je 0x5fbc15
push 1
push ebp
mov ecx, dword [edi + 0x2d]
call fcn.005fc6ec
mov ebx, dword [ebx + 2]
test ebx, ebx
jne 0x5fbb91
mov ebp, dword [esp]
jmp 0x5fb63a
cmp edi, dword [edi + 0x2d]
je 0x5fbc36
mov ecx, ebp
call fcn.005f46dc
jmp 0x5fbbfe
mov eax, dword [edi + 0x21]
mov edx, dword [eax + 8]
movzx ecx, word [edx + 0x22]
test ecx, ecx
je 0x5fbc2d
jmp 0x5fbbfe
push str.Could_not_find_the_Collection_
mov ecx, ebp
call fcn.004fa294
mov eax, dword [ebp + 0x39]
jmp 0x5fb81b
mov edx, dword [eax]
push dword [ebp + 0x25]
mov ecx, eax
call dword [edx + 0x64]
movzx esi, byte [ebp + 9]
jmp 0x5fb769
mov eax, dword [ebp + 0x21]
mov edx, dword [eax + 8]
mov ecx, dword [edx + 0x5e]
cmp ecx, 1
jne 0x5fbc87
mov eax, dword [esp]
cmp dword [eax], 2
jne 0x5fb955
mov eax, 1
mov dword [esp + 0x20], eax
jmp 0x5fb961
push str.Could_not_find_the_Collection_
mov ecx, ebp
call fcn.004fa294
mov eax, dword [ebp + 0x39]
jmp 0x5fb81b
mov dword [ebp + 0x2d], ebp
mov ecx, 0x1c
call fcn.004dbcd8
test eax, eax
je 0x5fbcc7
mov edx, 0xffffffff
mov dword [eax + 0x14], edx
mov dword [eax + 0x18], edx
jmp 0x5fbcc9
xor eax, eax
mov dword [ebp + 0x5d], eax
jmp 0x5fb59d
mov dword [ebp + 0x2d], ebp
mov ecx, 0x1c
call fcn.004dbcd8
test eax, eax
je 0x5fbcef
mov edx, 0xffffffff
mov dword [eax + 0x14], edx
mov dword [eax + 0x18], edx
jmp 0x5fbcf1
xor eax, eax
mov dword [ebp + 0x5d], eax
jmp 0x5fba1d
mov eax, dword [esp + 0x28]
movzx edx, word [eax + 0x22]
test edx, edx
je 0x5fba39
movzx ecx, word [eax + 2]
call fcn.005414f0
mov edi, eax
cmp dword [edi + 2], 0
je 0x5fbd26
push str.Only_ONE_part_name_allowed_
mov ecx, ebp
call fcn.004fa294
movzx edx, word [edi]
mov eax, dword [esp + 0x28]
movzx ecx, word [eax + 0x22]
cmp edx, ecx
jne 0x5fbde8
mov ebx, dword [ebp]
mov eax, dword [esp + 0x28]
movzx edx, word [eax + 0x24]
push 0
push ebp
push edx
mov ecx, ebp
call dword [ebx + 0x40]
mov dword [ebp + 0x39], eax
test eax, eax
je 0x5fba59
mov ecx, eax
call fcn.0051d6a0
mov ebx, eax
test ebx, ebx
je 0x5fba59
mov ecx, 0x11d
call fcn.004dbcd8
mov esi, eax
test esi, esi
je 0x5fbda8
push 4
push 0
mov ecx, esi
call fcn.004fa25c
mov dword [esi], 0x7f18e0
movzx eax, word [0x7e8200]
mov word [esi + 0xaf], ax
movzx edx, word [0x7e8200]
mov word [esi + 0xb1], dx
jmp 0x5fbdaa
xor esi, esi
push esi
mov ecx, dword [ebp + 0x51]
call fcn.005a4e90
movzx ecx, word [edi]
push ebx
push 0
mov eax, dword [esp + 0x64]
push eax
mov edx, dword [esp + 0x64]
push edx
push 1
push dword [ebp + 0x2d]
push ecx
push ebp
mov eax, dword [esp + 0x64]
push eax
mov ecx, esi
call fcn.005fa234
mov ecx, ebx
call fcn.004fa084
mov ebx, eax
test ebx, ebx
jne 0x5fbd69
jmp 0x5fba59
push str.Could_not_find_the_Repeated_Part_
mov ecx, ebp
call fcn.004fa294
jmp 0x5fbd39
call fcn.005414f0
mov ebx, eax
test ebx, ebx
je 0x5fba59
mov dword [esp], ebp
mov edi, dword [esp + 0x14]
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x28], esi
movzx esi, word [ebx]
mov eax, dword [esp + 0x18]
mov dword [esp + 0x20], eax
mov ecx, 0x11d
call fcn.004dbcd8
mov ebp, eax
test ebp, ebp
je 0x5fbe62
push 4
push 0
mov ecx, ebp
call fcn.004fa25c
mov dword [ebp], 0x7f18e0
movzx eax, word [0x7e8200]
mov word [ebp + 0xaf], ax
movzx edx, word [0x7e8200]
mov word [ebp + 0xb1], dx
jmp 0x5fbe64
xor ebp, ebp
push ebp
mov ecx, dword [edi + 0x51]
call fcn.005a4e90
cmp dword [edi + 0x5d], 0
je 0x5fbe77
mov ecx, edi
jmp 0x5fbe7a
mov ecx, dword [edi + 0x2d]
xor edx, edx
push edx
mov eax, dword [esp + 0x24]
push eax
push dword [edi + 0xab]
push dword [edi + 0xa7]
push edx
push ecx
push esi
push edi
mov esi, dword [esp + 0x48]
push esi
mov ecx, ebp
call fcn.005fa234
mov ebx, dword [ebx + 2]
test ebx, ebx
jne 0x5fbe0b
mov ebp, dword [esp]
jmp 0x5fba59
call fcn.005414f0
mov ebx, eax
test ebx, ebx
je 0x5fba49
mov dword [esp], ebp
mov edi, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x20], eax
movzx edx, word [ebx]
mov dword [esp + 4], edx
mov esi, dword [esp + 0x18]
mov ecx, 0x11d
call fcn.004dbcd8
mov ebp, eax
test ebp, ebp
je 0x5fbf1a
push 4
push 0
mov ecx, ebp
call fcn.004fa25c
mov dword [ebp], 0x7f18e0
movzx eax, word [0x7e8200]
mov word [ebp + 0xaf], ax
movzx edx, word [0x7e8200]
mov word [ebp + 0xb1], dx
jmp 0x5fbf1c
xor ebp, ebp
push ebp
mov ecx, dword [edi + 0x51]
call fcn.005a4e90
cmp dword [edi + 0x5d], 0
je 0x5fbf2f
mov eax, edi
jmp 0x5fbf32
mov eax, dword [edi + 0x2d]
push 0
push esi
push dword [edi + 0xab]
push dword [edi + 0xa7]
push 1
push eax
mov eax, dword [esp + 0x1c]
push eax
push edi
mov edx, dword [esp + 0x40]
push edx
mov ecx, ebp
call fcn.005fa234
mov ebx, dword [ebx + 2]
test ebx, ebx
jne 0x5fbec3
mov ebp, dword [esp]
jmp 0x5fba49
mov ecx, 0x31
call fcn.004dbcd8
test eax, eax
je 0x5fbf8e
movzx edi, word [ebx]
mov edx, dword [ebp + 0x25]
movsx esi, word [edx + 0x3d]
inc esi
push ebp
push esi
push edi
mov ecx, eax
call fcn.00615338
jmp 0x5fbf90
xor eax, eax
push eax
mov ecx, dword [ebp + 0x6f]
call fcn.004ef100
jmp 0x5fb570
mov esi, dword [esp + 0x28]
mov edi, dword [esi + 0x46]
xor eax, eax
mov dword [esp], eax
cmp edi, 2
mov edx, eax
sete dl
movzx ecx, byte [ebp + 0x11a]
and ecx, 0xfffffffd
and edx, 1
add edx, edx
or ecx, edx
mov dword [esp + 4], ecx
mov byte [ebp + 0x11a], cl
test cl, 2
je 0x5fbfdf
movzx eax, byte [ebp + 0x11b]
mov dword [esp + 0x20], eax
jmp 0x5fc008
mov edi, dword [esi + 0x52]
xor eax, eax
mov dword [esp], eax
cmp edi, 2
mov edx, eax
sete dl
movzx ecx, byte [ebp + 0x11b]
and ecx, 0xfffffffe
and edx, 1
or ecx, edx
mov dword [esp + 0x20], ecx
mov byte [ebp + 0x11b], cl
mov eax, dword [esp + 4]
and eax, 0xfffffffe
movzx esi, byte [esp + 0x54]
and esi, 1
or eax, esi
mov dword [esp + 4], eax
mov byte [ebp + 0x11a], al
mov edx, dword [esp + 0x28]
mov eax, dword [edx + 0x3a]
cmp eax, 2
je 0x5fc034
cmp eax, 3
jne 0x5fc03b
mov eax, 1
jmp 0x5fc03d
xor eax, eax
mov edx, dword [esp + 0x20]
and edx, 0xffffffef
and eax, 1
shl eax, 4
or edx, eax
mov byte [ebp + 0x11b], dl
and edx, 0xffffffbf
mov dword [esp + 0x20], edx
mov esi, dword [esp + 0x28]
mov edi, dword [esi + 0x3a]
xor eax, eax
mov dword [esp], eax
cmp edi, 3
mov ecx, eax
sete cl
and ecx, 1
shl ecx, 6
mov eax, edx
or eax, ecx
mov dword [esp + 0x20], eax
mov byte [ebp + 0x11b], al
movzx eax, byte [ebx + 0xa]
and eax, 0x3f
cmp eax, 4
je 0x5fc0e2
mov eax, esi
movzx edx, word [eax + 0xe]
test edx, edx
je 0x5fb3c7
lea eax, [edx*8]
lea ecx, [eax + edx*4 + 0x700800]
lea esi, [esp + 0xc]
lea edx, [esp + 0x10]
push edx
push esi
push 0x3a
call fcn.0053f008
movzx ecx, word [esp + 0xc]
call fcn.0054c478
mov dword [ebp + 0x73], eax
movzx eax, byte [ebp + 0x11a]
mov dword [esp + 4], eax
movzx edx, byte [ebp + 0x11b]
mov dword [esp + 0x20], edx
jmp 0x5fb3c7
movzx eax, byte [ebx + 0x11b]
test al, 1
je 0x5fc08d
mov eax, dword [esp + 0x20]
or eax, 1
or eax, 0x10
mov dword [esp + 0x20], eax
mov byte [ebp + 0x11b], al
jmp 0x5fc08d
cmp dword [ebx + 0x39], 0
jne 0x5fb2fc
mov eax, dword [ebx + 0xf]
mov dword [ebp + 0x31], eax
movzx edx, byte [eax + 0xa]
and edx, 0x3f
cmp edx, 4
jne 0x5fb2fc
cmp dword [eax + 0x39], 0
jne 0x5fb2fc
mov eax, dword [eax + 0xf]
mov dword [ebp + 0x31], eax
movzx edx, byte [eax + 0xa]
and edx, 0x3f
cmp edx, 4
je 0x5fc123
jmp 0x5fb2fc
mov ecx, dword [ebp + 0xf]
movzx edx, byte [ecx + 0xa]
and edx, 0x3f
cmp edx, 5
jne 0x5fc15e
mov eax, dword [ecx + 0x29]
mov dword [ebp + 0x35], eax
jmp 0x5fb2e9
cmp edx, 4
jne 0x5fc16e
mov eax, dword [ecx + 0x35]
mov dword [ebp + 0x35], eax
jmp 0x5fb2e9
mov eax, dword [eax + 0x31]
mov dword [ebp + 0x35], eax
jmp 0x5fb2e9
mov ecx, dword [ebx + 0x29]
mov dword [ebp + 0x29], ecx
mov esi, dword [ebx + 0x35]
mov dword [ebp + 0x35], esi
movzx edx, byte [ebp + 0x11c]
and edx, 0xfffffffe
movzx edi, byte [ebx + 0x11c]
and edi, 1
or edx, edi
mov byte [ebp + 0x11c], dl
mov edx, dword [esp + 0x58]
mov dword [ebp + 0xa7], edx
mov edx, dword [esp + 0x5c]
mov dword [ebp + 0xab], edx
jmp 0x5fb2d6
mov dword [ebp + 0x29], ebx
mov edx, dword [eax + 0x31]
mov dword [ebp + 0x35], edx
and byte [ebp + 0x11c], 0xfe
jmp 0x5fb2d6