406232:	e8 11 2e 00 00       	call   0x409048
406237:	68 10 db 49 00       	push   $0x49db10
40623c:	8d 4d ec             	lea    -0x14(%ebp),%ecx
40623f:	e8 d5 6b 00 00       	call   0x40ce19
406244:	57                   	push   %edi
406245:	6a 01                	push   $0x1
406247:	8d 45 d8             	lea    -0x28(%ebp),%eax
40624a:	50                   	push   %eax
40624b:	8d 45 ec             	lea    -0x14(%ebp),%eax
40624e:	50                   	push   %eax
40624f:	e8 95 74 00 00       	call   0x40d6e9
406254:	8d 4d ec             	lea    -0x14(%ebp),%ecx
406257:	e8 db 68 00 00       	call   0x40cb37
40625c:	8d 4d d8             	lea    -0x28(%ebp),%ecx
40625f:	e8 bc c9 00 00       	call   0x412c20
406264:	be 28 db 49 00       	mov    $0x49db28,%esi
406269:	56                   	push   %esi
40626a:	8d 4d ec             	lea    -0x14(%ebp),%ecx
40626d:	c7 45 e4 01 00 00 00 	movl   $0x1,-0x1c(%ebp)
406274:	89 7d d8             	mov    %edi,-0x28(%ebp)
406277:	e8 9d 6b 00 00       	call   0x40ce19
40627c:	57                   	push   %edi
40627d:	68 00 01 00 00       	push   $0x100
406282:	8d 45 d8             	lea    -0x28(%ebp),%eax
406285:	50                   	push   %eax
406286:	8d 45 ec             	lea    -0x14(%ebp),%eax
406289:	50                   	push   %eax
40628a:	e8 5a 74 00 00       	call   0x40d6e9
40628f:	8d 4d ec             	lea    -0x14(%ebp),%ecx
406292:	e8 a0 68 00 00       	call   0x40cb37
406297:	56                   	push   %esi
406298:	8d 4d ec             	lea    -0x14(%ebp),%ecx
40629b:	e8 79 6b 00 00       	call   0x40ce19
4062a0:	57                   	push   %edi
4062a1:	8d 45 fc             	lea    -0x4(%ebp),%eax
4062a4:	50                   	push   %eax
4062a5:	8d 45 08             	lea    0x8(%ebp),%eax
4062a8:	50                   	push   %eax
4062a9:	8d 45 ec             	lea    -0x14(%ebp),%eax
4062ac:	50                   	push   %eax
4062ad:	e8 93 73 00 00       	call   0x40d645
4062b2:	8d 4d ec             	lea    -0x14(%ebp),%ecx
4062b5:	e8 7d 68 00 00       	call   0x40cb37
4062ba:	8b 7d cc             	mov    -0x34(%ebp),%edi
4062bd:	8d 4d ec             	lea    -0x14(%ebp),%ecx
4062c0:	e8 32 75 00 00       	call   0x40d7f7
4062c5:	8d 45 ec             	lea    -0x14(%ebp),%eax
4062c8:	50                   	push   %eax
4062c9:	8d 4d b0             	lea    -0x50(%ebp),%ecx
4062cc:	e8 2b 01 00 00       	call   0x4063fc
4062d1:	8b 75 ec             	mov    -0x14(%ebp),%esi
4062d4:	56                   	push   %esi
4062d5:	68 38 db 49 00       	push   $0x49db38
4062da:	e8 c8 ac 01 00       	call   0x420fa7
4062df:	59                   	pop    %ecx
4062e0:	59                   	pop    %ecx
4062e1:	85 c0                	test   %eax,%eax
4062e3:	0f 84 1f b9 06 00    	je     0x471c08
4062e9:	56                   	push   %esi
4062ea:	68 54 db 49 00       	push   $0x49db54
4062ef:	e8 b3 ac 01 00       	call   0x420fa7
4062f4:	59                   	pop    %ecx
4062f5:	59                   	pop    %ecx
4062f6:	85 c0                	test   %eax,%eax
4062f8:	0f 84 26 b9 06 00    	je     0x471c24
4062fe:	56                   	push   %esi
4062ff:	68 7c db 49 00       	push   $0x49db7c
406304:	e8 9e ac 01 00       	call   0x420fa7
406309:	59                   	pop    %ecx
40630a:	59                   	pop    %ecx
40630b:	85 c0                	test   %eax,%eax
40630d:	0f 84 2d b9 06 00    	je     0x471c40
406313:	56                   	push   %esi
406314:	68 a4 db 49 00       	push   $0x49dba4
406319:	e8 89 ac 01 00       	call   0x420fa7
40631e:	59                   	pop    %ecx
40631f:	59                   	pop    %ecx
406320:	85 c0                	test   %eax,%eax
406322:	75 3b                	jne    0x40635f
406324:	84 db                	test   %bl,%bl
406326:	0f 85 62 b9 06 00    	jne    0x471c8e
40632c:	c7 05 30 11 4c 00 03 	movl   $0x3,0x4c1130
406333:	00 00 00
406336:	8d 45 ec             	lea    -0x14(%ebp),%eax
406339:	50                   	push   %eax
40633a:	8d 4d b0             	lea    -0x50(%ebp),%ecx
40633d:	e8 ba 00 00 00       	call   0x4063fc
406342:	8d 45 ec             	lea    -0x14(%ebp),%eax
406345:	50                   	push   %eax
406346:	b9 48 11 4c 00       	mov    $0x4c1148,%ecx
40634b:	e8 9d 0b 00 00       	call   0x406eed
406350:	8d 45 ec             	lea    -0x14(%ebp),%eax
406353:	50                   	push   %eax
406354:	8d 4d b0             	lea    -0x50(%ebp),%ecx
406357:	83 ef 02             	sub    $0x2,%edi
40635a:	e8 9d 00 00 00       	call   0x4063fc
40635f:	83 3d 4c 11 4c 00 00 	cmpl   $0x0,0x4c114c
406366:	0f 84 2e b9 06 00    	je     0x471c9a
40636c:	85 ff                	test   %edi,%edi
40636e:	0f 88 81 00 00 00    	js     0x4063f5
406374:	8d 47 01             	lea    0x1(%edi),%eax
406377:	50                   	push   %eax
406378:	33 db                	xor    %ebx,%ebx
40637a:	43                   	inc    %ebx
40637b:	53                   	push   %ebx
40637c:	ff 75 08             	push   0x8(%ebp)
40637f:	e8 cc 5c 01 00       	call   0x41c050
406384:	83 c4 0c             	add    $0xc,%esp
406387:	6a 00                	push   $0x0
406389:	53                   	push   %ebx
40638a:	6a 00                	push   $0x0
40638c:	ff 75 08             	push   0x8(%ebp)
40638f:	e8 fc b7 00 00       	call   0x411b90
406394:	8b f0                	mov    %eax,%esi
406396:	83 c4 10             	add    $0x10,%esp
406399:	8b ce                	mov    %esi,%ecx
40639b:	e8 80 c8 00 00       	call   0x412c20
4063a0:	89 5e 0c             	mov    %ebx,0xc(%esi)
4063a3:	89 3e                	mov    %edi,(%esi)
4063a5:	33 f6                	xor    %esi,%esi
4063a7:	85 ff                	test   %edi,%edi
4063a9:	7e 2b                	jle    0x4063d6
4063ab:	46                   	inc    %esi
4063ac:	56                   	push   %esi
4063ad:	53                   	push   %ebx
4063ae:	6a 00                	push   $0x0
4063b0:	ff 75 08             	push   0x8(%ebp)
4063b3:	e8 d8 b7 00 00       	call   0x411b90
4063b8:	83 c4 10             	add    $0x10,%esp
4063bb:	8d 4d ec             	lea    -0x14(%ebp),%ecx
4063be:	51                   	push   %ecx
4063bf:	8b c8                	mov    %eax,%ecx
4063c1:	e8 a2 07 00 00       	call   0x406b68
4063c6:	8d 45 ec             	lea    -0x14(%ebp),%eax
4063c9:	50                   	push   %eax
4063ca:	8d 4d b0             	lea    -0x50(%ebp),%ecx
4063cd:	e8 2a 00 00 00       	call   0x4063fc
4063d2:	3b f7                	cmp    %edi,%esi
4063d4:	7c d5                	jl     0x4063ab
4063d6:	8d 4d ec             	lea    -0x14(%ebp),%ecx
4063d9:	e8 59 67 00 00       	call   0x40cb37
4063de:	8d 4d d8             	lea    -0x28(%ebp),%ecx
4063e1:	e8 3a c8 00 00       	call   0x412c20
4063e6:	8d 4d b0             	lea    -0x50(%ebp),%ecx
4063e9:	e8 62 e8 ff ff       	call   0x404c50
4063ee:	5f                   	pop    %edi
4063ef:	5e                   	pop    %esi
4063f0:	5b                   	pop    %ebx
4063f1:	c9                   	leave
4063f2:	c2 08 00             	ret    $0x8
4063f5:	33 ff                	xor    %edi,%edi
4063f7:	e9 78 ff ff ff       	jmp    0x406374
4063fc:	55                   	push   %ebp
4063fd:	8b ec                	mov    %esp,%ebp
4063ff:	8b 11                	mov    (%ecx),%edx
406401:	3b 51 1c             	cmp    0x1c(%ecx),%edx
406404:	7d 19                	jge    0x40641f
406406:	8d 42 01             	lea    0x1(%edx),%eax
406409:	89 01                	mov    %eax,(%ecx)
40640b:	8b 41 18             	mov    0x18(%ecx),%eax
40640e:	8b 4d 08             	mov    0x8(%ebp),%ecx
406411:	ff 34 90             	push   (%eax,%edx,4)
406414:	e8 d4 0a 00 00       	call   0x406eed
406419:	b0 01                	mov    $0x1,%al
40641b:	5d                   	pop    %ebp
40641c:	c2 04 00             	ret    $0x4
40641f:	8b 4d 08             	mov    0x8(%ebp),%ecx
406422:	68 00 dc 49 00       	push   $0x49dc00
406427:	e8 37 06 00 00       	call   0x406a63
40642c:	32 c0                	xor    %al,%al
40642e:	eb eb                	jmp    0x40641b
406430:	55                   	push   %ebp
406431:	8b ec                	mov    %esp,%ebp
406433:	b8 08 00 01 00       	mov    $0x10008,%eax
406438:	e8 63 94 02 00       	call   0x42f8a0
40643d:	e8 33 e8 ff ff       	call   0x404c75
406442:	84 c0                	test   %al,%al
406444:	0f 84 80 00 00 00    	je     0x4064ca
40644a:	e8 d9 f4 ff ff       	call   0x405928
40644f:	85 c0                	test   %eax,%eax
406451:	78 77                	js     0x4064ca
406453:	e8 40 f3 ff ff       	call   0x405798
406458:	85 c0                	test   %eax,%eax
40645a:	78 6e                	js     0x4064ca
40645c:	8d 45 fc             	lea    -0x4(%ebp),%eax
40645f:	50                   	push   %eax
406460:	8d 85 f8 ff fe ff    	lea    -0x10008(%ebp),%eax
406466:	50                   	push   %eax
406467:	8b 45 08             	mov    0x8(%ebp),%eax
40646a:	68 ff 7f 00 00       	push   $0x7fff
40646f:	ff 30                	push   (%eax)
406471:	ff 15 14 d3 48 00    	call   *0x48d314
406477:	8d 85 f8 ff fe ff    	lea    -0x10008(%ebp),%eax
40647d:	50                   	push   %eax
40647e:	b9 28 12 4c 00       	mov    $0x4c1228,%ecx
406483:	e8 db 05 00 00       	call   0x406a63
406488:	ff 75 fc             	push   -0x4(%ebp)
40648b:	b9 18 12 4c 00       	mov    $0x4c1218,%ecx
406490:	e8 ce 05 00 00       	call   0x406a63
406495:	8b 45 fc             	mov    -0x4(%ebp),%eax
406498:	33 c9                	xor    %ecx,%ecx
40649a:	66 89 48 fe          	mov    %cx,-0x2(%eax)
40649e:	66 39 8d fc ff fe ff 	cmp    %cx,-0x10004(%ebp)
4064a5:	0f 84 24 f9 06 00    	je     0x475dcf
4064ab:	8d 85 f8 ff fe ff    	lea    -0x10008(%ebp),%eax
4064b1:	50                   	push   %eax
4064b2:	b9 38 12 4c 00       	mov    $0x4c1238,%ecx
4064b7:	e8 a7 05 00 00       	call   0x406a63
4064bc:	8b 45 0c             	mov    0xc(%ebp),%eax
4064bf:	a3 14 12 4c 00       	mov    %eax,0x4c1214
4064c4:	33 c0                	xor    %eax,%eax
4064c6:	c9                   	leave
4064c7:	c2 08 00             	ret    $0x8
4064ca:	83 c8 ff             	or     $0xffffffff,%eax
4064cd:	eb f7                	jmp    0x4064c6
4064cf:	55                   	push   %ebp
4064d0:	8b ec                	mov    %esp,%ebp
4064d2:	56                   	push   %esi
4064d3:	8b f1                	mov    %ecx,%esi
4064d5:	8b 46 0c             	mov    0xc(%esi),%eax
4064d8:	39 46 08             	cmp    %eax,0x8(%esi)
4064db:	74 3e                	je     0x40651b
4064dd:	6a 10                	push   $0x10
4064df:	e8 06 90 01 00       	call   0x41f4ea
4064e4:	8b d0                	mov    %eax,%edx
4064e6:	59                   	pop    %ecx
4064e7:	85 d2                	test   %edx,%edx
4064e9:	0f 84 21 ba 06 00    	je     0x471f10
4064ef:	8b 45 08             	mov    0x8(%ebp),%eax
4064f2:	8b 08                	mov    (%eax),%ecx
4064f4:	89 0a                	mov    %ecx,(%edx)
4064f6:	8b 48 04             	mov    0x4(%eax),%ecx
4064f9:	89 4a 04             	mov    %ecx,0x4(%edx)
4064fc:	8b 48 08             	mov    0x8(%eax),%ecx
4064ff:	89 4a 08             	mov    %ecx,0x8(%edx)
406502:	8b 40 0c             	mov    0xc(%eax),%eax
406505:	89 42 0c             	mov    %eax,0xc(%edx)
406508:	ff 00                	incl   (%eax)
40650a:	8b 4e 08             	mov    0x8(%esi),%ecx
40650d:	8b 46 04             	mov    0x4(%esi),%eax
406510:	89 14 88             	mov    %edx,(%eax,%ecx,4)
406513:	ff 46 08             	incl   0x8(%esi)
406516:	5e                   	pop    %esi
406517:	5d                   	pop    %ebp
406518:	c2 04 00             	ret    $0x4
40651b:	8d 0c 00             	lea    (%eax,%eax,1),%ecx
40651e:	6a 08                	push   $0x8
406520:	58                   	pop    %eax
406521:	3b c8                	cmp    %eax,%ecx
406523:	73 27                	jae    0x40654c
406525:	57                   	push   %edi
406526:	33 c9                	xor    %ecx,%ecx
406528:	6a 04                	push   $0x4
40652a:	5a                   	pop    %edx
40652b:	89 46 0c             	mov    %eax,0xc(%esi)
40652e:	f7 e2                	mul    %edx
406530:	0f 90 c1             	seto   %cl
406533:	f7 d9                	neg    %ecx
406535:	0b c8                	or     %eax,%ecx
406537:	51                   	push   %ecx
406538:	e8 ad 8f 01 00       	call   0x41f4ea
40653d:	83 7e 04 00          	cmpl   $0x0,0x4(%esi)
406541:	59                   	pop    %ecx
406542:	8b f8                	mov    %eax,%edi
406544:	75 0a                	jne    0x406550
406546:	89 7e 04             	mov    %edi,0x4(%esi)
406549:	5f                   	pop    %edi
40654a:	eb 91                	jmp    0x4064dd
40654c:	8b c1                	mov    %ecx,%eax
40654e:	eb d5                	jmp    0x406525
406550:	8b 46 08             	mov    0x8(%esi),%eax
406553:	85 c0                	test   %eax,%eax
406555:	74 ef                	je     0x406546
406557:	c1 e0 02             	shl    $0x2,%eax
40655a:	50                   	push   %eax
40655b:	ff 76 04             	push   0x4(%esi)
40655e:	57                   	push   %edi
40655f:	e8 1c 89 01 00       	call   0x41ee80
406564:	ff 76 04             	push   0x4(%esi)
406567:	e8 f2 8f 01 00       	call   0x41f55e
40656c:	83 c4 10             	add    $0x10,%esp
40656f:	eb d5                	jmp    0x406546
406571:	55                   	push   %ebp
406572:	8b ec                	mov    %esp,%ebp
406574:	56                   	push   %esi
406575:	ff 75 08             	push   0x8(%ebp)
406578:	8b f1                	mov    %ecx,%esi
40657a:	e8 19 00 00 00       	call   0x406598
40657f:	6a ff                	push   $0xffffffff
406581:	8b ce                	mov    %esi,%ecx
406583:	83 f8 ff             	cmp    $0xffffffff,%eax
406586:	74 0c                	je     0x406594
406588:	40                   	inc    %eax
406589:	50                   	push   %eax
40658a:	e8 fc 4b 00 00       	call   0x40b18b
40658f:	5e                   	pop    %esi
406590:	5d                   	pop    %ebp
406591:	c2 04 00             	ret    $0x4
406594:	6a 00                	push   $0x0
406596:	eb f2                	jmp    0x40658a
406598:	55                   	push   %ebp
406599:	8b ec                	mov    %esp,%ebp
40659b:	83 ec 10             	sub    $0x10,%esp
40659e:	53                   	push   %ebx
40659f:	56                   	push   %esi
4065a0:	8b c1                	mov    %ecx,%eax
4065a2:	57                   	push   %edi
4065a3:	8b 78 04             	mov    0x4(%eax),%edi
4065a6:	33 f6                	xor    %esi,%esi
4065a8:	89 45 f8             	mov    %eax,-0x8(%ebp)
4065ab:	89 7d f0             	mov    %edi,-0x10(%ebp)
4065ae:	8d 57 ff             	lea    -0x1(%edi),%edx
4065b1:	85 ff                	test   %edi,%edi
4065b3:	74 47                	je     0x4065fc
4065b5:	8b 45 08             	mov    0x8(%ebp),%eax
4065b8:	0f b7 00             	movzwl (%eax),%eax
4065bb:	89 45 fc             	mov    %eax,-0x4(%ebp)
4065be:	33 db                	xor    %ebx,%ebx
4065c0:	33 c9                	xor    %ecx,%ecx
4065c2:	66 85 c0             	test   %ax,%ax
4065c5:	74 2c                	je     0x4065f3
4065c7:	8b 45 f8             	mov    -0x8(%ebp),%eax
4065ca:	8b 7d 08             	mov    0x8(%ebp),%edi
4065cd:	8b 00                	mov    (%eax),%eax
4065cf:	0f b7 04 50          	movzwl (%eax,%edx,2),%eax
4065d3:	89 45 f4             	mov    %eax,-0xc(%ebp)
4065d6:	8b 45 fc             	mov    -0x4(%ebp),%eax
4065d9:	0f b7 c0             	movzwl %ax,%eax
4065dc:	66 39 45 f4          	cmp    %ax,-0xc(%ebp)
4065e0:	74 1f                	je     0x406601
4065e2:	43                   	inc    %ebx
4065e3:	0f b7 04 5f          	movzwl (%edi,%ebx,2),%eax
4065e7:	66 85 c0             	test   %ax,%ax
4065ea:	75 f0                	jne    0x4065dc
4065ec:	8b 7d f0             	mov    -0x10(%ebp),%edi
4065ef:	85 c9                	test   %ecx,%ecx
4065f1:	75 11                	jne    0x406604
4065f3:	8b c2                	mov    %edx,%eax
4065f5:	5f                   	pop    %edi
4065f6:	5e                   	pop    %esi
4065f7:	5b                   	pop    %ebx
4065f8:	c9                   	leave
4065f9:	c2 04 00             	ret    $0x4
4065fc:	83 c8 ff             	or     $0xffffffff,%eax
4065ff:	eb f4                	jmp    0x4065f5
406601:	41                   	inc    %ecx
406602:	eb de                	jmp    0x4065e2
406604:	8b 45 fc             	mov    -0x4(%ebp),%eax
406607:	4a                   	dec    %edx
406608:	46                   	inc    %esi