401fb4:	89 54 2e fc          	mov    %edx,-0x4(%esi,%ebp,1)
401fb8:	8d 7a 03             	lea    0x3(%edx),%edi
401fbb:	89 7c 30 fc          	mov    %edi,-0x4(%eax,%esi,1)
401fbf:	89 c5                	mov    %eax,%ebp
401fc1:	81 fa 30 0b 00 00    	cmp    $0xb30,%edx
401fc7:	72 07                	jb     0x401fd0
401fc9:	01 f0                	add    %esi,%eax
401fcb:	e8 0c f6 ff ff       	call   0x4015dc
401fd0:	09 dd                	or     %ebx,%ebp
401fd2:	89 6e fc             	mov    %ebp,-0x4(%esi)
401fd5:	c6 05 18 e7 46 00 00 	movb   $0x0,0x46e718
401fdc:	89 f0                	mov    %esi,%eax
401fde:	5d                   	pop    %ebp
401fdf:	5f                   	pop    %edi
401fe0:	5e                   	pop    %esi
401fe1:	5b                   	pop    %ebx
401fe2:	c3                   	ret
401fe3:	90                   	nop
401fe4:	90                   	nop
401fe5:	c6 05 18 e7 46 00 00 	movb   $0x0,0x46e718
401fec:	89 c8                	mov    %ecx,%eax
401fee:	c1 e8 02             	shr    $0x2,%eax
401ff1:	01 c8                	add    %ecx,%eax
401ff3:	31 ff                	xor    %edi,%edi
401ff5:	29 d0                	sub    %edx,%eax
401ff7:	83 d7 ff             	adc    $0xffffffff,%edi
401ffa:	21 f8                	and    %edi,%eax
401ffc:	01 d0                	add    %edx,%eax
401ffe:	89 c5                	mov    %eax,%ebp
402000:	89 cf                	mov    %ecx,%edi
402002:	52                   	push   %edx
402003:	e8 f8 f7 ff ff       	call   0x401800
402008:	5a                   	pop    %edx
402009:	85 c0                	test   %eax,%eax
40200b:	74 d1                	je     0x401fde
40200d:	81 fd 2c 0a 04 00    	cmp    $0x40a2c,%ebp
402013:	76 03                	jbe    0x402018
402015:	89 50 f8             	mov    %edx,-0x8(%eax)
402018:	89 c5                	mov    %eax,%ebp
40201a:	89 c2                	mov    %eax,%edx
40201c:	89 f0                	mov    %esi,%eax
40201e:	89 f9                	mov    %edi,%ecx
402020:	e8 2b f5 ff ff       	call   0x401550
402025:	89 f0                	mov    %esi,%eax
402027:	e8 3c fb ff ff       	call   0x401b68
40202c:	89 e8                	mov    %ebp,%eax
40202e:	5d                   	pop    %ebp
40202f:	5f                   	pop    %edi
402030:	5e                   	pop    %esi
402031:	5b                   	pop    %ebx
402032:	c3                   	ret
402033:	90                   	nop
402034:	f6 c1 03             	test   $0x3,%cl
402037:	0f 85 8b 00 00 00    	jne    0x4020c8
40203d:	83 e9 18             	sub    $0x18,%ecx
402040:	39 ca                	cmp    %ecx,%edx
402042:	76 44                	jbe    0x402088
402044:	89 c8                	mov    %ecx,%eax
402046:	c1 e9 02             	shr    $0x2,%ecx
402049:	01 c1                	add    %eax,%ecx
40204b:	31 c0                	xor    %eax,%eax
40204d:	29 d1                	sub    %edx,%ecx
40204f:	83 d0 ff             	adc    $0xffffffff,%eax
402052:	21 c8                	and    %ecx,%eax
402054:	01 d0                	add    %edx,%eax
402056:	89 c3                	mov    %eax,%ebx
402058:	52                   	push   %edx
402059:	e8 a2 f7 ff ff       	call   0x401800
40205e:	5a                   	pop    %edx
40205f:	85 c0                	test   %eax,%eax
402061:	74 22                	je     0x402085
402063:	81 fb 2c 0a 04 00    	cmp    $0x40a2c,%ebx
402069:	76 03                	jbe    0x40206e
40206b:	89 50 f8             	mov    %edx,-0x8(%eax)
40206e:	8b 4e f8             	mov    -0x8(%esi),%ecx
402071:	89 c3                	mov    %eax,%ebx
402073:	89 c2                	mov    %eax,%edx
402075:	89 f0                	mov    %esi,%eax
402077:	e8 d4 f4 ff ff       	call   0x401550
40207c:	89 f0                	mov    %esi,%eax
40207e:	e8 e5 fa ff ff       	call   0x401b68
402083:	89 d8                	mov    %ebx,%eax
402085:	5e                   	pop    %esi
402086:	5b                   	pop    %ebx
402087:	c3                   	ret
402088:	d1 e9                	shr    $1,%ecx
40208a:	39 ca                	cmp    %ecx,%edx
40208c:	72 06                	jb     0x402094
40208e:	89 50 f8             	mov    %edx,-0x8(%eax)
402091:	5e                   	pop    %esi
402092:	5b                   	pop    %ebx
402093:	c3                   	ret
402094:	89 d3                	mov    %edx,%ebx
402096:	89 d0                	mov    %edx,%eax
402098:	e8 63 f7 ff ff       	call   0x401800
40209d:	85 c0                	test   %eax,%eax
40209f:	74 e4                	je     0x402085
4020a1:	81 fb 2c 0a 04 00    	cmp    $0x40a2c,%ebx
4020a7:	76 03                	jbe    0x4020ac
4020a9:	89 58 f8             	mov    %ebx,-0x8(%eax)
4020ac:	89 d9                	mov    %ebx,%ecx
4020ae:	89 c3                	mov    %eax,%ebx
4020b0:	89 c2                	mov    %eax,%edx
4020b2:	89 f0                	mov    %esi,%eax
4020b4:	e8 c7 f4 ff ff       	call   0x401580
4020b9:	89 f0                	mov    %esi,%eax
4020bb:	e8 a8 fa ff ff       	call   0x401b68
4020c0:	89 d8                	mov    %ebx,%eax
4020c2:	5e                   	pop    %esi
4020c3:	5b                   	pop    %ebx
4020c4:	c3                   	ret
4020c5:	90                   	nop
4020c6:	90                   	nop
4020c7:	90                   	nop
4020c8:	31 c0                	xor    %eax,%eax
4020ca:	5e                   	pop    %esi
4020cb:	5b                   	pop    %ebx
4020cc:	c3                   	ret
4020cd:	8d 40 00             	lea    0x0(%eax),%eax
4020d0:	53                   	push   %ebx
4020d1:	8d 58 ff             	lea    -0x1(%eax),%ebx
4020d4:	83 e3 fc             	and    $0xfffffffc,%ebx
4020d7:	e8 24 f7 ff ff       	call   0x401800
4020dc:	83 f8 01             	cmp    $0x1,%eax
4020df:	19 c9                	sbb    %ecx,%ecx
4020e1:	8d 14 03             	lea    (%ebx,%eax,1),%edx
4020e4:	09 cb                	or     %ecx,%ebx
4020e6:	81 fb 2c 0a 04 00    	cmp    $0x40a2c,%ebx
4020ec:	73 10                	jae    0x4020fe
4020ee:	f7 db                	neg    %ebx
4020f0:	d9 ee                	fldz
4020f2:	dd 14 13             	fstl   (%ebx,%edx,1)
4020f5:	83 c3 08             	add    $0x8,%ebx
4020f8:	78 f8                	js     0x4020f2
4020fa:	89 0a                	mov    %ecx,(%edx)
4020fc:	dd c0                	ffree  %st(0)
4020fe:	5b                   	pop    %ebx
4020ff:	c3                   	ret
402100:	8b c8                	mov    %eax,%ecx
402102:	8b d1                	mov    %ecx,%edx
402104:	83 ea 04             	sub    $0x4,%edx
402107:	8b 12                	mov    (%edx),%edx
402109:	83 e2 f0             	and    $0xfffffff0,%edx
40210c:	03 d1                	add    %ecx,%edx
40210e:	8b c2                	mov    %edx,%eax
402110:	8b d0                	mov    %eax,%edx
402112:	83 ea 04             	sub    $0x4,%edx
402115:	8b 12                	mov    (%edx),%edx
402117:	83 e2 f0             	and    $0xfffffff0,%edx
40211a:	85 d2                	test   %edx,%edx
40211c:	75 02                	jne    0x402120
40211e:	33 c0                	xor    %eax,%eax
402120:	c3                   	ret
402121:	8d 40 00             	lea    0x0(%eax),%eax
402124:	83 3d 20 e7 46 00 00 	cmpl   $0x0,0x46e720
40212b:	74 1a                	je     0x402147
40212d:	8b 15 1c e7 46 00    	mov    0x46e71c,%edx
402133:	3b d0                	cmp    %eax,%edx
402135:	72 10                	jb     0x402147
402137:	8b d0                	mov    %eax,%edx
402139:	81 c2 00 00 14 00    	add    $0x140000,%edx
40213f:	3b 15 1c e7 46 00    	cmp    0x46e71c,%edx
402145:	73 04                	jae    0x40214b
402147:	83 c0 10             	add    $0x10,%eax
40214a:	c3                   	ret
40214b:	81 3d 20 e7 46 00 f0 	cmpl   $0x13fff0,0x46e720
402152:	ff 13 00
402155:	74 07                	je     0x40215e
402157:	a1 1c e7 46 00       	mov    0x46e71c,%eax
40215c:	eb 02                	jmp    0x402160
40215e:	33 c0                	xor    %eax,%eax
402160:	c3                   	ret
402161:	8d 40 00             	lea    0x0(%eax),%eax
402164:	53                   	push   %ebx
402165:	56                   	push   %esi
402166:	8b d8                	mov    %eax,%ebx
402168:	83 c3 20             	add    $0x20,%ebx
40216b:	89 1a                	mov    %ebx,(%edx)
40216d:	8b 10                	mov    (%eax),%edx
40216f:	3b 42 10             	cmp    0x10(%edx),%eax
402172:	75 08                	jne    0x40217c
402174:	8b 5a 08             	mov    0x8(%edx),%ebx
402177:	3b 5a 0c             	cmp    0xc(%edx),%ebx
40217a:	76 19                	jbe    0x402195
40217c:	8b f0                	mov    %eax,%esi
40217e:	8b de                	mov    %esi,%ebx
402180:	83 eb 04             	sub    $0x4,%ebx
402183:	8b 1b                	mov    (%ebx),%ebx
402185:	83 e3 f0             	and    $0xfffffff0,%ebx
402188:	03 de                	add    %esi,%ebx
40218a:	0f b7 42 02          	movzwl 0x2(%edx),%eax
40218e:	2b d8                	sub    %eax,%ebx
402190:	89 19                	mov    %ebx,(%ecx)
402192:	5e                   	pop    %esi
402193:	5b                   	pop    %ebx
402194:	c3                   	ret
402195:	8b 42 08             	mov    0x8(%edx),%eax
402198:	48                   	dec    %eax
402199:	89 01                	mov    %eax,(%ecx)
40219b:	5e                   	pop    %esi
40219c:	5b                   	pop    %ebx
40219d:	c3                   	ret
40219e:	8b c0                	mov    %eax,%eax
4021a0:	57                   	push   %edi
4021a1:	89 d7                	mov    %edx,%edi
4021a3:	83 c0 01             	add    $0x1,%eax
4021a6:	ba 41 5f 70 89       	mov    $0x89705f41,%edx
4021ab:	f7 e2                	mul    %edx
4021ad:	c1 e8 1e             	shr    $0x1e,%eax
4021b0:	89 d1                	mov    %edx,%ecx
4021b2:	81 e2 ff ff ff 1f    	and    $0x1fffffff,%edx
4021b8:	c1 e9 1d             	shr    $0x1d,%ecx
4021bb:	8d 14 92             	lea    (%edx,%edx,4),%edx
4021be:	01 c2                	add    %eax,%edx
4021c0:	89 c8                	mov    %ecx,%eax
4021c2:	83 c8 30             	or     $0x30,%eax
4021c5:	88 07                	mov    %al,(%edi)
4021c7:	89 d0                	mov    %edx,%eax
4021c9:	83 f9 01             	cmp    $0x1,%ecx
4021cc:	83 df ff             	sbb    $0xffffffff,%edi
4021cf:	c1 e8 1c             	shr    $0x1c,%eax
4021d2:	81 e2 ff ff ff 0f    	and    $0xfffffff,%edx
4021d8:	09 c1                	or     %eax,%ecx
4021da:	83 c8 30             	or     $0x30,%eax
4021dd:	88 07                	mov    %al,(%edi)
4021df:	8d 04 92             	lea    (%edx,%edx,4),%eax
4021e2:	8d 14 92             	lea    (%edx,%edx,4),%edx
4021e5:	83 f9 01             	cmp    $0x1,%ecx
4021e8:	83 df ff             	sbb    $0xffffffff,%edi
4021eb:	c1 e8 1b             	shr    $0x1b,%eax
4021ee:	81 e2 ff ff ff 07    	and    $0x7ffffff,%edx
4021f4:	09 c1                	or     %eax,%ecx
4021f6:	83 c8 30             	or     $0x30,%eax
4021f9:	88 07                	mov    %al,(%edi)
4021fb:	8d 04 92             	lea    (%edx,%edx,4),%eax
4021fe:	8d 14 92             	lea    (%edx,%edx,4),%edx
402201:	83 f9 01             	cmp    $0x1,%ecx
402204:	83 df ff             	sbb    $0xffffffff,%edi
402207:	c1 e8 1a             	shr    $0x1a,%eax
40220a:	81 e2 ff ff ff 03    	and    $0x3ffffff,%edx
402210:	09 c1                	or     %eax,%ecx
402212:	83 c8 30             	or     $0x30,%eax
402215:	88 07                	mov    %al,(%edi)
402217:	8d 04 92             	lea    (%edx,%edx,4),%eax
40221a:	8d 14 92             	lea    (%edx,%edx,4),%edx
40221d:	83 f9 01             	cmp    $0x1,%ecx
402220:	83 df ff             	sbb    $0xffffffff,%edi
402223:	c1 e8 19             	shr    $0x19,%eax
402226:	81 e2 ff ff ff 01    	and    $0x1ffffff,%edx
40222c:	09 c1                	or     %eax,%ecx
40222e:	83 c8 30             	or     $0x30,%eax
402231:	88 07                	mov    %al,(%edi)
402233:	8d 04 92             	lea    (%edx,%edx,4),%eax
402236:	8d 14 92             	lea    (%edx,%edx,4),%edx
402239:	83 f9 01             	cmp    $0x1,%ecx
40223c:	83 df ff             	sbb    $0xffffffff,%edi
40223f:	c1 e8 18             	shr    $0x18,%eax
402242:	81 e2 ff ff ff 00    	and    $0xffffff,%edx
402248:	09 c1                	or     %eax,%ecx
40224a:	83 c8 30             	or     $0x30,%eax
40224d:	88 07                	mov    %al,(%edi)
40224f:	8d 04 92             	lea    (%edx,%edx,4),%eax
402252:	8d 14 92             	lea    (%edx,%edx,4),%edx
402255:	83 f9 01             	cmp    $0x1,%ecx
402258:	83 df ff             	sbb    $0xffffffff,%edi
40225b:	c1 e8 17             	shr    $0x17,%eax
40225e:	81 e2 ff ff 7f 00    	and    $0x7fffff,%edx
402264:	09 c1                	or     %eax,%ecx
402266:	83 c8 30             	or     $0x30,%eax
402269:	88 07                	mov    %al,(%edi)
40226b:	8d 04 92             	lea    (%edx,%edx,4),%eax
40226e:	8d 14 92             	lea    (%edx,%edx,4),%edx
402271:	83 f9 01             	cmp    $0x1,%ecx
402274:	83 df ff             	sbb    $0xffffffff,%edi
402277:	c1 e8 16             	shr    $0x16,%eax
40227a:	81 e2 ff ff 3f 00    	and    $0x3fffff,%edx
402280:	09 c1                	or     %eax,%ecx
402282:	83 c8 30             	or     $0x30,%eax
402285:	88 07                	mov    %al,(%edi)
402287:	8d 04 92             	lea    (%edx,%edx,4),%eax
40228a:	8d 14 92             	lea    (%edx,%edx,4),%edx
40228d:	83 f9 01             	cmp    $0x1,%ecx
402290:	83 df ff             	sbb    $0xffffffff,%edi
402293:	c1 e8 15             	shr    $0x15,%eax
402296:	81 e2 ff ff 1f 00    	and    $0x1fffff,%edx
40229c:	09 c1                	or     %eax,%ecx
40229e:	83 c8 30             	or     $0x30,%eax
4022a1:	88 07                	mov    %al,(%edi)
4022a3:	8d 04 92             	lea    (%edx,%edx,4),%eax
4022a6:	83 f9 01             	cmp    $0x1,%ecx
4022a9:	83 df ff             	sbb    $0xffffffff,%edi
4022ac:	c1 e8 14             	shr    $0x14,%eax
4022af:	83 c8 30             	or     $0x30,%eax
4022b2:	88 07                	mov    %al,(%edi)
4022b4:	8d 47 01             	lea    0x1(%edi),%eax
4022b7:	5f                   	pop    %edi
4022b8:	c3                   	ret
4022b9:	8d 40 00             	lea    0x0(%eax),%eax
4022bc:	53                   	push   %ebx
4022bd:	56                   	push   %esi
4022be:	8b f1                	mov    %ecx,%esi
4022c0:	8b da                	mov    %edx,%ebx
4022c2:	8b d3                	mov    %ebx,%edx
4022c4:	8b ce                	mov    %esi,%ecx
4022c6:	e8 11 0c 00 00       	call   0x402edc
4022cb:	8b c3                	mov    %ebx,%eax
4022cd:	03 c6                	add    %esi,%eax
4022cf:	5e                   	pop    %esi
4022d0:	5b                   	pop    %ebx
4022d1:	c3                   	ret
4022d2:	8b c0                	mov    %eax,%eax
4022d4:	55                   	push   %ebp
4022d5:	8b ec                	mov    %esp,%ebp
4022d7:	53                   	push   %ebx
4022d8:	56                   	push   %esi
4022d9:	8b f2                	mov    %edx,%esi
4022db:	8b d8                	mov    %eax,%ebx
4022dd:	8b d3                	mov    %ebx,%edx
4022df:	8b ca                	mov    %edx,%ecx
4022e1:	83 c1 b4             	add    $0xffffffb4,%ecx
4022e4:	8b 45 08             	mov    0x8(%ebp),%eax
4022e7:	8b 40 e4             	mov    -0x1c(%eax),%eax
4022ea:	3b c8                	cmp    %eax,%ecx
4022ec:	72 10                	jb     0x4022fe
4022ee:	8b 4d 08             	mov    0x8(%ebp),%ecx
4022f1:	8b 4d 08             	mov    0x8(%ebp),%ecx
4022f4:	03 41 f0             	add    -0x10(%ecx),%eax
4022f7:	83 c2 df             	add    $0xffffffdf,%edx
4022fa:	3b c2                	cmp    %edx,%eax
4022fc:	73 14                	jae    0x402312
4022fe:	6a 1c                	push   $0x1c
402300:	8b 45 08             	mov    0x8(%ebp),%eax
402303:	83 c0 e4             	add    $0xffffffe4,%eax
402306:	50                   	push   %eax
402307:	8b c3                	mov    %ebx,%eax
402309:	83 c0 b4             	add    $0xffffffb4,%eax
40230c:	50                   	push   %eax
40230d:	e8 12 f0 ff ff       	call   0x401324
402312:	81 fe e8 03 00 00    	cmp    $0x3e8,%esi
402318:	7d 3c                	jge    0x402356
40231a:	8b 45 08             	mov    0x8(%ebp),%eax
40231d:	8b 40 e4             	mov    -0x1c(%eax),%eax
402320:	8b 55 08             	mov    0x8(%ebp),%edx
402323:	03 42 f0             	add    -0x10(%edx),%eax
402326:	8b d3                	mov    %ebx,%edx
402328:	83 c2 df             	add    $0xffffffdf,%edx
40232b:	3b c2                	cmp    %edx,%eax
40232d:	76 27                	jbe    0x402356
40232f:	8b 45 08             	mov    0x8(%ebp),%eax
402332:	81 78 f4 00 10 00 00 	cmpl   $0x1000,-0xc(%eax)