40eb6d:	ff 15 6c b3 41 00    	call   *0x41b36c
40eb73:	59                   	pop    %ecx
40eb74:	59                   	pop    %ecx
40eb75:	83 f8 10             	cmp    $0x10,%eax
40eb78:	74 21                	je     0x40eb9b
40eb7a:	50                   	push   %eax
40eb7b:	8d 45 dc             	lea    -0x24(%ebp),%eax
40eb7e:	50                   	push   %eax
40eb7f:	57                   	push   %edi
40eb80:	ff 15 94 b2 41 00    	call   *0x41b294
40eb86:	8b 35 20 98 41 00    	mov    0x419820,%esi
40eb8c:	8b ce                	mov    %esi,%ecx
40eb8e:	0f b6 c0             	movzbl %al,%eax
40eb91:	50                   	push   %eax
40eb92:	57                   	push   %edi
40eb93:	ff 15 90 b3 41 00    	call   *0x41b390
40eb99:	ff d6                	call   *%esi
40eb9b:	b8 00 30 00 00       	mov    $0x3000,%eax
40eba0:	c7 45 dc 00 30 00 30 	movl   $0x30003000,-0x24(%ebp)
40eba7:	8d 55 dc             	lea    -0x24(%ebp),%edx
40ebaa:	66 89 45 e0          	mov    %ax,-0x20(%ebp)
40ebae:	8b cf                	mov    %edi,%ecx
40ebb0:	e8 b5 fd ff ff       	call   0x40e96a
40ebb5:	e9 bf 00 00 00       	jmp    0x40ec79
40ebba:	be 00 01 00 00       	mov    $0x100,%esi
40ebbf:	e9 dd 00 00 00       	jmp    0x40eca1
40ebc4:	85 c9                	test   %ecx,%ecx
40ebc6:	0f 84 c5 00 00 00    	je     0x40ec91
40ebcc:	51                   	push   %ecx
40ebcd:	6a fc                	push   $0xfffffffc
40ebcf:	57                   	push   %edi
40ebd0:	ff 15 24 b2 41 00    	call   *0x41b224
40ebd6:	e9 9e 00 00 00       	jmp    0x40ec79
40ebdb:	8b 45 0c             	mov    0xc(%ebp),%eax
40ebde:	2d 02 02 00 00       	sub    $0x202,%eax
40ebe3:	0f 84 85 00 00 00    	je     0x40ec6e
40ebe9:	83 e8 01             	sub    $0x1,%eax
40ebec:	74 73                	je     0x40ec61
40ebee:	48                   	dec    %eax
40ebef:	83 e8 01             	sub    $0x1,%eax
40ebf2:	74 38                	je     0x40ec2c
40ebf4:	2d fb 7d 00 00       	sub    $0x7dfb,%eax
40ebf9:	74 13                	je     0x40ec0e
40ebfb:	83 e8 01             	sub    $0x1,%eax
40ebfe:	75 79                	jne    0x40ec79
40ec00:	8b cf                	mov    %edi,%ecx
40ec02:	e8 7a fe ff ff       	call   0x40ea81
40ec07:	89 03                	mov    %eax,(%ebx)
40ec09:	e9 93 00 00 00       	jmp    0x40eca1
40ec0e:	8b cf                	mov    %edi,%ecx
40ec10:	e8 6c fe ff ff       	call   0x40ea81
40ec15:	85 c0                	test   %eax,%eax
40ec17:	74 60                	je     0x40ec79
40ec19:	85 db                	test   %ebx,%ebx
40ec1b:	0f 84 80 00 00 00    	je     0x40eca1
40ec21:	8b d3                	mov    %ebx,%edx
40ec23:	8b cf                	mov    %edi,%ecx
40ec25:	e8 40 fd ff ff       	call   0x40e96a
40ec2a:	eb 75                	jmp    0x40eca1
40ec2c:	39 35 24 98 41 00    	cmp    %esi,0x419824
40ec32:	74 45                	je     0x40ec79
40ec34:	8b cf                	mov    %edi,%ecx
40ec36:	e8 46 fe ff ff       	call   0x40ea81
40ec3b:	85 c0                	test   %eax,%eax
40ec3d:	74 3a                	je     0x40ec79
40ec3f:	53                   	push   %ebx
40ec40:	ff 75 10             	push   0x10(%ebp)
40ec43:	57                   	push   %edi
40ec44:	ff 15 94 b2 41 00    	call   *0x41b294
40ec4a:	8b 35 24 98 41 00    	mov    0x419824,%esi
40ec50:	8b ce                	mov    %esi,%ecx
40ec52:	0f b6 c0             	movzbl %al,%eax
40ec55:	50                   	push   %eax
40ec56:	57                   	push   %edi
40ec57:	ff 15 90 b3 41 00    	call   *0x41b390
40ec5d:	ff d6                	call   *%esi
40ec5f:	eb 18                	jmp    0x40ec79
40ec61:	57                   	push   %edi
40ec62:	ff 15 94 b2 41 00    	call   *0x41b294
40ec68:	3c 14                	cmp    $0x14,%al
40ec6a:	74 0d                	je     0x40ec79
40ec6c:	eb 33                	jmp    0x40eca1
40ec6e:	56                   	push   %esi
40ec6f:	57                   	push   %edi
40ec70:	6a 08                	push   $0x8
40ec72:	57                   	push   %edi
40ec73:	ff 15 98 b2 41 00    	call   *0x41b298
40ec79:	8b 45 d8             	mov    -0x28(%ebp),%eax
40ec7c:	85 c0                	test   %eax,%eax
40ec7e:	74 11                	je     0x40ec91
40ec80:	53                   	push   %ebx
40ec81:	ff 75 10             	push   0x10(%ebp)
40ec84:	ff 75 0c             	push   0xc(%ebp)
40ec87:	57                   	push   %edi
40ec88:	50                   	push   %eax
40ec89:	ff 15 9c b2 41 00    	call   *0x41b29c
40ec8f:	eb 0e                	jmp    0x40ec9f
40ec91:	53                   	push   %ebx
40ec92:	ff 75 10             	push   0x10(%ebp)
40ec95:	ff 75 0c             	push   0xc(%ebp)
40ec98:	57                   	push   %edi
40ec99:	ff 15 b4 b2 41 00    	call   *0x41b2b4
40ec9f:	8b f0                	mov    %eax,%esi
40eca1:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40eca4:	8b c6                	mov    %esi,%eax
40eca6:	5f                   	pop    %edi
40eca7:	5e                   	pop    %esi
40eca8:	33 cd                	xor    %ebp,%ecx
40ecaa:	5b                   	pop    %ebx
40ecab:	e8 30 4c 00 00       	call   0x4138e0
40ecb0:	c9                   	leave
40ecb1:	c2 10 00             	ret    $0x10
40ecb4:	8b ff                	mov    %edi,%edi
40ecb6:	55                   	push   %ebp
40ecb7:	8b ec                	mov    %esp,%ebp
40ecb9:	81 ec f0 02 00 00    	sub    $0x2f0,%esp
40ecbf:	a1 18 51 41 00       	mov    0x415118,%eax
40ecc4:	33 c5                	xor    %ebp,%eax
40ecc6:	89 45 f8             	mov    %eax,-0x8(%ebp)
40ecc9:	8b 55 08             	mov    0x8(%ebp),%edx
40eccc:	83 a5 34 fd ff ff 00 	andl   $0x0,-0x2cc(%ebp)
40ecd3:	53                   	push   %ebx
40ecd4:	8b 5d 10             	mov    0x10(%ebp),%ebx
40ecd7:	56                   	push   %esi
40ecd8:	57                   	push   %edi
40ecd9:	8b f9                	mov    %ecx,%edi
40ecdb:	89 95 14 fd ff ff    	mov    %edx,-0x2ec(%ebp)
40ece1:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40ece4:	33 f6                	xor    %esi,%esi
40ece6:	89 8d 2c fd ff ff    	mov    %ecx,-0x2d4(%ebp)
40ecec:	89 9d 10 fd ff ff    	mov    %ebx,-0x2f0(%ebp)
40ecf2:	8b 01                	mov    (%ecx),%eax
40ecf4:	83 c0 03             	add    $0x3,%eax
40ecf7:	89 85 18 fd ff ff    	mov    %eax,-0x2e8(%ebp)
40ecfd:	8b 41 04             	mov    0x4(%ecx),%eax
40ed00:	83 c0 03             	add    $0x3,%eax
40ed03:	89 85 1c fd ff ff    	mov    %eax,-0x2e4(%ebp)
40ed09:	8d 85 18 fd ff ff    	lea    -0x2e8(%ebp),%eax
40ed0f:	50                   	push   %eax
40ed10:	52                   	push   %edx
40ed11:	ff 15 b0 b2 41 00    	call   *0x41b2b0
40ed17:	8b 85 18 fd ff ff    	mov    -0x2e8(%ebp),%eax
40ed1d:	8d 8d 34 ff ff ff    	lea    -0xcc(%ebp),%ecx
40ed23:	89 85 30 fd ff ff    	mov    %eax,-0x2d0(%ebp)
40ed29:	8b 85 1c fd ff ff    	mov    -0x2e4(%ebp),%eax
40ed2f:	89 85 28 fd ff ff    	mov    %eax,-0x2d8(%ebp)
40ed35:	e8 92 94 ff ff       	call   0x4081cc
40ed3a:	e8 36 10 00 00       	call   0x40fd75
40ed3f:	6b c0 f7             	imul   $0xfffffff7,%eax,%eax
40ed42:	6a 48                	push   $0x48
40ed44:	59                   	pop    %ecx
40ed45:	99                   	cltd
40ed46:	f7 f9                	idiv   %ecx
40ed48:	89 85 34 ff ff ff    	mov    %eax,-0xcc(%ebp)
40ed4e:	8d 85 34 ff ff ff    	lea    -0xcc(%ebp),%eax
40ed54:	50                   	push   %eax
40ed55:	ff 15 84 b0 41 00    	call   *0x41b084
40ed5b:	6a 5c                	push   $0x5c
40ed5d:	89 87 44 01 00 00    	mov    %eax,0x144(%edi)
40ed63:	8d 45 94             	lea    -0x6c(%ebp),%eax
40ed66:	56                   	push   %esi
40ed67:	50                   	push   %eax
40ed68:	e8 f4 53 00 00       	call   0x414161
40ed6d:	83 c4 0c             	add    $0xc,%esp
40ed70:	e8 00 10 00 00       	call   0x40fd75
40ed75:	6b c0 f6             	imul   $0xfffffff6,%eax,%eax
40ed78:	6a 48                	push   $0x48
40ed7a:	59                   	pop    %ecx
40ed7b:	68 f4 01 00 00       	push   $0x1f4
40ed80:	56                   	push   %esi
40ed81:	99                   	cltd
40ed82:	f7 f9                	idiv   %ecx
40ed84:	c6 45 ab 00          	movb   $0x0,-0x55(%ebp)
40ed88:	89 45 94             	mov    %eax,-0x6c(%ebp)
40ed8b:	8d 85 40 fd ff ff    	lea    -0x2c0(%ebp),%eax
40ed91:	50                   	push   %eax
40ed92:	e8 ca 53 00 00       	call   0x414161
40ed97:	83 c4 0c             	add    $0xc,%esp
40ed9a:	c7 85 3c fd ff ff f8 	movl   $0x1f8,-0x2c4(%ebp)
40eda1:	01 00 00
40eda4:	8d 85 3c fd ff ff    	lea    -0x2c4(%ebp),%eax
40edaa:	56                   	push   %esi
40edab:	50                   	push   %eax
40edac:	56                   	push   %esi
40edad:	6a 29                	push   $0x29
40edaf:	ff 15 ac b2 41 00    	call   *0x41b2ac
40edb5:	6a ff                	push   $0xffffffff
40edb7:	8d 85 f0 fe ff ff    	lea    -0x110(%ebp),%eax
40edbd:	50                   	push   %eax
40edbe:	8d 45 b0             	lea    -0x50(%ebp),%eax
40edc1:	6a 20                	push   $0x20
40edc3:	50                   	push   %eax
40edc4:	ff 15 e8 b2 41 00    	call   *0x41b2e8
40edca:	83 c4 10             	add    $0x10,%esp
40edcd:	8d 45 94             	lea    -0x6c(%ebp),%eax
40edd0:	50                   	push   %eax
40edd1:	ff 15 84 b0 41 00    	call   *0x41b084
40edd7:	21 b5 24 fd ff ff    	and    %esi,-0x2dc(%ebp)
40eddd:	33 c9                	xor    %ecx,%ecx
40eddf:	89 87 48 01 00 00    	mov    %eax,0x148(%edi)
40ede5:	89 9f 40 01 00 00    	mov    %ebx,0x140(%edi)
40edeb:	89 8d 38 fd ff ff    	mov    %ecx,-0x2c8(%ebp)
40edf1:	c7 85 20 fd ff ff c0 	movl   $0x403ec0,-0x2e0(%ebp)
40edf8:	3e 40 00
40edfb:	33 db                	xor    %ebx,%ebx
40edfd:	83 fe 50             	cmp    $0x50,%esi
40ee00:	0f 8d 63 01 00 00    	jge    0x40ef69
40ee06:	8d 04 19             	lea    (%ecx,%ebx,1),%eax
40ee09:	8b 0c 85 c0 3e 40 00 	mov    0x403ec0(,%eax,4),%ecx
40ee10:	83 f9 08             	cmp    $0x8,%ecx
40ee13:	0f 84 4a 01 00 00    	je     0x40ef63
40ee19:	83 f9 06             	cmp    $0x6,%ecx
40ee1c:	0f 8d 23 01 00 00    	jge    0x40ef45
40ee22:	8b 95 2c fd ff ff    	mov    -0x2d4(%ebp),%edx
40ee28:	c7 85 34 fd ff ff e6 	movl   $0x1e6,-0x2cc(%ebp)
40ee2f:	01 00 00
40ee32:	8b 42 08             	mov    0x8(%edx),%eax
40ee35:	2b 02                	sub    (%edx),%eax
40ee37:	0f af 04 cd 40 93 41 	imul   0x419340(,%ecx,8),%eax
40ee3e:	00
40ee3f:	99                   	cltd
40ee40:	f7 bd 34 fd ff ff    	idivl  -0x2cc(%ebp)
40ee46:	8b 95 2c fd ff ff    	mov    -0x2d4(%ebp),%edx
40ee4c:	89 85 34 fd ff ff    	mov    %eax,-0x2cc(%ebp)
40ee52:	8b 42 0c             	mov    0xc(%edx),%eax
40ee55:	2b 42 04             	sub    0x4(%edx),%eax
40ee58:	0f af 04 cd 44 93 41 	imul   0x419344(,%ecx,8),%eax
40ee5f:	00
40ee60:	b9 b1 00 00 00       	mov    $0xb1,%ecx
40ee65:	99                   	cltd
40ee66:	f7 f9                	idiv   %ecx
40ee68:	8b 8d 38 fd ff ff    	mov    -0x2c8(%ebp),%ecx
40ee6e:	33 d2                	xor    %edx,%edx
40ee70:	52                   	push   %edx
40ee71:	ff 35 18 a3 41 00    	push   0x41a318
40ee77:	0f b6 8c 19 70 3e 40 	movzbl 0x403e70(%ecx,%ebx,1),%ecx
40ee7e:	00
40ee7f:	81 c9 00 ff 00 00    	or     $0xff00,%ecx
40ee85:	51                   	push   %ecx
40ee86:	ff b5 14 fd ff ff    	push   -0x2ec(%ebp)
40ee8c:	50                   	push   %eax
40ee8d:	ff b5 34 fd ff ff    	push   -0x2cc(%ebp)
40ee93:	ff b5 28 fd ff ff    	push   -0x2d8(%ebp)
40ee99:	ff b5 30 fd ff ff    	push   -0x2d0(%ebp)
40ee9f:	68 00 20 00 50       	push   $0x50002000
40eea4:	52                   	push   %edx
40eea5:	68 5c 3e 40 00       	push   $0x403e5c
40eeaa:	52                   	push   %edx
40eeab:	ff 15 a8 b2 41 00    	call   *0x41b2a8
40eeb1:	6b 95 10 fd ff ff 05 	imul   $0x5,-0x2f0(%ebp),%edx
40eeb8:	89 04 b7             	mov    %eax,(%edi,%esi,4)
40eebb:	03 95 24 fd ff ff    	add    -0x2dc(%ebp),%edx
40eec1:	c1 e2 04             	shl    $0x4,%edx
40eec4:	03 d3                	add    %ebx,%edx
40eec6:	c1 e2 05             	shl    $0x5,%edx
40eec9:	81 c2 40 57 41 00    	add    $0x415740,%edx
40eecf:	74 07                	je     0x40eed8
40eed1:	8b c8                	mov    %eax,%ecx
40eed3:	e8 92 fa ff ff       	call   0x40e96a
40eed8:	6a 03                	push   $0x3
40eeda:	33 c0                	xor    %eax,%eax
40eedc:	50                   	push   %eax
40eedd:	50                   	push   %eax
40eede:	50                   	push   %eax
40eedf:	50                   	push   %eax
40eee0:	50                   	push   %eax
40eee1:	ff 34 b7             	push   (%edi,%esi,4)
40eee4:	ff 15 a4 b2 41 00    	call   *0x41b2a4
40eeea:	8b 85 38 fd ff ff    	mov    -0x2c8(%ebp),%eax
40eef0:	0f b6 8c 18 70 3e 40 	movzbl 0x403e70(%eax,%ebx,1),%ecx
40eef7:	00
40eef8:	e8 53 fb ff ff       	call   0x40ea50
40eefd:	85 c0                	test   %eax,%eax
40eeff:	74 08                	je     0x40ef09
40ef01:	8b 87 48 01 00 00    	mov    0x148(%edi),%eax
40ef07:	eb 06                	jmp    0x40ef0f
40ef09:	8b 87 44 01 00 00    	mov    0x144(%edi),%eax
40ef0f:	6a 00                	push   $0x0
40ef11:	50                   	push   %eax
40ef12:	6a 30                	push   $0x30
40ef14:	ff 34 b7             	push   (%edi,%esi,4)
40ef17:	ff 15 d8 b1 41 00    	call   *0x41b1d8
40ef1d:	6a fc                	push   $0xfffffffc
40ef1f:	ff 34 b7             	push   (%edi,%esi,4)
40ef22:	ff 15 20 b2 41 00    	call   *0x41b220
40ef28:	50                   	push   %eax
40ef29:	6a eb                	push   $0xffffffeb
40ef2b:	ff 34 b7             	push   (%edi,%esi,4)
40ef2e:	ff 15 24 b2 41 00    	call   *0x41b224
40ef34:	68 d0 ea 40 00       	push   $0x40ead0
40ef39:	6a fc                	push   $0xfffffffc
40ef3b:	ff 34 b7             	push   (%edi,%esi,4)
40ef3e:	ff 15 24 b2 41 00    	call   *0x41b224
40ef44:	46                   	inc    %esi
40ef45:	8b 85 34 fd ff ff    	mov    -0x2cc(%ebp),%eax
40ef4b:	01 85 30 fd ff ff    	add    %eax,-0x2d0(%ebp)
40ef51:	43                   	inc    %ebx
40ef52:	8b 8d 38 fd ff ff    	mov    -0x2c8(%ebp),%ecx
40ef58:	83 fb 10             	cmp    $0x10,%ebx
40ef5b:	0f 8c 9c fe ff ff    	jl     0x40edfd
40ef61:	eb 06                	jmp    0x40ef69
40ef63:	8b 8d 38 fd ff ff    	mov    -0x2c8(%ebp),%ecx
40ef69:	8b 95 20 fd ff ff    	mov    -0x2e0(%ebp),%edx
40ef6f:	8b 85 18 fd ff ff    	mov    -0x2e8(%ebp),%eax
40ef75:	89 85 30 fd ff ff    	mov    %eax,-0x2d0(%ebp)
40ef7b:	8b 1a                	mov    (%edx),%ebx
40ef7d:	83 fb 08             	cmp    $0x8,%ebx
40ef80:	7d 28                	jge    0x40efaa
40ef82:	8b 95 2c fd ff ff    	mov    -0x2d4(%ebp),%edx
40ef88:	8b 42 0c             	mov    0xc(%edx),%eax
40ef8b:	2b 42 04             	sub    0x4(%edx),%eax
40ef8e:	0f af 04 dd 44 93 41 	imul   0x419344(,%ebx,8),%eax
40ef95:	00
40ef96:	bb ab 00 00 00       	mov    $0xab,%ebx
40ef9b:	99                   	cltd
40ef9c:	f7 fb                	idiv   %ebx
40ef9e:	8b 95 20 fd ff ff    	mov    -0x2e0(%ebp),%edx
40efa4:	01 85 28 fd ff ff    	add    %eax,-0x2d8(%ebp)
40efaa:	ff 85 24 fd ff ff    	incl   -0x2dc(%ebp)
40efb0:	83 c2 40             	add    $0x40,%edx
40efb3:	83 c1 10             	add    $0x10,%ecx
40efb6:	89 95 20 fd ff ff    	mov    %edx,-0x2e0(%ebp)
40efbc:	89 8d 38 fd ff ff    	mov    %ecx,-0x2c8(%ebp)
40efc2:	81 fa 00 40 40 00    	cmp    $0x404000,%edx
40efc8:	0f 8c 2d fe ff ff    	jl     0x40edfb
40efce:	8b 4d f8             	mov    -0x8(%ebp),%ecx
40efd1:	5f                   	pop    %edi
40efd2:	5e                   	pop    %esi
40efd3:	33 cd                	xor    %ebp,%ecx
40efd5:	5b                   	pop    %ebx
40efd6:	e8 05 49 00 00       	call   0x4138e0
40efdb:	c9                   	leave
40efdc:	c2 0c 00             	ret    $0xc
40efdf:	8b ff                	mov    %edi,%edi
40efe1:	55                   	push   %ebp
40efe2:	8b ec                	mov    %esp,%ebp
40efe4:	83 ec 0c             	sub    $0xc,%esp
40efe7:	8b 55 08             	mov    0x8(%ebp),%edx
40efea:	8b c1                	mov    %ecx,%eax
40efec:	53                   	push   %ebx
40efed:	56                   	push   %esi
40efee:	33 c9                	xor    %ecx,%ecx
40eff0:	89 45 f8             	mov    %eax,-0x8(%ebp)
40eff3:	57                   	push   %edi
40eff4:	33 db                	xor    %ebx,%ebx
40eff6:	89 55 f4             	mov    %edx,-0xc(%ebp)
40eff9:	89 90 40 01 00 00    	mov    %edx,0x140(%eax)
40efff:	33 ff                	xor    %edi,%edi
40f001:	89 4d fc             	mov    %ecx,-0x4(%ebp)
40f004:	33 f6                	xor    %esi,%esi