40f5e1:	a1 18 51 41 00       	mov    0x415118,%eax
40f5e6:	33 c5                	xor    %ebp,%eax
40f5e8:	89 45 fc             	mov    %eax,-0x4(%ebp)
40f5eb:	8b 45 08             	mov    0x8(%ebp),%eax
40f5ee:	53                   	push   %ebx
40f5ef:	56                   	push   %esi
40f5f0:	57                   	push   %edi
40f5f1:	68 04 06 00 00       	push   $0x604
40f5f6:	33 db                	xor    %ebx,%ebx
40f5f8:	89 4d d4             	mov    %ecx,-0x2c(%ebp)
40f5fb:	53                   	push   %ebx
40f5fc:	50                   	push   %eax
40f5fd:	89 45 d0             	mov    %eax,-0x30(%ebp)
40f600:	e8 5c 4b 00 00       	call   0x414161
40f605:	83 c4 0c             	add    $0xc,%esp
40f608:	c7 45 d8 00 30 00 00 	movl   $0x3000,-0x28(%ebp)
40f60f:	33 ff                	xor    %edi,%edi
40f611:	33 f6                	xor    %esi,%esi
40f613:	83 fb 50             	cmp    $0x50,%ebx
40f616:	0f 8d 80 00 00 00    	jge    0x40f69c
40f61c:	8d 04 37             	lea    (%edi,%esi,1),%eax
40f61f:	8b 04 85 c0 3e 40 00 	mov    0x403ec0(,%eax,4),%eax
40f626:	83 f8 08             	cmp    $0x8,%eax
40f629:	74 71                	je     0x40f69c
40f62b:	83 f8 06             	cmp    $0x6,%eax
40f62e:	7d 62                	jge    0x40f692
40f630:	0f b6 8c 37 70 3e 40 	movzbl 0x403e70(%edi,%esi,1),%ecx
40f637:	00
40f638:	e8 13 f4 ff ff       	call   0x40ea50
40f63d:	85 c0                	test   %eax,%eax
40f63f:	75 50                	jne    0x40f691
40f641:	8b 45 d4             	mov    -0x2c(%ebp),%eax
40f644:	8d 55 dc             	lea    -0x24(%ebp),%edx
40f647:	8b 0c 98             	mov    (%eax,%ebx,4),%ecx
40f64a:	e8 90 f3 ff ff       	call   0x40e9df
40f64f:	66 8b 55 dc          	mov    -0x24(%ebp),%dx
40f653:	b8 00 30 00 00       	mov    $0x3000,%eax
40f658:	66 3b d0             	cmp    %ax,%dx
40f65b:	74 34                	je     0x40f691
40f65d:	0f b6 84 37 70 3e 40 	movzbl 0x403e70(%edi,%esi,1),%eax
40f664:	00
40f665:	8b 4d d0             	mov    -0x30(%ebp),%ecx
40f668:	66 89 54 41 04       	mov    %dx,0x4(%ecx,%eax,2)
40f66d:	66 8b 55 de          	mov    -0x22(%ebp),%dx
40f671:	66 3b 55 d8          	cmp    -0x28(%ebp),%dx
40f675:	74 1a                	je     0x40f691
40f677:	66 89 94 41 04 02 00 	mov    %dx,0x204(%ecx,%eax,2)
40f67e:	00
40f67f:	66 8b 55 e0          	mov    -0x20(%ebp),%dx
40f683:	66 3b 55 d8          	cmp    -0x28(%ebp),%dx
40f687:	74 08                	je     0x40f691
40f689:	66 89 94 41 04 04 00 	mov    %dx,0x404(%ecx,%eax,2)
40f690:	00
40f691:	43                   	inc    %ebx
40f692:	46                   	inc    %esi
40f693:	83 fe 10             	cmp    $0x10,%esi
40f696:	0f 8c 77 ff ff ff    	jl     0x40f613
40f69c:	83 c7 10             	add    $0x10,%edi
40f69f:	83 ff 50             	cmp    $0x50,%edi
40f6a2:	0f 8c 69 ff ff ff    	jl     0x40f611
40f6a8:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40f6ab:	5f                   	pop    %edi
40f6ac:	5e                   	pop    %esi
40f6ad:	33 cd                	xor    %ebp,%ecx
40f6af:	5b                   	pop    %ebx
40f6b0:	e8 2b 42 00 00       	call   0x4138e0
40f6b5:	c9                   	leave
40f6b6:	c2 04 00             	ret    $0x4
40f6b9:	8b ff                	mov    %edi,%edi
40f6bb:	55                   	push   %ebp
40f6bc:	8b ec                	mov    %esp,%ebp
40f6be:	83 ec 38             	sub    $0x38,%esp
40f6c1:	a1 18 51 41 00       	mov    0x415118,%eax
40f6c6:	33 c5                	xor    %ebp,%eax
40f6c8:	89 45 fc             	mov    %eax,-0x4(%ebp)
40f6cb:	83 65 d8 00          	andl   $0x0,-0x28(%ebp)
40f6cf:	b8 70 3e 40 00       	mov    $0x403e70,%eax
40f6d4:	53                   	push   %ebx
40f6d5:	56                   	push   %esi
40f6d6:	bb c0 3e 40 00       	mov    $0x403ec0,%ebx
40f6db:	89 4d c8             	mov    %ecx,-0x38(%ebp)
40f6de:	57                   	push   %edi
40f6df:	33 ff                	xor    %edi,%edi
40f6e1:	89 45 cc             	mov    %eax,-0x34(%ebp)
40f6e4:	89 5d d0             	mov    %ebx,-0x30(%ebp)
40f6e7:	8b d3                	mov    %ebx,%edx
40f6e9:	33 f6                	xor    %esi,%esi
40f6eb:	8b 5d c8             	mov    -0x38(%ebp),%ebx
40f6ee:	89 55 d4             	mov    %edx,-0x2c(%ebp)
40f6f1:	83 3a 08             	cmpl   $0x8,(%edx)
40f6f4:	0f 84 d6 00 00 00    	je     0x40f7d0
40f6fa:	83 3a 06             	cmpl   $0x6,(%edx)
40f6fd:	0f 8d bd 00 00 00    	jge    0x40f7c0
40f703:	0f b6 0c 30          	movzbl (%eax,%esi,1),%ecx
40f707:	e8 44 f3 ff ff       	call   0x40ea50
40f70c:	85 c0                	test   %eax,%eax
40f70e:	0f 85 a6 00 00 00    	jne    0x40f7ba
40f714:	8b 45 08             	mov    0x8(%ebp),%eax
40f717:	0f b7 54 48 04       	movzwl 0x4(%eax,%ecx,2),%edx
40f71c:	33 c0                	xor    %eax,%eax
40f71e:	66 85 d2             	test   %dx,%dx
40f721:	74 35                	je     0x40f758
40f723:	8b 45 08             	mov    0x8(%ebp),%eax
40f726:	66 89 55 dc          	mov    %dx,-0x24(%ebp)
40f72a:	0f b7 94 48 04 02 00 	movzwl 0x204(%eax,%ecx,2),%edx
40f731:	00
40f732:	33 c0                	xor    %eax,%eax
40f734:	40                   	inc    %eax
40f735:	66 85 d2             	test   %dx,%dx
40f738:	74 1e                	je     0x40f758
40f73a:	8b 45 08             	mov    0x8(%ebp),%eax
40f73d:	66 89 55 de          	mov    %dx,-0x22(%ebp)
40f741:	6a 02                	push   $0x2
40f743:	0f b7 8c 48 04 04 00 	movzwl 0x404(%eax,%ecx,2),%ecx
40f74a:	00
40f74b:	58                   	pop    %eax
40f74c:	66 85 c9             	test   %cx,%cx
40f74f:	74 07                	je     0x40f758
40f751:	6a 03                	push   $0x3
40f753:	66 89 4d e0          	mov    %cx,-0x20(%ebp)
40f757:	58                   	pop    %eax
40f758:	83 e8 00             	sub    $0x0,%eax
40f75b:	74 1a                	je     0x40f777
40f75d:	83 e8 01             	sub    $0x1,%eax
40f760:	74 0c                	je     0x40f76e
40f762:	83 e8 01             	sub    $0x1,%eax
40f765:	74 17                	je     0x40f77e
40f767:	83 e8 01             	sub    $0x1,%eax
40f76a:	75 37                	jne    0x40f7a3
40f76c:	eb 19                	jmp    0x40f787
40f76e:	c7 45 de 00 30 00 30 	movl   $0x30003000,-0x22(%ebp)
40f775:	eb 10                	jmp    0x40f787
40f777:	c7 45 dc 00 30 00 30 	movl   $0x30003000,-0x24(%ebp)
40f77e:	b8 00 30 00 00       	mov    $0x3000,%eax
40f783:	66 89 45 e0          	mov    %ax,-0x20(%ebp)
40f787:	6b 83 40 01 00 00 05 	imul   $0x5,0x140(%ebx),%eax
40f78e:	03 c7                	add    %edi,%eax
40f790:	c1 e0 04             	shl    $0x4,%eax
40f793:	03 c6                	add    %esi,%eax
40f795:	c1 e0 05             	shl    $0x5,%eax
40f798:	66 8b 80 46 57 41 00 	mov    0x415746(%eax),%ax
40f79f:	66 89 45 e2          	mov    %ax,-0x1e(%ebp)
40f7a3:	8b 4d d8             	mov    -0x28(%ebp),%ecx
40f7a6:	8d 55 dc             	lea    -0x24(%ebp),%edx
40f7a9:	33 c0                	xor    %eax,%eax
40f7ab:	66 89 45 e4          	mov    %ax,-0x1c(%ebp)
40f7af:	8b 0c 8b             	mov    (%ebx,%ecx,4),%ecx
40f7b2:	e8 b3 f1 ff ff       	call   0x40e96a
40f7b7:	8b 55 d4             	mov    -0x2c(%ebp),%edx
40f7ba:	ff 45 d8             	incl   -0x28(%ebp)
40f7bd:	8b 45 cc             	mov    -0x34(%ebp),%eax
40f7c0:	46                   	inc    %esi
40f7c1:	83 c2 04             	add    $0x4,%edx
40f7c4:	89 55 d4             	mov    %edx,-0x2c(%ebp)
40f7c7:	83 fe 10             	cmp    $0x10,%esi
40f7ca:	0f 8c 21 ff ff ff    	jl     0x40f6f1
40f7d0:	8b 5d d0             	mov    -0x30(%ebp),%ebx
40f7d3:	83 c0 10             	add    $0x10,%eax
40f7d6:	83 c3 40             	add    $0x40,%ebx
40f7d9:	89 45 cc             	mov    %eax,-0x34(%ebp)
40f7dc:	47                   	inc    %edi
40f7dd:	89 5d d0             	mov    %ebx,-0x30(%ebp)
40f7e0:	81 fb 00 40 40 00    	cmp    $0x404000,%ebx
40f7e6:	0f 8c fb fe ff ff    	jl     0x40f6e7
40f7ec:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40f7ef:	5f                   	pop    %edi
40f7f0:	5e                   	pop    %esi
40f7f1:	33 cd                	xor    %ebp,%ecx
40f7f3:	5b                   	pop    %ebx
40f7f4:	e8 e7 40 00 00       	call   0x4138e0
40f7f9:	c9                   	leave
40f7fa:	c2 04 00             	ret    $0x4
40f7fd:	8b ff                	mov    %edi,%edi
40f7ff:	55                   	push   %ebp
40f800:	8b ec                	mov    %esp,%ebp
40f802:	51                   	push   %ecx
40f803:	53                   	push   %ebx
40f804:	56                   	push   %esi
40f805:	57                   	push   %edi
40f806:	89 4d fc             	mov    %ecx,-0x4(%ebp)
40f809:	33 f6                	xor    %esi,%esi
40f80b:	bf 70 3e 40 00       	mov    $0x403e70,%edi
40f810:	ba c0 3e 40 00       	mov    $0x403ec0,%edx
40f815:	33 c9                	xor    %ecx,%ecx
40f817:	8b da                	mov    %edx,%ebx
40f819:	83 3b 08             	cmpl   $0x8,(%ebx)
40f81c:	74 19                	je     0x40f837
40f81e:	83 3b 06             	cmpl   $0x6,(%ebx)
40f821:	7d 0b                	jge    0x40f82e
40f823:	0f b6 04 0f          	movzbl (%edi,%ecx,1),%eax
40f827:	66 3b 45 08          	cmp    0x8(%ebp),%ax
40f82b:	74 21                	je     0x40f84e
40f82d:	46                   	inc    %esi
40f82e:	41                   	inc    %ecx
40f82f:	83 c3 04             	add    $0x4,%ebx
40f832:	83 f9 10             	cmp    $0x10,%ecx
40f835:	7c e2                	jl     0x40f819
40f837:	83 c2 40             	add    $0x40,%edx
40f83a:	83 c7 10             	add    $0x10,%edi
40f83d:	81 fa 00 40 40 00    	cmp    $0x404000,%edx
40f843:	7c d0                	jl     0x40f815
40f845:	33 c0                	xor    %eax,%eax
40f847:	5f                   	pop    %edi
40f848:	5e                   	pop    %esi
40f849:	5b                   	pop    %ebx
40f84a:	c9                   	leave
40f84b:	c2 04 00             	ret    $0x4
40f84e:	8b 45 fc             	mov    -0x4(%ebp),%eax
40f851:	8b 04 b0             	mov    (%eax,%esi,4),%eax
40f854:	eb f1                	jmp    0x40f847
40f856:	8b ff                	mov    %edi,%edi
40f858:	55                   	push   %ebp
40f859:	8b ec                	mov    %esp,%ebp
40f85b:	6a ff                	push   $0xffffffff
40f85d:	ff 75 08             	push   0x8(%ebp)
40f860:	52                   	push   %edx
40f861:	51                   	push   %ecx
40f862:	ff 15 e8 b2 41 00    	call   *0x41b2e8
40f868:	83 c4 10             	add    $0x10,%esp
40f86b:	83 f8 50             	cmp    $0x50,%eax
40f86e:	75 07                	jne    0x40f877
40f870:	b8 7a 00 07 80       	mov    $0x8007007a,%eax
40f875:	eb 02                	jmp    0x40f879
40f877:	33 c0                	xor    %eax,%eax
40f879:	5d                   	pop    %ebp
40f87a:	c2 04 00             	ret    $0x4
40f87d:	0f b6 c1             	movzbl %cl,%eax
40f880:	ba 0a ff 00 00       	mov    $0xff0a,%edx
40f885:	80 f9 25             	cmp    $0x25,%cl
40f888:	73 0d                	jae    0x40f897
40f88a:	b9 05 31 00 00       	mov    $0x3105,%ecx
40f88f:	66 03 c1             	add    %cx,%ax
40f892:	0f b7 d0             	movzwl %ax,%edx
40f895:	eb 2e                	jmp    0x40f8c5
40f897:	83 e8 25             	sub    $0x25,%eax
40f89a:	74 24                	je     0x40f8c0
40f89c:	83 e8 01             	sub    $0x1,%eax
40f89f:	74 18                	je     0x40f8b9
40f8a1:	83 e8 01             	sub    $0x1,%eax
40f8a4:	74 0c                	je     0x40f8b2
40f8a6:	83 e8 01             	sub    $0x1,%eax
40f8a9:	75 1a                	jne    0x40f8c5
40f8ab:	ba d9 02 00 00       	mov    $0x2d9,%edx
40f8b0:	eb 13                	jmp    0x40f8c5
40f8b2:	ba cb 02 00 00       	mov    $0x2cb,%edx
40f8b7:	eb 0c                	jmp    0x40f8c5
40f8b9:	ba c7 02 00 00       	mov    $0x2c7,%edx
40f8be:	eb 05                	jmp    0x40f8c5
40f8c0:	ba ca 02 00 00       	mov    $0x2ca,%edx
40f8c5:	66 8b c2             	mov    %dx,%ax
40f8c8:	c3                   	ret
40f8c9:	8b ff                	mov    %edi,%edi
40f8cb:	55                   	push   %ebp
40f8cc:	8b ec                	mov    %esp,%ebp
40f8ce:	83 ec 24             	sub    $0x24,%esp
40f8d1:	56                   	push   %esi
40f8d2:	57                   	push   %edi
40f8d3:	33 ff                	xor    %edi,%edi
40f8d5:	89 7d f8             	mov    %edi,-0x8(%ebp)
40f8d8:	85 c9                	test   %ecx,%ecx
40f8da:	0f 84 92 00 00 00    	je     0x40f972
40f8e0:	8b 75 08             	mov    0x8(%ebp),%esi
40f8e3:	85 f6                	test   %esi,%esi
40f8e5:	0f 84 87 00 00 00    	je     0x40f972
40f8eb:	53                   	push   %ebx
40f8ec:	8d 45 f8             	lea    -0x8(%ebp),%eax
40f8ef:	89 3e                	mov    %edi,(%esi)
40f8f1:	50                   	push   %eax
40f8f2:	57                   	push   %edi
40f8f3:	52                   	push   %edx
40f8f4:	51                   	push   %ecx
40f8f5:	57                   	push   %edi
40f8f6:	57                   	push   %edi
40f8f7:	ff 15 9c b1 41 00    	call   *0x41b19c
40f8fd:	33 db                	xor    %ebx,%ebx
40f8ff:	89 45 fc             	mov    %eax,-0x4(%ebp)
40f902:	43                   	inc    %ebx
40f903:	85 c0                	test   %eax,%eax
40f905:	74 66                	je     0x40f96d
40f907:	56                   	push   %esi
40f908:	50                   	push   %eax
40f909:	eb 4f                	jmp    0x40f95a
40f90b:	81 3e 03 01 00 00    	cmpl   $0x103,(%esi)
40f911:	75 51                	jne    0x40f964
40f913:	6a 40                	push   $0x40
40f915:	6a ff                	push   $0xffffffff
40f917:	57                   	push   %edi
40f918:	8d 45 fc             	lea    -0x4(%ebp),%eax
40f91b:	50                   	push   %eax
40f91c:	53                   	push   %ebx
40f91d:	ff 15 a0 b2 41 00    	call   *0x41b2a0
40f923:	3b c3                	cmp    %ebx,%eax
40f925:	75 3d                	jne    0x40f964
40f927:	eb 14                	jmp    0x40f93d
40f929:	8d 45 dc             	lea    -0x24(%ebp),%eax
40f92c:	50                   	push   %eax
40f92d:	ff 15 90 b2 41 00    	call   *0x41b290
40f933:	8d 45 dc             	lea    -0x24(%ebp),%eax
40f936:	50                   	push   %eax
40f937:	ff 15 8c b2 41 00    	call   *0x41b28c
40f93d:	53                   	push   %ebx
40f93e:	57                   	push   %edi
40f93f:	57                   	push   %edi
40f940:	57                   	push   %edi
40f941:	8d 45 dc             	lea    -0x24(%ebp),%eax
40f944:	50                   	push   %eax
40f945:	ff 15 70 b2 41 00    	call   *0x41b270
40f94b:	85 c0                	test   %eax,%eax
40f94d:	75 da                	jne    0x40f929
40f94f:	57                   	push   %edi
40f950:	ff 15 a4 b1 41 00    	call   *0x41b1a4
40f956:	56                   	push   %esi
40f957:	ff 75 fc             	push   -0x4(%ebp)
40f95a:	ff 15 a0 b1 41 00    	call   *0x41b1a0
40f960:	85 c0                	test   %eax,%eax
40f962:	75 a7                	jne    0x40f90b
40f964:	ff 75 fc             	push   -0x4(%ebp)
40f967:	ff 15 54 b1 41 00    	call   *0x41b154
40f96d:	8b c3                	mov    %ebx,%eax
40f96f:	5b                   	pop    %ebx
40f970:	eb 02                	jmp    0x40f974
40f972:	33 c0                	xor    %eax,%eax
40f974:	5f                   	pop    %edi
40f975:	5e                   	pop    %esi
40f976:	c9                   	leave
40f977:	c2 04 00             	ret    $0x4
40f97a:	8b ff                	mov    %edi,%edi
40f97c:	55                   	push   %ebp
40f97d:	8b ec                	mov    %esp,%ebp
40f97f:	51                   	push   %ecx
40f980:	66 a1 1c a3 41 00    	mov    0x41a31c,%ax
40f986:	33 c9                	xor    %ecx,%ecx
40f988:	66 3b c8             	cmp    %ax,%cx
40f98b:	75 56                	jne    0x40f9e3
40f98d:	21 4d fc             	and    %ecx,-0x4(%ebp)
40f990:	8d 45 fc             	lea    -0x4(%ebp),%eax
40f993:	50                   	push   %eax
40f994:	68 5a 01 00 00       	push   $0x15a
40f999:	e8 2b 34 00 00       	call   0x412dc9
40f99e:	8b 45 fc             	mov    -0x4(%ebp),%eax
40f9a1:	b9 ff ff 00 00       	mov    $0xffff,%ecx
40f9a6:	66 a3 1c a3 41 00    	mov    %ax,0x41a31c
40f9ac:	66 3b c8             	cmp    %ax,%cx
40f9af:	75 32                	jne    0x40f9e3
40f9b1:	ff 15 a8 b1 41 00    	call   *0x41b1a8
40f9b7:	ba 04 04 00 00       	mov    $0x404,%edx
40f9bc:	66 3b d0             	cmp    %ax,%dx
40f9bf:	74 19                	je     0x40f9da
40f9c1:	b9 04 0c 00 00       	mov    $0xc04,%ecx
40f9c6:	66 3b c8             	cmp    %ax,%cx