40ec78:	56                   	push   %esi
40ec79:	57                   	push   %edi
40ec7a:	6a 0d                	push   $0xd
40ec7c:	ff 15 0c 32 43 00    	call   *0x43320c
40ec82:	0f b6 f8             	movzbl %al,%edi
40ec85:	0f b7 c8             	movzwl %ax,%ecx
40ec88:	c1 e7 08             	shl    $0x8,%edi
40ec8b:	c1 e9 08             	shr    $0x8,%ecx
40ec8e:	0b f9                	or     %ecx,%edi
40ec90:	c1 e8 10             	shr    $0x10,%eax
40ec93:	0f b6 c0             	movzbl %al,%eax
40ec96:	c1 e7 08             	shl    $0x8,%edi
40ec99:	6a 05                	push   $0x5
40ec9b:	0b f8                	or     %eax,%edi
40ec9d:	ff 15 0c 32 43 00    	call   *0x43320c
40eca3:	0f b6 d0             	movzbl %al,%edx
40eca6:	0f b7 c8             	movzwl %ax,%ecx
40eca9:	c1 e2 08             	shl    $0x8,%edx
40ecac:	c1 e9 08             	shr    $0x8,%ecx
40ecaf:	0b d1                	or     %ecx,%edx
40ecb1:	c1 e8 10             	shr    $0x10,%eax
40ecb4:	6a 02                	push   $0x2
40ecb6:	c1 e2 08             	shl    $0x8,%edx
40ecb9:	0f b6 c0             	movzbl %al,%eax
40ecbc:	6a 6e                	push   $0x6e
40ecbe:	ff 35 0c 19 41 00    	push   0x41190c
40ecc4:	0b d0                	or     %eax,%edx
40ecc6:	89 55 f8             	mov    %edx,-0x8(%ebp)
40ecc9:	ff 15 d8 30 43 00    	call   *0x4330d8
40eccf:	8b f0                	mov    %eax,%esi
40ecd1:	85 f6                	test   %esi,%esi
40ecd3:	0f 84 b6 00 00 00    	je     0x40ed8f
40ecd9:	56                   	push   %esi
40ecda:	ff 35 0c 19 41 00    	push   0x41190c
40ece0:	ff 15 dc 30 43 00    	call   *0x4330dc
40ece6:	89 45 fc             	mov    %eax,-0x4(%ebp)
40ece9:	85 c0                	test   %eax,%eax
40eceb:	0f 84 9e 00 00 00    	je     0x40ed8f
40ecf1:	56                   	push   %esi
40ecf2:	ff 35 0c 19 41 00    	push   0x41190c
40ecf8:	ff 15 e0 30 43 00    	call   *0x4330e0
40ecfe:	8b f0                	mov    %eax,%esi
40ed00:	85 f6                	test   %esi,%esi
40ed02:	0f 84 87 00 00 00    	je     0x40ed8f
40ed08:	56                   	push   %esi
40ed09:	ff 15 f8 33 43 00    	call   *0x4333f8
40ed0f:	8b d8                	mov    %eax,%ebx
40ed11:	59                   	pop    %ecx
40ed12:	85 db                	test   %ebx,%ebx
40ed14:	74 79                	je     0x40ed8f
40ed16:	56                   	push   %esi
40ed17:	ff 75 fc             	push   -0x4(%ebp)
40ed1a:	ff 15 e4 30 43 00    	call   *0x4330e4
40ed20:	50                   	push   %eax
40ed21:	53                   	push   %ebx
40ed22:	e8 da 1d 00 00       	call   0x410b01
40ed27:	8b 03                	mov    (%ebx),%eax
40ed29:	83 c4 0c             	add    $0xc,%esp
40ed2c:	8b 55 f8             	mov    -0x8(%ebp),%edx
40ed2f:	03 c3                	add    %ebx,%eax
40ed31:	6a 10                	push   $0x10
40ed33:	59                   	pop    %ecx
40ed34:	49                   	dec    %ecx
40ed35:	81 38 ff 00 00 00    	cmpl   $0xff,(%eax)
40ed3b:	75 04                	jne    0x40ed41
40ed3d:	89 10                	mov    %edx,(%eax)
40ed3f:	eb 0a                	jmp    0x40ed4b
40ed41:	81 38 ff 00 ff 00    	cmpl   $0xff00ff,(%eax)
40ed47:	75 02                	jne    0x40ed4b
40ed49:	89 38                	mov    %edi,(%eax)
40ed4b:	83 c0 04             	add    $0x4,%eax
40ed4e:	85 c9                	test   %ecx,%ecx
40ed50:	7f e2                	jg     0x40ed34
40ed52:	8a 4b 0e             	mov    0xe(%ebx),%cl
40ed55:	33 c0                	xor    %eax,%eax
40ed57:	40                   	inc    %eax
40ed58:	d3 e0                	shl    %cl,%eax
40ed5a:	83 c0 0a             	add    $0xa,%eax
40ed5d:	6a 00                	push   $0x0
40ed5f:	8d 34 83             	lea    (%ebx,%eax,4),%esi
40ed62:	ff 15 f0 32 43 00    	call   *0x4332f0
40ed68:	6a 00                	push   $0x0
40ed6a:	53                   	push   %ebx
40ed6b:	56                   	push   %esi
40ed6c:	6a 04                	push   $0x4
40ed6e:	8b f8                	mov    %eax,%edi
40ed70:	53                   	push   %ebx
40ed71:	57                   	push   %edi
40ed72:	ff 15 40 30 43 00    	call   *0x433040
40ed78:	57                   	push   %edi
40ed79:	6a 00                	push   $0x0
40ed7b:	8b f0                	mov    %eax,%esi
40ed7d:	ff 15 08 33 43 00    	call   *0x433308
40ed83:	53                   	push   %ebx
40ed84:	ff 15 d4 33 43 00    	call   *0x4333d4
40ed8a:	59                   	pop    %ecx
40ed8b:	8b c6                	mov    %esi,%eax
40ed8d:	eb 02                	jmp    0x40ed91
40ed8f:	33 c0                	xor    %eax,%eax
40ed91:	5f                   	pop    %edi
40ed92:	5e                   	pop    %esi
40ed93:	5b                   	pop    %ebx
40ed94:	c9                   	leave
40ed95:	c3                   	ret
40ed96:	cc                   	int3
40ed97:	cc                   	int3
40ed98:	cc                   	int3
40ed99:	cc                   	int3
40ed9a:	cc                   	int3
40ed9b:	cc                   	int3
40ed9c:	cc                   	int3
40ed9d:	cc                   	int3
40ed9e:	cc                   	int3
40ed9f:	cc                   	int3
40eda0:	8b ff                	mov    %edi,%edi
40eda2:	55                   	push   %ebp
40eda3:	8b ec                	mov    %esp,%ebp
40eda5:	81 7d 0c 00 01 00 00 	cmpl   $0x100,0xc(%ebp)
40edac:	75 32                	jne    0x40ede0
40edae:	83 7d 10 0d          	cmpl   $0xd,0x10(%ebp)
40edb2:	75 1a                	jne    0x40edce
40edb4:	6a 00                	push   $0x0
40edb6:	68 85 00 00 00       	push   $0x85
40edbb:	68 11 01 00 00       	push   $0x111
40edc0:	ff 35 10 19 43 00    	push   0x431910
40edc6:	ff 15 10 33 43 00    	call   *0x433310
40edcc:	eb 12                	jmp    0x40ede0
40edce:	83 7d 10 75          	cmpl   $0x75,0x10(%ebp)
40edd2:	75 0c                	jne    0x40ede0
40edd4:	ff 35 14 19 43 00    	push   0x431914
40edda:	ff 15 28 33 43 00    	call   *0x433328
40ede0:	ff 35 38 26 43 00    	push   0x432638
40ede6:	ff 15 78 31 43 00    	call   *0x433178
40edec:	85 c0                	test   %eax,%eax
40edee:	74 15                	je     0x40ee05
40edf0:	ff 75 14             	push   0x14(%ebp)
40edf3:	ff 75 10             	push   0x10(%ebp)
40edf6:	ff 75 0c             	push   0xc(%ebp)
40edf9:	ff 75 08             	push   0x8(%ebp)
40edfc:	50                   	push   %eax
40edfd:	ff 15 00 32 43 00    	call   *0x433200
40ee03:	eb 02                	jmp    0x40ee07
40ee05:	33 c0                	xor    %eax,%eax
40ee07:	5d                   	pop    %ebp
40ee08:	c2 10 00             	ret    $0x10
40ee0b:	8b ff                	mov    %edi,%edi
40ee0d:	57                   	push   %edi
40ee0e:	8b f9                	mov    %ecx,%edi
40ee10:	83 3f 01             	cmpl   $0x1,(%edi)
40ee13:	75 17                	jne    0x40ee2c
40ee15:	56                   	push   %esi
40ee16:	c7 07 02 00 00 00    	movl   $0x2,(%edi)
40ee1c:	e8 30 a0 ff ff       	call   0x408e51
40ee21:	8d 57 08             	lea    0x8(%edi),%edx
40ee24:	8b c8                	mov    %eax,%ecx
40ee26:	e8 e5 0a 00 00       	call   0x40f910
40ee2b:	5e                   	pop    %esi
40ee2c:	c7 07 03 00 00 00    	movl   $0x3,(%edi)
40ee32:	5f                   	pop    %edi
40ee33:	c3                   	ret
40ee34:	8b ff                	mov    %edi,%edi
40ee36:	55                   	push   %ebp
40ee37:	8b ec                	mov    %esp,%ebp
40ee39:	51                   	push   %ecx
40ee3a:	56                   	push   %esi
40ee3b:	8d 45 fc             	lea    -0x4(%ebp),%eax
40ee3e:	8b f1                	mov    %ecx,%esi
40ee40:	50                   	push   %eax
40ee41:	e8 ff 04 00 00       	call   0x40f345
40ee46:	83 7d fc 00          	cmpl   $0x0,-0x4(%ebp)
40ee4a:	8b 46 18             	mov    0x18(%esi),%eax
40ee4d:	5e                   	pop    %esi
40ee4e:	c7 00 02 00 00 00    	movl   $0x2,(%eax)
40ee54:	74 09                	je     0x40ee5f
40ee56:	ff 75 fc             	push   -0x4(%ebp)
40ee59:	ff 15 f8 30 43 00    	call   *0x4330f8
40ee5f:	c9                   	leave
40ee60:	c3                   	ret
40ee61:	cc                   	int3
40ee62:	cc                   	int3
40ee63:	cc                   	int3
40ee64:	cc                   	int3
40ee65:	cc                   	int3
40ee66:	cc                   	int3
40ee67:	cc                   	int3
40ee68:	cc                   	int3
40ee69:	cc                   	int3
40ee6a:	cc                   	int3
40ee6b:	cc                   	int3
40ee6c:	cc                   	int3
40ee6d:	cc                   	int3
40ee6e:	cc                   	int3
40ee6f:	cc                   	int3
40ee70:	8b ff                	mov    %edi,%edi
40ee72:	55                   	push   %ebp
40ee73:	8b ec                	mov    %esp,%ebp
40ee75:	a1 40 13 41 00       	mov    0x411340,%eax
40ee7a:	81 ec 9c 00 00 00    	sub    $0x9c,%esp
40ee80:	56                   	push   %esi
40ee81:	8b 75 08             	mov    0x8(%ebp),%esi
40ee84:	57                   	push   %edi
40ee85:	8b f9                	mov    %ecx,%edi
40ee87:	8b 56 08             	mov    0x8(%esi),%edx
40ee8a:	89 15 40 13 41 00    	mov    %edx,0x411340
40ee90:	3b c2                	cmp    %edx,%eax
40ee92:	0f 84 e4 00 00 00    	je     0x40ef7c
40ee98:	e8 b4 9f ff ff       	call   0x408e51
40ee9d:	8b c8                	mov    %eax,%ecx
40ee9f:	83 39 02             	cmpl   $0x2,(%ecx)
40eea2:	0f 86 dd 01 00 00    	jbe    0x40f085
40eea8:	68 00 20 00 00       	push   $0x2000
40eead:	6a 00                	push   $0x0
40eeaf:	e8 f3 36 ff ff       	call   0x4025a7
40eeb4:	84 c0                	test   %al,%al
40eeb6:	0f 84 c9 01 00 00    	je     0x40f085
40eebc:	8b 46 40             	mov    0x40(%esi),%eax
40eebf:	ba 26 1c 40 00       	mov    $0x401c26,%edx
40eec4:	89 45 f8             	mov    %eax,-0x8(%ebp)
40eec7:	8b 46 3c             	mov    0x3c(%esi),%eax
40eeca:	89 45 f4             	mov    %eax,-0xc(%ebp)
40eecd:	8b 46 38             	mov    0x38(%esi),%eax
40eed0:	89 45 f0             	mov    %eax,-0x10(%ebp)
40eed3:	8b 46 34             	mov    0x34(%esi),%eax
40eed6:	89 45 ec             	mov    %eax,-0x14(%ebp)
40eed9:	8b 46 30             	mov    0x30(%esi),%eax
40eedc:	89 45 e8             	mov    %eax,-0x18(%ebp)
40eedf:	8b 46 2c             	mov    0x2c(%esi),%eax
40eee2:	89 45 e4             	mov    %eax,-0x1c(%ebp)
40eee5:	8b 46 28             	mov    0x28(%esi),%eax
40eee8:	89 45 e0             	mov    %eax,-0x20(%ebp)
40eeeb:	8b 46 10             	mov    0x10(%esi),%eax
40eeee:	89 45 dc             	mov    %eax,-0x24(%ebp)
40eef1:	8b 46 0c             	mov    0xc(%esi),%eax
40eef4:	89 45 d8             	mov    %eax,-0x28(%ebp)
40eef7:	8b 06                	mov    (%esi),%eax
40eef9:	89 45 d4             	mov    %eax,-0x2c(%ebp)
40eefc:	8b 46 44             	mov    0x44(%esi),%eax
40eeff:	89 45 d0             	mov    %eax,-0x30(%ebp)
40ef02:	8b 46 20             	mov    0x20(%esi),%eax
40ef05:	89 45 cc             	mov    %eax,-0x34(%ebp)
40ef08:	8b 46 1c             	mov    0x1c(%esi),%eax
40ef0b:	89 45 c8             	mov    %eax,-0x38(%ebp)
40ef0e:	8b 46 04             	mov    0x4(%esi),%eax
40ef11:	89 45 c4             	mov    %eax,-0x3c(%ebp)
40ef14:	8d 85 70 ff ff ff    	lea    -0x90(%ebp),%eax
40ef1a:	89 45 c0             	mov    %eax,-0x40(%ebp)
40ef1d:	8d 45 f8             	lea    -0x8(%ebp),%eax
40ef20:	50                   	push   %eax
40ef21:	8d 45 f4             	lea    -0xc(%ebp),%eax
40ef24:	83 a5 74 ff ff ff 00 	andl   $0x0,-0x8c(%ebp)
40ef2b:	50                   	push   %eax
40ef2c:	8d 45 f0             	lea    -0x10(%ebp),%eax
40ef2f:	c7 85 70 ff ff ff 00 	movl   $0x1000000,-0x90(%ebp)
40ef36:	00 00 01
40ef39:	50                   	push   %eax
40ef3a:	8d 45 ec             	lea    -0x14(%ebp),%eax
40ef3d:	50                   	push   %eax
40ef3e:	8d 45 e8             	lea    -0x18(%ebp),%eax
40ef41:	50                   	push   %eax
40ef42:	8d 45 e4             	lea    -0x1c(%ebp),%eax
40ef45:	50                   	push   %eax
40ef46:	8d 45 e0             	lea    -0x20(%ebp),%eax
40ef49:	50                   	push   %eax
40ef4a:	8d 45 dc             	lea    -0x24(%ebp),%eax
40ef4d:	50                   	push   %eax
40ef4e:	8d 45 d8             	lea    -0x28(%ebp),%eax
40ef51:	50                   	push   %eax
40ef52:	8d 45 d4             	lea    -0x2c(%ebp),%eax
40ef55:	50                   	push   %eax
40ef56:	8d 45 d0             	lea    -0x30(%ebp),%eax
40ef59:	50                   	push   %eax
40ef5a:	8d 45 cc             	lea    -0x34(%ebp),%eax
40ef5d:	50                   	push   %eax
40ef5e:	8d 45 c8             	lea    -0x38(%ebp),%eax
40ef61:	50                   	push   %eax
40ef62:	8d 45 c4             	lea    -0x3c(%ebp),%eax
40ef65:	50                   	push   %eax
40ef66:	8d 45 c0             	lea    -0x40(%ebp),%eax
40ef69:	50                   	push   %eax
40ef6a:	8b 47 18             	mov    0x18(%edi),%eax
40ef6d:	51                   	push   %ecx
40ef6e:	83 c0 08             	add    $0x8,%eax
40ef71:	50                   	push   %eax
40ef72:	e8 65 36 ff ff       	call   0x4025dc
40ef77:	e9 09 01 00 00       	jmp    0x40f085
40ef7c:	e8 d0 9e ff ff       	call   0x408e51
40ef81:	8b c8                	mov    %eax,%ecx
40ef83:	83 39 02             	cmpl   $0x2,(%ecx)
40ef86:	0f 86 f9 00 00 00    	jbe    0x40f085
40ef8c:	68 00 20 00 00       	push   $0x2000
40ef91:	6a 00                	push   $0x0
40ef93:	e8 0f 36 ff ff       	call   0x4025a7
40ef98:	84 c0                	test   %al,%al
40ef9a:	0f 84 e5 00 00 00    	je     0x40f085
40efa0:	8b 46 18             	mov    0x18(%esi),%eax
40efa3:	ba ee 1a 40 00       	mov    $0x401aee,%edx
40efa8:	89 45 bc             	mov    %eax,-0x44(%ebp)
40efab:	8b 46 24             	mov    0x24(%esi),%eax
40efae:	89 45 b8             	mov    %eax,-0x48(%ebp)
40efb1:	8b 46 08             	mov    0x8(%esi),%eax
40efb4:	89 45 b4             	mov    %eax,-0x4c(%ebp)
40efb7:	8b 46 40             	mov    0x40(%esi),%eax
40efba:	89 45 b0             	mov    %eax,-0x50(%ebp)
40efbd:	8b 46 3c             	mov    0x3c(%esi),%eax
40efc0:	89 45 ac             	mov    %eax,-0x54(%ebp)
40efc3:	8b 46 38             	mov    0x38(%esi),%eax
40efc6:	89 45 a8             	mov    %eax,-0x58(%ebp)
40efc9:	8b 46 34             	mov    0x34(%esi),%eax
40efcc:	89 45 a4             	mov    %eax,-0x5c(%ebp)
40efcf:	8b 46 30             	mov    0x30(%esi),%eax
40efd2:	89 45 a0             	mov    %eax,-0x60(%ebp)
40efd5:	8b 46 2c             	mov    0x2c(%esi),%eax
40efd8:	89 45 9c             	mov    %eax,-0x64(%ebp)
40efdb:	8b 46 28             	mov    0x28(%esi),%eax
40efde:	89 45 98             	mov    %eax,-0x68(%ebp)
40efe1:	8b 46 10             	mov    0x10(%esi),%eax
40efe4:	89 45 94             	mov    %eax,-0x6c(%ebp)
40efe7:	8b 46 0c             	mov    0xc(%esi),%eax
40efea:	89 45 90             	mov    %eax,-0x70(%ebp)
40efed:	8b 06                	mov    (%esi),%eax
40efef:	89 45 8c             	mov    %eax,-0x74(%ebp)
40eff2:	8b 46 44             	mov    0x44(%esi),%eax
40eff5:	89 45 88             	mov    %eax,-0x78(%ebp)
40eff8:	8b 46 20             	mov    0x20(%esi),%eax
40effb:	89 45 84             	mov    %eax,-0x7c(%ebp)
40effe:	8b 46 1c             	mov    0x1c(%esi),%eax
40f001:	89 45 80             	mov    %eax,-0x80(%ebp)
40f004:	8b 46 04             	mov    0x4(%esi),%eax
40f007:	89 85 7c ff ff ff    	mov    %eax,-0x84(%ebp)
40f00d:	8d 85 68 ff ff ff    	lea    -0x98(%ebp),%eax
40f013:	89 85 78 ff ff ff    	mov    %eax,-0x88(%ebp)
40f019:	8d 45 bc             	lea    -0x44(%ebp),%eax
40f01c:	50                   	push   %eax
40f01d:	8d 45 b8             	lea    -0x48(%ebp),%eax
40f020:	83 a5 6c ff ff ff 00 	andl   $0x0,-0x94(%ebp)
40f027:	50                   	push   %eax
40f028:	8d 45 b4             	lea    -0x4c(%ebp),%eax
40f02b:	c7 85 68 ff ff ff 00 	movl   $0x1000000,-0x98(%ebp)
40f032:	00 00 01
40f035:	50                   	push   %eax
40f036:	8d 45 b0             	lea    -0x50(%ebp),%eax
40f039:	50                   	push   %eax
40f03a:	8d 45 ac             	lea    -0x54(%ebp),%eax
40f03d:	50                   	push   %eax
40f03e:	8d 45 a8             	lea    -0x58(%ebp),%eax
40f041:	50                   	push   %eax
40f042:	8d 45 a4             	lea    -0x5c(%ebp),%eax
40f045:	50                   	push   %eax
40f046:	8d 45 a0             	lea    -0x60(%ebp),%eax
40f049:	50                   	push   %eax