41f0bd:	50                   	push   %eax
41f0be:	e8 e9 71 fe ff       	call   0x4062ac
41f0c3:	66 0f af d8          	imul   %ax,%bx
41f0c7:	8b c3                	mov    %ebx,%eax
41f0c9:	66 83 f8 08          	cmp    $0x8,%ax
41f0cd:	76 09                	jbe    0x41f0d8
41f0cf:	c7 45 e4 ff ff ff 7f 	movl   $0x7fffffff,-0x1c(%ebp)
41f0d6:	eb 0c                	jmp    0x41f0e4
41f0d8:	8b c8                	mov    %eax,%ecx
41f0da:	b8 01 00 00 00       	mov    $0x1,%eax
41f0df:	d3 e0                	shl    %cl,%eax
41f0e1:	89 45 e4             	mov    %eax,-0x1c(%ebp)
41f0e4:	33 c0                	xor    %eax,%eax
41f0e6:	5a                   	pop    %edx
41f0e7:	59                   	pop    %ecx
41f0e8:	59                   	pop    %ecx
41f0e9:	64 89 10             	mov    %edx,%fs:(%eax)
41f0ec:	68 04 f1 41 00       	push   $0x41f104
41f0f1:	8b 45 d8             	mov    -0x28(%ebp),%eax
41f0f4:	50                   	push   %eax
41f0f5:	6a 00                	push   $0x0
41f0f7:	e8 f0 76 fe ff       	call   0x4067ec
41f0fc:	c3                   	ret
41f0fd:	e9 9a 48 fe ff       	jmp    0x40399c
41f102:	eb ed                	jmp    0x41f0f1
41f104:	33 c0                	xor    %eax,%eax
41f106:	89 45 dc             	mov    %eax,-0x24(%ebp)
41f109:	8b 45 f0             	mov    -0x10(%ebp),%eax
41f10c:	0f b7 40 02          	movzwl 0x2(%eax),%eax
41f110:	e8 63 fe ff ff       	call   0x41ef78
41f115:	89 45 e0             	mov    %eax,-0x20(%ebp)
41f118:	8b 7d f4             	mov    -0xc(%ebp),%edi
41f11b:	4f                   	dec    %edi
41f11c:	85 ff                	test   %edi,%edi
41f11e:	7e 4c                	jle    0x41f16c
41f120:	be 01 00 00 00       	mov    $0x1,%esi
41f125:	8b c6                	mov    %esi,%eax
41f127:	03 c0                	add    %eax,%eax
41f129:	8b 55 f0             	mov    -0x10(%ebp),%edx
41f12c:	0f b7 44 c2 02       	movzwl 0x2(%edx,%eax,8),%eax
41f131:	e8 42 fe ff ff       	call   0x41ef78
41f136:	8b d8                	mov    %eax,%ebx
41f138:	3b 5d e4             	cmp    -0x1c(%ebp),%ebx
41f13b:	7f 2b                	jg     0x41f168
41f13d:	3b 5d e0             	cmp    -0x20(%ebp),%ebx
41f140:	7c 26                	jl     0x41f168
41f142:	55                   	push   %ebp
41f143:	8b c6                	mov    %esi,%eax
41f145:	03 c0                	add    %eax,%eax
41f147:	8b 55 f0             	mov    -0x10(%ebp),%edx
41f14a:	8d 14 c2             	lea    (%edx,%eax,8),%edx
41f14d:	8b 45 dc             	mov    -0x24(%ebp),%eax
41f150:	03 c0                	add    %eax,%eax
41f152:	8b 4d f0             	mov    -0x10(%ebp),%ecx
41f155:	8d 04 c1             	lea    (%ecx,%eax,8),%eax
41f158:	e8 27 fe ff ff       	call   0x41ef84
41f15d:	59                   	pop    %ecx
41f15e:	84 c0                	test   %al,%al
41f160:	74 06                	je     0x41f168
41f162:	89 75 dc             	mov    %esi,-0x24(%ebp)
41f165:	89 5d e0             	mov    %ebx,-0x20(%ebp)
41f168:	46                   	inc    %esi
41f169:	4f                   	dec    %edi
41f16a:	75 b9                	jne    0x41f125
41f16c:	8b 45 dc             	mov    -0x24(%ebp),%eax
41f16f:	03 c0                	add    %eax,%eax
41f171:	8b 55 f0             	mov    -0x10(%ebp),%edx
41f174:	8d 04 c2             	lea    (%edx,%eax,8),%eax
41f177:	89 45 c0             	mov    %eax,-0x40(%ebp)
41f17a:	8b 45 c0             	mov    -0x40(%ebp),%eax
41f17d:	0f b6 00             	movzbl (%eax),%eax
41f180:	8b 55 08             	mov    0x8(%ebp),%edx
41f183:	89 02                	mov    %eax,(%edx)
41f185:	8b 45 c0             	mov    -0x40(%ebp),%eax
41f188:	0f b6 40 01          	movzbl 0x1(%eax),%eax
41f18c:	8b 55 08             	mov    0x8(%ebp),%edx
41f18f:	89 42 04             	mov    %eax,0x4(%edx)
41f192:	8b 45 c0             	mov    -0x40(%ebp),%eax
41f195:	8b 40 08             	mov    0x8(%eax),%eax
41f198:	e8 43 89 fe ff       	call   0x407ae0
41f19d:	89 45 d4             	mov    %eax,-0x2c(%ebp)
41f1a0:	33 c0                	xor    %eax,%eax
41f1a2:	55                   	push   %ebp
41f1a3:	68 eb f2 41 00       	push   $0x41f2eb
41f1a8:	64 ff 30             	push   %fs:(%eax)
41f1ab:	64 89 20             	mov    %esp,%fs:(%eax)
41f1ae:	8b 45 c0             	mov    -0x40(%ebp),%eax
41f1b1:	8b 50 0c             	mov    0xc(%eax),%edx
41f1b4:	8b 45 ec             	mov    -0x14(%ebp),%eax
41f1b7:	03 45 10             	add    0x10(%ebp),%eax
41f1ba:	2b d0                	sub    %eax,%edx
41f1bc:	66 b9 01 00          	mov    $0x1,%cx
41f1c0:	8b 45 fc             	mov    -0x4(%ebp),%eax
41f1c3:	8b 18                	mov    (%eax),%ebx
41f1c5:	ff 53 14             	call   *0x14(%ebx)
41f1c8:	8b 45 c0             	mov    -0x40(%ebp),%eax
41f1cb:	8b 48 08             	mov    0x8(%eax),%ecx
41f1ce:	8b 5d d4             	mov    -0x2c(%ebp),%ebx
41f1d1:	8b d3                	mov    %ebx,%edx
41f1d3:	8b 45 fc             	mov    -0x4(%ebp),%eax
41f1d6:	8b 30                	mov    (%eax),%esi
41f1d8:	ff 56 0c             	call   *0xc(%esi)
41f1db:	8b 45 08             	mov    0x8(%ebp),%eax
41f1de:	50                   	push   %eax
41f1df:	8d 4d c8             	lea    -0x38(%ebp),%ecx
41f1e2:	8d 55 cc             	lea    -0x34(%ebp),%edx
41f1e5:	8b c3                	mov    %ebx,%eax
41f1e7:	e8 d0 fb ff ff       	call   0x41edbc
41f1ec:	8d 45 90             	lea    -0x70(%ebp),%eax
41f1ef:	50                   	push   %eax
41f1f0:	6a 18                	push   $0x18
41f1f2:	8b 45 c8             	mov    -0x38(%ebp),%eax
41f1f5:	50                   	push   %eax
41f1f6:	e8 d1 70 fe ff       	call   0x4062cc
41f1fb:	8d 45 a8             	lea    -0x58(%ebp),%eax
41f1fe:	50                   	push   %eax
41f1ff:	6a 18                	push   $0x18
41f201:	8b 45 cc             	mov    -0x34(%ebp),%eax
41f204:	50                   	push   %eax
41f205:	e8 c2 70 fe ff       	call   0x4062cc
41f20a:	8b 5d 9c             	mov    -0x64(%ebp),%ebx
41f20d:	0f af 5d 98          	imul   -0x68(%ebp),%ebx
41f211:	0f b7 45 a0          	movzwl -0x60(%ebp),%eax
41f215:	0f af d8             	imul   %eax,%ebx
41f218:	8b 45 b4             	mov    -0x4c(%ebp),%eax
41f21b:	f7 6d b0             	imull  -0x50(%ebp)
41f21e:	0f b7 55 b8          	movzwl -0x48(%ebp),%edx
41f222:	f7 ea                	imul   %edx
41f224:	89 45 c4             	mov    %eax,-0x3c(%ebp)
41f227:	8b 45 c4             	mov    -0x3c(%ebp),%eax
41f22a:	03 c3                	add    %ebx,%eax
41f22c:	89 45 e8             	mov    %eax,-0x18(%ebp)
41f22f:	8b 45 e8             	mov    -0x18(%ebp),%eax
41f232:	e8 a9 88 fe ff       	call   0x407ae0
41f237:	89 45 d0             	mov    %eax,-0x30(%ebp)
41f23a:	33 c0                	xor    %eax,%eax
41f23c:	55                   	push   %ebp
41f23d:	68 c8 f2 41 00       	push   $0x41f2c8
41f242:	64 ff 30             	push   %fs:(%eax)
41f245:	64 89 20             	mov    %esp,%fs:(%eax)
41f248:	8b 7d d0             	mov    -0x30(%ebp),%edi
41f24b:	8b 75 d0             	mov    -0x30(%ebp),%esi
41f24e:	03 f3                	add    %ebx,%esi
41f250:	57                   	push   %edi
41f251:	53                   	push   %ebx
41f252:	8b 45 c8             	mov    -0x38(%ebp),%eax
41f255:	50                   	push   %eax
41f256:	e8 11 70 fe ff       	call   0x40626c
41f25b:	56                   	push   %esi
41f25c:	8b 45 c4             	mov    -0x3c(%ebp),%eax
41f25f:	50                   	push   %eax
41f260:	8b 45 cc             	mov    -0x34(%ebp),%eax
41f263:	50                   	push   %eax
41f264:	e8 03 70 fe ff       	call   0x40626c
41f269:	8b 45 cc             	mov    -0x34(%ebp),%eax
41f26c:	50                   	push   %eax
41f26d:	e8 ea 6f fe ff       	call   0x40625c
41f272:	8b 45 c8             	mov    -0x38(%ebp),%eax
41f275:	50                   	push   %eax
41f276:	e8 e1 6f fe ff       	call   0x40625c
41f27b:	56                   	push   %esi
41f27c:	57                   	push   %edi
41f27d:	8a 45 ba             	mov    -0x46(%ebp),%al
41f280:	50                   	push   %eax
41f281:	8a 45 b8             	mov    -0x48(%ebp),%al
41f284:	50                   	push   %eax
41f285:	8b 45 08             	mov    0x8(%ebp),%eax
41f288:	8b 40 04             	mov    0x4(%eax),%eax
41f28b:	50                   	push   %eax
41f28c:	8b 45 08             	mov    0x8(%ebp),%eax
41f28f:	8b 00                	mov    (%eax),%eax
41f291:	50                   	push   %eax
41f292:	a1 64 e6 46 00       	mov    0x46e664,%eax
41f297:	50                   	push   %eax
41f298:	e8 c7 71 fe ff       	call   0x406464
41f29d:	8b 55 f8             	mov    -0x8(%ebp),%edx
41f2a0:	89 02                	mov    %eax,(%edx)
41f2a2:	8b 45 f8             	mov    -0x8(%ebp),%eax
41f2a5:	83 38 00             	cmpl   $0x0,(%eax)
41f2a8:	75 05                	jne    0x41f2af
41f2aa:	e8 7d f2 ff ff       	call   0x41e52c
41f2af:	33 c0                	xor    %eax,%eax
41f2b1:	5a                   	pop    %edx
41f2b2:	59                   	pop    %ecx
41f2b3:	59                   	pop    %ecx
41f2b4:	64 89 10             	mov    %edx,%fs:(%eax)
41f2b7:	68 cf f2 41 00       	push   $0x41f2cf
41f2bc:	8b 55 e8             	mov    -0x18(%ebp),%edx
41f2bf:	8b 45 d0             	mov    -0x30(%ebp),%eax
41f2c2:	e8 15 34 fe ff       	call   0x4026dc
41f2c7:	c3                   	ret
41f2c8:	e9 cf 46 fe ff       	jmp    0x40399c
41f2cd:	eb ed                	jmp    0x41f2bc
41f2cf:	33 c0                	xor    %eax,%eax
41f2d1:	5a                   	pop    %edx
41f2d2:	59                   	pop    %ecx
41f2d3:	59                   	pop    %ecx
41f2d4:	64 89 10             	mov    %edx,%fs:(%eax)
41f2d7:	68 f2 f2 41 00       	push   $0x41f2f2
41f2dc:	8b 45 c0             	mov    -0x40(%ebp),%eax
41f2df:	8b 50 08             	mov    0x8(%eax),%edx
41f2e2:	8b 45 d4             	mov    -0x2c(%ebp),%eax
41f2e5:	e8 f2 33 fe ff       	call   0x4026dc
41f2ea:	c3                   	ret
41f2eb:	e9 ac 46 fe ff       	jmp    0x40399c
41f2f0:	eb ea                	jmp    0x41f2dc
41f2f2:	33 c0                	xor    %eax,%eax
41f2f4:	5a                   	pop    %edx
41f2f5:	59                   	pop    %ecx
41f2f6:	59                   	pop    %ecx
41f2f7:	64 89 10             	mov    %edx,%fs:(%eax)
41f2fa:	68 12 f3 41 00       	push   $0x41f312
41f2ff:	8b 55 ec             	mov    -0x14(%ebp),%edx
41f302:	8b 45 f0             	mov    -0x10(%ebp),%eax
41f305:	e8 d2 33 fe ff       	call   0x4026dc
41f30a:	c3                   	ret
41f30b:	e9 8c 46 fe ff       	jmp    0x40399c
41f310:	eb ed                	jmp    0x41f2ff
41f312:	5f                   	pop    %edi
41f313:	5e                   	pop    %esi
41f314:	5b                   	pop    %ebx
41f315:	8b e5                	mov    %ebp,%esp
41f317:	5d                   	pop    %ebp
41f318:	c2 0c 00             	ret    $0xc
41f31b:	90                   	nop
41f31c:	33 c9                	xor    %ecx,%ecx
41f31e:	8b d0                	mov    %eax,%edx
41f320:	83 c0 14             	add    $0x14,%eax
41f323:	eb 06                	jmp    0x41f32b
41f325:	66 33 0a             	xor    (%edx),%cx
41f328:	83 c2 02             	add    $0x2,%edx
41f32b:	3b d0                	cmp    %eax,%edx
41f32d:	7c f6                	jl     0x41f325
41f32f:	8b c1                	mov    %ecx,%eax
41f331:	c3                   	ret
41f332:	8b c0                	mov    %eax,%eax
41f334:	53                   	push   %ebx
41f335:	56                   	push   %esi
41f336:	57                   	push   %edi
41f337:	83 c4 ac             	add    $0xffffffac,%esp
41f33a:	8b f1                	mov    %ecx,%esi
41f33c:	8b da                	mov    %edx,%ebx
41f33e:	33 d2                	xor    %edx,%edx
41f340:	89 54 24 18          	mov    %edx,0x18(%esp)
41f344:	54                   	push   %esp
41f345:	6a 54                	push   $0x54
41f347:	50                   	push   %eax
41f348:	e8 7f 6f fe ff       	call   0x4062cc
41f34d:	85 c0                	test   %eax,%eax
41f34f:	75 07                	jne    0x41f358
41f351:	e8 5e f1 ff ff       	call   0x41e4b4
41f356:	eb 3f                	jmp    0x41f397
41f358:	83 f8 40             	cmp    $0x40,%eax
41f35b:	7c 18                	jl     0x41f375
41f35d:	83 7c 24 18 28       	cmpl   $0x28,0x18(%esp)
41f362:	72 11                	jb     0x41f375
41f364:	56                   	push   %esi
41f365:	8b fb                	mov    %ebx,%edi
41f367:	8d 74 24 1c          	lea    0x1c(%esp),%esi
41f36b:	b9 0a 00 00 00       	mov    $0xa,%ecx
41f370:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
41f372:	5e                   	pop    %esi
41f373:	eb 22                	jmp    0x41f397
41f375:	8b c3                	mov    %ebx,%eax
41f377:	33 c9                	xor    %ecx,%ecx
41f379:	ba 28 00 00 00       	mov    $0x28,%edx
41f37e:	e8 e1 38 fe ff       	call   0x402c64
41f383:	c7 03 28 00 00 00    	movl   $0x28,(%ebx)
41f389:	8b 44 24 04          	mov    0x4(%esp),%eax
41f38d:	89 43 04             	mov    %eax,0x4(%ebx)
41f390:	8b 44 24 08          	mov    0x8(%esp),%eax
41f394:	89 43 08             	mov    %eax,0x8(%ebx)
41f397:	8b c6                	mov    %esi,%eax
41f399:	83 e8 02             	sub    $0x2,%eax
41f39c:	74 0f                	je     0x41f3ad
41f39e:	48                   	dec    %eax
41f39f:	83 e8 0e             	sub    $0xe,%eax
41f3a2:	72 11                	jb     0x41f3b5
41f3a4:	2d f0 00 00 00       	sub    $0xf0,%eax
41f3a9:	72 15                	jb     0x41f3c0
41f3ab:	eb 1e                	jmp    0x41f3cb
41f3ad:	66 c7 43 0e 01 00    	movw   $0x1,0xe(%ebx)
41f3b3:	eb 24                	jmp    0x41f3d9
41f3b5:	66 c7 43 0e 04 00    	movw   $0x4,0xe(%ebx)
41f3bb:	89 73 20             	mov    %esi,0x20(%ebx)
41f3be:	eb 19                	jmp    0x41f3d9
41f3c0:	66 c7 43 0e 08 00    	movw   $0x8,0xe(%ebx)
41f3c6:	89 73 20             	mov    %esi,0x20(%ebx)
41f3c9:	eb 0e                	jmp    0x41f3d9
41f3cb:	66 8b 44 24 12       	mov    0x12(%esp),%ax
41f3d0:	66 f7 6c 24 10       	imulw  0x10(%esp)
41f3d5:	66 89 43 0e          	mov    %ax,0xe(%ebx)
41f3d9:	66 c7 43 0c 01 00    	movw   $0x1,0xc(%ebx)
41f3df:	8b 43 20             	mov    0x20(%ebx),%eax
41f3e2:	3b 43 24             	cmp    0x24(%ebx),%eax
41f3e5:	73 03                	jae    0x41f3ea
41f3e7:	89 43 24             	mov    %eax,0x24(%ebx)
41f3ea:	83 7b 14 00          	cmpl   $0x0,0x14(%ebx)
41f3ee:	75 21                	jne    0x41f411
41f3f0:	0f b7 53 0e          	movzwl 0xe(%ebx),%edx
41f3f4:	8b 43 04             	mov    0x4(%ebx),%eax
41f3f7:	b9 20 00 00 00       	mov    $0x20,%ecx
41f3fc:	e8 63 f3 ff ff       	call   0x41e764
41f401:	8b c8                	mov    %eax,%ecx
41f403:	8b 43 08             	mov    0x8(%ebx),%eax
41f406:	99                   	cltd
41f407:	33 c2                	xor    %edx,%eax
41f409:	2b c2                	sub    %edx,%eax
41f40b:	0f af c8             	imul   %eax,%ecx
41f40e:	89 4b 14             	mov    %ecx,0x14(%ebx)
41f411:	83 c4 54             	add    $0x54,%esp
41f414:	5f                   	pop    %edi
41f415:	5e                   	pop    %esi
41f416:	5b                   	pop    %ebx
41f417:	c3                   	ret
41f418:	55                   	push   %ebp
41f419:	8b ec                	mov    %esp,%ebp
41f41b:	83 c4 d8             	add    $0xffffffd8,%esp
41f41e:	53                   	push   %ebx
41f41f:	56                   	push   %esi
41f420:	8b f1                	mov    %ecx,%esi
41f422:	8b da                	mov    %edx,%ebx
41f424:	8d 55 d8             	lea    -0x28(%ebp),%edx
41f427:	8b 4d 08             	mov    0x8(%ebp),%ecx
41f42a:	e8 05 ff ff ff       	call   0x41f334
41f42f:	66 8b 45 e6          	mov    -0x1a(%ebp),%ax
41f433:	66 83 f8 08          	cmp    $0x8,%ax
41f437:	76 11                	jbe    0x41f44a
41f439:	c7 03 28 00 00 00    	movl   $0x28,(%ebx)
41f43f:	f6 45 e8 03          	testb  $0x3,-0x18(%ebp)
41f443:	74 29                	je     0x41f46e
41f445:	83 03 0c             	addl   $0xc,(%ebx)
41f448:	eb 24                	jmp    0x41f46e
41f44a:	8b 55 f8             	mov    -0x8(%ebp),%edx
41f44d:	85 d2                	test   %edx,%edx
41f44f:	75 13                	jne    0x41f464
41f451:	8b c8                	mov    %eax,%ecx
41f453:	b8 01 00 00 00       	mov    $0x1,%eax
41f458:	d3 e0                	shl    %cl,%eax
41f45a:	c1 e0 02             	shl    $0x2,%eax
41f45d:	83 c0 28             	add    $0x28,%eax
41f460:	89 03                	mov    %eax,(%ebx)
41f462:	eb 0a                	jmp    0x41f46e
41f464:	8b c2                	mov    %edx,%eax
41f466:	c1 e0 02             	shl    $0x2,%eax
41f469:	83 c0 28             	add    $0x28,%eax
41f46c:	89 03                	mov    %eax,(%ebx)
41f46e:	8b 45 ec             	mov    -0x14(%ebp),%eax
41f471:	89 06                	mov    %eax,(%esi)
41f473:	5e                   	pop    %esi