4095dd:	85 c0                	test   %eax,%eax
4095df:	0f 84 df 28 01 00    	je     0x41bec4
4095e5:	8d 8d 34 ff ff ff    	lea    -0xcc(%ebp),%ecx
4095eb:	51                   	push   %ecx
4095ec:	8d 8d e8 fe ff ff    	lea    -0x118(%ebp),%ecx
4095f2:	51                   	push   %ecx
4095f3:	50                   	push   %eax
4095f4:	56                   	push   %esi
4095f5:	68 00 00 08 00       	push   $0x80000
4095fa:	33 c0                	xor    %eax,%eax
4095fc:	40                   	inc    %eax
4095fd:	50                   	push   %eax
4095fe:	56                   	push   %esi
4095ff:	56                   	push   %esi
409600:	57                   	push   %edi
409601:	53                   	push   %ebx
409602:	ff 15 f8 a1 44 00    	call   *0x44a1f8
409608:	8b f8                	mov    %eax,%edi
40960a:	85 ff                	test   %edi,%edi
40960c:	0f 84 bc 28 01 00    	je     0x41bece
409612:	8b 85 34 ff ff ff    	mov    -0xcc(%ebp),%eax
409618:	89 85 5c ff ff ff    	mov    %eax,-0xa4(%ebp)
40961e:	ff b5 38 ff ff ff    	push   -0xc8(%ebp)
409624:	ff 15 1c a1 44 00    	call   *0x44a11c
40962a:	8b 95 50 ff ff ff    	mov    -0xb0(%ebp),%edx
409630:	b9 1c 22 40 00       	mov    $0x40221c,%ecx
409635:	e8 3c 13 00 00       	call   0x40a976
40963a:	85 ff                	test   %edi,%edi
40963c:	0f 84 a2 28 01 00    	je     0x41bee4
409642:	8b 85 5c ff ff ff    	mov    -0xa4(%ebp),%eax
409648:	8b f8                	mov    %eax,%edi
40964a:	33 c9                	xor    %ecx,%ecx
40964c:	41                   	inc    %ecx
40964d:	23 f9                	and    %ecx,%edi
40964f:	8b c8                	mov    %eax,%ecx
409651:	6a 02                	push   $0x2
409653:	5a                   	pop    %edx
409654:	23 ca                	and    %edx,%ecx
409656:	85 c0                	test   %eax,%eax
409658:	0f 84 e4 00 00 00    	je     0x409742
40965e:	8b 9d 58 ff ff ff    	mov    -0xa8(%ebp),%ebx
409664:	83 3d 58 67 43 00 00 	cmpl   $0x0,0x436758
40966b:	0f 84 a5 00 00 00    	je     0x409716
409671:	89 b5 54 ff ff ff    	mov    %esi,-0xac(%ebp)
409677:	33 c0                	xor    %eax,%eax
409679:	40                   	inc    %eax
40967a:	a3 98 25 43 00       	mov    %eax,0x432598
40967f:	85 db                	test   %ebx,%ebx
409681:	0f 85 a1 00 00 00    	jne    0x409728
409687:	8b 8d 5c ff ff ff    	mov    -0xa4(%ebp),%ecx
40968d:	e8 5a eb ff ff       	call   0x4081ec
409692:	a3 dc 65 43 00       	mov    %eax,0x4365dc
409697:	89 b5 5c ff ff ff    	mov    %esi,-0xa4(%ebp)
40969d:	8b f0                	mov    %eax,%esi
40969f:	89 b5 54 ff ff ff    	mov    %esi,-0xac(%ebp)
4096a5:	56                   	push   %esi
4096a6:	68 74 20 40 00       	push   $0x402074
4096ab:	6a 14                	push   $0x14
4096ad:	8d 45 b4             	lea    -0x4c(%ebp),%eax
4096b0:	50                   	push   %eax
4096b1:	e8 09 04 00 00       	call   0x409abf
4096b6:	83 c4 10             	add    $0x10,%esp
4096b9:	8d 55 b4             	lea    -0x4c(%ebp),%edx
4096bc:	b9 80 20 40 00       	mov    $0x402080,%ecx
4096c1:	e8 b0 12 00 00       	call   0x40a976
4096c6:	83 fe 20             	cmp    $0x20,%esi
4096c9:	0f 8d dd 28 01 00    	jge    0x41bfac
4096cf:	ba 94 20 40 00       	mov    $0x402094,%edx
4096d4:	b9 98 20 40 00       	mov    $0x402098,%ecx
4096d9:	e8 98 12 00 00       	call   0x40a976
4096de:	85 ff                	test   %edi,%edi
4096e0:	0f 85 eb 28 01 00    	jne    0x41bfd1
4096e6:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
4096ed:	e8 58 00 00 00       	call   0x40974a
4096f2:	8b c6                	mov    %esi,%eax
4096f4:	8b 4d f0             	mov    -0x10(%ebp),%ecx
4096f7:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
4096fe:	59                   	pop    %ecx
4096ff:	5f                   	pop    %edi
409700:	5e                   	pop    %esi
409701:	5b                   	pop    %ebx
409702:	c9                   	leave
409703:	c2 10 00             	ret    $0x10
409706:	8b 48 30             	mov    0x30(%eax),%ecx
409709:	85 c9                	test   %ecx,%ecx
40970b:	0f 84 c7 fe ff ff    	je     0x4095d8
409711:	e9 77 27 01 00       	jmp    0x41be8d
409716:	83 3d 48 67 43 00 00 	cmpl   $0x0,0x436748
40971d:	0f 85 4e ff ff ff    	jne    0x409671
409723:	e9 42 28 01 00       	jmp    0x41bf6a
409728:	83 fb 04             	cmp    $0x4,%ebx
40972b:	0f 84 aa 28 01 00    	je     0x41bfdb
409731:	3b da                	cmp    %edx,%ebx
409733:	75 b1                	jne    0x4096e6
409735:	8b 85 5c ff ff ff    	mov    -0xa4(%ebp),%eax
40973b:	a3 e4 65 43 00       	mov    %eax,0x4365e4
409740:	eb a4                	jmp    0x4096e6
409742:	6a 04                	push   $0x4
409744:	5b                   	pop    %ebx
409745:	e9 27 ff ff ff       	jmp    0x409671
40974a:	8b 8d 50 ff ff ff    	mov    -0xb0(%ebp),%ecx
409750:	e8 0b 45 00 00       	call   0x40dc60
409755:	8d 85 60 ff ff ff    	lea    -0xa0(%ebp),%eax
40975b:	50                   	push   %eax
40975c:	ff 15 18 a2 44 00    	call   *0x44a218
409762:	c3                   	ret
409763:	cc                   	int3
409764:	cc                   	int3
409765:	cc                   	int3
409766:	cc                   	int3
409767:	cc                   	int3
409768:	cc                   	int3
409769:	cc                   	int3
40976a:	cc                   	int3
40976b:	cc                   	int3
40976c:	cc                   	int3
40976d:	cc                   	int3
40976e:	cc                   	int3
40976f:	cc                   	int3
409770:	8b ff                	mov    %edi,%edi
409772:	55                   	push   %ebp
409773:	8b ec                	mov    %esp,%ebp
409775:	8b 4d 08             	mov    0x8(%ebp),%ecx
409778:	8b 49 3c             	mov    0x3c(%ecx),%ecx
40977b:	e8 40 05 00 00       	call   0x409cc0
409780:	a3 dc 65 43 00       	mov    %eax,0x4365dc
409785:	5d                   	pop    %ebp
409786:	c2 04 00             	ret    $0x4
409789:	8b ff                	mov    %edi,%edi
40978b:	53                   	push   %ebx
40978c:	56                   	push   %esi
40978d:	57                   	push   %edi
40978e:	8b f1                	mov    %ecx,%esi
409790:	e8 9c 11 00 00       	call   0x40a931
409795:	6a 04                	push   $0x4
409797:	5b                   	pop    %ebx
409798:	8b cb                	mov    %ebx,%ecx
40979a:	89 46 38             	mov    %eax,0x38(%esi)
40979d:	e8 ce 34 00 00       	call   0x40cc70
4097a2:	3d 00 40 00 00       	cmp    $0x4000,%eax
4097a7:	0f 85 59 28 01 00    	jne    0x41c006
4097ad:	bf f0 4a 44 00       	mov    $0x444af0,%edi
4097b2:	b9 58 22 40 00       	mov    $0x402258,%ecx
4097b7:	8b c7                	mov    %edi,%eax
4097b9:	66 8b 10             	mov    (%eax),%dx
4097bc:	66 3b 11             	cmp    (%ecx),%dx
4097bf:	0f 85 08 01 00 00    	jne    0x4098cd
4097c5:	66 85 d2             	test   %dx,%dx
4097c8:	74 17                	je     0x4097e1
4097ca:	66 8b 50 02          	mov    0x2(%eax),%dx
4097ce:	66 3b 51 02          	cmp    0x2(%ecx),%dx
4097d2:	0f 85 f5 00 00 00    	jne    0x4098cd
4097d8:	03 c3                	add    %ebx,%eax
4097da:	03 cb                	add    %ebx,%ecx
4097dc:	66 85 d2             	test   %dx,%dx
4097df:	75 d8                	jne    0x4097b9
4097e1:	33 c0                	xor    %eax,%eax
4097e3:	85 c0                	test   %eax,%eax
4097e5:	0f 84 c3 00 00 00    	je     0x4098ae
4097eb:	8b 0d fc 66 43 00    	mov    0x4366fc,%ecx
4097f1:	3b cb                	cmp    %ebx,%ecx
4097f3:	72 45                	jb     0x40983a
4097f5:	6a 3d                	push   $0x3d
4097f7:	58                   	pop    %eax
4097f8:	66 39 05 f0 4a 44 00 	cmp    %ax,0x444af0
4097ff:	75 39                	jne    0x40983a
409801:	66 39 05 f2 4a 44 00 	cmp    %ax,0x444af2
409808:	75 30                	jne    0x40983a
40980a:	8d 0c 4d fc ff ff ff 	lea    -0x4(,%ecx,2),%ecx
409811:	e8 ba 44 00 00       	call   0x40dcd0
409816:	8b c8                	mov    %eax,%ecx
409818:	85 c9                	test   %ecx,%ecx
40981a:	0f 84 f0 27 01 00    	je     0x41c010
409820:	8b 15 fc 66 43 00    	mov    0x4366fc,%edx
409826:	68 f4 4a 44 00       	push   $0x444af4
40982b:	89 4e 3c             	mov    %ecx,0x3c(%esi)
40982e:	8d 52 fe             	lea    -0x2(%edx),%edx
409831:	e8 6a 5b 00 00       	call   0x40f3a0
409836:	5f                   	pop    %edi
409837:	5e                   	pop    %esi
409838:	5b                   	pop    %ebx
409839:	c3                   	ret
40983a:	80 3d 55 67 43 00 00 	cmpb   $0x0,0x436755
409841:	0f 84 db 27 01 00    	je     0x41c022
409847:	68 60 20 40 00       	push   $0x402060
40984c:	57                   	push   %edi
40984d:	ff 15 40 a4 44 00    	call   *0x44a440
409853:	59                   	pop    %ecx
409854:	59                   	pop    %ecx
409855:	85 c0                	test   %eax,%eax
409857:	74 62                	je     0x4098bb
409859:	68 58 20 40 00       	push   $0x402058
40985e:	57                   	push   %edi
40985f:	ff 15 40 a4 44 00    	call   *0x44a440
409865:	59                   	pop    %ecx
409866:	59                   	pop    %ecx
409867:	85 c0                	test   %eax,%eax
409869:	74 59                	je     0x4098c4
40986b:	68 24 20 40 00       	push   $0x402024
409870:	57                   	push   %edi
409871:	ff 15 40 a4 44 00    	call   *0x44a440
409877:	59                   	pop    %ecx
409878:	59                   	pop    %ecx
409879:	85 c0                	test   %eax,%eax
40987b:	74 5f                	je     0x4098dc
40987d:	68 1c 20 40 00       	push   $0x40201c
409882:	57                   	push   %edi
409883:	ff 15 40 a4 44 00    	call   *0x44a440
409889:	59                   	pop    %ecx
40988a:	59                   	pop    %ecx
40988b:	85 c0                	test   %eax,%eax
40988d:	74 48                	je     0x4098d7
40988f:	68 14 20 40 00       	push   $0x402014
409894:	57                   	push   %edi
409895:	ff 15 40 a4 44 00    	call   *0x44a440
40989b:	59                   	pop    %ecx
40989c:	59                   	pop    %ecx
40989d:	85 c0                	test   %eax,%eax
40989f:	75 44                	jne    0x4098e5
4098a1:	c7 46 44 05 00 00 00 	movl   $0x5,0x44(%esi)
4098a8:	c7 06 3a 00 00 00    	movl   $0x3a,(%esi)
4098ae:	e8 7e 10 00 00       	call   0x40a931
4098b3:	89 46 3c             	mov    %eax,0x3c(%esi)
4098b6:	e9 7b ff ff ff       	jmp    0x409836
4098bb:	c7 46 44 01 00 00 00 	movl   $0x1,0x44(%esi)
4098c2:	eb e4                	jmp    0x4098a8
4098c4:	c7 46 44 02 00 00 00 	movl   $0x2,0x44(%esi)
4098cb:	eb db                	jmp    0x4098a8
4098cd:	1b c0                	sbb    %eax,%eax
4098cf:	83 c8 01             	or     $0x1,%eax
4098d2:	e9 0c ff ff ff       	jmp    0x4097e3
4098d7:	89 5e 44             	mov    %ebx,0x44(%esi)
4098da:	eb cc                	jmp    0x4098a8
4098dc:	c7 46 44 03 00 00 00 	movl   $0x3,0x44(%esi)
4098e3:	eb c3                	jmp    0x4098a8
4098e5:	68 9c 1f 40 00       	push   $0x401f9c
4098ea:	57                   	push   %edi
4098eb:	ff 15 40 a4 44 00    	call   *0x44a440
4098f1:	59                   	pop    %ecx
4098f2:	59                   	pop    %ecx
4098f3:	85 c0                	test   %eax,%eax
4098f5:	75 09                	jne    0x409900
4098f7:	c7 46 44 06 00 00 00 	movl   $0x6,0x44(%esi)
4098fe:	eb a8                	jmp    0x4098a8
409900:	e8 54 f0 01 00       	call   0x428959
409905:	eb a1                	jmp    0x4098a8
409907:	8b ff                	mov    %edi,%edi
409909:	55                   	push   %ebp
40990a:	8b ec                	mov    %esp,%ebp
40990c:	83 ec 1c             	sub    $0x1c,%esp
40990f:	a1 b4 e0 42 00       	mov    0x42e0b4,%eax
409914:	33 c5                	xor    %ebp,%eax
409916:	89 45 fc             	mov    %eax,-0x4(%ebp)
409919:	56                   	push   %esi
40991a:	6a 2f                	push   $0x2f
40991c:	58                   	pop    %eax
40991d:	66 89 45 e8          	mov    %ax,-0x18(%ebp)
409921:	8b f2                	mov    %edx,%esi
409923:	33 c0                	xor    %eax,%eax
409925:	8d 55 e8             	lea    -0x18(%ebp),%edx
409928:	6a 02                	push   $0x2
40992a:	b9 f0 4a 44 00       	mov    $0x444af0,%ecx
40992f:	66 89 45 ea          	mov    %ax,-0x16(%ebp)
409933:	e8 f8 22 00 00       	call   0x40bc30
409938:	6a 00                	push   $0x0
40993a:	8b d0                	mov    %eax,%edx
40993c:	8b ce                	mov    %esi,%ecx
40993e:	e8 bd 0e 00 00       	call   0x40a800
409943:	8b 4d fc             	mov    -0x4(%ebp),%ecx
409946:	33 cd                	xor    %ebp,%ecx
409948:	5e                   	pop    %esi
409949:	e8 e2 d1 00 00       	call   0x416b30
40994e:	c9                   	leave
40994f:	c3                   	ret
409950:	8b ff                	mov    %edi,%edi
409952:	55                   	push   %ebp
409953:	8b ec                	mov    %esp,%ebp
409955:	56                   	push   %esi
409956:	57                   	push   %edi
409957:	8d 45 0c             	lea    0xc(%ebp),%eax
40995a:	bf f0 0a 44 00       	mov    $0x440af0,%edi
40995f:	50                   	push   %eax
409960:	ff 75 08             	push   0x8(%ebp)
409963:	ba 00 20 00 00       	mov    $0x2000,%edx
409968:	8b cf                	mov    %edi,%ecx
40996a:	e8 1e 01 00 00       	call   0x409a8d
40996f:	8b d7                	mov    %edi,%edx
409971:	8d 72 02             	lea    0x2(%edx),%esi
409974:	0f b7 02             	movzwl (%edx),%eax
409977:	83 c2 02             	add    $0x2,%edx
40997a:	66 85 c0             	test   %ax,%ax
40997d:	75 f5                	jne    0x409974
40997f:	2b d6                	sub    %esi,%edx
409981:	8b cf                	mov    %edi,%ecx
409983:	5f                   	pop    %edi
409984:	d1 fa                	sar    $1,%edx
409986:	5e                   	pop    %esi
409987:	5d                   	pop    %ebp
409988:	e9 00 00 00 00       	jmp    0x40998d
40998d:	8b ff                	mov    %edi,%edi
40998f:	55                   	push   %ebp
409990:	8b ec                	mov    %esp,%ebp
409992:	51                   	push   %ecx
409993:	53                   	push   %ebx
409994:	56                   	push   %esi
409995:	57                   	push   %edi
409996:	8b fa                	mov    %edx,%edi
409998:	33 f6                	xor    %esi,%esi
40999a:	8b d9                	mov    %ecx,%ebx
40999c:	85 ff                	test   %edi,%edi
40999e:	7e 30                	jle    0x4099d0
4099a0:	33 c9                	xor    %ecx,%ecx
4099a2:	41                   	inc    %ecx
4099a3:	e8 69 00 00 00       	call   0x409a11
4099a8:	85 c0                	test   %eax,%eax
4099aa:	75 2b                	jne    0x4099d7
4099ac:	8d 45 fc             	lea    -0x4(%ebp),%eax
4099af:	03 ff                	add    %edi,%edi
4099b1:	50                   	push   %eax
4099b2:	33 c9                	xor    %ecx,%ecx
4099b4:	8b d3                	mov    %ebx,%edx
4099b6:	57                   	push   %edi
4099b7:	41                   	inc    %ecx
4099b8:	e8 7e 01 00 00       	call   0x409b3b
4099bd:	8b d8                	mov    %eax,%ebx
4099bf:	85 db                	test   %ebx,%ebx
4099c1:	0f 84 70 26 01 00    	je     0x41c037
4099c7:	39 7d fc             	cmp    %edi,-0x4(%ebp)
4099ca:	0f 85 67 26 01 00    	jne    0x41c037
4099d0:	8b c6                	mov    %esi,%eax
4099d2:	5f                   	pop    %edi
4099d3:	5e                   	pop    %esi
4099d4:	5b                   	pop    %ebx
4099d5:	c9                   	leave
4099d6:	c3                   	ret
4099d7:	68 04 8e 44 00       	push   $0x448e04
4099dc:	ff 15 90 a2 44 00    	call   *0x44a290
4099e2:	6a 00                	push   $0x0
4099e4:	8d 45 fc             	lea    -0x4(%ebp),%eax
4099e7:	50                   	push   %eax
4099e8:	57                   	push   %edi
4099e9:	53                   	push   %ebx
4099ea:	6a 01                	push   $0x1
4099ec:	ff 15 2c a4 44 00    	call   *0x44a42c
4099f2:	59                   	pop    %ecx
4099f3:	50                   	push   %eax
4099f4:	ff 15 0c a0 44 00    	call   *0x44a00c
4099fa:	8b d8                	mov    %eax,%ebx
4099fc:	85 db                	test   %ebx,%ebx
4099fe:	0f 84 26 26 01 00    	je     0x41c02a