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
40f006:	83 fb 50             	cmp    $0x50,%ebx
40f009:	7d 41                	jge    0x40f04c
40f00b:	8d 04 37             	lea    (%edi,%esi,1),%eax
40f00e:	8b 04 85 c0 3e 40 00 	mov    0x403ec0(,%eax,4),%eax
40f015:	83 f8 08             	cmp    $0x8,%eax
40f018:	74 32                	je     0x40f04c
40f01a:	83 f8 06             	cmp    $0x6,%eax
40f01d:	7d 27                	jge    0x40f046
40f01f:	6b d2 05             	imul   $0x5,%edx,%edx
40f022:	03 d1                	add    %ecx,%edx
40f024:	c1 e2 04             	shl    $0x4,%edx
40f027:	03 d6                	add    %esi,%edx
40f029:	c1 e2 05             	shl    $0x5,%edx
40f02c:	81 c2 40 57 41 00    	add    $0x415740,%edx
40f032:	74 0e                	je     0x40f042
40f034:	8b 45 f8             	mov    -0x8(%ebp),%eax
40f037:	8b 0c 98             	mov    (%eax,%ebx,4),%ecx
40f03a:	e8 2b f9 ff ff       	call   0x40e96a
40f03f:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40f042:	8b 55 f4             	mov    -0xc(%ebp),%edx
40f045:	43                   	inc    %ebx
40f046:	46                   	inc    %esi
40f047:	83 fe 10             	cmp    $0x10,%esi
40f04a:	7c ba                	jl     0x40f006
40f04c:	41                   	inc    %ecx
40f04d:	83 c7 10             	add    $0x10,%edi
40f050:	89 4d fc             	mov    %ecx,-0x4(%ebp)
40f053:	83 ff 50             	cmp    $0x50,%edi
40f056:	7c ac                	jl     0x40f004
40f058:	5f                   	pop    %edi
40f059:	5e                   	pop    %esi
40f05a:	5b                   	pop    %ebx
40f05b:	c9                   	leave
40f05c:	c2 04 00             	ret    $0x4
40f05f:	8b ff                	mov    %edi,%edi
40f061:	55                   	push   %ebp
40f062:	8b ec                	mov    %esp,%ebp
40f064:	51                   	push   %ecx
40f065:	51                   	push   %ecx
40f066:	53                   	push   %ebx
40f067:	8b d1                	mov    %ecx,%edx
40f069:	33 db                	xor    %ebx,%ebx
40f06b:	56                   	push   %esi
40f06c:	33 c9                	xor    %ecx,%ecx
40f06e:	89 55 f8             	mov    %edx,-0x8(%ebp)
40f071:	57                   	push   %edi
40f072:	89 4d fc             	mov    %ecx,-0x4(%ebp)
40f075:	33 ff                	xor    %edi,%edi
40f077:	33 f6                	xor    %esi,%esi
40f079:	83 fb 50             	cmp    $0x50,%ebx
40f07c:	7d 59                	jge    0x40f0d7
40f07e:	8d 04 37             	lea    (%edi,%esi,1),%eax
40f081:	8b 04 85 c0 3e 40 00 	mov    0x403ec0(,%eax,4),%eax
40f088:	83 f8 08             	cmp    $0x8,%eax
40f08b:	74 4a                	je     0x40f0d7
40f08d:	83 f8 06             	cmp    $0x6,%eax
40f090:	7d 3f                	jge    0x40f0d1
40f092:	0f b6 8c 37 70 3e 40 	movzbl 0x403e70(%edi,%esi,1),%ecx
40f099:	00
40f09a:	e8 b1 f9 ff ff       	call   0x40ea50
40f09f:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40f0a2:	85 c0                	test   %eax,%eax
40f0a4:	75 2a                	jne    0x40f0d0
40f0a6:	6b 92 40 01 00 00 05 	imul   $0x5,0x140(%edx),%edx
40f0ad:	03 d1                	add    %ecx,%edx
40f0af:	c1 e2 04             	shl    $0x4,%edx
40f0b2:	03 d6                	add    %esi,%edx
40f0b4:	c1 e2 05             	shl    $0x5,%edx
40f0b7:	81 c2 40 57 41 00    	add    $0x415740,%edx
40f0bd:	74 0e                	je     0x40f0cd
40f0bf:	8b 4d f8             	mov    -0x8(%ebp),%ecx
40f0c2:	8b 0c 99             	mov    (%ecx,%ebx,4),%ecx
40f0c5:	e8 15 f9 ff ff       	call   0x40e9df
40f0ca:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40f0cd:	8b 55 f8             	mov    -0x8(%ebp),%edx
40f0d0:	43                   	inc    %ebx
40f0d1:	46                   	inc    %esi
40f0d2:	83 fe 10             	cmp    $0x10,%esi
40f0d5:	7c a2                	jl     0x40f079
40f0d7:	41                   	inc    %ecx
40f0d8:	83 c7 10             	add    $0x10,%edi
40f0db:	89 4d fc             	mov    %ecx,-0x4(%ebp)
40f0de:	83 ff 50             	cmp    $0x50,%edi
40f0e1:	7c 94                	jl     0x40f077
40f0e3:	5f                   	pop    %edi
40f0e4:	5e                   	pop    %esi
40f0e5:	5b                   	pop    %ebx
40f0e6:	c9                   	leave
40f0e7:	c3                   	ret
40f0e8:	8b ff                	mov    %edi,%edi
40f0ea:	55                   	push   %ebp
40f0eb:	8b ec                	mov    %esp,%ebp
40f0ed:	51                   	push   %ecx
40f0ee:	51                   	push   %ecx
40f0ef:	53                   	push   %ebx
40f0f0:	56                   	push   %esi
40f0f1:	33 c0                	xor    %eax,%eax
40f0f3:	8b d1                	mov    %ecx,%edx
40f0f5:	57                   	push   %edi
40f0f6:	89 55 f8             	mov    %edx,-0x8(%ebp)
40f0f9:	33 db                	xor    %ebx,%ebx
40f0fb:	89 45 fc             	mov    %eax,-0x4(%ebp)
40f0fe:	bf 90 01 00 00       	mov    $0x190,%edi
40f103:	33 f6                	xor    %esi,%esi
40f105:	83 f8 50             	cmp    $0x50,%eax
40f108:	0f 8d c1 00 00 00    	jge    0x40f1cf
40f10e:	8d 04 37             	lea    (%edi,%esi,1),%eax
40f111:	8b 04 85 80 38 40 00 	mov    0x403880(,%eax,4),%eax
40f118:	83 f8 08             	cmp    $0x8,%eax
40f11b:	0f 84 ab 00 00 00    	je     0x40f1cc
40f121:	83 f8 06             	cmp    $0x6,%eax
40f124:	0f 8d 93 00 00 00    	jge    0x40f1bd
40f12a:	0f b6 8c 37 e0 3c 40 	movzbl 0x403ce0(%edi,%esi,1),%ecx
40f131:	00
40f132:	e8 19 f9 ff ff       	call   0x40ea50
40f137:	85 c0                	test   %eax,%eax
40f139:	75 79                	jne    0x40f1b4
40f13b:	8b 82 40 01 00 00    	mov    0x140(%edx),%eax
40f141:	83 f8 05             	cmp    $0x5,%eax
40f144:	75 48                	jne    0x40f18e
40f146:	8d 04 37             	lea    (%edi,%esi,1),%eax
40f149:	b9 00 30 00 00       	mov    $0x3000,%ecx
40f14e:	c1 e0 05             	shl    $0x5,%eax
40f151:	66 89 88 40 57 41 00 	mov    %cx,0x415740(%eax)
40f158:	6b 82 40 01 00 00 05 	imul   $0x5,0x140(%edx),%eax
40f15f:	03 c3                	add    %ebx,%eax
40f161:	c1 e0 04             	shl    $0x4,%eax
40f164:	03 c6                	add    %esi,%eax
40f166:	c1 e0 05             	shl    $0x5,%eax
40f169:	66 89 88 42 57 41 00 	mov    %cx,0x415742(%eax)
40f170:	6b 82 40 01 00 00 05 	imul   $0x5,0x140(%edx),%eax
40f177:	03 c3                	add    %ebx,%eax
40f179:	c1 e0 04             	shl    $0x4,%eax
40f17c:	03 c6                	add    %esi,%eax
40f17e:	c1 e0 05             	shl    $0x5,%eax
40f181:	66 89 88 44 57 41 00 	mov    %cx,0x415744(%eax)
40f188:	8b 82 40 01 00 00    	mov    0x140(%edx),%eax
40f18e:	6b d0 05             	imul   $0x5,%eax,%edx
40f191:	03 d3                	add    %ebx,%edx
40f193:	c1 e2 04             	shl    $0x4,%edx
40f196:	03 d6                	add    %esi,%edx
40f198:	c1 e2 05             	shl    $0x5,%edx
40f19b:	81 c2 40 57 41 00    	add    $0x415740,%edx
40f1a1:	74 0e                	je     0x40f1b1
40f1a3:	8b 45 f8             	mov    -0x8(%ebp),%eax
40f1a6:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40f1a9:	8b 0c 88             	mov    (%eax,%ecx,4),%ecx
40f1ac:	e8 b9 f7 ff ff       	call   0x40e96a
40f1b1:	8b 55 f8             	mov    -0x8(%ebp),%edx
40f1b4:	8b 45 fc             	mov    -0x4(%ebp),%eax
40f1b7:	40                   	inc    %eax
40f1b8:	89 45 fc             	mov    %eax,-0x4(%ebp)
40f1bb:	eb 03                	jmp    0x40f1c0
40f1bd:	8b 45 fc             	mov    -0x4(%ebp),%eax
40f1c0:	46                   	inc    %esi
40f1c1:	83 fe 10             	cmp    $0x10,%esi
40f1c4:	0f 8c 3b ff ff ff    	jl     0x40f105
40f1ca:	eb 03                	jmp    0x40f1cf
40f1cc:	8b 45 fc             	mov    -0x4(%ebp),%eax
40f1cf:	83 c7 10             	add    $0x10,%edi
40f1d2:	43                   	inc    %ebx
40f1d3:	81 ff e0 01 00 00    	cmp    $0x1e0,%edi
40f1d9:	0f 8c 24 ff ff ff    	jl     0x40f103
40f1df:	5f                   	pop    %edi
40f1e0:	5e                   	pop    %esi
40f1e1:	5b                   	pop    %ebx
40f1e2:	c9                   	leave
40f1e3:	c3                   	ret
40f1e4:	8b ff                	mov    %edi,%edi
40f1e6:	55                   	push   %ebp
40f1e7:	8b ec                	mov    %esp,%ebp
40f1e9:	83 ec 14             	sub    $0x14,%esp
40f1ec:	53                   	push   %ebx
40f1ed:	b9 70 3e 40 00       	mov    $0x403e70,%ecx
40f1f2:	33 c0                	xor    %eax,%eax