580025:	83 c0 fc             	add    $0xfffffffc,%eax
580028:	83 f8 1f             	cmp    $0x1f,%eax
58002b:	77 32                	ja     0x58005f
58002d:	8b c2                	mov    %edx,%eax
58002f:	51                   	push   %ecx
580030:	50                   	push   %eax
580031:	e8 3c 10 06 00       	call   0x5e1072
580036:	83 c4 08             	add    $0x8,%esp
580039:	8d 46 04             	lea    0x4(%esi),%eax
58003c:	c7 46 1c 00 00 00 00 	movl   $0x0,0x1c(%esi)
580043:	c7 46 20 0f 00 00 00 	movl   $0xf,0x20(%esi)
58004a:	c6 46 0c 00          	movb   $0x0,0xc(%esi)
58004e:	50                   	push   %eax
58004f:	c7 06 30 aa 68 00    	movl   $0x68aa30,(%esi)
580055:	e8 b9 29 06 00       	call   0x5e2a13
58005a:	83 c4 04             	add    $0x4,%esp
58005d:	5e                   	pop    %esi
58005e:	c3                   	ret
58005f:	e8 cb ce 06 00       	call   0x5ecf2f
580064:	cc                   	int3
580065:	cc                   	int3
580066:	cc                   	int3
580067:	cc                   	int3
580068:	cc                   	int3
580069:	cc                   	int3
58006a:	cc                   	int3
58006b:	cc                   	int3
58006c:	cc                   	int3
58006d:	cc                   	int3
58006e:	cc                   	int3
58006f:	cc                   	int3
580070:	e9 8b ff ff ff       	jmp    0x580000
580075:	cc                   	int3
580076:	cc                   	int3
580077:	cc                   	int3
580078:	cc                   	int3
580079:	cc                   	int3
58007a:	cc                   	int3
58007b:	cc                   	int3
58007c:	cc                   	int3
58007d:	cc                   	int3
58007e:	cc                   	int3
58007f:	cc                   	int3
580080:	55                   	push   %ebp
580081:	8b ec                	mov    %esp,%ebp
580083:	6a ff                	push   $0xffffffff
580085:	68 00 db 64 00       	push   $0x64db00
58008a:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
580090:	50                   	push   %eax
580091:	56                   	push   %esi
580092:	57                   	push   %edi
580093:	a1 d4 89 72 00       	mov    0x7289d4,%eax
580098:	33 c5                	xor    %ebp,%eax
58009a:	50                   	push   %eax
58009b:	8d 45 f4             	lea    -0xc(%ebp),%eax
58009e:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
5800a4:	8b f9                	mov    %ecx,%edi
5800a6:	8a 47 08             	mov    0x8(%edi),%al
5800a9:	3c 04                	cmp    $0x4,%al
5800ab:	74 31                	je     0x5800de
5800ad:	3c 05                	cmp    $0x5,%al
5800af:	7e 40                	jle    0x5800f1
5800b1:	3c 07                	cmp    $0x7,%al
5800b3:	7f 3c                	jg     0x5800f1
5800b5:	8b 37                	mov    (%edi),%esi
5800b7:	85 f6                	test   %esi,%esi
5800b9:	74 36                	je     0x5800f1
5800bb:	8b 06                	mov    (%esi),%eax
5800bd:	8b ce                	mov    %esi,%ecx
5800bf:	ff 70 04             	push   0x4(%eax)
5800c2:	56                   	push   %esi
5800c3:	e8 d8 f2 ff ff       	call   0x57f3a0
5800c8:	6a 30                	push   $0x30
5800ca:	ff 36                	push   (%esi)
5800cc:	e8 a1 0f 06 00       	call   0x5e1072
5800d1:	6a 08                	push   $0x8
5800d3:	56                   	push   %esi
5800d4:	e8 99 0f 06 00       	call   0x5e1072
5800d9:	83 c4 10             	add    $0x10,%esp
5800dc:	eb 13                	jmp    0x5800f1
5800de:	f7 47 08 00 01 00 00 	testl  $0x100,0x8(%edi)
5800e5:	74 0a                	je     0x5800f1
5800e7:	ff 37                	push   (%edi)
5800e9:	e8 82 e5 06 00       	call   0x5ee670
5800ee:	83 c4 04             	add    $0x4,%esp
5800f1:	8b 47 0c             	mov    0xc(%edi),%eax
5800f4:	85 c0                	test   %eax,%eax
5800f6:	74 2d                	je     0x580125
5800f8:	68 f0 ff 57 00       	push   $0x57fff0
5800fd:	ff 70 fc             	push   -0x4(%eax)
580100:	8d 70 fc             	lea    -0x4(%eax),%esi
580103:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
58010a:	6a 04                	push   $0x4
58010c:	50                   	push   %eax
58010d:	e8 1b 0e 06 00       	call   0x5e0f2d
580112:	8b 06                	mov    (%esi),%eax
580114:	8d 04 85 04 00 00 00 	lea    0x4(,%eax,4),%eax
58011b:	50                   	push   %eax
58011c:	56                   	push   %esi
58011d:	e8 d1 23 06 00       	call   0x5e24f3
580122:	83 c4 08             	add    $0x8,%esp
580125:	c7 47 04 00 00 00 00 	movl   $0x0,0x4(%edi)
58012c:	c7 07 00 00 00 00    	movl   $0x0,(%edi)
580132:	8b 4d f4             	mov    -0xc(%ebp),%ecx
580135:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
58013c:	59                   	pop    %ecx
58013d:	5f                   	pop    %edi
58013e:	5e                   	pop    %esi
58013f:	8b e5                	mov    %ebp,%esp
580141:	5d                   	pop    %ebp
580142:	c3                   	ret
580143:	cc                   	int3
580144:	cc                   	int3
580145:	cc                   	int3
580146:	cc                   	int3
580147:	cc                   	int3
580148:	cc                   	int3
580149:	cc                   	int3
58014a:	cc                   	int3
58014b:	cc                   	int3
58014c:	cc                   	int3
58014d:	cc                   	int3
58014e:	cc                   	int3
58014f:	cc                   	int3
580150:	55                   	push   %ebp
580151:	8b ec                	mov    %esp,%ebp
580153:	56                   	push   %esi
580154:	8d 45 08             	lea    0x8(%ebp),%eax
580157:	8b f1                	mov    %ecx,%esi
580159:	50                   	push   %eax
58015a:	e8 91 1e 00 00       	call   0x581ff0
58015f:	8d 4d 08             	lea    0x8(%ebp),%ecx
580162:	e8 19 ff ff ff       	call   0x580080
580167:	8b c6                	mov    %esi,%eax
580169:	5e                   	pop    %esi
58016a:	5d                   	pop    %ebp
58016b:	c2 18 00             	ret    $0x18
58016e:	cc                   	int3
58016f:	cc                   	int3
580170:	55                   	push   %ebp
580171:	8b ec                	mov    %esp,%ebp
580173:	6a ff                	push   $0xffffffff
580175:	68 e8 cc 64 00       	push   $0x64cce8
58017a:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
580180:	50                   	push   %eax
580181:	83 ec 1c             	sub    $0x1c,%esp
580184:	a1 d4 89 72 00       	mov    0x7289d4,%eax
580189:	33 c5                	xor    %ebp,%eax
58018b:	89 45 f0             	mov    %eax,-0x10(%ebp)
58018e:	56                   	push   %esi
58018f:	50                   	push   %eax
580190:	8d 45 f4             	lea    -0xc(%ebp),%eax
580193:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
580199:	8b 55 08             	mov    0x8(%ebp),%edx
58019c:	8b 31                	mov    (%ecx),%esi
58019e:	8b 49 04             	mov    0x4(%ecx),%ecx
5801a1:	8b 42 04             	mov    0x4(%edx),%eax
5801a4:	85 f6                	test   %esi,%esi
5801a6:	75 21                	jne    0x5801c9
5801a8:	3b c8                	cmp    %eax,%ecx
5801aa:	0f 94 c0             	sete   %al
5801ad:	8b 4d f4             	mov    -0xc(%ebp),%ecx
5801b0:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
5801b7:	59                   	pop    %ecx
5801b8:	5e                   	pop    %esi
5801b9:	8b 4d f0             	mov    -0x10(%ebp),%ecx
5801bc:	33 cd                	xor    %ebp,%ecx
5801be:	e8 17 13 06 00       	call   0x5e14da
5801c3:	8b e5                	mov    %ebp,%esp
5801c5:	5d                   	pop    %ebp
5801c6:	c2 04 00             	ret    $0x4
5801c9:	c1 e9 02             	shr    $0x2,%ecx
5801cc:	c1 e8 02             	shr    $0x2,%eax
5801cf:	3b c8                	cmp    %eax,%ecx
5801d1:	74 04                	je     0x5801d7
5801d3:	32 c0                	xor    %al,%al
5801d5:	eb d6                	jmp    0x5801ad
5801d7:	8b 12                	mov    (%edx),%edx
5801d9:	85 d2                	test   %edx,%edx
5801db:	74 5d                	je     0x58023a
5801dd:	83 e9 04             	sub    $0x4,%ecx
5801e0:	72 11                	jb     0x5801f3
5801e2:	8b 06                	mov    (%esi),%eax
5801e4:	3b 02                	cmp    (%edx),%eax
5801e6:	75 10                	jne    0x5801f8
5801e8:	83 c6 04             	add    $0x4,%esi
5801eb:	83 c2 04             	add    $0x4,%edx
5801ee:	83 e9 04             	sub    $0x4,%ecx
5801f1:	73 ef                	jae    0x5801e2
5801f3:	83 f9 fc             	cmp    $0xfffffffc,%ecx
5801f6:	74 39                	je     0x580231
5801f8:	8a 06                	mov    (%esi),%al
5801fa:	3a 02                	cmp    (%edx),%al
5801fc:	75 27                	jne    0x580225
5801fe:	83 f9 fd             	cmp    $0xfffffffd,%ecx
580201:	74 2e                	je     0x580231
580203:	8a 46 01             	mov    0x1(%esi),%al
580206:	3a 42 01             	cmp    0x1(%edx),%al
580209:	75 1a                	jne    0x580225
58020b:	83 f9 fe             	cmp    $0xfffffffe,%ecx
58020e:	74 21                	je     0x580231
580210:	8a 46 02             	mov    0x2(%esi),%al
580213:	3a 42 02             	cmp    0x2(%edx),%al
580216:	75 0d                	jne    0x580225
580218:	83 f9 ff             	cmp    $0xffffffff,%ecx
58021b:	74 14                	je     0x580231
58021d:	8a 46 03             	mov    0x3(%esi),%al
580220:	3a 42 03             	cmp    0x3(%edx),%al
580223:	74 0c                	je     0x580231
580225:	1b c0                	sbb    %eax,%eax
580227:	83 c8 01             	or     $0x1,%eax
58022a:	85 c0                	test   %eax,%eax
58022c:	e9 79 ff ff ff       	jmp    0x5801aa
580231:	33 c0                	xor    %eax,%eax
580233:	85 c0                	test   %eax,%eax
580235:	e9 70 ff ff ff       	jmp    0x5801aa
58023a:	68 88 30 6c 00       	push   $0x6c3088
58023f:	8d 4d d8             	lea    -0x28(%ebp),%ecx
580242:	e8 29 98 ee ff       	call   0x469a70
580247:	8d 45 d8             	lea    -0x28(%ebp),%eax
58024a:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
580251:	50                   	push   %eax
580252:	e8 69 1e 00 00       	call   0x5820c0
580257:	cc                   	int3
580258:	cc                   	int3
580259:	cc                   	int3
58025a:	cc                   	int3
58025b:	cc                   	int3
58025c:	cc                   	int3
58025d:	cc                   	int3
58025e:	cc                   	int3
58025f:	cc                   	int3
580260:	55                   	push   %ebp
580261:	8b ec                	mov    %esp,%ebp
580263:	8b 45 08             	mov    0x8(%ebp),%eax
580266:	56                   	push   %esi
580267:	57                   	push   %edi
580268:	8b f9                	mov    %ecx,%edi
58026a:	8b f0                	mov    %eax,%esi
58026c:	83 78 14 10          	cmpl   $0x10,0x14(%eax)
580270:	72 02                	jb     0x580274
580272:	8b 30                	mov    (%eax),%esi
580274:	8b c8                	mov    %eax,%ecx
580276:	72 02                	jb     0x58027a
580278:	8b 08                	mov    (%eax),%ecx
58027a:	8b 40 10             	mov    0x10(%eax),%eax
58027d:	03 c6                	add    %esi,%eax
58027f:	50                   	push   %eax
580280:	51                   	push   %ecx
580281:	8b cf                	mov    %edi,%ecx
580283:	e8 58 19 00 00       	call   0x581be0
580288:	5f                   	pop    %edi
580289:	5e                   	pop    %esi
58028a:	5d                   	pop    %ebp
58028b:	c2 04 00             	ret    $0x4
58028e:	cc                   	int3
58028f:	cc                   	int3
580290:	55                   	push   %ebp
580291:	8b ec                	mov    %esp,%ebp
580293:	6a ff                	push   $0xffffffff
580295:	68 a3 ca 65 00       	push   $0x65caa3
58029a:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
5802a0:	50                   	push   %eax
5802a1:	81 ec b4 00 00 00    	sub    $0xb4,%esp
5802a7:	a1 d4 89 72 00       	mov    0x7289d4,%eax
5802ac:	33 c5                	xor    %ebp,%eax
5802ae:	89 45 f0             	mov    %eax,-0x10(%ebp)
5802b1:	50                   	push   %eax
5802b2:	8d 45 f4             	lea    -0xc(%ebp),%eax
5802b5:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
5802bb:	8b 45 08             	mov    0x8(%ebp),%eax
5802be:	85 c0                	test   %eax,%eax
5802c0:	78 21                	js     0x5802e3
5802c2:	50                   	push   %eax
5802c3:	e8 68 00 00 00       	call   0x580330
5802c8:	8b 4d f4             	mov    -0xc(%ebp),%ecx
5802cb:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
5802d2:	59                   	pop    %ecx
5802d3:	8b 4d f0             	mov    -0x10(%ebp),%ecx
5802d6:	33 cd                	xor    %ebp,%ecx
5802d8:	e8 fd 11 06 00       	call   0x5e14da
5802dd:	8b e5                	mov    %ebp,%esp
5802df:	5d                   	pop    %ebp
5802e0:	c2 04 00             	ret    $0x4
5802e3:	6a 01                	push   $0x1
5802e5:	6a 02                	push   $0x2
5802e7:	8d 8d 40 ff ff ff    	lea    -0xc0(%ebp),%ecx
5802ed:	e8 3e ea ff ff       	call   0x57ed30
5802f2:	8d 85 40 ff ff ff    	lea    -0xc0(%ebp),%eax
5802f8:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
5802ff:	68 d8 32 6c 00       	push   $0x6c32d8
580304:	50                   	push   %eax
580305:	e8 b6 af f1 ff       	call   0x49b2c0
58030a:	83 c4 08             	add    $0x8,%esp
58030d:	8d 45 d8             	lea    -0x28(%ebp),%eax
580310:	8d 8d 40 ff ff ff    	lea    -0xc0(%ebp),%ecx
580316:	50                   	push   %eax
580317:	e8 94 eb ff ff       	call   0x57eeb0
58031c:	50                   	push   %eax
58031d:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
580321:	e8 9a 1d 00 00       	call   0x5820c0
580326:	cc                   	int3
580327:	cc                   	int3
580328:	cc                   	int3
580329:	cc                   	int3
58032a:	cc                   	int3
58032b:	cc                   	int3
58032c:	cc                   	int3
58032d:	cc                   	int3
58032e:	cc                   	int3
58032f:	cc                   	int3
580330:	55                   	push   %ebp
580331:	8b ec                	mov    %esp,%ebp
580333:	6a ff                	push   $0xffffffff
580335:	68 0a cb 65 00       	push   $0x65cb0a
58033a:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
580340:	50                   	push   %eax
580341:	81 ec e0 00 00 00    	sub    $0xe0,%esp
580347:	a1 d4 89 72 00       	mov    0x7289d4,%eax
58034c:	33 c5                	xor    %ebp,%eax
58034e:	89 45 f0             	mov    %eax,-0x10(%ebp)
580351:	53                   	push   %ebx
580352:	56                   	push   %esi
580353:	57                   	push   %edi
580354:	50                   	push   %eax
580355:	8d 45 f4             	lea    -0xc(%ebp),%eax
580358:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
58035e:	8b f9                	mov    %ecx,%edi
580360:	8a 47 08             	mov    0x8(%edi),%al
580363:	84 c0                	test   %al,%al
580365:	74 0a                	je     0x580371
580367:	3c 06                	cmp    $0x6,%al
580369:	0f 85 3b 01 00 00    	jne    0x5804aa
58036f:	eb 7b                	jmp    0x5803ec
580371:	c6 45 e0 06          	movb   $0x6,-0x20(%ebp)
580375:	81 65 e0 ff fe ff ff 	andl   $0xfffffeff,-0x20(%ebp)
58037c:	6a 08                	push   $0x8
58037e:	c7 45 e4 00 00 00 00 	movl   $0x0,-0x1c(%ebp)
580385:	c7 45 e8 00 00 00 00 	movl   $0x0,-0x18(%ebp)
58038c:	c7 45 ec 00 00 00 00 	movl   $0x0,-0x14(%ebp)
580393:	e8 aa 0c 06 00       	call   0x5e1042
580398:	8b f0                	mov    %eax,%esi
58039a:	83 c4 04             	add    $0x4,%esp
58039d:	89 75 d4             	mov    %esi,-0x2c(%ebp)
5803a0:	c7 45 fc 02 00 00 00 	movl   $0x2,-0x4(%ebp)
5803a7:	85 f6                	test   %esi,%esi
5803a9:	74 29                	je     0x5803d4
5803ab:	6a 30                	push   $0x30
5803ad:	c7 06 00 00 00 00    	movl   $0x0,(%esi)
5803b3:	c7 46 04 00 00 00 00 	movl   $0x0,0x4(%esi)