4061cc:	83 08 ff             	orl    $0xffffffff,(%eax)
4061cf:	83 48 04 ff          	orl    $0xffffffff,0x4(%eax)
4061d3:	83 60 08 00          	andl   $0x0,0x8(%eax)
4061d7:	83 60 0c 00          	andl   $0x0,0xc(%eax)
4061db:	83 60 10 00          	andl   $0x0,0x10(%eax)
4061df:	83 60 14 00          	andl   $0x0,0x14(%eax)
4061e3:	5f                   	pop    %edi
4061e4:	5e                   	pop    %esi
4061e5:	5b                   	pop    %ebx
4061e6:	c9                   	leave
4061e7:	c2 14 00             	ret    $0x14
4061ea:	55                   	push   %ebp
4061eb:	8b ec                	mov    %esp,%ebp
4061ed:	8b 45 08             	mov    0x8(%ebp),%eax
4061f0:	83 08 ff             	orl    $0xffffffff,(%eax)
4061f3:	83 48 04 ff          	orl    $0xffffffff,0x4(%eax)
4061f7:	33 c9                	xor    %ecx,%ecx
4061f9:	89 48 08             	mov    %ecx,0x8(%eax)
4061fc:	89 48 0c             	mov    %ecx,0xc(%eax)
4061ff:	89 48 10             	mov    %ecx,0x10(%eax)
406202:	89 48 14             	mov    %ecx,0x14(%eax)
406205:	5d                   	pop    %ebp
406206:	c2 14 00             	ret    $0x14
406209:	55                   	push   %ebp
40620a:	8b ec                	mov    %esp,%ebp
40620c:	51                   	push   %ecx
40620d:	51                   	push   %ecx
40620e:	8b 55 0c             	mov    0xc(%ebp),%edx
406211:	03 55 14             	add    0x14(%ebp),%edx
406214:	8b 45 10             	mov    0x10(%ebp),%eax
406217:	13 45 18             	adc    0x18(%ebp),%eax
40621a:	53                   	push   %ebx
40621b:	57                   	push   %edi
40621c:	8b f9                	mov    %ecx,%edi
40621e:	89 55 f8             	mov    %edx,-0x8(%ebp)
406221:	33 db                	xor    %ebx,%ebx
406223:	89 45 fc             	mov    %eax,-0x4(%ebp)
406226:	39 5f 4c             	cmp    %ebx,0x4c(%edi)
406229:	74 52                	je     0x40627d
40622b:	e8 f3 f8 ff ff       	call   0x405b23
406230:	84 c0                	test   %al,%al
406232:	74 49                	je     0x40627d
406234:	8d 45 f8             	lea    -0x8(%ebp),%eax
406237:	50                   	push   %eax
406238:	ff 77 4c             	push   0x4c(%edi)
40623b:	e8 8f 79 00 00       	call   0x40dbcf
406240:	59                   	pop    %ecx
406241:	59                   	pop    %ecx
406242:	85 c0                	test   %eax,%eax
406244:	75 37                	jne    0x40627d
406246:	8b 4d 20             	mov    0x20(%ebp),%ecx
406249:	8b 45 1c             	mov    0x1c(%ebp),%eax
40624c:	89 4f 44             	mov    %ecx,0x44(%edi)
40624f:	8b cf                	mov    %edi,%ecx
406251:	56                   	push   %esi
406252:	89 47 40             	mov    %eax,0x40(%edi)
406255:	e8 83 fb ff ff       	call   0x405ddd
40625a:	8b 45 08             	mov    0x8(%ebp),%eax
40625d:	8b 77 40             	mov    0x40(%edi),%esi
406260:	8b 7f 44             	mov    0x44(%edi),%edi
406263:	8b 4d f8             	mov    -0x8(%ebp),%ecx
406266:	8b 55 fc             	mov    -0x4(%ebp),%edx
406269:	89 70 10             	mov    %esi,0x10(%eax)
40626c:	89 08                	mov    %ecx,(%eax)
40626e:	89 50 04             	mov    %edx,0x4(%eax)
406271:	89 58 08             	mov    %ebx,0x8(%eax)
406274:	89 58 0c             	mov    %ebx,0xc(%eax)
406277:	89 78 14             	mov    %edi,0x14(%eax)
40627a:	5e                   	pop    %esi
40627b:	eb 16                	jmp    0x406293
40627d:	8b 45 08             	mov    0x8(%ebp),%eax
406280:	83 08 ff             	orl    $0xffffffff,(%eax)
406283:	83 48 04 ff          	orl    $0xffffffff,0x4(%eax)
406287:	89 58 08             	mov    %ebx,0x8(%eax)
40628a:	89 58 0c             	mov    %ebx,0xc(%eax)
40628d:	89 58 10             	mov    %ebx,0x10(%eax)
406290:	89 58 14             	mov    %ebx,0x14(%eax)
406293:	5f                   	pop    %edi
406294:	5b                   	pop    %ebx
406295:	c9                   	leave
406296:	c2 20 00             	ret    $0x20
406299:	55                   	push   %ebp
40629a:	8b ec                	mov    %esp,%ebp
40629c:	8b 45 08             	mov    0x8(%ebp),%eax
40629f:	83 08 ff             	orl    $0xffffffff,(%eax)
4062a2:	83 48 04 ff          	orl    $0xffffffff,0x4(%eax)
4062a6:	33 c9                	xor    %ecx,%ecx
4062a8:	89 48 08             	mov    %ecx,0x8(%eax)
4062ab:	89 48 0c             	mov    %ecx,0xc(%eax)
4062ae:	89 48 10             	mov    %ecx,0x10(%eax)
4062b1:	89 48 14             	mov    %ecx,0x14(%eax)
4062b4:	5d                   	pop    %ebp
4062b5:	c2 20 00             	ret    $0x20
4062b8:	55                   	push   %ebp
4062b9:	8b ec                	mov    %esp,%ebp
4062bb:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
4062bf:	56                   	push   %esi
4062c0:	8b f1                	mov    %ecx,%esi
4062c2:	75 0d                	jne    0x4062d1
4062c4:	8b 45 0c             	mov    0xc(%ebp),%eax
4062c7:	0b 45 10             	or     0x10(%ebp),%eax
4062ca:	75 05                	jne    0x4062d1
4062cc:	6a 04                	push   $0x4
4062ce:	58                   	pop    %eax
4062cf:	eb 02                	jmp    0x4062d3
4062d1:	33 c0                	xor    %eax,%eax
4062d3:	83 7e 4c 00          	cmpl   $0x0,0x4c(%esi)
4062d7:	74 26                	je     0x4062ff
4062d9:	ff 75 0c             	push   0xc(%ebp)
4062dc:	50                   	push   %eax
4062dd:	ff 75 08             	push   0x8(%ebp)
4062e0:	ff 76 4c             	push   0x4c(%esi)
4062e3:	e8 a6 7f 00 00       	call   0x40e28e
4062e8:	83 c4 10             	add    $0x10,%esp
4062eb:	85 c0                	test   %eax,%eax
4062ed:	75 10                	jne    0x4062ff
4062ef:	6a 01                	push   $0x1
4062f1:	ff 76 4c             	push   0x4c(%esi)
4062f4:	8b ce                	mov    %esi,%ecx
4062f6:	e8 7f f9 ff ff       	call   0x405c7a
4062fb:	8b c6                	mov    %esi,%eax
4062fd:	eb 02                	jmp    0x406301
4062ff:	33 c0                	xor    %eax,%eax
406301:	5e                   	pop    %esi
406302:	5d                   	pop    %ebp
406303:	c2 0c 00             	ret    $0xc
406306:	8b c1                	mov    %ecx,%eax
406308:	c2 0c 00             	ret    $0xc
40630b:	33 c0                	xor    %eax,%eax
40630d:	33 d2                	xor    %edx,%edx
40630f:	c3                   	ret
406310:	57                   	push   %edi
406311:	8b f9                	mov    %ecx,%edi
406313:	83 7f 4c 00          	cmpl   $0x0,0x4c(%edi)
406317:	74 2c                	je     0x406345
406319:	8b 07                	mov    (%edi),%eax
40631b:	56                   	push   %esi
40631c:	6a ff                	push   $0xffffffff
40631e:	8b 70 0c             	mov    0xc(%eax),%esi
406321:	8b ce                	mov    %esi,%ecx
406323:	ff 15 54 41 42 00    	call   *0x424154
406329:	8b cf                	mov    %edi,%ecx
40632b:	ff d6                	call   *%esi
40632d:	5e                   	pop    %esi
40632e:	83 f8 ff             	cmp    $0xffffffff,%eax
406331:	74 12                	je     0x406345
406333:	ff 77 4c             	push   0x4c(%edi)
406336:	e8 4c 72 00 00       	call   0x40d587
40633b:	59                   	pop    %ecx
40633c:	85 c0                	test   %eax,%eax
40633e:	79 05                	jns    0x406345
406340:	83 c8 ff             	or     $0xffffffff,%eax
406343:	5f                   	pop    %edi
406344:	c3                   	ret
406345:	33 c0                	xor    %eax,%eax
406347:	5f                   	pop    %edi
406348:	c3                   	ret
406349:	33 c0                	xor    %eax,%eax
40634b:	c3                   	ret
40634c:	6a 34                	push   $0x34
40634e:	b8 00 2f 42 00       	mov    $0x422f00,%eax
406353:	e8 17 18 00 00       	call   0x407b6f
406358:	8b f9                	mov    %ecx,%edi
40635a:	8b 47 1c             	mov    0x1c(%edi),%eax
40635d:	8b 08                	mov    (%eax),%ecx
40635f:	85 c9                	test   %ecx,%ecx
406361:	74 23                	je     0x406386
406363:	8b 57 2c             	mov    0x2c(%edi),%edx
406366:	8b 32                	mov    (%edx),%esi
406368:	8d 04 0e             	lea    (%esi,%ecx,1),%eax
40636b:	3b c8                	cmp    %eax,%ecx
40636d:	73 17                	jae    0x406386
40636f:	8d 46 ff             	lea    -0x1(%esi),%eax
406372:	89 02                	mov    %eax,(%edx)
406374:	8b 4f 1c             	mov    0x1c(%edi),%ecx
406377:	8b 11                	mov    (%ecx),%edx
406379:	8d 42 01             	lea    0x1(%edx),%eax
40637c:	89 01                	mov    %eax,(%ecx)
40637e:	0f b6 02             	movzbl (%edx),%eax
406381:	e9 94 01 00 00       	jmp    0x40651a
406386:	33 db                	xor    %ebx,%ebx
406388:	39 5f 4c             	cmp    %ebx,0x4c(%edi)
40638b:	75 08                	jne    0x406395
40638d:	83 c8 ff             	or     $0xffffffff,%eax
406390:	e9 85 01 00 00       	jmp    0x40651a
406395:	8b cf                	mov    %edi,%ecx
406397:	e8 41 fa ff ff       	call   0x405ddd
40639c:	8b 47 4c             	mov    0x4c(%edi),%eax
40639f:	39 5f 38             	cmp    %ebx,0x38(%edi)
4063a2:	75 19                	jne    0x4063bd
4063a4:	50                   	push   %eax
4063a5:	8d 45 d6             	lea    -0x2a(%ebp),%eax
4063a8:	50                   	push   %eax
4063a9:	e8 7a f2 ff ff       	call   0x405628
4063ae:	59                   	pop    %ecx
4063af:	59                   	pop    %ecx
4063b0:	84 c0                	test   %al,%al
4063b2:	74 d9                	je     0x40638d
4063b4:	0f b6 45 d6          	movzbl -0x2a(%ebp),%eax
4063b8:	e9 5d 01 00 00       	jmp    0x40651a
4063bd:	89 5d d8             	mov    %ebx,-0x28(%ebp)
4063c0:	89 5d e8             	mov    %ebx,-0x18(%ebp)
4063c3:	c7 45 ec 0f 00 00 00 	movl   $0xf,-0x14(%ebp)
4063ca:	88 5d d8             	mov    %bl,-0x28(%ebp)
4063cd:	50                   	push   %eax
4063ce:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
4063d5:	e8 3e 72 00 00       	call   0x40d618
4063da:	83 cb ff             	or     $0xffffffff,%ebx
4063dd:	e9 a9 00 00 00       	jmp    0x40648b
4063e2:	50                   	push   %eax
4063e3:	8d 4d d8             	lea    -0x28(%ebp),%ecx
4063e6:	e8 06 fd ff ff       	call   0x4060f1
4063eb:	83 7d ec 10          	cmpl   $0x10,-0x14(%ebp)
4063ef:	8b 77 38             	mov    0x38(%edi),%esi
4063f2:	8b 55 d8             	mov    -0x28(%ebp),%edx
4063f5:	1a c9                	sbb    %cl,%cl
4063f7:	fe c1                	inc    %cl
4063f9:	89 75 c8             	mov    %esi,-0x38(%ebp)
4063fc:	83 7d ec 10          	cmpl   $0x10,-0x14(%ebp)
406400:	72 0d                	jb     0x40640f
406402:	8b 75 e8             	mov    -0x18(%ebp),%esi
406405:	03 f2                	add    %edx,%esi
406407:	89 75 d0             	mov    %esi,-0x30(%ebp)
40640a:	8b 75 c8             	mov    -0x38(%ebp),%esi
40640d:	eb 17                	jmp    0x406426
40640f:	8b 45 e8             	mov    -0x18(%ebp),%eax
406412:	8d 75 d8             	lea    -0x28(%ebp),%esi
406415:	03 c6                	add    %esi,%eax
406417:	89 45 d0             	mov    %eax,-0x30(%ebp)
40641a:	8b c6                	mov    %esi,%eax
40641c:	8b 75 c8             	mov    -0x38(%ebp),%esi
40641f:	89 45 cc             	mov    %eax,-0x34(%ebp)
406422:	84 c9                	test   %cl,%cl
406424:	74 03                	je     0x406429
406426:	89 55 cc             	mov    %edx,-0x34(%ebp)
406429:	8b 06                	mov    (%esi),%eax
40642b:	8b 70 18             	mov    0x18(%eax),%esi
40642e:	8d 45 c0             	lea    -0x40(%ebp),%eax
406431:	50                   	push   %eax
406432:	8d 45 d8             	lea    -0x28(%ebp),%eax
406435:	8b ce                	mov    %esi,%ecx
406437:	50                   	push   %eax
406438:	8d 45 d7             	lea    -0x29(%ebp),%eax
40643b:	50                   	push   %eax
40643c:	8d 45 c4             	lea    -0x3c(%ebp),%eax
40643f:	50                   	push   %eax
406440:	ff 75 d0             	push   -0x30(%ebp)
406443:	8d 47 40             	lea    0x40(%edi),%eax
406446:	ff 75 cc             	push   -0x34(%ebp)
406449:	50                   	push   %eax
40644a:	ff 15 54 41 42 00    	call   *0x424154
406450:	8b 4d c8             	mov    -0x38(%ebp),%ecx
406453:	ff d6                	call   *%esi
406455:	83 e8 00             	sub    $0x0,%eax
406458:	74 05                	je     0x40645f
40645a:	83 e8 01             	sub    $0x1,%eax
40645d:	75 37                	jne    0x406496
40645f:	8d 45 d7             	lea    -0x29(%ebp),%eax
406462:	8d 4d d8             	lea    -0x28(%ebp),%ecx
406465:	39 45 c0             	cmp    %eax,-0x40(%ebp)
406468:	75 43                	jne    0x4064ad
40646a:	83 7d ec 10          	cmpl   $0x10,-0x14(%ebp)
40646e:	72 03                	jb     0x406473
406470:	8b 4d d8             	mov    -0x28(%ebp),%ecx
406473:	8b 45 c4             	mov    -0x3c(%ebp),%eax
406476:	2b c1                	sub    %ecx,%eax
406478:	8d 4d d8             	lea    -0x28(%ebp),%ecx
40647b:	50                   	push   %eax
40647c:	6a 00                	push   $0x0
40647e:	e8 4f f7 ff ff       	call   0x405bd2
406483:	ff 77 4c             	push   0x4c(%edi)
406486:	e8 8d 71 00 00       	call   0x40d618
40648b:	59                   	pop    %ecx
40648c:	3b c3                	cmp    %ebx,%eax
40648e:	0f 85 4e ff ff ff    	jne    0x4063e2
406494:	eb 4b                	jmp    0x4064e1
406496:	48                   	dec    %eax
406497:	83 e8 01             	sub    $0x1,%eax
40649a:	75 45                	jne    0x4064e1
40649c:	83 7d ec 10          	cmpl   $0x10,-0x14(%ebp)
4064a0:	8d 45 d8             	lea    -0x28(%ebp),%eax
4064a3:	72 03                	jb     0x4064a8
4064a5:	8b 45 d8             	mov    -0x28(%ebp),%eax
4064a8:	0f be 18             	movsbl (%eax),%ebx
4064ab:	eb 34                	jmp    0x4064e1
4064ad:	83 7d ec 10          	cmpl   $0x10,-0x14(%ebp)
4064b1:	72 03                	jb     0x4064b6
4064b3:	8b 4d d8             	mov    -0x28(%ebp),%ecx
4064b6:	8b 75 e8             	mov    -0x18(%ebp),%esi
4064b9:	8b 45 c4             	mov    -0x3c(%ebp),%eax
4064bc:	2b f0                	sub    %eax,%esi
4064be:	03 f1                	add    %ecx,%esi
4064c0:	85 f6                	test   %esi,%esi
4064c2:	7e 19                	jle    0x4064dd
4064c4:	ff 77 4c             	push   0x4c(%edi)
4064c7:	4e                   	dec    %esi
4064c8:	0f be 04 06          	movsbl (%esi,%eax,1),%eax
4064cc:	50                   	push   %eax
4064cd:	e8 38 7f 00 00       	call   0x40e40a
4064d2:	59                   	pop    %ecx
4064d3:	59                   	pop    %ecx
4064d4:	85 f6                	test   %esi,%esi
4064d6:	7e 05                	jle    0x4064dd
4064d8:	8b 45 c4             	mov    -0x3c(%ebp),%eax
4064db:	eb e7                	jmp    0x4064c4
4064dd:	0f b6 5d d7          	movzbl -0x29(%ebp),%ebx
4064e1:	8b 45 ec             	mov    -0x14(%ebp),%eax
4064e4:	83 f8 10             	cmp    $0x10,%eax
4064e7:	72 2f                	jb     0x406518
4064e9:	8b 4d d8             	mov    -0x28(%ebp),%ecx
4064ec:	40                   	inc    %eax
4064ed:	89 45 cc             	mov    %eax,-0x34(%ebp)
4064f0:	89 4d d0             	mov    %ecx,-0x30(%ebp)
4064f3:	3d 00 10 00 00       	cmp    $0x1000,%eax
4064f8:	72 15                	jb     0x40650f
4064fa:	8d 45 cc             	lea    -0x34(%ebp),%eax
4064fd:	50                   	push   %eax
4064fe:	8d 45 d0             	lea    -0x30(%ebp),%eax
406501:	50                   	push   %eax
406502:	e8 79 ae ff ff       	call   0x401380
406507:	8b 45 cc             	mov    -0x34(%ebp),%eax
40650a:	59                   	pop    %ecx
40650b:	59                   	pop    %ecx
40650c:	8b 4d d0             	mov    -0x30(%ebp),%ecx
40650f:	50                   	push   %eax
406510:	51                   	push   %ecx
406511:	e8 36 11 00 00       	call   0x40764c
406516:	59                   	pop    %ecx
406517:	59                   	pop    %ecx
406518:	8b c3                	mov    %ebx,%eax
40651a:	e8 0e 16 00 00       	call   0x407b2d
40651f:	c3                   	ret
406520:	56                   	push   %esi
406521:	57                   	push   %edi
406522:	8b f9                	mov    %ecx,%edi
406524:	8b 07                	mov    (%edi),%eax
406526:	8b 70 18             	mov    0x18(%eax),%esi
406529:	8b ce                	mov    %esi,%ecx
40652b:	ff 15 54 41 42 00    	call   *0x424154
406531:	8b cf                	mov    %edi,%ecx
406533:	ff d6                	call   *%esi
406535:	83 ca ff             	or     $0xffffffff,%edx
406538:	3b c2                	cmp    %edx,%eax
40653a:	74 12                	je     0x40654e
40653c:	8b 47 2c             	mov    0x2c(%edi),%eax
40653f:	ff 08                	decl   (%eax)
406541:	8b 4f 1c             	mov    0x1c(%edi),%ecx
406544:	8b 11                	mov    (%ecx),%edx
406546:	8d 42 01             	lea    0x1(%edx),%eax
406549:	89 01                	mov    %eax,(%ecx)