40ee83:	59                   	pop    %ecx
40ee84:	8b c6                	mov    %esi,%eax
40ee86:	e9 1a 01 00 00       	jmp    0x40efa5
40ee8b:	89 30                	mov    %esi,(%eax)
40ee8d:	8b 75 08             	mov    0x8(%ebp),%esi
40ee90:	0f b7 7b 3e          	movzwl 0x3e(%ebx),%edi
40ee94:	56                   	push   %esi
40ee95:	6a 0e                	push   $0xe
40ee97:	57                   	push   %edi
40ee98:	8d 45 e8             	lea    -0x18(%ebp),%eax
40ee9b:	6a 01                	push   $0x1
40ee9d:	50                   	push   %eax
40ee9e:	e8 ec e5 ff ff       	call   0x40d48f
40eea3:	89 45 f4             	mov    %eax,-0xc(%ebp)
40eea6:	8d 46 04             	lea    0x4(%esi),%eax
40eea9:	50                   	push   %eax
40eeaa:	6a 0f                	push   $0xf
40eeac:	57                   	push   %edi
40eead:	8d 45 e8             	lea    -0x18(%ebp),%eax
40eeb0:	6a 01                	push   $0x1
40eeb2:	50                   	push   %eax
40eeb3:	e8 d7 e5 ff ff       	call   0x40d48f
40eeb8:	09 45 f4             	or     %eax,-0xc(%ebp)
40eebb:	8d 46 08             	lea    0x8(%esi),%eax
40eebe:	50                   	push   %eax
40eebf:	6a 10                	push   $0x10
40eec1:	57                   	push   %edi
40eec2:	89 45 f0             	mov    %eax,-0x10(%ebp)
40eec5:	8d 45 e8             	lea    -0x18(%ebp),%eax
40eec8:	6a 01                	push   $0x1
40eeca:	50                   	push   %eax
40eecb:	e8 bf e5 ff ff       	call   0x40d48f
40eed0:	83 c4 3c             	add    $0x3c,%esp
40eed3:	0b 45 f4             	or     -0xc(%ebp),%eax
40eed6:	74 0c                	je     0x40eee4
40eed8:	56                   	push   %esi
40eed9:	e8 bd fe ff ff       	call   0x40ed9b
40eede:	59                   	pop    %ecx
40eedf:	83 ce ff             	or     $0xffffffff,%esi
40eee2:	eb 8e                	jmp    0x40ee72
40eee4:	8b 45 f0             	mov    -0x10(%ebp),%eax
40eee7:	8b 00                	mov    (%eax),%eax
40eee9:	eb 12                	jmp    0x40eefd
40eeeb:	8a 08                	mov    (%eax),%cl
40eeed:	80 f9 30             	cmp    $0x30,%cl
40eef0:	7c 12                	jl     0x40ef04
40eef2:	80 f9 39             	cmp    $0x39,%cl
40eef5:	7f 0d                	jg     0x40ef04
40eef7:	80 e9 30             	sub    $0x30,%cl
40eefa:	88 08                	mov    %cl,(%eax)
40eefc:	40                   	inc    %eax
40eefd:	80 38 00             	cmpb   $0x0,(%eax)
40ef00:	75 e9                	jne    0x40eeeb
40ef02:	eb 37                	jmp    0x40ef3b
40ef04:	80 f9 3b             	cmp    $0x3b,%cl
40ef07:	75 f3                	jne    0x40eefc
40ef09:	8b f0                	mov    %eax,%esi
40ef0b:	8d 7e 01             	lea    0x1(%esi),%edi
40ef0e:	8a 0f                	mov    (%edi),%cl
40ef10:	88 0e                	mov    %cl,(%esi)
40ef12:	8b f7                	mov    %edi,%esi
40ef14:	80 3e 00             	cmpb   $0x0,(%esi)
40ef17:	75 f2                	jne    0x40ef0b
40ef19:	eb e2                	jmp    0x40eefd
40ef1b:	8b 0d 80 b9 42 00    	mov    0x42b980,%ecx
40ef21:	8b 45 08             	mov    0x8(%ebp),%eax
40ef24:	89 08                	mov    %ecx,(%eax)
40ef26:	8b 0d 84 b9 42 00    	mov    0x42b984,%ecx
40ef2c:	89 48 04             	mov    %ecx,0x4(%eax)
40ef2f:	8b 0d 88 b9 42 00    	mov    0x42b988,%ecx
40ef35:	89 75 fc             	mov    %esi,-0x4(%ebp)
40ef38:	89 48 08             	mov    %ecx,0x8(%eax)
40ef3b:	8b 45 f8             	mov    -0x8(%ebp),%eax
40ef3e:	33 c9                	xor    %ecx,%ecx
40ef40:	41                   	inc    %ecx
40ef41:	89 08                	mov    %ecx,(%eax)
40ef43:	8b 45 fc             	mov    -0x4(%ebp),%eax
40ef46:	85 c0                	test   %eax,%eax
40ef48:	74 02                	je     0x40ef4c
40ef4a:	89 08                	mov    %ecx,(%eax)
40ef4c:	8b 83 b4 00 00 00    	mov    0xb4(%ebx),%eax
40ef52:	8b 35 78 a0 41 00    	mov    0x41a078,%esi
40ef58:	85 c0                	test   %eax,%eax
40ef5a:	74 03                	je     0x40ef5f
40ef5c:	50                   	push   %eax
40ef5d:	ff d6                	call   *%esi
40ef5f:	8b 83 b0 00 00 00    	mov    0xb0(%ebx),%eax
40ef65:	85 c0                	test   %eax,%eax
40ef67:	74 1f                	je     0x40ef88
40ef69:	50                   	push   %eax
40ef6a:	ff d6                	call   *%esi
40ef6c:	85 c0                	test   %eax,%eax
40ef6e:	75 18                	jne    0x40ef88
40ef70:	ff b3 b0 00 00 00    	push   0xb0(%ebx)
40ef76:	e8 a5 60 ff ff       	call   0x405020
40ef7b:	ff b3 bc 00 00 00    	push   0xbc(%ebx)
40ef81:	e8 9a 60 ff ff       	call   0x405020
40ef86:	59                   	pop    %ecx
40ef87:	59                   	pop    %ecx
40ef88:	8b 45 fc             	mov    -0x4(%ebp),%eax
40ef8b:	89 83 b4 00 00 00    	mov    %eax,0xb4(%ebx)
40ef91:	8b 45 f8             	mov    -0x8(%ebp),%eax
40ef94:	89 83 b0 00 00 00    	mov    %eax,0xb0(%ebx)
40ef9a:	8b 45 08             	mov    0x8(%ebp),%eax
40ef9d:	89 83 bc 00 00 00    	mov    %eax,0xbc(%ebx)
40efa3:	33 c0                	xor    %eax,%eax
40efa5:	5f                   	pop    %edi
40efa6:	5e                   	pop    %esi
40efa7:	5b                   	pop    %ebx
40efa8:	c9                   	leave
40efa9:	c3                   	ret
40efaa:	8b ff                	mov    %edi,%edi
40efac:	55                   	push   %ebp
40efad:	8b ec                	mov    %esp,%ebp
40efaf:	56                   	push   %esi
40efb0:	8b 75 08             	mov    0x8(%ebp),%esi
40efb3:	85 f6                	test   %esi,%esi
40efb5:	74 7e                	je     0x40f035
40efb7:	8b 46 0c             	mov    0xc(%esi),%eax
40efba:	3b 05 8c b9 42 00    	cmp    0x42b98c,%eax
40efc0:	74 07                	je     0x40efc9
40efc2:	50                   	push   %eax
40efc3:	e8 58 60 ff ff       	call   0x405020
40efc8:	59                   	pop    %ecx
40efc9:	8b 46 10             	mov    0x10(%esi),%eax
40efcc:	3b 05 90 b9 42 00    	cmp    0x42b990,%eax
40efd2:	74 07                	je     0x40efdb
40efd4:	50                   	push   %eax
40efd5:	e8 46 60 ff ff       	call   0x405020
40efda:	59                   	pop    %ecx
40efdb:	8b 46 14             	mov    0x14(%esi),%eax
40efde:	3b 05 94 b9 42 00    	cmp    0x42b994,%eax
40efe4:	74 07                	je     0x40efed
40efe6:	50                   	push   %eax
40efe7:	e8 34 60 ff ff       	call   0x405020
40efec:	59                   	pop    %ecx
40efed:	8b 46 18             	mov    0x18(%esi),%eax
40eff0:	3b 05 98 b9 42 00    	cmp    0x42b998,%eax
40eff6:	74 07                	je     0x40efff
40eff8:	50                   	push   %eax
40eff9:	e8 22 60 ff ff       	call   0x405020
40effe:	59                   	pop    %ecx
40efff:	8b 46 1c             	mov    0x1c(%esi),%eax
40f002:	3b 05 9c b9 42 00    	cmp    0x42b99c,%eax
40f008:	74 07                	je     0x40f011
40f00a:	50                   	push   %eax
40f00b:	e8 10 60 ff ff       	call   0x405020
40f010:	59                   	pop    %ecx
40f011:	8b 46 20             	mov    0x20(%esi),%eax
40f014:	3b 05 a0 b9 42 00    	cmp    0x42b9a0,%eax
40f01a:	74 07                	je     0x40f023
40f01c:	50                   	push   %eax
40f01d:	e8 fe 5f ff ff       	call   0x405020
40f022:	59                   	pop    %ecx
40f023:	8b 76 24             	mov    0x24(%esi),%esi
40f026:	3b 35 a4 b9 42 00    	cmp    0x42b9a4,%esi
40f02c:	74 07                	je     0x40f035
40f02e:	56                   	push   %esi
40f02f:	e8 ec 5f ff ff       	call   0x405020
40f034:	59                   	pop    %ecx
40f035:	5e                   	pop    %esi
40f036:	5d                   	pop    %ebp
40f037:	c3                   	ret
40f038:	8b ff                	mov    %edi,%edi
40f03a:	55                   	push   %ebp
40f03b:	8b ec                	mov    %esp,%ebp
40f03d:	83 ec 10             	sub    $0x10,%esp
40f040:	53                   	push   %ebx
40f041:	56                   	push   %esi
40f042:	8b 75 08             	mov    0x8(%ebp),%esi
40f045:	57                   	push   %edi
40f046:	33 ff                	xor    %edi,%edi
40f048:	89 7d fc             	mov    %edi,-0x4(%ebp)
40f04b:	89 75 f0             	mov    %esi,-0x10(%ebp)
40f04e:	89 7d f4             	mov    %edi,-0xc(%ebp)
40f051:	39 7e 18             	cmp    %edi,0x18(%esi)
40f054:	75 15                	jne    0x40f06b
40f056:	39 7e 1c             	cmp    %edi,0x1c(%esi)
40f059:	75 10                	jne    0x40f06b
40f05b:	89 7d fc             	mov    %edi,-0x4(%ebp)
40f05e:	89 7d f8             	mov    %edi,-0x8(%ebp)
40f061:	bb 80 b9 42 00       	mov    $0x42b980,%ebx
40f066:	e9 36 02 00 00       	jmp    0x40f2a1
40f06b:	6a 30                	push   $0x30
40f06d:	6a 01                	push   $0x1
40f06f:	e8 31 8b ff ff       	call   0x407ba5
40f074:	8b d8                	mov    %eax,%ebx
40f076:	59                   	pop    %ecx
40f077:	59                   	pop    %ecx
40f078:	3b df                	cmp    %edi,%ebx
40f07a:	75 08                	jne    0x40f084
40f07c:	33 c0                	xor    %eax,%eax
40f07e:	40                   	inc    %eax
40f07f:	e9 75 02 00 00       	jmp    0x40f2f9
40f084:	6a 04                	push   $0x4
40f086:	e8 d5 8a ff ff       	call   0x407b60
40f08b:	59                   	pop    %ecx
40f08c:	89 45 f8             	mov    %eax,-0x8(%ebp)
40f08f:	3b c7                	cmp    %edi,%eax
40f091:	75 09                	jne    0x40f09c
40f093:	53                   	push   %ebx
40f094:	e8 87 5f ff ff       	call   0x405020
40f099:	59                   	pop    %ecx
40f09a:	eb e0                	jmp    0x40f07c
40f09c:	89 38                	mov    %edi,(%eax)
40f09e:	39 7e 18             	cmp    %edi,0x18(%esi)
40f0a1:	0f 84 b9 01 00 00    	je     0x40f260
40f0a7:	6a 04                	push   $0x4
40f0a9:	e8 b2 8a ff ff       	call   0x407b60
40f0ae:	59                   	pop    %ecx
40f0af:	89 45 fc             	mov    %eax,-0x4(%ebp)
40f0b2:	3b c7                	cmp    %edi,%eax
40f0b4:	75 11                	jne    0x40f0c7
40f0b6:	53                   	push   %ebx
40f0b7:	e8 64 5f ff ff       	call   0x405020
40f0bc:	ff 75 f8             	push   -0x8(%ebp)
40f0bf:	e8 5c 5f ff ff       	call   0x405020
40f0c4:	59                   	pop    %ecx
40f0c5:	eb d2                	jmp    0x40f099
40f0c7:	89 38                	mov    %edi,(%eax)
40f0c9:	0f b7 76 38          	movzwl 0x38(%esi),%esi
40f0cd:	8d 43 0c             	lea    0xc(%ebx),%eax
40f0d0:	50                   	push   %eax
40f0d1:	6a 15                	push   $0x15
40f0d3:	56                   	push   %esi
40f0d4:	8d 45 f0             	lea    -0x10(%ebp),%eax
40f0d7:	6a 01                	push   $0x1
40f0d9:	50                   	push   %eax
40f0da:	e8 b0 e3 ff ff       	call   0x40d48f
40f0df:	8b f8                	mov    %eax,%edi
40f0e1:	8d 43 10             	lea    0x10(%ebx),%eax
40f0e4:	50                   	push   %eax
40f0e5:	6a 14                	push   $0x14
40f0e7:	56                   	push   %esi
40f0e8:	8d 45 f0             	lea    -0x10(%ebp),%eax
40f0eb:	6a 01                	push   $0x1
40f0ed:	50                   	push   %eax
40f0ee:	e8 9c e3 ff ff       	call   0x40d48f
40f0f3:	0b f8                	or     %eax,%edi
40f0f5:	8d 43 14             	lea    0x14(%ebx),%eax
40f0f8:	50                   	push   %eax
40f0f9:	6a 16                	push   $0x16
40f0fb:	56                   	push   %esi
40f0fc:	8d 45 f0             	lea    -0x10(%ebp),%eax
40f0ff:	6a 01                	push   $0x1
40f101:	50                   	push   %eax
40f102:	e8 88 e3 ff ff       	call   0x40d48f
40f107:	0b f8                	or     %eax,%edi
40f109:	8d 43 18             	lea    0x18(%ebx),%eax
40f10c:	50                   	push   %eax
40f10d:	6a 17                	push   $0x17
40f10f:	56                   	push   %esi
40f110:	8d 45 f0             	lea    -0x10(%ebp),%eax
40f113:	6a 01                	push   $0x1
40f115:	50                   	push   %eax
40f116:	e8 74 e3 ff ff       	call   0x40d48f
40f11b:	83 c4 50             	add    $0x50,%esp
40f11e:	0b f8                	or     %eax,%edi
40f120:	8d 43 1c             	lea    0x1c(%ebx),%eax
40f123:	50                   	push   %eax
40f124:	6a 18                	push   $0x18
40f126:	56                   	push   %esi
40f127:	8d 45 f0             	lea    -0x10(%ebp),%eax
40f12a:	6a 01                	push   $0x1
40f12c:	50                   	push   %eax
40f12d:	e8 5d e3 ff ff       	call   0x40d48f
40f132:	0b f8                	or     %eax,%edi
40f134:	8d 43 20             	lea    0x20(%ebx),%eax
40f137:	50                   	push   %eax
40f138:	6a 50                	push   $0x50
40f13a:	56                   	push   %esi
40f13b:	8d 45 f0             	lea    -0x10(%ebp),%eax
40f13e:	6a 01                	push   $0x1
40f140:	50                   	push   %eax
40f141:	e8 49 e3 ff ff       	call   0x40d48f
40f146:	0b f8                	or     %eax,%edi
40f148:	8d 43 24             	lea    0x24(%ebx),%eax
40f14b:	50                   	push   %eax
40f14c:	6a 51                	push   $0x51
40f14e:	56                   	push   %esi
40f14f:	8d 45 f0             	lea    -0x10(%ebp),%eax
40f152:	6a 01                	push   $0x1
40f154:	50                   	push   %eax
40f155:	e8 35 e3 ff ff       	call   0x40d48f
40f15a:	0b f8                	or     %eax,%edi
40f15c:	8d 43 28             	lea    0x28(%ebx),%eax
40f15f:	50                   	push   %eax
40f160:	6a 1a                	push   $0x1a
40f162:	56                   	push   %esi
40f163:	8d 45 f0             	lea    -0x10(%ebp),%eax
40f166:	6a 00                	push   $0x0
40f168:	50                   	push   %eax
40f169:	e8 21 e3 ff ff       	call   0x40d48f
40f16e:	83 c4 50             	add    $0x50,%esp
40f171:	0b f8                	or     %eax,%edi
40f173:	8d 43 29             	lea    0x29(%ebx),%eax
40f176:	50                   	push   %eax
40f177:	6a 19                	push   $0x19
40f179:	56                   	push   %esi
40f17a:	6a 00                	push   $0x0
40f17c:	8d 45 f0             	lea    -0x10(%ebp),%eax
40f17f:	50                   	push   %eax
40f180:	e8 0a e3 ff ff       	call   0x40d48f
40f185:	0b f8                	or     %eax,%edi
40f187:	8d 43 2a             	lea    0x2a(%ebx),%eax
40f18a:	50                   	push   %eax
40f18b:	6a 54                	push   $0x54
40f18d:	56                   	push   %esi
40f18e:	8d 45 f0             	lea    -0x10(%ebp),%eax
40f191:	6a 00                	push   $0x0
40f193:	50                   	push   %eax
40f194:	e8 f6 e2 ff ff       	call   0x40d48f
40f199:	0b f8                	or     %eax,%edi
40f19b:	8d 43 2b             	lea    0x2b(%ebx),%eax
40f19e:	50                   	push   %eax
40f19f:	6a 55                	push   $0x55
40f1a1:	56                   	push   %esi
40f1a2:	8d 45 f0             	lea    -0x10(%ebp),%eax
40f1a5:	6a 00                	push   $0x0
40f1a7:	50                   	push   %eax
40f1a8:	e8 e2 e2 ff ff       	call   0x40d48f
40f1ad:	0b f8                	or     %eax,%edi
40f1af:	8d 43 2c             	lea    0x2c(%ebx),%eax
40f1b2:	50                   	push   %eax
40f1b3:	6a 56                	push   $0x56
40f1b5:	56                   	push   %esi
40f1b6:	8d 45 f0             	lea    -0x10(%ebp),%eax
40f1b9:	6a 00                	push   $0x0
40f1bb:	50                   	push   %eax
40f1bc:	e8 ce e2 ff ff       	call   0x40d48f
40f1c1:	83 c4 50             	add    $0x50,%esp
40f1c4:	0b f8                	or     %eax,%edi
40f1c6:	8d 43 2d             	lea    0x2d(%ebx),%eax
40f1c9:	50                   	push   %eax
40f1ca:	6a 57                	push   $0x57
40f1cc:	56                   	push   %esi
40f1cd:	8d 45 f0             	lea    -0x10(%ebp),%eax
40f1d0:	6a 00                	push   $0x0
40f1d2:	50                   	push   %eax
40f1d3:	e8 b7 e2 ff ff       	call   0x40d48f
40f1d8:	0b f8                	or     %eax,%edi
40f1da:	8d 43 2e             	lea    0x2e(%ebx),%eax
40f1dd:	50                   	push   %eax
40f1de:	6a 52                	push   $0x52
40f1e0:	56                   	push   %esi
40f1e1:	8d 45 f0             	lea    -0x10(%ebp),%eax
40f1e4:	6a 00                	push   $0x0
40f1e6:	50                   	push   %eax
40f1e7:	e8 a3 e2 ff ff       	call   0x40d48f
40f1ec:	0b f8                	or     %eax,%edi