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
40f9c9:	74 0f                	je     0x40f9da
40f9cb:	b9 04 14 00 00       	mov    $0x1404,%ecx
40f9d0:	66 3b c8             	cmp    %ax,%cx
40f9d3:	74 05                	je     0x40f9da
40f9d5:	8d 42 05             	lea    0x5(%edx),%eax
40f9d8:	eb 03                	jmp    0x40f9dd
40f9da:	66 8b c2             	mov    %dx,%ax
40f9dd:	66 a3 1c a3 41 00    	mov    %ax,0x41a31c
40f9e3:	c9                   	leave
40f9e4:	c3                   	ret
40f9e5:	8b ff                	mov    %edi,%edi
40f9e7:	55                   	push   %ebp
40f9e8:	8b ec                	mov    %esp,%ebp
40f9ea:	51                   	push   %ecx
40f9eb:	8b c2                	mov    %edx,%eax
40f9ed:	53                   	push   %ebx
40f9ee:	56                   	push   %esi
40f9ef:	33 db                	xor    %ebx,%ebx
40f9f1:	89 45 fc             	mov    %eax,-0x4(%ebp)
40f9f4:	21 18                	and    %ebx,(%eax)
40f9f6:	8b f1                	mov    %ecx,%esi
40f9f8:	e8 7d ff ff ff       	call   0x40f97a
40f9fd:	0f b7 c0             	movzwl %ax,%eax
40fa00:	50                   	push   %eax
40fa01:	8b c6                	mov    %esi,%eax
40fa03:	c1 e8 04             	shr    $0x4,%eax
40fa06:	40                   	inc    %eax
40fa07:	0f b7 c0             	movzwl %ax,%eax
40fa0a:	50                   	push   %eax
40fa0b:	6a 06                	push   $0x6
40fa0d:	ff 35 18 a3 41 00    	push   0x41a318
40fa13:	ff 15 ac b1 41 00    	call   *0x41b1ac
40fa19:	85 c0                	test   %eax,%eax
40fa1b:	74 7d                	je     0x40fa9a
40fa1d:	50                   	push   %eax
40fa1e:	ff 35 18 a3 41 00    	push   0x41a318
40fa24:	ff 15 b0 b1 41 00    	call   *0x41b1b0
40fa2a:	85 c0                	test   %eax,%eax
40fa2c:	74 6c                	je     0x40fa9a
40fa2e:	57                   	push   %edi
40fa2f:	50                   	push   %eax
40fa30:	ff 15 b4 b1 41 00    	call   *0x41b1b4
40fa36:	8b f8                	mov    %eax,%edi
40fa38:	85 ff                	test   %edi,%edi
40fa3a:	74 5d                	je     0x40fa99
40fa3c:	83 e6 0f             	and    $0xf,%esi
40fa3f:	76 0e                	jbe    0x40fa4f
40fa41:	0f b7 07             	movzwl (%edi),%eax
40fa44:	8d 3c 47             	lea    (%edi,%eax,2),%edi
40fa47:	83 c7 02             	add    $0x2,%edi
40fa4a:	83 ee 01             	sub    $0x1,%esi
40fa4d:	75 f2                	jne    0x40fa41
40fa4f:	0f b7 1f             	movzwl (%edi),%ebx
40fa52:	85 db                	test   %ebx,%ebx
40fa54:	74 43                	je     0x40fa99
40fa56:	33 c9                	xor    %ecx,%ecx
40fa58:	8d 43 01             	lea    0x1(%ebx),%eax
40fa5b:	6a 02                	push   $0x2
40fa5d:	5a                   	pop    %edx
40fa5e:	f7 e2                	mul    %edx
40fa60:	0f 90 c1             	seto   %cl
40fa63:	f7 d9                	neg    %ecx
40fa65:	0b c8                	or     %eax,%ecx
40fa67:	51                   	push   %ecx
40fa68:	e8 1f 3b 00 00       	call   0x41358c
40fa6d:	59                   	pop    %ecx
40fa6e:	8b c8                	mov    %eax,%ecx
40fa70:	8b 45 fc             	mov    -0x4(%ebp),%eax
40fa73:	89 08                	mov    %ecx,(%eax)
40fa75:	85 c9                	test   %ecx,%ecx
40fa77:	74 1e                	je     0x40fa97
40fa79:	8d 34 1b             	lea    (%ebx,%ebx,1),%esi
40fa7c:	56                   	push   %esi
40fa7d:	8d 47 02             	lea    0x2(%edi),%eax
40fa80:	50                   	push   %eax
40fa81:	51                   	push   %ecx
40fa82:	e8 57 42 00 00       	call   0x413cde
40fa87:	8b 45 fc             	mov    -0x4(%ebp),%eax
40fa8a:	83 c4 0c             	add    $0xc,%esp
40fa8d:	33 c9                	xor    %ecx,%ecx
40fa8f:	8b 00                	mov    (%eax),%eax
40fa91:	66 89 0c 06          	mov    %cx,(%esi,%eax,1)
40fa95:	eb 02                	jmp    0x40fa99
40fa97:	33 db                	xor    %ebx,%ebx
40fa99:	5f                   	pop    %edi
40fa9a:	5e                   	pop    %esi
40fa9b:	8b c3                	mov    %ebx,%eax
40fa9d:	5b                   	pop    %ebx
40fa9e:	c9                   	leave
40fa9f:	c3                   	ret
40faa0:	8b ff                	mov    %edi,%edi
40faa2:	53                   	push   %ebx
40faa3:	56                   	push   %esi
40faa4:	57                   	push   %edi
40faa5:	8b f9                	mov    %ecx,%edi
40faa7:	33 db                	xor    %ebx,%ebx
40faa9:	66 8b f2             	mov    %dx,%si
40faac:	89 1f                	mov    %ebx,(%edi)
40faae:	e8 c7 fe ff ff       	call   0x40f97a
40fab3:	0f b7 c0             	movzwl %ax,%eax
40fab6:	50                   	push   %eax
40fab7:	0f b7 c6             	movzwl %si,%eax
40faba:	50                   	push   %eax
40fabb:	6a 05                	push   $0x5
40fabd:	ff 35 18 a3 41 00    	push   0x41a318
40fac3:	ff 15 ac b1 41 00    	call   *0x41b1ac
40fac9:	85 c0                	test   %eax,%eax
40facb:	74 1f                	je     0x40faec
40facd:	50                   	push   %eax
40face:	ff 35 18 a3 41 00    	push   0x41a318
40fad4:	ff 15 b0 b1 41 00    	call   *0x41b1b0
40fada:	85 c0                	test   %eax,%eax
40fadc:	74 0e                	je     0x40faec
40fade:	50                   	push   %eax
40fadf:	ff 15 b4 b1 41 00    	call   *0x41b1b4
40fae5:	85 c0                	test   %eax,%eax
40fae7:	89 07                	mov    %eax,(%edi)
40fae9:	0f 95 c3             	setne  %bl
40faec:	5f                   	pop    %edi
40faed:	5e                   	pop    %esi
40faee:	8b c3                	mov    %ebx,%eax
40faf0:	5b                   	pop    %ebx
40faf1:	c3                   	ret
40faf2:	cc                   	int3
40faf3:	cc                   	int3
40faf4:	cc                   	int3
40faf5:	cc                   	int3
40faf6:	cc                   	int3
40faf7:	cc                   	int3
40faf8:	cc                   	int3
40faf9:	cc                   	int3
40fafa:	cc                   	int3
40fafb:	cc                   	int3
40fafc:	cc                   	int3
40fafd:	cc                   	int3
40fafe:	cc                   	int3
40faff:	cc                   	int3
40fb00:	8b ff                	mov    %edi,%edi
40fb02:	55                   	push   %ebp
40fb03:	8b ec                	mov    %esp,%ebp
40fb05:	51                   	push   %ecx
40fb06:	53                   	push   %ebx
40fb07:	56                   	push   %esi
40fb08:	8b 75 14             	mov    0x14(%ebp),%esi
40fb0b:	33 db                	xor    %ebx,%ebx
40fb0d:	81 7d 0c 10 01 00 00 	cmpl   $0x110,0xc(%ebp)
40fb14:	57                   	push   %edi
40fb15:	8b 7d 08             	mov    0x8(%ebp),%edi
40fb18:	75 11                	jne    0x40fb2b
40fb1a:	85 f6                	test   %esi,%esi
40fb1c:	74 0d                	je     0x40fb2b
40fb1e:	56                   	push   %esi
40fb1f:	6a 08                	push   $0x8
40fb21:	57                   	push   %edi
40fb22:	ff 15 24 b2 41 00    	call   *0x41b224
40fb28:	89 7e 04             	mov    %edi,0x4(%esi)
40fb2b:	6a 08                	push   $0x8
40fb2d:	57                   	push   %edi
40fb2e:	ff 15 20 b2 41 00    	call   *0x41b220
40fb34:	89 45 fc             	mov    %eax,-0x4(%ebp)
40fb37:	85 c0                	test   %eax,%eax
40fb39:	74 41                	je     0x40fb7c
40fb3b:	8b 00                	mov    (%eax),%eax
40fb3d:	56                   	push   %esi
40fb3e:	ff 75 10             	push   0x10(%ebp)
40fb41:	8b 70 04             	mov    0x4(%eax),%esi
40fb44:	8b ce                	mov    %esi,%ecx
40fb46:	ff 75 0c             	push   0xc(%ebp)
40fb49:	ff 15 90 b3 41 00    	call   *0x41b390
40fb4f:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40fb52:	ff d6                	call   *%esi
40fb54:	83 7d 0c 4e          	cmpl   $0x4e,0xc(%ebp)
40fb58:	8b d8                	mov    %eax,%ebx
40fb5a:	75 05                	jne    0x40fb61
40fb5c:	53                   	push   %ebx