40f739:	83 c1 02             	add    $0x2,%ecx
40f73c:	66 85 c0             	test   %ax,%ax
40f73f:	75 f5                	jne    0x40f736
40f741:	2b ca                	sub    %edx,%ecx
40f743:	d1 f9                	sar    $1,%ecx
40f745:	8d 79 04             	lea    0x4(%ecx),%edi
40f748:	85 f6                	test   %esi,%esi
40f74a:	0f 85 0d 03 00 00    	jne    0x40fa5d
40f750:	8d 0c 3f             	lea    (%edi,%edi,1),%ecx
40f753:	e8 78 e5 ff ff       	call   0x40dcd0
40f758:	8b f0                	mov    %eax,%esi
40f75a:	85 f6                	test   %esi,%esi
40f75c:	0f 84 07 ec 00 00    	je     0x41e369
40f762:	8b 44 24 14          	mov    0x14(%esp),%eax
40f766:	85 c0                	test   %eax,%eax
40f768:	74 2a                	je     0x40f794
40f76a:	68 30 24 40 00       	push   $0x402430
40f76f:	8b d7                	mov    %edi,%edx
40f771:	8b ce                	mov    %esi,%ecx
40f773:	e8 c8 04 00 00       	call   0x40fc40
40f778:	53                   	push   %ebx
40f779:	8b d7                	mov    %edi,%edx
40f77b:	8b ce                	mov    %esi,%ecx
40f77d:	e8 be 04 00 00       	call   0x40fc40
40f782:	68 30 24 40 00       	push   $0x402430
40f787:	8b d7                	mov    %edi,%edx
40f789:	8b ce                	mov    %esi,%ecx
40f78b:	e8 b0 04 00 00       	call   0x40fc40
40f790:	8b 44 24 14          	mov    0x14(%esp),%eax
40f794:	83 7c 24 18 00       	cmpl   $0x0,0x18(%esp)
40f799:	0f 84 16 03 00 00    	je     0x40fab5
40f79f:	8b ce                	mov    %esi,%ecx
40f7a1:	e8 ba 13 00 00       	call   0x410b60
40f7a6:	6a 01                	push   $0x1
40f7a8:	ba 2c 24 40 00       	mov    $0x40242c,%edx
40f7ad:	8b ce                	mov    %esi,%ecx
40f7af:	e8 7c c4 ff ff       	call   0x40bc30
40f7b4:	8b 54 24 24          	mov    0x24(%esp),%edx
40f7b8:	8b f8                	mov    %eax,%edi
40f7ba:	89 7c 24 14          	mov    %edi,0x14(%esp)
40f7be:	8d 72 02             	lea    0x2(%edx),%esi
40f7c1:	66 8b 0a             	mov    (%edx),%cx
40f7c4:	83 c2 02             	add    $0x2,%edx
40f7c7:	66 85 c9             	test   %cx,%cx
40f7ca:	75 f5                	jne    0x40f7c1
40f7cc:	2b d6                	sub    %esi,%edx
40f7ce:	d1 fa                	sar    $1,%edx
40f7d0:	8d 42 01             	lea    0x1(%edx),%eax
40f7d3:	89 44 24 28          	mov    %eax,0x28(%esp)
40f7d7:	38 0d 55 67 43 00    	cmp    %cl,0x436755
40f7dd:	0f 84 0f ec 00 00    	je     0x41e3f2
40f7e3:	b9 f0 24 40 00       	mov    $0x4024f0,%ecx
40f7e8:	e8 41 f4 ff ff       	call   0x40ec2e
40f7ed:	8b f0                	mov    %eax,%esi
40f7ef:	85 f6                	test   %esi,%esi
40f7f1:	0f 84 fb eb 00 00    	je     0x41e3f2
40f7f7:	8b ce                	mov    %esi,%ecx
40f7f9:	e8 62 13 00 00       	call   0x410b60
40f7fe:	6a 01                	push   $0x1
40f800:	ba 2c 24 40 00       	mov    $0x40242c,%edx
40f805:	8b ce                	mov    %esi,%ecx
40f807:	e8 24 c4 ff ff       	call   0x40bc30
40f80c:	89 44 24 2c          	mov    %eax,0x2c(%esp)
40f810:	eb 64                	jmp    0x40f876
40f812:	83 7c 24 18 00       	cmpl   $0x0,0x18(%esp)
40f817:	0f 85 fb 03 00 00    	jne    0x40fc18
40f81d:	a1 a8 67 43 00       	mov    0x4367a8,%eax
40f822:	83 f8 02             	cmp    $0x2,%eax
40f825:	0f 85 f0 eb 00 00    	jne    0x41e41b
40f82b:	ba 2a 00 00 00       	mov    $0x2a,%edx
40f830:	8b cb                	mov    %ebx,%ecx
40f832:	e8 f8 ad ff ff       	call   0x40a62f
40f837:	85 c0                	test   %eax,%eax
40f839:	0f 85 94 03 00 00    	jne    0x40fbd3
40f83f:	8d 50 3f             	lea    0x3f(%eax),%edx
40f842:	8b cb                	mov    %ebx,%ecx
40f844:	e8 e6 ad ff ff       	call   0x40a62f
40f849:	85 c0                	test   %eax,%eax
40f84b:	0f 85 82 03 00 00    	jne    0x40fbd3
40f851:	8b 5c 24 2c          	mov    0x2c(%esp),%ebx
40f855:	8b fb                	mov    %ebx,%edi
40f857:	8b 55 08             	mov    0x8(%ebp),%edx
40f85a:	8b 4c 24 10          	mov    0x10(%esp),%ecx
40f85e:	50                   	push   %eax
40f85f:	68 bc 24 40 00       	push   $0x4024bc
40f864:	56                   	push   %esi
40f865:	e8 98 9b ff ff       	call   0x409402
40f86a:	85 c0                	test   %eax,%eax
40f86c:	0f 85 b2 02 00 00    	jne    0x40fb24
40f872:	8b 7c 24 14          	mov    0x14(%esp),%edi
40f876:	8b f7                	mov    %edi,%esi
40f878:	8d 4e 02             	lea    0x2(%esi),%ecx
40f87b:	eb 03                	jmp    0x40f880
40f87d:	8d 49 00             	lea    0x0(%ecx),%ecx
40f880:	66 8b 06             	mov    (%esi),%ax
40f883:	83 c6 02             	add    $0x2,%esi
40f886:	66 85 c0             	test   %ax,%ax
40f889:	75 f5                	jne    0x40f880
40f88b:	2b f1                	sub    %ecx,%esi
40f88d:	8b cf                	mov    %edi,%ecx
40f88f:	d1 fe                	sar    $1,%esi
40f891:	8d 5e 01             	lea    0x1(%esi),%ebx
40f894:	89 5c 24 1c          	mov    %ebx,0x1c(%esp)
40f898:	e8 c3 07 00 00       	call   0x410060
40f89d:	50                   	push   %eax
40f89e:	8b d3                	mov    %ebx,%edx
40f8a0:	8b cf                	mov    %edi,%ecx
40f8a2:	e8 f9 fa ff ff       	call   0x40f3a0
40f8a7:	8b d7                	mov    %edi,%edx
40f8a9:	8d 4a 02             	lea    0x2(%edx),%ecx
40f8ac:	8d 64 24 00          	lea    0x0(%esp),%esp
40f8b0:	66 8b 02             	mov    (%edx),%ax
40f8b3:	83 c2 02             	add    $0x2,%edx
40f8b6:	66 85 c0             	test   %ax,%ax
40f8b9:	75 f5                	jne    0x40f8b0
40f8bb:	2b d1                	sub    %ecx,%edx
40f8bd:	8b c7                	mov    %edi,%eax
40f8bf:	0f b7 0f             	movzwl (%edi),%ecx
40f8c2:	d1 fa                	sar    $1,%edx
40f8c4:	8b d9                	mov    %ecx,%ebx
40f8c6:	89 5c 24 20          	mov    %ebx,0x20(%esp)
40f8ca:	8b f9                	mov    %ecx,%edi
40f8cc:	66 85 c9             	test   %cx,%cx
40f8cf:	74 0e                	je     0x40f8df
40f8d1:	8b c8                	mov    %eax,%ecx
40f8d3:	83 c0 02             	add    $0x2,%eax
40f8d6:	66 83 38 00          	cmpw   $0x0,(%eax)
40f8da:	75 f5                	jne    0x40f8d1
40f8dc:	0f b7 39             	movzwl (%ecx),%edi
40f8df:	0f b7 df             	movzwl %di,%ebx
40f8e2:	66 83 ff 5c          	cmp    $0x5c,%di
40f8e6:	74 05                	je     0x40f8ed
40f8e8:	8b 74 24 1c          	mov    0x1c(%esp),%esi
40f8ec:	42                   	inc    %edx
40f8ed:	66 83 7c 24 20 00    	cmpw   $0x0,0x20(%esp)
40f8f3:	0f 84 d3 02 00 00    	je     0x40fbcc
40f8f9:	8b 44 24 28          	mov    0x28(%esp),%eax
40f8fd:	03 c2                	add    %edx,%eax
40f8ff:	89 44 24 20          	mov    %eax,0x20(%esp)
40f903:	3d e7 7f 00 00       	cmp    $0x7fe7,%eax
40f908:	0f 87 ee ea 00 00    	ja     0x41e3fc
40f90e:	8b 7c 24 14          	mov    0x14(%esp),%edi
40f912:	8b 55 08             	mov    0x8(%ebp),%edx
40f915:	8b 4c 24 10          	mov    0x10(%esp),%ecx
40f919:	57                   	push   %edi
40f91a:	e8 81 fa ff ff       	call   0x40f3a0
40f91f:	83 fb 5c             	cmp    $0x5c,%ebx
40f922:	0f 84 ba 01 00 00    	je     0x40fae2
40f928:	8d 3c 77             	lea    (%edi,%esi,2),%edi
40f92b:	8b 75 08             	mov    0x8(%ebp),%esi
40f92e:	89 7c 24 14          	mov    %edi,0x14(%esp)
40f932:	83 fb 5c             	cmp    $0x5c,%ebx
40f935:	74 13                	je     0x40f94a
40f937:	8b 4c 24 10          	mov    0x10(%esp),%ecx
40f93b:	8d 84 24 4c 02 00 00 	lea    0x24c(%esp),%eax
40f942:	50                   	push   %eax
40f943:	8b d6                	mov    %esi,%edx
40f945:	e8 f6 02 00 00       	call   0x40fc40
40f94a:	8b 5c 24 24          	mov    0x24(%esp),%ebx
40f94e:	8b d6                	mov    %esi,%edx
40f950:	8b 4c 24 10          	mov    0x10(%esp),%ecx
40f954:	53                   	push   %ebx
40f955:	e8 e6 02 00 00       	call   0x40fc40
40f95a:	8b 4c 24 10          	mov    0x10(%esp),%ecx
40f95e:	e8 fd 06 00 00       	call   0x410060
40f963:	8b 4c 24 10          	mov    0x10(%esp),%ecx
40f967:	8b d6                	mov    %esi,%edx
40f969:	50                   	push   %eax
40f96a:	e8 31 fa ff ff       	call   0x40f3a0
40f96f:	8b 54 24 10          	mov    0x10(%esp),%edx
40f973:	8b f2                	mov    %edx,%esi
40f975:	8d 4e 02             	lea    0x2(%esi),%ecx
40f978:	eb 06                	jmp    0x40f980
40f97a:	8d 9b 00 00 00 00    	lea    0x0(%ebx),%ebx
40f980:	66 8b 06             	mov    (%esi),%ax
40f983:	83 c6 02             	add    $0x2,%esi
40f986:	66 85 c0             	test   %ax,%ax
40f989:	75 f5                	jne    0x40f980
40f98b:	2b f1                	sub    %ecx,%esi
40f98d:	d1 fe                	sar    $1,%esi
40f98f:	66 83 7a 02 3a       	cmpw   $0x3a,0x2(%edx)
40f994:	75 10                	jne    0x40f9a6
40f996:	66 8b 0a             	mov    (%edx),%cx
40f999:	e8 74 11 00 00       	call   0x410b12
40f99e:	85 c0                	test   %eax,%eax
40f9a0:	0f 84 d0 fe ff ff    	je     0x40f876
40f9a6:	ba 2e 00 00 00       	mov    $0x2e,%edx
40f9ab:	8b cb                	mov    %ebx,%ecx
40f9ad:	e8 43 08 00 00       	call   0x4101f5
40f9b2:	85 c0                	test   %eax,%eax
40f9b4:	0f 84 71 fe ff ff    	je     0x40f82b
40f9ba:	66 83 78 02 00       	cmpw   $0x0,0x2(%eax)
40f9bf:	0f 84 66 fe ff ff    	je     0x40f82b
40f9c5:	8b 55 08             	mov    0x8(%ebp),%edx
40f9c8:	8b 4c 24 10          	mov    0x10(%esp),%ecx
40f9cc:	6a 01                	push   $0x1
40f9ce:	e8 f1 a1 ff ff       	call   0x409bc4
40f9d3:	85 c0                	test   %eax,%eax
40f9d5:	0f 84 37 fe ff ff    	je     0x40f812
40f9db:	8b 4c 24 10          	mov    0x10(%esp),%ecx
40f9df:	ba 2e 00 00 00       	mov    $0x2e,%edx
40f9e4:	e8 0c 08 00 00       	call   0x4101f5
40f9e9:	8b f8                	mov    %eax,%edi
40f9eb:	85 ff                	test   %edi,%edi
40f9ed:	0f 84 1f ea 00 00    	je     0x41e412
40f9f3:	68 80 25 40 00       	push   $0x402580
40f9f8:	57                   	push   %edi
40f9f9:	ff 15 40 a4 44 00    	call   *0x44a440
40f9ff:	83 c4 08             	add    $0x8,%esp
40fa02:	85 c0                	test   %eax,%eax
40fa04:	0f 84 de 00 00 00    	je     0x40fae8
40fa0a:	68 bc 25 40 00       	push   $0x4025bc
40fa0f:	57                   	push   %edi
40fa10:	ff 15 40 a4 44 00    	call   *0x44a440
40fa16:	83 c4 08             	add    $0x8,%esp
40fa19:	85 c0                	test   %eax,%eax
40fa1b:	8b 84 24 38 02 00 00 	mov    0x238(%esp),%eax
40fa22:	c7 84 24 38 02 00 00 	movl   $0x0,0x238(%esp)
40fa29:	00 00 00 00
40fa2d:	0f 84 02 ea 00 00    	je     0x41e435
40fa33:	85 c0                	test   %eax,%eax
40fa35:	74 0a                	je     0x40fa41
40fa37:	50                   	push   %eax
40fa38:	ff 15 e0 a3 44 00    	call   *0x44a3e0
40fa3e:	83 c4 04             	add    $0x4,%esp
40fa41:	b8 01 00 00 00       	mov    $0x1,%eax
40fa46:	5f                   	pop    %edi
40fa47:	5e                   	pop    %esi
40fa48:	5b                   	pop    %ebx
40fa49:	8b 8c 24 48 02 00 00 	mov    0x248(%esp),%ecx
40fa50:	33 cc                	xor    %esp,%ecx
40fa52:	e8 d9 70 00 00       	call   0x416b30
40fa57:	8b e5                	mov    %ebp,%esp
40fa59:	5d                   	pop    %ebp
40fa5a:	c2 04 00             	ret    $0x4
40fa5d:	8b ce                	mov    %esi,%ecx
40fa5f:	8d 51 02             	lea    0x2(%ecx),%edx
40fa62:	66 8b 01             	mov    (%ecx),%ax
40fa65:	83 c1 02             	add    $0x2,%ecx
40fa68:	66 85 c0             	test   %ax,%ax
40fa6b:	75 f5                	jne    0x40fa62
40fa6d:	2b ca                	sub    %edx,%ecx
40fa6f:	d1 f9                	sar    $1,%ecx
40fa71:	03 f9                	add    %ecx,%edi
40fa73:	e9 d8 fc ff ff       	jmp    0x40f750
40fa78:	8b b4 24 38 02 00 00 	mov    0x238(%esp),%esi
40fa7f:	33 c0                	xor    %eax,%eax
40fa81:	c7 44 24 18 00 00 00 	movl   $0x0,0x18(%esp)
40fa88:	00
40fa89:	66 89 84 24 4e 02 00 	mov    %ax,0x24e(%esp)
40fa90:	00
40fa91:	85 f6                	test   %esi,%esi
40fa93:	0f 84 c0 e8 00 00    	je     0x41e359
40fa99:	8b fe                	mov    %esi,%edi
40fa9b:	e9 e8 fa ff ff       	jmp    0x40f588
40faa0:	b9 00 25 40 00       	mov    $0x402500,%ecx
40faa5:	e8 84 f1 ff ff       	call   0x40ec2e
40faaa:	8b f0                	mov    %eax,%esi
40faac:	89 74 24 1c          	mov    %esi,0x1c(%esp)
40fab0:	e9 66 fc ff ff       	jmp    0x40f71b
40fab5:	8b 5c 24 1c          	mov    0x1c(%esp),%ebx
40fab9:	85 db                	test   %ebx,%ebx
40fabb:	0f 84 de fc ff ff    	je     0x40f79f
40fac1:	85 c0                	test   %eax,%eax
40fac3:	74 0e                	je     0x40fad3
40fac5:	68 2c 24 40 00       	push   $0x40242c
40faca:	8b d7                	mov    %edi,%edx
40facc:	8b ce                	mov    %esi,%ecx
40face:	e8 6d 01 00 00       	call   0x40fc40
40fad3:	53                   	push   %ebx
40fad4:	8b d7                	mov    %edi,%edx
40fad6:	8b ce                	mov    %esi,%ecx
40fad8:	e8 63 01 00 00       	call   0x40fc40
40fadd:	e9 bd fc ff ff       	jmp    0x40f79f
40fae2:	46                   	inc    %esi
40fae3:	e9 40 fe ff ff       	jmp    0x40f928
40fae8:	8b 84 24 38 02 00 00 	mov    0x238(%esp),%eax
40faef:	c7 84 24 38 02 00 00 	movl   $0x0,0x238(%esp)
40faf6:	00 00 00 00
40fafa:	85 c0                	test   %eax,%eax
40fafc:	74 0a                	je     0x40fb08
40fafe:	50                   	push   %eax
40faff:	ff 15 e0 a3 44 00    	call   *0x44a3e0
40fb05:	83 c4 04             	add    $0x4,%esp
40fb08:	8b 8c 24 54 02 00 00 	mov    0x254(%esp),%ecx
40fb0f:	b8 02 00 00 00       	mov    $0x2,%eax
40fb14:	5f                   	pop    %edi
40fb15:	5e                   	pop    %esi
40fb16:	5b                   	pop    %ebx
40fb17:	33 cc                	xor    %esp,%ecx
40fb19:	e8 12 70 00 00       	call   0x416b30
40fb1e:	8b e5                	mov    %ebp,%esp
40fb20:	5d                   	pop    %ebp
40fb21:	c2 04 00             	ret    $0x4
40fb24:	66 83 3b 00          	cmpw   $0x0,(%ebx)
40fb28:	0f 84 44 fd ff ff    	je     0x40f872
40fb2e:	8b 5c 24 20          	mov    0x20(%esp),%ebx
40fb32:	8b cf                	mov    %edi,%ecx
40fb34:	8d 51 02             	lea    0x2(%ecx),%edx
40fb37:	66 8b 01             	mov    (%ecx),%ax
40fb3a:	83 c1 02             	add    $0x2,%ecx
40fb3d:	66 85 c0             	test   %ax,%ax
40fb40:	75 f5                	jne    0x40fb37
40fb42:	2b ca                	sub    %edx,%ecx
40fb44:	d1 f9                	sar    $1,%ecx
40fb46:	8d 04 19             	lea    (%ecx,%ebx,1),%eax
40fb49:	3d e7 7f 00 00       	cmp    $0x7fe7,%eax
40fb4e:	77 22                	ja     0x40fb72
40fb50:	8b 55 08             	mov    0x8(%ebp),%edx
40fb53:	8b 4c 24 10          	mov    0x10(%esp),%ecx
40fb57:	6a 01                	push   $0x1
40fb59:	57                   	push   %edi
40fb5a:	56                   	push   %esi
40fb5b:	e8 a2 98 ff ff       	call   0x409402
40fb60:	85 c0                	test   %eax,%eax
40fb62:	75 23                	jne    0x40fb87
40fb64:	a1 a8 67 43 00       	mov    0x4367a8,%eax
40fb69:	83 f8 02             	cmp    $0x2,%eax
40fb6c:	0f 85 b6 e8 00 00    	jne    0x41e428
40fb72:	0f b7 07             	movzwl (%edi),%eax
40fb75:	83 c7 02             	add    $0x2,%edi
40fb78:	66 85 c0             	test   %ax,%ax
40fb7b:	75 f5                	jne    0x40fb72
40fb7d:	66 39 07             	cmp    %ax,(%edi)
40fb80:	75 b0                	jne    0x40fb32
40fb82:	e9 eb fc ff ff       	jmp    0x40f872
40fb87:	68 bc 25 40 00       	push   $0x4025bc
40fb8c:	57                   	push   %edi
40fb8d:	ff 15 40 a4 44 00    	call   *0x44a440
40fb93:	83 c4 08             	add    $0x8,%esp
40fb96:	85 c0                	test   %eax,%eax
40fb98:	0f 84 a4 e8 00 00    	je     0x41e442
40fb9e:	68 80 25 40 00       	push   $0x402580
40fba3:	57                   	push   %edi
40fba4:	ff 15 40 a4 44 00    	call   *0x44a440
40fbaa:	83 c4 08             	add    $0x8,%esp
40fbad:	85 c0                	test   %eax,%eax
40fbaf:	0f 84 8d e8 00 00    	je     0x41e442
40fbb5:	8b 84 24 38 02 00 00 	mov    0x238(%esp),%eax
40fbbc:	c7 84 24 38 02 00 00 	movl   $0x0,0x238(%esp)
40fbc3:	00 00 00 00
40fbc7:	e9 67 fe ff ff       	jmp    0x40fa33
40fbcc:	83 7c 24 18 00       	cmpl   $0x0,0x18(%esp)
40fbd1:	75 58                	jne    0x40fc2b
40fbd3:	c7 05 a8 67 43 00 31 	movl   $0x2331,0x4367a8
40fbda:	23 00 00
40fbdd:	8b 84 24 38 02 00 00 	mov    0x238(%esp),%eax
40fbe4:	c7 84 24 38 02 00 00 	movl   $0x0,0x238(%esp)
40fbeb:	00 00 00 00
40fbef:	85 c0                	test   %eax,%eax