4063a0:	ff 15 0c a4 44 00    	call   *0x44a40c
4063a6:	59                   	pop    %ecx
4063a7:	59                   	pop    %ecx
4063a8:	85 c0                	test   %eax,%eax
4063aa:	74 0d                	je     0x4063b9
4063ac:	a3 9c 67 43 00       	mov    %eax,0x43679c
4063b1:	89 3d 94 67 43 00    	mov    %edi,0x436794
4063b7:	eb b9                	jmp    0x406372
4063b9:	33 c0                	xor    %eax,%eax
4063bb:	eb c9                	jmp    0x406386
4063bd:	8b ff                	mov    %edi,%edi
4063bf:	55                   	push   %ebp
4063c0:	8b ec                	mov    %esp,%ebp
4063c2:	51                   	push   %ecx
4063c3:	51                   	push   %ecx
4063c4:	8b 4d 08             	mov    0x8(%ebp),%ecx
4063c7:	8d 45 10             	lea    0x10(%ebp),%eax
4063ca:	89 45 fc             	mov    %eax,-0x4(%ebp)
4063cd:	33 d2                	xor    %edx,%edx
4063cf:	8d 45 fc             	lea    -0x4(%ebp),%eax
4063d2:	42                   	inc    %edx
4063d3:	50                   	push   %eax
4063d4:	ff 75 0c             	push   0xc(%ebp)
4063d7:	e8 30 15 00 00       	call   0x40790c
4063dc:	c9                   	leave
4063dd:	c3                   	ret
4063de:	a1 8c 67 43 00       	mov    0x43678c,%eax
4063e3:	33 d2                	xor    %edx,%edx
4063e5:	85 c0                	test   %eax,%eax
4063e7:	74 3c                	je     0x406425
4063e9:	8b 48 10             	mov    0x10(%eax),%ecx
4063ec:	85 c9                	test   %ecx,%ecx
4063ee:	74 12                	je     0x406402
4063f0:	83 78 18 01          	cmpl   $0x1,0x18(%eax)
4063f4:	75 0c                	jne    0x406402
4063f6:	e8 f1 1d 00 00       	call   0x4081ec
4063fb:	8b d0                	mov    %eax,%edx
4063fd:	a1 8c 67 43 00       	mov    0x43678c,%eax
406402:	8b 48 14             	mov    0x14(%eax),%ecx
406405:	85 c9                	test   %ecx,%ecx
406407:	74 12                	je     0x40641b
406409:	83 78 1c 01          	cmpl   $0x1,0x1c(%eax)
40640d:	75 0c                	jne    0x40641b
40640f:	e8 d8 1d 00 00       	call   0x4081ec
406414:	8b d0                	mov    %eax,%edx
406416:	a1 8c 67 43 00       	mov    0x43678c,%eax
40641b:	8b 40 24             	mov    0x24(%eax),%eax
40641e:	a3 8c 67 43 00       	mov    %eax,0x43678c
406423:	eb c0                	jmp    0x4063e5
406425:	83 25 88 67 43 00 00 	andl   $0x0,0x436788
40642c:	8b c2                	mov    %edx,%eax
40642e:	83 25 e8 65 43 00 00 	andl   $0x0,0x4365e8
406435:	83 25 e4 65 43 00 00 	andl   $0x0,0x4365e4
40643c:	89 15 dc 65 43 00    	mov    %edx,0x4365dc
406442:	c3                   	ret
406443:	8d 41 fd             	lea    -0x3(%ecx),%eax
406446:	33 d2                	xor    %edx,%edx
406448:	83 f8 5b             	cmp    $0x5b,%eax
40644b:	77 1a                	ja     0x406467
40644d:	83 f9 1f             	cmp    $0x1f,%ecx
406450:	0f 8f 08 3c 01 00    	jg     0x41a05e
406456:	8b 04 95 ac 67 43 00 	mov    0x4367ac(,%edx,4),%eax
40645d:	0f ab c8             	bts    %ecx,%eax
406460:	89 04 95 ac 67 43 00 	mov    %eax,0x4367ac(,%edx,4)
406467:	c3                   	ret
406468:	8b ff                	mov    %edi,%edi
40646a:	51                   	push   %ecx
40646b:	a1 a4 67 43 00       	mov    0x4367a4,%eax
406470:	85 c0                	test   %eax,%eax
406472:	74 12                	je     0x406486
406474:	50                   	push   %eax
406475:	b9 f0 8b 44 00       	mov    $0x448bf0,%ecx
40647a:	e8 c2 41 00 00       	call   0x40a641
40647f:	83 25 a4 67 43 00 00 	andl   $0x0,0x4367a4
406486:	59                   	pop    %ecx
406487:	c3                   	ret
406488:	8b ff                	mov    %edi,%edi
40648a:	55                   	push   %ebp
40648b:	8b ec                	mov    %esp,%ebp
40648d:	83 ec 7c             	sub    $0x7c,%esp
406490:	53                   	push   %ebx
406491:	33 c0                	xor    %eax,%eax
406493:	89 55 f0             	mov    %edx,-0x10(%ebp)
406496:	8b d9                	mov    %ecx,%ebx
406498:	89 45 e8             	mov    %eax,-0x18(%ebp)
40649b:	56                   	push   %esi
40649c:	57                   	push   %edi
40649d:	89 45 f4             	mov    %eax,-0xc(%ebp)
4064a0:	39 05 9c 25 43 00    	cmp    %eax,0x43259c
4064a6:	75 66                	jne    0x40650e
4064a8:	8b 45 10             	mov    0x10(%ebp),%eax
4064ab:	8b f8                	mov    %eax,%edi
4064ad:	89 45 fc             	mov    %eax,-0x4(%ebp)
4064b0:	8b 45 24             	mov    0x24(%ebp),%eax
4064b3:	50                   	push   %eax
4064b4:	8b 45 20             	mov    0x20(%ebp),%eax
4064b7:	50                   	push   %eax
4064b8:	8b 45 1c             	mov    0x1c(%ebp),%eax
4064bb:	50                   	push   %eax
4064bc:	8b 45 14             	mov    0x14(%ebp),%eax
4064bf:	51                   	push   %ecx
4064c0:	50                   	push   %eax
4064c1:	8b 45 0c             	mov    0xc(%ebp),%eax
4064c4:	c1 ef 02             	shr    $0x2,%edi
4064c7:	83 e7 01             	and    $0x1,%edi
4064ca:	57                   	push   %edi
4064cb:	50                   	push   %eax
4064cc:	8b 45 08             	mov    0x8(%ebp),%eax
4064cf:	50                   	push   %eax
4064d0:	e8 3e 00 00 00       	call   0x406513
4064d5:	85 c0                	test   %eax,%eax
4064d7:	0f 85 92 3b 01 00    	jne    0x41a06f
4064dd:	8b 75 fc             	mov    -0x4(%ebp),%esi
4064e0:	c7 45 f4 01 00 00 00 	movl   $0x1,-0xc(%ebp)
4064e7:	83 e6 01             	and    $0x1,%esi
4064ea:	8b 4b 18             	mov    0x18(%ebx),%ecx
4064ed:	e8 6e 77 00 00       	call   0x40dc60
4064f2:	33 c0                	xor    %eax,%eax
4064f4:	89 43 18             	mov    %eax,0x18(%ebx)
4064f7:	39 05 9c 25 43 00    	cmp    %eax,0x43259c
4064fd:	75 0f                	jne    0x40650e
4064ff:	85 f6                	test   %esi,%esi
406501:	0f 85 87 3b 01 00    	jne    0x41a08e
406507:	5f                   	pop    %edi
406508:	5e                   	pop    %esi
406509:	5b                   	pop    %ebx
40650a:	c9                   	leave
40650b:	c2 20 00             	ret    $0x20
40650e:	33 c0                	xor    %eax,%eax
406510:	40                   	inc    %eax
406511:	eb f4                	jmp    0x406507
406513:	8b ff                	mov    %edi,%edi
406515:	55                   	push   %ebp
406516:	8b ec                	mov    %esp,%ebp
406518:	81 ec 54 02 00 00    	sub    $0x254,%esp
40651e:	a1 b4 e0 42 00       	mov    0x42e0b4,%eax
406523:	33 c5                	xor    %ebp,%eax
406525:	89 45 fc             	mov    %eax,-0x4(%ebp)
406528:	8b 45 14             	mov    0x14(%ebp),%eax
40652b:	89 85 d4 fd ff ff    	mov    %eax,-0x22c(%ebp)
406531:	8b 45 1c             	mov    0x1c(%ebp),%eax
406534:	53                   	push   %ebx
406535:	89 85 b4 fd ff ff    	mov    %eax,-0x24c(%ebp)
40653b:	8b 45 20             	mov    0x20(%ebp),%eax
40653e:	56                   	push   %esi
40653f:	89 85 bc fd ff ff    	mov    %eax,-0x244(%ebp)
406545:	8b f1                	mov    %ecx,%esi
406547:	8b 45 24             	mov    0x24(%ebp),%eax
40654a:	b9 04 01 00 00       	mov    $0x104,%ecx
40654f:	57                   	push   %edi
406550:	89 85 ac fd ff ff    	mov    %eax,-0x254(%ebp)
406556:	bf 00 08 00 00       	mov    $0x800,%edi
40655b:	33 c0                	xor    %eax,%eax
40655d:	89 95 d0 fd ff ff    	mov    %edx,-0x230(%ebp)
406563:	51                   	push   %ecx
406564:	50                   	push   %eax
406565:	89 85 cc fd ff ff    	mov    %eax,-0x234(%ebp)
40656b:	89 85 d8 fd ff ff    	mov    %eax,-0x228(%ebp)
406571:	89 85 b8 fd ff ff    	mov    %eax,-0x248(%ebp)
406577:	a3 a8 67 43 00       	mov    %eax,0x4367a8
40657c:	89 45 e8             	mov    %eax,-0x18(%ebp)
40657f:	8d 85 e0 fd ff ff    	lea    -0x220(%ebp),%eax
406585:	50                   	push   %eax
406586:	89 bd c8 fd ff ff    	mov    %edi,-0x238(%ebp)
40658c:	c6 45 ec 01          	movb   $0x1,-0x14(%ebp)
406590:	89 4d f0             	mov    %ecx,-0x10(%ebp)
406593:	e8 25 1a 01 00       	call   0x417fbd
406598:	83 c4 0c             	add    $0xc,%esp
40659b:	8d 8d e0 fd ff ff    	lea    -0x220(%ebp),%ecx
4065a1:	68 e9 7f 00 00       	push   $0x7fe9
4065a6:	e8 45 7e 00 00       	call   0x40e3f0
4065ab:	85 c0                	test   %eax,%eax
4065ad:	0f 88 88 3e 01 00    	js     0x41a43b
4065b3:	8b cf                	mov    %edi,%ecx
4065b5:	e8 16 77 00 00       	call   0x40dcd0
4065ba:	8b d8                	mov    %eax,%ebx
4065bc:	85 db                	test   %ebx,%ebx
4065be:	0f 84 cf 3e 01 00    	je     0x41a493
4065c4:	8b 56 0c             	mov    0xc(%esi),%edx
4065c7:	33 ff                	xor    %edi,%edi
4065c9:	33 c0                	xor    %eax,%eax
4065cb:	89 5e 18             	mov    %ebx,0x18(%esi)
4065ce:	40                   	inc    %eax
4065cf:	89 7e 14             	mov    %edi,0x14(%esi)
4065d2:	89 7e 20             	mov    %edi,0x20(%esi)
4065d5:	89 7e 24             	mov    %edi,0x24(%esi)
4065d8:	89 7e 28             	mov    %edi,0x28(%esi)
4065db:	89 7e 2c             	mov    %edi,0x2c(%esi)
4065de:	89 85 c4 fd ff ff    	mov    %eax,-0x23c(%ebp)
4065e4:	89 95 c0 fd ff ff    	mov    %edx,-0x240(%ebp)
4065ea:	39 46 08             	cmp    %eax,0x8(%esi)
4065ed:	0f 82 b7 01 00 00    	jb     0x4067aa
4065f3:	83 3d 9c 25 43 00 00 	cmpl   $0x0,0x43259c
4065fa:	0f 85 3b 3e 01 00    	jne    0x41a43b
406600:	8b 4d e8             	mov    -0x18(%ebp),%ecx
406603:	85 c9                	test   %ecx,%ecx
406605:	0f 84 57 3d 01 00    	je     0x41a362
40660b:	ff 32                	push   (%edx)
40660d:	8b 55 f0             	mov    -0x10(%ebp),%edx
406610:	ff 76 04             	push   0x4(%esi)
406613:	e8 a0 ce 00 00       	call   0x4134b8
406618:	85 c0                	test   %eax,%eax
40661a:	0f 85 23 3e 01 00    	jne    0x41a443
406620:	8b bd b4 fd ff ff    	mov    -0x24c(%ebp),%edi
406626:	85 ff                	test   %edi,%edi
406628:	0f 85 d0 01 00 00    	jne    0x4067fe
40662e:	8b 55 e8             	mov    -0x18(%ebp),%edx
406631:	85 d2                	test   %edx,%edx
406633:	0f 84 34 3d 01 00    	je     0x41a36d
406639:	8d 85 dc fd ff ff    	lea    -0x224(%ebp),%eax
40663f:	b9 f0 59 41 00       	mov    $0x4159f0,%ecx
406644:	50                   	push   %eax
406645:	8d 7b 04             	lea    0x4(%ebx),%edi
406648:	33 c0                	xor    %eax,%eax
40664a:	57                   	push   %edi
40664b:	ff 75 10             	push   0x10(%ebp)
40664e:	50                   	push   %eax
40664f:	e8 46 f2 00 00       	call   0x41589a
406654:	84 c0                	test   %al,%al
406656:	0f 84 1c 3d 01 00    	je     0x41a378
40665c:	83 3d 9c 25 43 00 00 	cmpl   $0x0,0x43259c
406663:	0f 85 c7 3d 01 00    	jne    0x41a430
406669:	8b 0f                	mov    (%edi),%ecx
40666b:	8b 45 08             	mov    0x8(%ebp),%eax
40666e:	23 4d 08             	and    0x8(%ebp),%ecx
406671:	23 45 0c             	and    0xc(%ebp),%eax
406674:	3b c8                	cmp    %eax,%ecx
406676:	0f 85 c9 00 00 00    	jne    0x406745
40667c:	8d 53 30             	lea    0x30(%ebx),%edx
40667f:	c7 85 b8 fd ff ff 01 	movl   $0x1,-0x248(%ebp)
406686:	00 00 00
406689:	8b ca                	mov    %edx,%ecx
40668b:	8d 79 02             	lea    0x2(%ecx),%edi
40668e:	66 8b 01             	mov    (%ecx),%ax
406691:	83 c1 02             	add    $0x2,%ecx
406694:	66 3b 85 cc fd ff ff 	cmp    -0x234(%ebp),%ax
40669b:	75 f1                	jne    0x40668e
40669d:	2b cf                	sub    %edi,%ecx
40669f:	8d 83 38 02 00 00    	lea    0x238(%ebx),%eax
4066a5:	83 c2 02             	add    $0x2,%edx
4066a8:	d1 f9                	sar    $1,%ecx
4066aa:	50                   	push   %eax
4066ab:	8d 0c 4a             	lea    (%edx,%ecx,2),%ecx
4066ae:	ba 04 01 00 00       	mov    $0x104,%edx
4066b3:	8b f9                	mov    %ecx,%edi
4066b5:	89 8d b0 fd ff ff    	mov    %ecx,-0x250(%ebp)
4066bb:	2b fb                	sub    %ebx,%edi
4066bd:	83 ef 30             	sub    $0x30,%edi
4066c0:	d1 ff                	sar    $1,%edi
4066c2:	2b d7                	sub    %edi,%edx
4066c4:	e8 d7 8c 00 00       	call   0x40f3a0
4066c9:	8b 95 b0 fd ff ff    	mov    -0x250(%ebp),%edx
4066cf:	33 c0                	xor    %eax,%eax
4066d1:	66 39 02             	cmp    %ax,(%edx)
4066d4:	0f 85 1b 01 00 00    	jne    0x4067f5
4066da:	66 89 43 02          	mov    %ax,0x2(%ebx)
4066de:	8b ca                	mov    %edx,%ecx
4066e0:	8d 79 02             	lea    0x2(%ecx),%edi
4066e3:	66 8b 01             	mov    (%ecx),%ax
4066e6:	83 c1 02             	add    $0x2,%ecx
4066e9:	66 3b 85 cc fd ff ff 	cmp    -0x234(%ebp),%ax
4066f0:	75 f1                	jne    0x4066e3
4066f2:	2b cf                	sub    %edi,%ecx
4066f4:	d1 f9                	sar    $1,%ecx
4066f6:	8d 04 09             	lea    (%ecx,%ecx,1),%eax
4066f9:	2b c3                	sub    %ebx,%eax
4066fb:	83 c0 05             	add    $0x5,%eax
4066fe:	03 c2                	add    %edx,%eax
406700:	25 fc ff 00 00       	and    $0xfffc,%eax
406705:	f6 43 04 10          	testb  $0x10,0x4(%ebx)
406709:	66 89 03             	mov    %ax,(%ebx)
40670c:	0f 85 14 01 00 00    	jne    0x406826
406712:	ff 46 20             	incl   0x20(%esi)
406715:	8b bd bc fd ff ff    	mov    -0x244(%ebp),%edi
40671b:	85 ff                	test   %edi,%edi
40671d:	0f 84 7f 3c 01 00    	je     0x41a3a2
406723:	ff b5 d4 fd ff ff    	push   -0x22c(%ebp)
406729:	8b cf                	mov    %edi,%ecx
40672b:	ff b5 d0 fd ff ff    	push   -0x230(%ebp)
406731:	53                   	push   %ebx
406732:	56                   	push   %esi
406733:	ff 15 c4 a4 44 00    	call   *0x44a4c4
406739:	ff d7                	call   *%edi
40673b:	8b f8                	mov    %eax,%edi
40673d:	85 ff                	test   %edi,%edi
40673f:	0f 85 d1 3c 01 00    	jne    0x41a416
406745:	ff b5 dc fd ff ff    	push   -0x224(%ebp)
40674b:	33 c0                	xor    %eax,%eax
40674d:	8d 7b 04             	lea    0x4(%ebx),%edi
406750:	50                   	push   %eax
406751:	8b d7                	mov    %edi,%edx
406753:	b9 f0 59 41 00       	mov    $0x4159f0,%ecx
406758:	e8 f4 f0 00 00       	call   0x415851
40675d:	84 c0                	test   %al,%al
40675f:	0f 85 f7 fe ff ff    	jne    0x40665c
406765:	8b 8d dc fd ff ff    	mov    -0x224(%ebp),%ecx
40676b:	e8 dd 23 00 00       	call   0x408b4d
406770:	8b 3d a8 67 43 00    	mov    0x4367a8,%edi
406776:	85 ff                	test   %edi,%edi
406778:	74 09                	je     0x406783
40677a:	83 ff 12             	cmp    $0x12,%edi
40677d:	0f 85 84 3c 01 00    	jne    0x41a407
406783:	8b 95 c0 fd ff ff    	mov    -0x240(%ebp),%edx
406789:	8b 85 c4 fd ff ff    	mov    -0x23c(%ebp),%eax
40678f:	40                   	inc    %eax
406790:	89 85 c4 fd ff ff    	mov    %eax,-0x23c(%ebp)
406796:	8b 52 0c             	mov    0xc(%edx),%edx
406799:	89 95 c0 fd ff ff    	mov    %edx,-0x240(%ebp)
40679f:	3b 46 08             	cmp    0x8(%esi),%eax
4067a2:	0f 86 4b fe ff ff    	jbe    0x4065f3
4067a8:	33 ff                	xor    %edi,%edi
4067aa:	83 bd bc fd ff ff 00 	cmpl   $0x0,-0x244(%ebp)
4067b1:	0f 84 94 3c 01 00    	je     0x41a44b
4067b7:	8b 9d ac fd ff ff    	mov    -0x254(%ebp),%ebx
4067bd:	85 db                	test   %ebx,%ebx
4067bf:	75 6d                	jne    0x40682e
4067c1:	83 bd b8 fd ff ff 00 	cmpl   $0x0,-0x248(%ebp)
4067c8:	0f 84 bb 3c 01 00    	je     0x41a489
4067ce:	8b 45 e8             	mov    -0x18(%ebp),%eax
4067d1:	33 c9                	xor    %ecx,%ecx
4067d3:	89 4d e8             	mov    %ecx,-0x18(%ebp)
4067d6:	85 c0                	test   %eax,%eax
4067d8:	74 08                	je     0x4067e2
4067da:	50                   	push   %eax
4067db:	ff 15 e0 a3 44 00    	call   *0x44a3e0
4067e1:	59                   	pop    %ecx
4067e2:	8b 4d fc             	mov    -0x4(%ebp),%ecx
4067e5:	8b c7                	mov    %edi,%eax
4067e7:	5f                   	pop    %edi
4067e8:	5e                   	pop    %esi
4067e9:	33 cd                	xor    %ebp,%ecx
4067eb:	5b                   	pop    %ebx
4067ec:	e8 3f 03 01 00       	call   0x416b30
4067f1:	c9                   	leave
4067f2:	c2 20 00             	ret    $0x20
4067f5:	66 89 7b 02          	mov    %di,0x2(%ebx)
4067f9:	e9 e0 fe ff ff       	jmp    0x4066de
4067fe:	ff b5 d4 fd ff ff    	push   -0x22c(%ebp)
406804:	8b cf                	mov    %edi,%ecx
406806:	ff b5 d0 fd ff ff    	push   -0x230(%ebp)
40680c:	56                   	push   %esi
40680d:	ff 15 c4 a4 44 00    	call   *0x44a4c4
406813:	ff d7                	call   *%edi
406815:	8b f8                	mov    %eax,%edi
406817:	85 ff                	test   %edi,%edi
406819:	0f 84 0f fe ff ff    	je     0x40662e
40681f:	8b c7                	mov    %edi,%eax
406821:	e9 66 3c 01 00       	jmp    0x41a48c
406826:	ff 46 24             	incl   0x24(%esi)
406829:	e9 e7 fe ff ff       	jmp    0x406715