4061a4:	59                   	pop    %ecx
4061a5:	59                   	pop    %ecx
4061a6:	0f b7 46 32          	movzwl 0x32(%esi),%eax
4061aa:	6a 67                	push   $0x67
4061ac:	59                   	pop    %ecx
4061ad:	66 3b c1             	cmp    %cx,%ax
4061b0:	74 08                	je     0x4061ba
4061b2:	6a 47                	push   $0x47
4061b4:	59                   	pop    %ecx
4061b5:	66 3b c1             	cmp    %cx,%ax
4061b8:	75 17                	jne    0x4061d1
4061ba:	8b 46 20             	mov    0x20(%esi),%eax
4061bd:	c1 e8 05             	shr    $0x5,%eax
4061c0:	a8 01                	test   $0x1,%al
4061c2:	75 0d                	jne    0x4061d1
4061c4:	ff 76 08             	push   0x8(%esi)
4061c7:	ff 76 34             	push   0x34(%esi)
4061ca:	e8 a3 f5 ff ff       	call   0x405772
4061cf:	59                   	pop    %ecx
4061d0:	59                   	pop    %ecx
4061d1:	8b 46 34             	mov    0x34(%esi),%eax
4061d4:	80 38 2d             	cmpb   $0x2d,(%eax)
4061d7:	75 08                	jne    0x4061e1
4061d9:	83 4e 20 40          	orl    $0x40,0x20(%esi)
4061dd:	40                   	inc    %eax
4061de:	89 46 34             	mov    %eax,0x34(%esi)
4061e1:	8b 56 34             	mov    0x34(%esi),%edx
4061e4:	8a 02                	mov    (%edx),%al
4061e6:	3c 69                	cmp    $0x69,%al
4061e8:	74 0c                	je     0x4061f6
4061ea:	3c 49                	cmp    $0x49,%al
4061ec:	74 08                	je     0x4061f6
4061ee:	3c 6e                	cmp    $0x6e,%al
4061f0:	74 04                	je     0x4061f6
4061f2:	3c 4e                	cmp    $0x4e,%al
4061f4:	75 07                	jne    0x4061fd
4061f6:	6a 73                	push   $0x73
4061f8:	58                   	pop    %eax
4061f9:	66 89 46 32          	mov    %ax,0x32(%esi)
4061fd:	8d 7a 01             	lea    0x1(%edx),%edi
406200:	8a 0a                	mov    (%edx),%cl
406202:	42                   	inc    %edx
406203:	84 c9                	test   %cl,%cl
406205:	75 f9                	jne    0x406200
406207:	2b d7                	sub    %edi,%edx
406209:	b0 01                	mov    $0x1,%al
40620b:	5f                   	pop    %edi
40620c:	89 56 38             	mov    %edx,0x38(%esi)
40620f:	5e                   	pop    %esi
406210:	8b e5                	mov    %ebp,%esp
406212:	5d                   	pop    %ebp
406213:	c3                   	ret
406214:	8b ff                	mov    %edi,%edi
406216:	55                   	push   %ebp
406217:	8b ec                	mov    %esp,%ebp
406219:	51                   	push   %ecx
40621a:	53                   	push   %ebx
40621b:	56                   	push   %esi
40621c:	8b f1                	mov    %ecx,%esi
40621e:	57                   	push   %edi
40621f:	c6 46 3c 01          	movb   $0x1,0x3c(%esi)
406223:	83 46 14 04          	addl   $0x4,0x14(%esi)
406227:	8b 46 14             	mov    0x14(%esi),%eax
40622a:	ff 76 2c             	push   0x2c(%esi)
40622d:	0f b7 58 fc          	movzwl -0x4(%eax),%ebx
406231:	0f b7 46 32          	movzwl 0x32(%esi),%eax
406235:	50                   	push   %eax
406236:	ff 76 04             	push   0x4(%esi)
406239:	ff 36                	push   (%esi)
40623b:	e8 19 f2 ff ff       	call   0x405459
406240:	83 c4 10             	add    $0x10,%esp
406243:	8d 7e 40             	lea    0x40(%esi),%edi
406246:	84 c0                	test   %al,%al
406248:	75 32                	jne    0x40627c
40624a:	8b 8f 04 04 00 00    	mov    0x404(%edi),%ecx
406250:	88 5d fc             	mov    %bl,-0x4(%ebp)
406253:	88 45 fd             	mov    %al,-0x3(%ebp)
406256:	85 c9                	test   %ecx,%ecx
406258:	75 02                	jne    0x40625c
40625a:	8b cf                	mov    %edi,%ecx
40625c:	8b 46 08             	mov    0x8(%esi),%eax
40625f:	50                   	push   %eax
406260:	8b 00                	mov    (%eax),%eax
406262:	ff 70 04             	push   0x4(%eax)
406265:	8d 45 fc             	lea    -0x4(%ebp),%eax
406268:	50                   	push   %eax
406269:	51                   	push   %ecx
40626a:	e8 2d 43 00 00       	call   0x40a59c
40626f:	83 c4 10             	add    $0x10,%esp
406272:	85 c0                	test   %eax,%eax
406274:	79 15                	jns    0x40628b
406276:	c6 46 30 01          	movb   $0x1,0x30(%esi)
40627a:	eb 0f                	jmp    0x40628b
40627c:	8b 87 04 04 00 00    	mov    0x404(%edi),%eax
406282:	85 c0                	test   %eax,%eax
406284:	75 02                	jne    0x406288
406286:	8b c7                	mov    %edi,%eax
406288:	66 89 18             	mov    %bx,(%eax)
40628b:	8b 87 04 04 00 00    	mov    0x404(%edi),%eax
406291:	85 c0                	test   %eax,%eax
406293:	74 02                	je     0x406297
406295:	8b f8                	mov    %eax,%edi
406297:	89 7e 34             	mov    %edi,0x34(%esi)
40629a:	b0 01                	mov    $0x1,%al
40629c:	5f                   	pop    %edi
40629d:	c7 46 38 01 00 00 00 	movl   $0x1,0x38(%esi)
4062a4:	5e                   	pop    %esi
4062a5:	5b                   	pop    %ebx
4062a6:	8b e5                	mov    %ebp,%esp
4062a8:	5d                   	pop    %ebp
4062a9:	c2 04 00             	ret    $0x4
4062ac:	8b ff                	mov    %edi,%edi
4062ae:	55                   	push   %ebp
4062af:	8b ec                	mov    %esp,%ebp
4062b1:	53                   	push   %ebx
4062b2:	56                   	push   %esi
4062b3:	8b f1                	mov    %ecx,%esi
4062b5:	ff 76 2c             	push   0x2c(%esi)
4062b8:	e8 26 fd ff ff       	call   0x405fe3
4062bd:	59                   	pop    %ecx
4062be:	8b d8                	mov    %eax,%ebx
4062c0:	8b cb                	mov    %ebx,%ecx
4062c2:	83 e9 01             	sub    $0x1,%ecx
4062c5:	74 78                	je     0x40633f
4062c7:	83 e9 01             	sub    $0x1,%ecx
4062ca:	74 56                	je     0x406322
4062cc:	49                   	dec    %ecx
4062cd:	83 e9 01             	sub    $0x1,%ecx
4062d0:	74 33                	je     0x406305
4062d2:	83 e9 04             	sub    $0x4,%ecx
4062d5:	74 17                	je     0x4062ee
4062d7:	e8 2b 1a 00 00       	call   0x407d07
4062dc:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
4062e2:	e8 47 19 00 00       	call   0x407c2e
4062e7:	32 c0                	xor    %al,%al
4062e9:	e9 02 01 00 00       	jmp    0x4063f0
4062ee:	8b 46 20             	mov    0x20(%esi),%eax
4062f1:	83 46 14 08          	addl   $0x8,0x14(%esi)
4062f5:	c1 e8 04             	shr    $0x4,%eax
4062f8:	a8 01                	test   $0x1,%al
4062fa:	8b 46 14             	mov    0x14(%esi),%eax
4062fd:	8b 48 f8             	mov    -0x8(%eax),%ecx
406300:	8b 50 fc             	mov    -0x4(%eax),%edx
406303:	eb 58                	jmp    0x40635d
406305:	8b 46 20             	mov    0x20(%esi),%eax
406308:	83 46 14 04          	addl   $0x4,0x14(%esi)
40630c:	c1 e8 04             	shr    $0x4,%eax
40630f:	a8 01                	test   $0x1,%al
406311:	8b 46 14             	mov    0x14(%esi),%eax
406314:	74 05                	je     0x40631b
406316:	8b 40 fc             	mov    -0x4(%eax),%eax
406319:	eb 3f                	jmp    0x40635a
40631b:	8b 48 fc             	mov    -0x4(%eax),%ecx
40631e:	33 d2                	xor    %edx,%edx
406320:	eb 3b                	jmp    0x40635d
406322:	8b 46 20             	mov    0x20(%esi),%eax
406325:	83 46 14 04          	addl   $0x4,0x14(%esi)
406329:	c1 e8 04             	shr    $0x4,%eax
40632c:	a8 01                	test   $0x1,%al
40632e:	8b 46 14             	mov    0x14(%esi),%eax
406331:	74 06                	je     0x406339
406333:	0f bf 40 fc          	movswl -0x4(%eax),%eax
406337:	eb 21                	jmp    0x40635a
406339:	0f b7 40 fc          	movzwl -0x4(%eax),%eax
40633d:	eb 1b                	jmp    0x40635a
40633f:	8b 46 20             	mov    0x20(%esi),%eax
406342:	83 46 14 04          	addl   $0x4,0x14(%esi)
406346:	c1 e8 04             	shr    $0x4,%eax
406349:	a8 01                	test   $0x1,%al
40634b:	8b 46 14             	mov    0x14(%esi),%eax
40634e:	74 06                	je     0x406356
406350:	0f be 40 fc          	movsbl -0x4(%eax),%eax
406354:	eb 04                	jmp    0x40635a
406356:	0f b6 40 fc          	movzbl -0x4(%eax),%eax
40635a:	99                   	cltd
40635b:	8b c8                	mov    %eax,%ecx
40635d:	57                   	push   %edi
40635e:	8b 7e 20             	mov    0x20(%esi),%edi
406361:	8b c7                	mov    %edi,%eax
406363:	c1 e8 04             	shr    $0x4,%eax
406366:	a8 01                	test   $0x1,%al
406368:	74 17                	je     0x406381
40636a:	85 d2                	test   %edx,%edx
40636c:	7f 13                	jg     0x406381
40636e:	7c 04                	jl     0x406374
406370:	85 c9                	test   %ecx,%ecx
406372:	73 0d                	jae    0x406381
406374:	f7 d9                	neg    %ecx
406376:	83 d2 00             	adc    $0x0,%edx
406379:	f7 da                	neg    %edx
40637b:	83 cf 40             	or     $0x40,%edi
40637e:	89 7e 20             	mov    %edi,0x20(%esi)
406381:	83 7e 28 00          	cmpl   $0x0,0x28(%esi)
406385:	5f                   	pop    %edi
406386:	7d 09                	jge    0x406391
406388:	c7 46 28 01 00 00 00 	movl   $0x1,0x28(%esi)
40638f:	eb 11                	jmp    0x4063a2
406391:	83 66 20 f7          	andl   $0xfffffff7,0x20(%esi)
406395:	b8 00 02 00 00       	mov    $0x200,%eax
40639a:	39 46 28             	cmp    %eax,0x28(%esi)
40639d:	7e 03                	jle    0x4063a2
40639f:	89 46 28             	mov    %eax,0x28(%esi)
4063a2:	8b c1                	mov    %ecx,%eax
4063a4:	0b c2                	or     %edx,%eax
4063a6:	75 04                	jne    0x4063ac
4063a8:	83 66 20 df          	andl   $0xffffffdf,0x20(%esi)
4063ac:	ff 75 0c             	push   0xc(%ebp)
4063af:	ff 75 08             	push   0x8(%ebp)
4063b2:	83 fb 08             	cmp    $0x8,%ebx
4063b5:	75 0b                	jne    0x4063c2
4063b7:	52                   	push   %edx
4063b8:	51                   	push   %ecx
4063b9:	8b ce                	mov    %esi,%ecx
4063bb:	e8 7b f1 ff ff       	call   0x40553b
4063c0:	eb 08                	jmp    0x4063ca
4063c2:	51                   	push   %ecx
4063c3:	8b ce                	mov    %esi,%ecx
4063c5:	e8 fc f0 ff ff       	call   0x4054c6
4063ca:	8b 46 20             	mov    0x20(%esi),%eax
4063cd:	c1 e8 07             	shr    $0x7,%eax
4063d0:	a8 01                	test   $0x1,%al
4063d2:	74 1a                	je     0x4063ee
4063d4:	83 7e 38 00          	cmpl   $0x0,0x38(%esi)
4063d8:	74 08                	je     0x4063e2
4063da:	8b 46 34             	mov    0x34(%esi),%eax
4063dd:	80 38 30             	cmpb   $0x30,(%eax)
4063e0:	74 0c                	je     0x4063ee
4063e2:	ff 4e 34             	decl   0x34(%esi)
4063e5:	8b 4e 34             	mov    0x34(%esi),%ecx
4063e8:	c6 01 30             	movb   $0x30,(%ecx)
4063eb:	ff 46 38             	incl   0x38(%esi)
4063ee:	b0 01                	mov    $0x1,%al
4063f0:	5e                   	pop    %esi
4063f1:	5b                   	pop    %ebx
4063f2:	5d                   	pop    %ebp
4063f3:	c2 08 00             	ret    $0x8
4063f6:	8b ff                	mov    %edi,%edi
4063f8:	56                   	push   %esi
4063f9:	8b f1                	mov    %ecx,%esi
4063fb:	57                   	push   %edi
4063fc:	83 46 14 04          	addl   $0x4,0x14(%esi)
406400:	8b 46 14             	mov    0x14(%esi),%eax
406403:	8b 78 fc             	mov    -0x4(%eax),%edi
406406:	e8 47 53 00 00       	call   0x40b752
40640b:	85 c0                	test   %eax,%eax
40640d:	75 14                	jne    0x406423
40640f:	e8 f3 18 00 00       	call   0x407d07
406414:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
40641a:	e8 0f 18 00 00       	call   0x407c2e
40641f:	32 c0                	xor    %al,%al
406421:	eb 44                	jmp    0x406467
406423:	ff 76 2c             	push   0x2c(%esi)
406426:	e8 b8 fb ff ff       	call   0x405fe3
40642b:	59                   	pop    %ecx
40642c:	83 e8 01             	sub    $0x1,%eax
40642f:	74 2b                	je     0x40645c
406431:	83 e8 01             	sub    $0x1,%eax
406434:	74 1d                	je     0x406453
406436:	48                   	dec    %eax
406437:	83 e8 01             	sub    $0x1,%eax
40643a:	74 10                	je     0x40644c
40643c:	83 e8 04             	sub    $0x4,%eax
40643f:	75 ce                	jne    0x40640f
406441:	8b 46 18             	mov    0x18(%esi),%eax
406444:	99                   	cltd
406445:	89 07                	mov    %eax,(%edi)
406447:	89 57 04             	mov    %edx,0x4(%edi)
40644a:	eb 15                	jmp    0x406461
40644c:	8b 46 18             	mov    0x18(%esi),%eax
40644f:	89 07                	mov    %eax,(%edi)
406451:	eb 0e                	jmp    0x406461
406453:	66 8b 46 18          	mov    0x18(%esi),%ax
406457:	66 89 07             	mov    %ax,(%edi)
40645a:	eb 05                	jmp    0x406461
40645c:	8a 46 18             	mov    0x18(%esi),%al
40645f:	88 07                	mov    %al,(%edi)
406461:	c6 46 30 01          	movb   $0x1,0x30(%esi)
406465:	b0 01                	mov    $0x1,%al
406467:	5f                   	pop    %edi
406468:	5e                   	pop    %esi
406469:	c3                   	ret
40646a:	8b 51 20             	mov    0x20(%ecx),%edx
40646d:	8b c2                	mov    %edx,%eax
40646f:	c1 e8 05             	shr    $0x5,%eax
406472:	a8 01                	test   $0x1,%al
406474:	74 09                	je     0x40647f
406476:	81 ca 80 00 00 00    	or     $0x80,%edx
40647c:	89 51 20             	mov    %edx,0x20(%ecx)
40647f:	6a 00                	push   $0x0
406481:	6a 08                	push   $0x8
406483:	e8 24 fe ff ff       	call   0x4062ac
406488:	c3                   	ret
406489:	6a 01                	push   $0x1
40648b:	6a 10                	push   $0x10
40648d:	c7 41 28 08 00 00 00 	movl   $0x8,0x28(%ecx)
406494:	c7 41 2c 0a 00 00 00 	movl   $0xa,0x2c(%ecx)
40649b:	e8 0c fe ff ff       	call   0x4062ac
4064a0:	c3                   	ret
4064a1:	8b ff                	mov    %edi,%edi
4064a3:	53                   	push   %ebx
4064a4:	56                   	push   %esi
4064a5:	8b f1                	mov    %ecx,%esi
4064a7:	57                   	push   %edi
4064a8:	83 46 14 04          	addl   $0x4,0x14(%esi)
4064ac:	8b 46 14             	mov    0x14(%esi),%eax
4064af:	8b 7e 28             	mov    0x28(%esi),%edi
4064b2:	8b 58 fc             	mov    -0x4(%eax),%ebx
4064b5:	89 5e 34             	mov    %ebx,0x34(%esi)
4064b8:	83 ff ff             	cmp    $0xffffffff,%edi
4064bb:	75 05                	jne    0x4064c2
4064bd:	bf ff ff ff 7f       	mov    $0x7fffffff,%edi
4064c2:	ff 76 2c             	push   0x2c(%esi)
4064c5:	0f b7 46 32          	movzwl 0x32(%esi),%eax
4064c9:	50                   	push   %eax
4064ca:	ff 76 04             	push   0x4(%esi)
4064cd:	ff 36                	push   (%esi)
4064cf:	e8 85 ef ff ff       	call   0x405459
4064d4:	83 c4 10             	add    $0x10,%esp
4064d7:	84 c0                	test   %al,%al
4064d9:	74 1c                	je     0x4064f7
4064db:	85 db                	test   %ebx,%ebx
4064dd:	75 07                	jne    0x4064e6
4064df:	c7 46 34 ec bc 41 00 	movl   $0x41bcec,0x34(%esi)
4064e6:	57                   	push   %edi
4064e7:	ff 76 34             	push   0x34(%esi)
4064ea:	c6 46 3c 01          	movb   $0x1,0x3c(%esi)
4064ee:	e8 d7 18 00 00       	call   0x407dca
4064f3:	59                   	pop    %ecx
4064f4:	59                   	pop    %ecx
4064f5:	eb 15                	jmp    0x40650c
4064f7:	85 db                	test   %ebx,%ebx
4064f9:	75 07                	jne    0x406502
4064fb:	c7 46 34 e4 bc 41 00 	movl   $0x41bce4,0x34(%esi)
406502:	6a 00                	push   $0x0
406504:	57                   	push   %edi
406505:	8b ce                	mov    %esi,%ecx
406507:	e8 09 00 00 00       	call   0x406515
40650c:	5f                   	pop    %edi
40650d:	89 46 38             	mov    %eax,0x38(%esi)
406510:	b0 01                	mov    $0x1,%al
406512:	5e                   	pop    %esi
406513:	5b                   	pop    %ebx
406514:	c3                   	ret
406515:	8b ff                	mov    %edi,%edi
406517:	55                   	push   %ebp
406518:	8b ec                	mov    %esp,%ebp
40651a:	56                   	push   %esi
40651b:	57                   	push   %edi
40651c:	8b f9                	mov    %ecx,%edi
40651e:	33 f6                	xor    %esi,%esi