418ec0:	56                   	push   %esi
418ec1:	ff 75 08             	push   0x8(%ebp)
418ec4:	e8 73 02 00 00       	call   0x41913c
418ec9:	83 c4 10             	add    $0x10,%esp
418ecc:	e9 9b 00 00 00       	jmp    0x418f6c
418ed1:	8b 04 8d 00 f8 43 00 	mov    0x43f800(,%ecx,4),%eax
418ed8:	80 7c 02 28 00       	cmpb   $0x0,0x28(%edx,%eax,1)
418edd:	7d 3f                	jge    0x418f1e
418edf:	8b 75 08             	mov    0x8(%ebp),%esi
418ee2:	ff 75 f8             	push   -0x8(%ebp)
418ee5:	ff 36                	push   (%esi)
418ee7:	ff 76 04             	push   0x4(%esi)
418eea:	e8 f8 03 00 00       	call   0x4192e7
418eef:	8b 4d ec             	mov    -0x14(%ebp),%ecx
418ef2:	83 c4 0c             	add    $0xc,%esp
418ef5:	03 d8                	add    %eax,%ebx
418ef7:	13 ca                	adc    %edx,%ecx
418ef9:	eb 29                	jmp    0x418f24
418efb:	8b 45 08             	mov    0x8(%ebp),%eax
418efe:	8b 40 0c             	mov    0xc(%eax),%eax
418f01:	90                   	nop
418f02:	c1 e8 02             	shr    $0x2,%eax
418f05:	a8 01                	test   $0x1,%al
418f07:	75 15                	jne    0x418f1e
418f09:	8b 45 0c             	mov    0xc(%ebp),%eax
418f0c:	c6 40 1c 01          	movb   $0x1,0x1c(%eax)
418f10:	c7 40 18 16 00 00 00 	movl   $0x16,0x18(%eax)
418f17:	83 c8 ff             	or     $0xffffffff,%eax
418f1a:	0b d0                	or     %eax,%edx
418f1c:	eb 4e                	jmp    0x418f6c
418f1e:	8b 75 08             	mov    0x8(%ebp),%esi
418f21:	8b 4d ec             	mov    -0x14(%ebp),%ecx
418f24:	8b 55 e8             	mov    -0x18(%ebp),%edx
418f27:	8b c2                	mov    %edx,%eax
418f29:	0b 45 fc             	or     -0x4(%ebp),%eax
418f2c:	74 3a                	je     0x418f68
418f2e:	8b 46 0c             	mov    0xc(%esi),%eax
418f31:	90                   	nop
418f32:	a8 01                	test   $0x1,%al
418f34:	74 16                	je     0x418f4c
418f36:	ff 75 0c             	push   0xc(%ebp)
418f39:	51                   	push   %ecx
418f3a:	53                   	push   %ebx
418f3b:	ff 75 fc             	push   -0x4(%ebp)
418f3e:	52                   	push   %edx
418f3f:	ff 75 08             	push   0x8(%ebp)
418f42:	e8 2a 00 00 00       	call   0x418f71
418f47:	83 c4 18             	add    $0x18,%esp
418f4a:	eb 20                	jmp    0x418f6c
418f4c:	80 7d f8 01          	cmpb   $0x1,-0x8(%ebp)
418f50:	75 11                	jne    0x418f63
418f52:	57                   	push   %edi
418f53:	6a 02                	push   $0x2
418f55:	51                   	push   %ecx
418f56:	53                   	push   %ebx
418f57:	e8 b4 0f ff ff       	call   0x409f10
418f5c:	8b ca                	mov    %edx,%ecx
418f5e:	8b d8                	mov    %eax,%ebx
418f60:	8b 55 e8             	mov    -0x18(%ebp),%edx
418f63:	03 da                	add    %edx,%ebx
418f65:	13 4d fc             	adc    -0x4(%ebp),%ecx
418f68:	8b c3                	mov    %ebx,%eax
418f6a:	8b d1                	mov    %ecx,%edx
418f6c:	5e                   	pop    %esi
418f6d:	5b                   	pop    %ebx
418f6e:	5f                   	pop    %edi
418f6f:	c9                   	leave
418f70:	c3                   	ret
418f71:	8b ff                	mov    %edi,%edi
418f73:	55                   	push   %ebp
418f74:	8b ec                	mov    %esp,%ebp
418f76:	83 ec 24             	sub    $0x24,%esp
418f79:	53                   	push   %ebx
418f7a:	56                   	push   %esi
418f7b:	57                   	push   %edi
418f7c:	ff 75 08             	push   0x8(%ebp)
418f7f:	e8 bc 48 00 00       	call   0x41d840
418f84:	8b d0                	mov    %eax,%edx
418f86:	89 45 e0             	mov    %eax,-0x20(%ebp)
418f89:	83 e0 3f             	and    $0x3f,%eax
418f8c:	c1 fa 06             	sar    $0x6,%edx
418f8f:	6b c0 38             	imul   $0x38,%eax,%eax
418f92:	33 db                	xor    %ebx,%ebx
418f94:	59                   	pop    %ecx
418f95:	43                   	inc    %ebx
418f96:	89 55 dc             	mov    %edx,-0x24(%ebp)
418f99:	8b 0c 95 00 f8 43 00 	mov    0x43f800(,%edx,4),%ecx
418fa0:	33 ff                	xor    %edi,%edi
418fa2:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
418fa5:	89 45 e8             	mov    %eax,-0x18(%ebp)
418fa8:	89 7d f4             	mov    %edi,-0xc(%ebp)
418fab:	8a 44 01 29          	mov    0x29(%ecx,%eax,1),%al
418faf:	88 45 ec             	mov    %al,-0x14(%ebp)
418fb2:	3a c3                	cmp    %bl,%al
418fb4:	75 08                	jne    0x418fbe
418fb6:	6a 02                	push   $0x2
418fb8:	5e                   	pop    %esi
418fb9:	89 75 f8             	mov    %esi,-0x8(%ebp)
418fbc:	eb 03                	jmp    0x418fc1
418fbe:	89 5d f8             	mov    %ebx,-0x8(%ebp)
418fc1:	8b 45 08             	mov    0x8(%ebp),%eax
418fc4:	8b 48 08             	mov    0x8(%eax),%ecx
418fc7:	89 4d f0             	mov    %ecx,-0x10(%ebp)
418fca:	85 c9                	test   %ecx,%ecx
418fcc:	75 0b                	jne    0x418fd9
418fce:	8b 45 0c             	mov    0xc(%ebp),%eax
418fd1:	8b 55 10             	mov    0x10(%ebp),%edx
418fd4:	e9 5e 01 00 00       	jmp    0x419137
418fd9:	8b 08                	mov    (%eax),%ecx
418fdb:	2b 48 04             	sub    0x4(%eax),%ecx
418fde:	8b 75 e4             	mov    -0x1c(%ebp),%esi
418fe1:	8b c1                	mov    %ecx,%eax
418fe3:	99                   	cltd
418fe4:	8b c8                	mov    %eax,%ecx
418fe6:	89 55 fc             	mov    %edx,-0x4(%ebp)
418fe9:	8b 45 f0             	mov    -0x10(%ebp),%eax
418fec:	99                   	cltd
418fed:	03 c8                	add    %eax,%ecx
418fef:	8b 45 fc             	mov    -0x4(%ebp),%eax
418ff2:	89 4d f0             	mov    %ecx,-0x10(%ebp)
418ff5:	13 c2                	adc    %edx,%eax
418ff7:	8b 55 e8             	mov    -0x18(%ebp),%edx
418ffa:	89 45 fc             	mov    %eax,-0x4(%ebp)
418ffd:	80 7c 16 28 00       	cmpb   $0x0,0x28(%esi,%edx,1)
419002:	8b 75 f8             	mov    -0x8(%ebp),%esi
419005:	7c 14                	jl     0x41901b
419007:	8b 5d f4             	mov    -0xc(%ebp),%ebx
41900a:	53                   	push   %ebx
41900b:	56                   	push   %esi
41900c:	50                   	push   %eax
41900d:	51                   	push   %ecx
41900e:	e8 fd 0e ff ff       	call   0x409f10
419013:	53                   	push   %ebx
419014:	8b de                	mov    %esi,%ebx
419016:	e9 02 01 00 00       	jmp    0x41911d
41901b:	ff 75 1c             	push   0x1c(%ebp)
41901e:	8b 75 e0             	mov    -0x20(%ebp),%esi
419021:	6a 02                	push   $0x2
419023:	57                   	push   %edi
419024:	57                   	push   %edi
419025:	56                   	push   %esi
419026:	e8 b1 89 00 00       	call   0x4219dc
41902b:	83 c4 14             	add    $0x14,%esp
41902e:	3b 45 0c             	cmp    0xc(%ebp),%eax
419031:	75 4b                	jne    0x41907e
419033:	3b 55 10             	cmp    0x10(%ebp),%edx
419036:	75 46                	jne    0x41907e
419038:	8b 75 08             	mov    0x8(%ebp),%esi
41903b:	ff 75 ec             	push   -0x14(%ebp)
41903e:	8b 45 f0             	mov    -0x10(%ebp),%eax
419041:	8b 4e 04             	mov    0x4(%esi),%ecx
419044:	03 c1                	add    %ecx,%eax
419046:	50                   	push   %eax
419047:	51                   	push   %ecx
419048:	e8 9a 02 00 00       	call   0x4192e7
41904d:	8b c8                	mov    %eax,%ecx
41904f:	83 c4 0c             	add    $0xc,%esp
419052:	03 4d f0             	add    -0x10(%ebp),%ecx
419055:	8b 46 0c             	mov    0xc(%esi),%eax
419058:	13 55 fc             	adc    -0x4(%ebp),%edx
41905b:	90                   	nop
41905c:	c1 e8 05             	shr    $0x5,%eax
41905f:	84 c3                	test   %al,%bl
419061:	0f 84 a5 00 00 00    	je     0x41910c
419067:	8a 45 ec             	mov    -0x14(%ebp),%al
41906a:	3a c3                	cmp    %bl,%al
41906c:	74 04                	je     0x419072
41906e:	3c 02                	cmp    $0x2,%al
419070:	75 03                	jne    0x419075
419072:	6a 02                	push   $0x2
419074:	5b                   	pop    %ebx
419075:	03 cb                	add    %ebx,%ecx
419077:	13 d7                	adc    %edi,%edx
419079:	e9 8e 00 00 00       	jmp    0x41910c
41907e:	ff 75 1c             	push   0x1c(%ebp)
419081:	57                   	push   %edi
419082:	ff 75 10             	push   0x10(%ebp)
419085:	ff 75 0c             	push   0xc(%ebp)
419088:	56                   	push   %esi
419089:	e8 4e 89 00 00       	call   0x4219dc
41908e:	23 c2                	and    %edx,%eax
419090:	83 c4 14             	add    $0x14,%esp
419093:	83 ca ff             	or     $0xffffffff,%edx
419096:	3b c2                	cmp    %edx,%eax
419098:	75 07                	jne    0x4190a1
41909a:	8b c2                	mov    %edx,%eax
41909c:	e9 96 00 00 00       	jmp    0x419137
4190a1:	39 7d fc             	cmp    %edi,-0x4(%ebp)
4190a4:	7f 2f                	jg     0x4190d5
4190a6:	b8 00 02 00 00       	mov    $0x200,%eax
4190ab:	89 45 fc             	mov    %eax,-0x4(%ebp)
4190ae:	7c 05                	jl     0x4190b5
4190b0:	39 45 f0             	cmp    %eax,-0x10(%ebp)
4190b3:	77 20                	ja     0x4190d5
4190b5:	8b 45 08             	mov    0x8(%ebp),%eax
4190b8:	8b 40 0c             	mov    0xc(%eax),%eax
4190bb:	90                   	nop
4190bc:	c1 e8 06             	shr    $0x6,%eax
4190bf:	84 c3                	test   %al,%bl
4190c1:	74 12                	je     0x4190d5
4190c3:	8b 45 08             	mov    0x8(%ebp),%eax
4190c6:	8b 40 0c             	mov    0xc(%eax),%eax
4190c9:	90                   	nop
4190ca:	c1 e8 08             	shr    $0x8,%eax
4190cd:	84 c3                	test   %al,%bl
4190cf:	75 04                	jne    0x4190d5
4190d1:	8b d7                	mov    %edi,%edx
4190d3:	eb 0a                	jmp    0x4190df
4190d5:	8b 45 08             	mov    0x8(%ebp),%eax
4190d8:	8b 40 18             	mov    0x18(%eax),%eax
4190db:	99                   	cltd
4190dc:	89 45 fc             	mov    %eax,-0x4(%ebp)
4190df:	8b 4d dc             	mov    -0x24(%ebp),%ecx
4190e2:	8b 45 e8             	mov    -0x18(%ebp),%eax
4190e5:	8b 0c 8d 00 f8 43 00 	mov    0x43f800(,%ecx,4),%ecx
4190ec:	f6 44 08 28 04       	testb  $0x4,0x28(%eax,%ecx,1)
4190f1:	74 16                	je     0x419109
4190f3:	8a 45 ec             	mov    -0x14(%ebp),%al
4190f6:	3a c3                	cmp    %bl,%al
4190f8:	74 04                	je     0x4190fe
4190fa:	3c 02                	cmp    $0x2,%al
4190fc:	75 03                	jne    0x419101
4190fe:	6a 02                	push   $0x2
419100:	5b                   	pop    %ebx
419101:	8b 4d fc             	mov    -0x4(%ebp),%ecx
419104:	e9 6c ff ff ff       	jmp    0x419075
419109:	8b 4d fc             	mov    -0x4(%ebp),%ecx
41910c:	ff 75 f4             	push   -0xc(%ebp)
41910f:	8b 5d f8             	mov    -0x8(%ebp),%ebx
419112:	53                   	push   %ebx
419113:	52                   	push   %edx
419114:	51                   	push   %ecx
419115:	e8 f6 0d ff ff       	call   0x409f10
41911a:	ff 75 f4             	push   -0xc(%ebp)
41911d:	53                   	push   %ebx
41911e:	ff 75 18             	push   0x18(%ebp)
419121:	8b fa                	mov    %edx,%edi
419123:	8b f0                	mov    %eax,%esi
419125:	ff 75 14             	push   0x14(%ebp)
419128:	e8 e3 0d ff ff       	call   0x409f10
41912d:	2b c6                	sub    %esi,%eax
41912f:	1b d7                	sbb    %edi,%edx
419131:	03 45 0c             	add    0xc(%ebp),%eax
419134:	13 55 10             	adc    0x10(%ebp),%edx
419137:	5f                   	pop    %edi
419138:	5e                   	pop    %esi
419139:	5b                   	pop    %ebx
41913a:	c9                   	leave
41913b:	c3                   	ret
41913c:	8b ff                	mov    %edi,%edi
41913e:	55                   	push   %ebp
41913f:	8b ec                	mov    %esp,%ebp
419141:	b8 1c 10 00 00       	mov    $0x101c,%eax
419146:	e8 75 0f ff ff       	call   0x40a0c0
41914b:	a1 c0 d0 43 00       	mov    0x43d0c0,%eax
419150:	33 c5                	xor    %ebp,%eax
419152:	89 45 fc             	mov    %eax,-0x4(%ebp)
419155:	8b 45 14             	mov    0x14(%ebp),%eax
419158:	53                   	push   %ebx
419159:	ff 75 08             	push   0x8(%ebp)
41915c:	89 85 f4 ef ff ff    	mov    %eax,-0x100c(%ebp)
419162:	e8 d9 46 00 00       	call   0x41d840
419167:	59                   	pop    %ecx
419168:	8b 4d 08             	mov    0x8(%ebp),%ecx
41916b:	8b d8                	mov    %eax,%ebx
41916d:	83 79 08 00          	cmpl   $0x0,0x8(%ecx)
419171:	75 0b                	jne    0x41917e
419173:	8b 45 0c             	mov    0xc(%ebp),%eax
419176:	8b 55 10             	mov    0x10(%ebp),%edx
419179:	e9 5c 01 00 00       	jmp    0x4192da
41917e:	8b 01                	mov    (%ecx),%eax
419180:	2b 41 04             	sub    0x4(%ecx),%eax
419183:	56                   	push   %esi
419184:	57                   	push   %edi
419185:	6a 00                	push   $0x0
419187:	99                   	cltd
419188:	6a 02                	push   $0x2
41918a:	52                   	push   %edx
41918b:	50                   	push   %eax
41918c:	e8 7f 0d ff ff       	call   0x409f10
419191:	ff b5 f4 ef ff ff    	push   -0x100c(%ebp)
419197:	8b cb                	mov    %ebx,%ecx
419199:	89 85 f8 ef ff ff    	mov    %eax,-0x1008(%ebp)
41919f:	8b f3                	mov    %ebx,%esi
4191a1:	89 95 e8 ef ff ff    	mov    %edx,-0x1018(%ebp)
4191a7:	83 e1 3f             	and    $0x3f,%ecx
4191aa:	c1 fe 06             	sar    $0x6,%esi
4191ad:	6b f9 38             	imul   $0x38,%ecx,%edi
4191b0:	6a 00                	push   $0x0
4191b2:	8b 04 b5 00 f8 43 00 	mov    0x43f800(,%esi,4),%eax
4191b9:	ff 74 38 24          	push   0x24(%eax,%edi,1)
4191bd:	ff 74 38 20          	push   0x20(%eax,%edi,1)
4191c1:	53                   	push   %ebx
4191c2:	e8 15 88 00 00       	call   0x4219dc
4191c7:	8b 0c b5 00 f8 43 00 	mov    0x43f800(,%esi,4),%ecx
4191ce:	83 c4 14             	add    $0x14,%esp
4191d1:	89 85 f0 ef ff ff    	mov    %eax,-0x1010(%ebp)
4191d7:	8b c2                	mov    %edx,%eax
4191d9:	8b 95 f0 ef ff ff    	mov    -0x1010(%ebp),%edx
4191df:	89 85 e4 ef ff ff    	mov    %eax,-0x101c(%ebp)
4191e5:	3b 54 39 20          	cmp    0x20(%ecx,%edi,1),%edx
4191e9:	0f 85 e4 00 00 00    	jne    0x4192d3
4191ef:	3b 44 39 24          	cmp    0x24(%ecx,%edi,1),%eax
4191f3:	0f 85 da 00 00 00    	jne    0x4192d3
4191f9:	6a 00                	push   $0x0
4191fb:	8d 85 ec ef ff ff    	lea    -0x1014(%ebp),%eax
419201:	50                   	push   %eax
419202:	68 00 10 00 00       	push   $0x1000
419207:	8d 85 fc ef ff ff    	lea    -0x1004(%ebp),%eax
41920d:	50                   	push   %eax
41920e:	ff 74 39 18          	push   0x18(%ecx,%edi,1)
419212:	ff 15 d8 10 43 00    	call   *0x4310d8
419218:	85 c0                	test   %eax,%eax
41921a:	0f 84 b3 00 00 00    	je     0x4192d3
419220:	ff b5 f4 ef ff ff    	push   -0x100c(%ebp)
419226:	6a 00                	push   $0x0
419228:	ff 75 10             	push   0x10(%ebp)
41922b:	ff 75 0c             	push   0xc(%ebp)
41922e:	53                   	push   %ebx
41922f:	e8 a8 87 00 00       	call   0x4219dc
419234:	83 c4 14             	add    $0x14,%esp
419237:	85 d2                	test   %edx,%edx
419239:	0f 8c 94 00 00 00    	jl     0x4192d3
41923f:	7f 08                	jg     0x419249
419241:	85 c0                	test   %eax,%eax
419243:	0f 82 8a 00 00 00    	jb     0x4192d3
419249:	8b 9d e8 ef ff ff    	mov    -0x1018(%ebp),%ebx
41924f:	8b 85 ec ef ff ff    	mov    -0x1014(%ebp),%eax
419255:	85 db                	test   %ebx,%ebx
419257:	7f 7a                	jg     0x4192d3
419259:	7c 08                	jl     0x419263
41925b:	39 85 f8 ef ff ff    	cmp    %eax,-0x1008(%ebp)
419261:	77 70                	ja     0x4192d3
419263:	8d bd fc ef ff ff    	lea    -0x1004(%ebp),%edi
419269:	33 d2                	xor    %edx,%edx
41926b:	03 f8                	add    %eax,%edi
41926d:	8d 8d fc ef ff ff    	lea    -0x1004(%ebp),%ecx
419273:	33 f6                	xor    %esi,%esi
419275:	39 95 f8 ef ff ff    	cmp    %edx,-0x1008(%ebp)
41927b:	75 04                	jne    0x419281
41927d:	85 db                	test   %ebx,%ebx
41927f:	74 39                	je     0x4192ba
419281:	3b cf                	cmp    %edi,%ecx
419283:	73 35                	jae    0x4192ba
419285:	8a 01                	mov    (%ecx),%al
419287:	3c 0d                	cmp    $0xd,%al
419289:	75 10                	jne    0x41929b
41928b:	8d 47 ff             	lea    -0x1(%edi),%eax
41928e:	3b c8                	cmp    %eax,%ecx
419290:	73 15                	jae    0x4192a7