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
40fbf1:	74 0a                	je     0x40fbfd
40fbf3:	50                   	push   %eax
40fbf4:	ff 15 e0 a3 44 00    	call   *0x44a3e0
40fbfa:	83 c4 04             	add    $0x4,%esp
40fbfd:	33 c0                	xor    %eax,%eax
40fbff:	e9 42 fe ff ff       	jmp    0x40fa46
40fc04:	1b c0                	sbb    %eax,%eax
40fc06:	83 c8 01             	or     $0x1,%eax
40fc09:	e9 be f9 ff ff       	jmp    0x40f5cc
40fc0e:	1b c0                	sbb    %eax,%eax
40fc10:	83 c8 01             	or     $0x1,%eax
40fc13:	e9 f4 f9 ff ff       	jmp    0x40f60c
40fc18:	a1 a8 67 43 00       	mov    0x4367a8,%eax
40fc1d:	83 f8 05             	cmp    $0x5,%eax
40fc20:	0f 85 fc fb ff ff    	jne    0x40f822
40fc26:	e9 b0 fd ff ff       	jmp    0x40f9db
40fc2b:	a1 a8 67 43 00       	mov    0x4367a8,%eax
40fc30:	85 c0                	test   %eax,%eax
40fc32:	74 9f                	je     0x40fbd3
40fc34:	83 f8 02             	cmp    $0x2,%eax
40fc37:	74 9a                	je     0x40fbd3
40fc39:	eb a2                	jmp    0x40fbdd
40fc3b:	cc                   	int3
40fc3c:	cc                   	int3
40fc3d:	cc                   	int3
40fc3e:	cc                   	int3
40fc3f:	cc                   	int3
40fc40:	8b ff                	mov    %edi,%edi
40fc42:	55                   	push   %ebp
40fc43:	8b ec                	mov    %esp,%ebp
40fc45:	53                   	push   %ebx
40fc46:	56                   	push   %esi
40fc47:	57                   	push   %edi
40fc48:	8b fa                	mov    %edx,%edi
40fc4a:	8b d9                	mov    %ecx,%ebx
40fc4c:	33 d2                	xor    %edx,%edx
40fc4e:	85 ff                	test   %edi,%edi
40fc50:	0f 84 b5 e8 00 00    	je     0x41e50b
40fc56:	81 ff ff ff ff 7f    	cmp    $0x7fffffff,%edi
40fc5c:	0f 87 a9 e8 00 00    	ja     0x41e50b
40fc62:	85 d2                	test   %edx,%edx
40fc64:	78 1c                	js     0x40fc82
40fc66:	33 d2                	xor    %edx,%edx
40fc68:	8b cf                	mov    %edi,%ecx
40fc6a:	8b c3                	mov    %ebx,%eax
40fc6c:	85 ff                	test   %edi,%edi
40fc6e:	74 0d                	je     0x40fc7d
40fc70:	66 39 10             	cmp    %dx,(%eax)
40fc73:	74 11                	je     0x40fc86
40fc75:	83 c0 02             	add    $0x2,%eax
40fc78:	83 e9 01             	sub    $0x1,%ecx
40fc7b:	75 f3                	jne    0x40fc70
40fc7d:	ba 57 00 07 80       	mov    $0x80070057,%edx
40fc82:	33 f6                	xor    %esi,%esi
40fc84:	eb 08                	jmp    0x40fc8e
40fc86:	85 c9                	test   %ecx,%ecx
40fc88:	74 f3                	je     0x40fc7d
40fc8a:	8b f7                	mov    %edi,%esi
40fc8c:	2b f1                	sub    %ecx,%esi
40fc8e:	85 d2                	test   %edx,%edx
40fc90:	78 53                	js     0x40fce5
40fc92:	8b d7                	mov    %edi,%edx
40fc94:	8d 0c 73             	lea    (%ebx,%esi,2),%ecx
40fc97:	bb 00 00 00 00       	mov    $0x0,%ebx
40fc9c:	2b d6                	sub    %esi,%edx
40fc9e:	74 29                	je     0x40fcc9
40fca0:	8b c2                	mov    %edx,%eax
40fca2:	2b c7                	sub    %edi,%eax
40fca4:	8b 7d 08             	mov    0x8(%ebp),%edi
40fca7:	05 fe ff ff 7f       	add    $0x7ffffffe,%eax
40fcac:	03 c6                	add    %esi,%eax
40fcae:	2b f9                	sub    %ecx,%edi
40fcb0:	85 c0                	test   %eax,%eax
40fcb2:	74 1f                	je     0x40fcd3
40fcb4:	0f b7 34 0f          	movzwl (%edi,%ecx,1),%esi
40fcb8:	66 85 f6             	test   %si,%si
40fcbb:	74 16                	je     0x40fcd3
40fcbd:	66 89 31             	mov    %si,(%ecx)
40fcc0:	48                   	dec    %eax
40fcc1:	83 c1 02             	add    $0x2,%ecx
40fcc4:	83 ea 01             	sub    $0x1,%edx
40fcc7:	75 e7                	jne    0x40fcb0
40fcc9:	83 e9 02             	sub    $0x2,%ecx
40fccc:	bb 7a 00 07 80       	mov    $0x8007007a,%ebx
40fcd1:	eb 04                	jmp    0x40fcd7
40fcd3:	85 d2                	test   %edx,%edx
40fcd5:	74 f2                	je     0x40fcc9
40fcd7:	33 c0                	xor    %eax,%eax
40fcd9:	66 89 01             	mov    %ax,(%ecx)
40fcdc:	8b c3                	mov    %ebx,%eax
40fcde:	5f                   	pop    %edi
40fcdf:	5e                   	pop    %esi
40fce0:	5b                   	pop    %ebx
40fce1:	5d                   	pop    %ebp
40fce2:	c2 04 00             	ret    $0x4
40fce5:	8b c2                	mov    %edx,%eax
40fce7:	eb f5                	jmp    0x40fcde
40fce9:	68 c0 00 00 00       	push   $0xc0
40fcee:	68 30 ca 42 00       	push   $0x42ca30
40fcf3:	e8 98 80 00 00       	call   0x417d90
40fcf8:	8b fa                	mov    %edx,%edi
40fcfa:	8b f1                	mov    %ecx,%esi
40fcfc:	89 b5 44 ff ff ff    	mov    %esi,-0xbc(%ebp)
40fd02:	89 bd 3c ff ff ff    	mov    %edi,-0xc4(%ebp)
40fd08:	8b 45 0c             	mov    0xc(%ebp),%eax
40fd0b:	89 85 40 ff ff ff    	mov    %eax,-0xc0(%ebp)
40fd11:	89 85 48 ff ff ff    	mov    %eax,-0xb8(%ebp)
40fd17:	c7 85 4c ff ff ff 90 	movl   $0x90,-0xb4(%ebp)
40fd1e:	00 00 00
40fd21:	c7 85 50 ff ff ff 05 	movl   $0x5,-0xb0(%ebp)
40fd28:	00 00 00
40fd2b:	68 88 00 00 00       	push   $0x88
40fd30:	33 db                	xor    %ebx,%ebx
40fd32:	53                   	push   %ebx
40fd33:	8d 85 54 ff ff ff    	lea    -0xac(%ebp),%eax
40fd39:	50                   	push   %eax
40fd3a:	e8 7e 82 00 00       	call   0x417fbd
40fd3f:	83 c4 0c             	add    $0xc,%esp
40fd42:	89 9d 34 ff ff ff    	mov    %ebx,-0xcc(%ebp)
40fd48:	8b 0d 48 67 43 00    	mov    0x436748,%ecx
40fd4e:	89 59 30             	mov    %ebx,0x30(%ecx)
40fd51:	88 1d d2 e0 42 00    	mov    %bl,0x42e0d2
40fd57:	89 5d fc             	mov    %ebx,-0x4(%ebp)
40fd5a:	8b 85 40 ff ff ff    	mov    -0xc0(%ebp),%eax
40fd60:	89 85 54 ff ff ff    	mov    %eax,-0xac(%ebp)
40fd66:	6a 3a                	push   $0x3a
40fd68:	38 1d 55 67 43 00    	cmp    %bl,0x436755
40fd6e:	0f 84 a1 e7 00 00    	je     0x41e515
40fd74:	8b 46 38             	mov    0x38(%esi),%eax
40fd77:	5e                   	pop    %esi
40fd78:	66 39 30             	cmp    %si,(%eax)
40fd7b:	75 0e                	jne    0x40fd8b
40fd7d:	8b 81 10 01 00 00    	mov    0x110(%ecx),%eax
40fd83:	8b 00                	mov    (%eax),%eax
40fd85:	89 85 54 ff ff ff    	mov    %eax,-0xac(%ebp)
40fd8b:	e8 5f 75 00 00       	call   0x4172ef
40fd90:	84 c0                	test   %al,%al
40fd92:	0f 84 a9 e7 00 00    	je     0x41e541
40fd98:	89 9d 38 ff ff ff    	mov    %ebx,-0xc8(%ebp)
40fd9e:	8d 85 38 ff ff ff    	lea    -0xc8(%ebp),%eax
40fda4:	50                   	push   %eax
40fda5:	57                   	push   %edi
40fda6:	a1 48 67 43 00       	mov    0x436748,%eax
40fdab:	83 c0 30             	add    $0x30,%eax
40fdae:	50                   	push   %eax
40fdaf:	8d 85 34 ff ff ff    	lea    -0xcc(%ebp),%eax
40fdb5:	50                   	push   %eax
40fdb6:	8d 85 4c ff ff ff    	lea    -0xb4(%ebp),%eax
40fdbc:	50                   	push   %eax
40fdbd:	ff 15 10 d0 44 00    	call   *0x44d010
40fdc3:	33 c9                	xor    %ecx,%ecx
40fdc5:	41                   	inc    %ecx
40fdc6:	3b c1                	cmp    %ecx,%eax
40fdc8:	0f 84 4d e7 00 00    	je     0x41e51b
40fdce:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
40fdd5:	8b 95 40 ff ff ff    	mov    -0xc0(%ebp),%edx
40fddb:	88 0d d2 e0 42 00    	mov    %cl,0x42e0d2
40fde1:	8b 0d 48 67 43 00    	mov    0x436748,%ecx
40fde7:	89 59 08             	mov    %ebx,0x8(%ecx)
40fdea:	89 39                	mov    %edi,(%ecx)
40fdec:	8b 45 08             	mov    0x8(%ebp),%eax
40fdef:	89 41 04             	mov    %eax,0x4(%ecx)
40fdf2:	80 3d 55 67 43 00 00 	cmpb   $0x0,0x436755
40fdf9:	0f 84 36 02 00 00    	je     0x410035
40fdff:	8b 85 44 ff ff ff    	mov    -0xbc(%ebp),%eax
40fe05:	8b 40 38             	mov    0x38(%eax),%eax
40fe08:	66 39 30             	cmp    %si,(%eax)
40fe0b:	0f 85 21 02 00 00    	jne    0x410032
40fe11:	8b b1 10 01 00 00    	mov    0x110(%ecx),%esi
40fe17:	ff 36                	push   (%esi)
40fe19:	8b 55 08             	mov    0x8(%ebp),%edx
40fe1c:	8b cf                	mov    %edi,%ecx
40fe1e:	e8 7d f5 ff ff       	call   0x40f3a0
40fe23:	8b 46 08             	mov    0x8(%esi),%eax
40fe26:	8b 0d 48 67 43 00    	mov    0x436748,%ecx