4064e0:	83 fb 23             	cmp    $0x23,%ebx
4064e3:	74 0b                	je     0x4064f0
4064e5:	83 fb 2e             	cmp    $0x2e,%ebx
4064e8:	74 06                	je     0x4064f0
4064ea:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
4064ee:	eb 07                	jmp    0x4064f7
4064f0:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
4064f7:	83 3d e4 a2 42 00 00 	cmpl   $0x0,0x42a2e4
4064fe:	74 03                	je     0x406503
406500:	6a 04                	push   $0x4
406502:	5f                   	pop    %edi
406503:	84 c0                	test   %al,%al
406505:	79 39                	jns    0x406540
406507:	8b c8                	mov    %eax,%ecx
406509:	83 e0 3f             	and    $0x3f,%eax
40650c:	83 e1 40             	and    $0x40,%ecx
40650f:	51                   	push   %ecx
406510:	8b 0d 98 a2 42 00    	mov    0x42a298,%ecx
406516:	56                   	push   %esi
406517:	8d 04 41             	lea    (%ecx,%eax,2),%eax
40651a:	50                   	push   %eax
40651b:	68 28 84 40 00       	push   $0x408428
406520:	68 02 00 00 80       	push   $0x80000002
406525:	e8 8c fd ff ff       	call   0x4062b6
40652a:	66 83 3e 00          	cmpw   $0x0,(%esi)
40652e:	0f 85 9a 00 00 00    	jne    0x4065ce
406534:	53                   	push   %ebx
406535:	56                   	push   %esi
406536:	e8 cf fe ff ff       	call   0x40640a
40653b:	e9 85 00 00 00       	jmp    0x4065c5
406540:	83 f8 25             	cmp    $0x25,%eax
406543:	75 0e                	jne    0x406553
406545:	68 00 04 00 00       	push   $0x400
40654a:	56                   	push   %esi
40654b:	ff 15 f0 80 40 00    	call   *0x4080f0
406551:	eb 72                	jmp    0x4065c5
406553:	83 f8 24             	cmp    $0x24,%eax
406556:	75 69                	jne    0x4065c1
406558:	68 00 04 00 00       	push   $0x400
40655d:	56                   	push   %esi
40655e:	ff 15 9c 80 40 00    	call   *0x40809c
406564:	33 ff                	xor    %edi,%edi
406566:	eb 59                	jmp    0x4065c1
406568:	a1 44 a2 42 00       	mov    0x42a244,%eax
40656d:	33 c9                	xor    %ecx,%ecx
40656f:	4f                   	dec    %edi
406570:	3b c1                	cmp    %ecx,%eax
406572:	74 18                	je     0x40658c
406574:	39 4d fc             	cmp    %ecx,-0x4(%ebp)
406577:	74 13                	je     0x40658c
406579:	56                   	push   %esi
40657a:	51                   	push   %ecx
40657b:	51                   	push   %ecx
40657c:	ff 74 bd e8          	push   -0x18(%ebp,%edi,4)
406580:	ff 35 48 a2 42 00    	push   0x42a248
406586:	ff d0                	call   *%eax
406588:	85 c0                	test   %eax,%eax
40658a:	74 39                	je     0x4065c5
40658c:	8d 45 f8             	lea    -0x8(%ebp),%eax
40658f:	50                   	push   %eax
406590:	ff 74 bd e8          	push   -0x18(%ebp,%edi,4)
406594:	ff 35 48 a2 42 00    	push   0x42a248
40659a:	ff 15 78 81 40 00    	call   *0x408178
4065a0:	85 c0                	test   %eax,%eax
4065a2:	75 19                	jne    0x4065bd
4065a4:	56                   	push   %esi
4065a5:	ff 75 f8             	push   -0x8(%ebp)
4065a8:	ff 15 80 81 40 00    	call   *0x408180
4065ae:	ff 75 f8             	push   -0x8(%ebp)
4065b1:	8b d8                	mov    %eax,%ebx
4065b3:	ff 15 a4 82 40 00    	call   *0x4082a4
4065b9:	85 db                	test   %ebx,%ebx
4065bb:	75 08                	jne    0x4065c5
4065bd:	66 83 26 00          	andw   $0x0,(%esi)
4065c1:	85 ff                	test   %edi,%edi
4065c3:	75 a3                	jne    0x406568
4065c5:	66 83 3e 00          	cmpw   $0x0,(%esi)
4065c9:	74 13                	je     0x4065de
4065cb:	8b 5d f4             	mov    -0xc(%ebp),%ebx
4065ce:	83 fb 1a             	cmp    $0x1a,%ebx
4065d1:	75 0b                	jne    0x4065de
4065d3:	68 80 84 40 00       	push   $0x408480
4065d8:	56                   	push   %esi
4065d9:	e8 26 fe ff ff       	call   0x406404
4065de:	56                   	push   %esi
4065df:	e8 98 00 00 00       	call   0x40667c
4065e4:	eb 4a                	jmp    0x406630
4065e6:	66 83 ff 03          	cmp    $0x3,%di
4065ea:	75 31                	jne    0x40661d
4065ec:	8b 7d fc             	mov    -0x4(%ebp),%edi
4065ef:	83 ff 1d             	cmp    $0x1d,%edi
4065f2:	75 0e                	jne    0x406602
4065f4:	ff 35 48 a2 42 00    	push   0x42a248
4065fa:	56                   	push   %esi
4065fb:	e8 2f fd ff ff       	call   0x40632f
406600:	eb 11                	jmp    0x406613
406602:	8b c7                	mov    %edi,%eax
406604:	c1 e0 0b             	shl    $0xb,%eax
406607:	05 00 b0 42 00       	add    $0x42b000,%eax
40660c:	50                   	push   %eax
40660d:	56                   	push   %esi
40660e:	e8 d5 fd ff ff       	call   0x4063e8
406613:	83 c7 eb             	add    $0xffffffeb,%edi
406616:	83 ff 07             	cmp    $0x7,%edi
406619:	73 15                	jae    0x406630
40661b:	eb c1                	jmp    0x4065de
40661d:	66 83 ff 01          	cmp    $0x1,%di
406621:	75 0d                	jne    0x406630
406623:	83 c8 ff             	or     $0xffffffff,%eax
406626:	2b 45 fc             	sub    -0x4(%ebp),%eax
406629:	50                   	push   %eax
40662a:	56                   	push   %esi
40662b:	e8 da fd ff ff       	call   0x40640a
406630:	56                   	push   %esi
406631:	e8 c8 fd ff ff       	call   0x4063fe
406636:	8b 55 0c             	mov    0xc(%ebp),%edx
406639:	8d 34 46             	lea    (%esi,%eax,2),%esi
40663c:	b8 e0 81 42 00       	mov    $0x4281e0,%eax
406641:	eb 13                	jmp    0x406656
406643:	75 0c                	jne    0x406651
406645:	66 8b 3a             	mov    (%edx),%di
406648:	66 89 3e             	mov    %di,(%esi)
40664b:	03 f1                	add    %ecx,%esi
40664d:	03 d1                	add    %ecx,%edx
40664f:	eb 05                	jmp    0x406656
406651:	66 89 3e             	mov    %di,(%esi)
406654:	03 f1                	add    %ecx,%esi
406656:	66 8b 3a             	mov    (%edx),%di
406659:	66 85 ff             	test   %di,%di
40665c:	0f 85 01 fe ff ff    	jne    0x406463
406662:	66 83 26 00          	andw   $0x0,(%esi)
406666:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
40666a:	5f                   	pop    %edi
40666b:	5e                   	pop    %esi
40666c:	5b                   	pop    %ebx
40666d:	74 09                	je     0x406678
40666f:	50                   	push   %eax
406670:	ff 75 08             	push   0x8(%ebp)
406673:	e8 70 fd ff ff       	call   0x4063e8
406678:	c9                   	leave
406679:	c2 08 00             	ret    $0x8
40667c:	55                   	push   %ebp
40667d:	56                   	push   %esi
40667e:	8b 74 24 0c          	mov    0xc(%esp),%esi
406682:	57                   	push   %edi
406683:	66 83 3e 5c          	cmpw   $0x5c,(%esi)
406687:	75 18                	jne    0x4066a1
406689:	66 83 7e 02 5c       	cmpw   $0x5c,0x2(%esi)
40668e:	75 11                	jne    0x4066a1
406690:	66 83 7e 04 3f       	cmpw   $0x3f,0x4(%esi)
406695:	75 0a                	jne    0x4066a1
406697:	66 83 7e 06 5c       	cmpw   $0x5c,0x6(%esi)
40669c:	75 03                	jne    0x4066a1
40669e:	83 c6 08             	add    $0x8,%esi
4066a1:	66 83 3e 00          	cmpw   $0x0,(%esi)
4066a5:	74 0d                	je     0x4066b4
4066a7:	56                   	push   %esi
4066a8:	e8 87 f6 ff ff       	call   0x405d34
4066ad:	85 c0                	test   %eax,%eax
4066af:	74 03                	je     0x4066b4
4066b1:	83 c6 04             	add    $0x4,%esi
4066b4:	66 8b 06             	mov    (%esi),%ax
4066b7:	8b ee                	mov    %esi,%ebp
4066b9:	66 85 c0             	test   %ax,%ax
4066bc:	8b fe                	mov    %esi,%edi
4066be:	74 40                	je     0x406700
4066c0:	53                   	push   %ebx
4066c1:	8b 1d 48 82 40 00    	mov    0x408248,%ebx
4066c7:	66 3d 1f 00          	cmp    $0x1f,%ax
4066cb:	76 25                	jbe    0x4066f2
4066cd:	50                   	push   %eax
4066ce:	68 ac a5 40 00       	push   $0x40a5ac
4066d3:	e8 12 f6 ff ff       	call   0x405cea
4066d8:	66 83 38 00          	cmpw   $0x0,(%eax)
4066dc:	75 14                	jne    0x4066f2
4066de:	56                   	push   %esi
4066df:	ff d3                	call   *%ebx
4066e1:	2b c6                	sub    %esi,%eax
4066e3:	d1 f8                	sar    $1,%eax
4066e5:	50                   	push   %eax
4066e6:	56                   	push   %esi
4066e7:	57                   	push   %edi
4066e8:	e8 ac f7 ff ff       	call   0x405e99
4066ed:	57                   	push   %edi
4066ee:	ff d3                	call   *%ebx
4066f0:	8b f8                	mov    %eax,%edi
4066f2:	56                   	push   %esi
4066f3:	ff d3                	call   *%ebx
4066f5:	8b f0                	mov    %eax,%esi
4066f7:	66 8b 06             	mov    (%esi),%ax
4066fa:	66 85 c0             	test   %ax,%ax
4066fd:	75 c8                	jne    0x4066c7
4066ff:	5b                   	pop    %ebx
406700:	66 83 27 00          	andw   $0x0,(%edi)
406704:	57                   	push   %edi
406705:	55                   	push   %ebp
406706:	ff 15 f8 81 40 00    	call   *0x4081f8
40670c:	8b f8                	mov    %eax,%edi
40670e:	66 8b 07             	mov    (%edi),%ax
406711:	66 3d 20 00          	cmp    $0x20,%ax
406715:	74 06                	je     0x40671d
406717:	66 3d 5c 00          	cmp    $0x5c,%ax
40671b:	75 08                	jne    0x406725
40671d:	66 83 27 00          	andw   $0x0,(%edi)
406721:	3b ef                	cmp    %edi,%ebp
406723:	72 df                	jb     0x406704
406725:	5f                   	pop    %edi
406726:	5e                   	pop    %esi
406727:	5d                   	pop    %ebp
406728:	c2 04 00             	ret    $0x4
40672b:	56                   	push   %esi
40672c:	be 78 67 42 00       	mov    $0x426778,%esi
406731:	56                   	push   %esi
406732:	ff 74 24 0c          	push   0xc(%esp)
406736:	ff 15 38 81 40 00    	call   *0x408138
40673c:	83 f8 ff             	cmp    $0xffffffff,%eax
40673f:	74 0b                	je     0x40674c
406741:	50                   	push   %eax
406742:	ff 15 4c 81 40 00    	call   *0x40814c
406748:	8b c6                	mov    %esi,%eax
40674a:	eb 02                	jmp    0x40674e
40674c:	33 c0                	xor    %eax,%eax
40674e:	5e                   	pop    %esi
40674f:	c2 04 00             	ret    $0x4
406752:	55                   	push   %ebp
406753:	8b ec                	mov    %esp,%ebp
406755:	81 ec 3c 02 00 00    	sub    $0x23c,%esp
40675b:	56                   	push   %esi
40675c:	be 04 01 00 00       	mov    $0x104,%esi
406761:	8d 85 c4 fd ff ff    	lea    -0x23c(%ebp),%eax
406767:	56                   	push   %esi
406768:	50                   	push   %eax
406769:	ff 15 f0 80 40 00    	call   *0x4080f0
40676f:	3b c6                	cmp    %esi,%eax
406771:	5e                   	pop    %esi
406772:	76 02                	jbe    0x406776
406774:	33 c0                	xor    %eax,%eax
406776:	85 c0                	test   %eax,%eax
406778:	74 0f                	je     0x406789
40677a:	66 83 bc 45 c2 fd ff 	cmpw   $0x5c,-0x23e(%ebp,%eax,2)
406781:	ff 5c
406783:	74 04                	je     0x406789
406785:	33 c9                	xor    %ecx,%ecx
406787:	eb 03                	jmp    0x40678c
406789:	33 c9                	xor    %ecx,%ecx
40678b:	41                   	inc    %ecx
40678c:	ff 75 08             	push   0x8(%ebp)
40678f:	8d 0c 4d 14 a0 40 00 	lea    0x40a014(,%ecx,2),%ecx
406796:	8d 84 45 c4 fd ff ff 	lea    -0x23c(%ebp,%eax,2),%eax
40679d:	51                   	push   %ecx
40679e:	68 c0 a5 40 00       	push   $0x40a5c0
4067a3:	50                   	push   %eax
4067a4:	ff 15 90 82 40 00    	call   *0x408290
4067aa:	83 c4 10             	add    $0x10,%esp
4067ad:	8d 85 c4 fd ff ff    	lea    -0x23c(%ebp),%eax
4067b3:	6a 08                	push   $0x8
4067b5:	6a 00                	push   $0x0
4067b7:	50                   	push   %eax
4067b8:	ff 15 6c 81 40 00    	call   *0x40816c
4067be:	c9                   	leave
4067bf:	c2 04 00             	ret    $0x4
4067c2:	8b 44 24 04          	mov    0x4(%esp),%eax
4067c6:	56                   	push   %esi
4067c7:	8b f0                	mov    %eax,%esi
4067c9:	57                   	push   %edi
4067ca:	c1 e6 03             	shl    $0x3,%esi
4067cd:	8b be 10 a4 40 00    	mov    0x40a410(%esi),%edi
4067d3:	57                   	push   %edi
4067d4:	ff 15 f8 80 40 00    	call   *0x4080f8
4067da:	85 c0                	test   %eax,%eax
4067dc:	75 0a                	jne    0x4067e8
4067de:	57                   	push   %edi
4067df:	e8 6e ff ff ff       	call   0x406752
4067e4:	85 c0                	test   %eax,%eax
4067e6:	74 0f                	je     0x4067f7
4067e8:	ff b6 14 a4 40 00    	push   0x40a414(%esi)
4067ee:	50                   	push   %eax
4067ef:	ff 15 f4 80 40 00    	call   *0x4080f4
4067f5:	eb 02                	jmp    0x4067f9
4067f7:	33 c0                	xor    %eax,%eax
4067f9:	5f                   	pop    %edi
4067fa:	5e                   	pop    %esi
4067fb:	c2 04 00             	ret    $0x4
4067fe:	55                   	push   %ebp
4067ff:	8b ec                	mov    %esp,%ebp
406801:	83 ec 1c             	sub    $0x1c,%esp
406804:	56                   	push   %esi
406805:	8b 75 08             	mov    0x8(%ebp),%esi
406808:	57                   	push   %edi
406809:	8b 3d 08 82 40 00    	mov    0x408208,%edi
40680f:	eb 0a                	jmp    0x40681b
406811:	8d 45 e4             	lea    -0x1c(%ebp),%eax
406814:	50                   	push   %eax
406815:	ff 15 04 82 40 00    	call   *0x408204
40681b:	6a 01                	push   $0x1
40681d:	56                   	push   %esi
40681e:	56                   	push   %esi
40681f:	8d 45 e4             	lea    -0x1c(%ebp),%eax
406822:	6a 00                	push   $0x0
406824:	50                   	push   %eax
406825:	ff d7                	call   *%edi
406827:	85 c0                	test   %eax,%eax
406829:	75 e6                	jne    0x406811
40682b:	5f                   	pop    %edi
40682c:	5e                   	pop    %esi
40682d:	c9                   	leave
40682e:	c2 04 00             	ret    $0x4
406831:	55                   	push   %ebp
406832:	8b ec                	mov    %esp,%ebp
406834:	81 ec 00 01 00 00    	sub    $0x100,%esp
40683a:	33 c0                	xor    %eax,%eax
40683c:	8d 8d 00 ff ff ff    	lea    -0x100(%ebp),%ecx
406842:	50                   	push   %eax
406843:	50                   	push   %eax
406844:	68 00 01 00 00       	push   $0x100
406849:	51                   	push   %ecx
40684a:	6a ff                	push   $0xffffffff
40684c:	ff 75 0c             	push   0xc(%ebp)
40684f:	50                   	push   %eax
406850:	50                   	push   %eax
406851:	ff 15 5c 81 40 00    	call   *0x40815c
406857:	85 c0                	test   %eax,%eax
406859:	74 12                	je     0x40686d
40685b:	8d 85 00 ff ff ff    	lea    -0x100(%ebp),%eax
406861:	50                   	push   %eax
406862:	ff 75 08             	push   0x8(%ebp)
406865:	ff 15 f4 80 40 00    	call   *0x4080f4
40686b:	eb 02                	jmp    0x40686f
40686d:	33 c0                	xor    %eax,%eax
40686f:	c9                   	leave
406870:	c2 08 00             	ret    $0x8
406873:	55                   	push   %ebp
406874:	8b ec                	mov    %esp,%ebp
406876:	51                   	push   %ecx
406877:	56                   	push   %esi
406878:	8b 35 00 81 40 00    	mov    0x408100,%esi
40687e:	57                   	push   %edi
40687f:	6a 64                	push   $0x64
406881:	ff 75 08             	push   0x8(%ebp)
406884:	ff d6                	call   *%esi
406886:	bf 02 01 00 00       	mov    $0x102,%edi
40688b:	eb 0e                	jmp    0x40689b
40688d:	6a 0f                	push   $0xf
40688f:	e8 6a ff ff ff       	call   0x4067fe
406894:	6a 64                	push   $0x64
406896:	ff 75 08             	push   0x8(%ebp)
406899:	ff d6                	call   *%esi
40689b:	3b c7                	cmp    %edi,%eax
40689d:	74 ee                	je     0x40688d
40689f:	8d 45 fc             	lea    -0x4(%ebp),%eax