5010bf:	f7 7c 24 18          	idivl  0x18(%esp)
5010c3:	8b f0                	mov    %eax,%esi
5010c5:	33 c0                	xor    %eax,%eax
5010c7:	89 44 24 14          	mov    %eax,0x14(%esp)
5010cb:	8b 54 24 2c          	mov    0x2c(%esp),%edx
5010cf:	8b ca                	mov    %edx,%ecx
5010d1:	89 4c 24 28          	mov    %ecx,0x28(%esp)
5010d5:	8b 44 24 14          	mov    0x14(%esp),%eax
5010d9:	3b 44 24 18          	cmp    0x18(%esp),%eax
5010dd:	7d 64                	jge    0x501143
5010df:	8b 54 24 18          	mov    0x18(%esp),%edx
5010e3:	4a                   	dec    %edx
5010e4:	52                   	push   %edx
5010e5:	8b 4c 24 18          	mov    0x18(%esp),%ecx
5010e9:	8b 54 24 14          	mov    0x14(%esp),%edx
5010ed:	8b 44 24 04          	mov    0x4(%esp),%eax
5010f1:	e8 92 fe ff ff       	call   0x500f88
5010f6:	8b f8                	mov    %eax,%edi
5010f8:	8b 4c 24 14          	mov    0x14(%esp),%ecx
5010fc:	0f af ce             	imul   %esi,%ecx
5010ff:	8b 44 24 28          	mov    0x28(%esp),%eax
501103:	8b d0                	mov    %eax,%edx
501105:	89 54 24 24          	mov    %edx,0x24(%esp)
501109:	3b 4c 24 0c          	cmp    0xc(%esp),%ecx
50110d:	7d 26                	jge    0x501135
50110f:	33 c0                	xor    %eax,%eax
501111:	8b 54 24 24          	mov    0x24(%esp),%edx
501115:	3b f0                	cmp    %eax,%esi
501117:	7e 12                	jle    0x50112b
501119:	8b 1a                	mov    (%edx),%ebx
50111b:	03 d9                	add    %ecx,%ebx
50111d:	03 d8                	add    %eax,%ebx
50111f:	40                   	inc    %eax
501120:	53                   	push   %ebx
501121:	8b df                	mov    %edi,%ebx
501123:	5d                   	pop    %ebp
501124:	3b f0                	cmp    %eax,%esi
501126:	88 5d 00             	mov    %bl,0x0(%ebp)
501129:	7f ee                	jg     0x501119
50112b:	03 4c 24 1c          	add    0x1c(%esp),%ecx
50112f:	3b 4c 24 0c          	cmp    0xc(%esp),%ecx
501133:	7c da                	jl     0x50110f
501135:	ff 44 24 14          	incl   0x14(%esp)
501139:	8b 44 24 14          	mov    0x14(%esp),%eax
50113d:	3b 44 24 18          	cmp    0x18(%esp),%eax
501141:	7c 9c                	jl     0x5010df
501143:	89 74 24 1c          	mov    %esi,0x1c(%esp)
501147:	ff 44 24 10          	incl   0x10(%esp)
50114b:	83 44 24 2c 04       	addl   $0x4,0x2c(%esp)
501150:	83 44 24 20 04       	addl   $0x4,0x20(%esp)
501155:	8b 14 24             	mov    (%esp),%edx
501158:	8b 4a 74             	mov    0x74(%edx),%ecx
50115b:	3b 4c 24 10          	cmp    0x10(%esp),%ecx
50115f:	0f 8f 4b ff ff ff    	jg     0x5010b0
501165:	8b 44 24 04          	mov    0x4(%esp),%eax
501169:	8b 54 24 08          	mov    0x8(%esp),%edx
50116d:	89 50 10             	mov    %edx,0x10(%eax)
501170:	8b 4c 24 04          	mov    0x4(%esp),%ecx
501174:	8b 44 24 0c          	mov    0xc(%esp),%eax
501178:	89 41 14             	mov    %eax,0x14(%ecx)
50117b:	83 c4 30             	add    $0x30,%esp
50117e:	5d                   	pop    %ebp
50117f:	5f                   	pop    %edi
501180:	5e                   	pop    %esi
501181:	5b                   	pop    %ebx
501182:	c3                   	ret
501183:	90                   	nop
501184:	53                   	push   %ebx
501185:	56                   	push   %esi
501186:	57                   	push   %edi
501187:	83 c4 e0             	add    $0xffffffe0,%esp
50118a:	89 04 24             	mov    %eax,(%esp)
50118d:	8b 04 24             	mov    (%esp),%eax
501190:	8b 90 c4 01 00 00    	mov    0x1c4(%eax),%edx
501196:	89 54 24 04          	mov    %edx,0x4(%esp)
50119a:	8b 0c 24             	mov    (%esp),%ecx
50119d:	83 79 54 01          	cmpl   $0x1,0x54(%ecx)
5011a1:	75 15                	jne    0x5011b8
5011a3:	c7 44 24 14 fe 01 00 	movl   $0x1fe,0x14(%esp)
5011aa:	00
5011ab:	8b 44 24 04          	mov    0x4(%esp),%eax
5011af:	c7 40 1c 01 00 00 00 	movl   $0x1,0x1c(%eax)
5011b6:	eb 0f                	jmp    0x5011c7
5011b8:	33 d2                	xor    %edx,%edx
5011ba:	89 54 24 14          	mov    %edx,0x14(%esp)
5011be:	8b 4c 24 04          	mov    0x4(%esp),%ecx
5011c2:	33 c0                	xor    %eax,%eax
5011c4:	89 41 1c             	mov    %eax,0x1c(%ecx)
5011c7:	8b 14 24             	mov    (%esp),%edx
5011ca:	8b 4a 74             	mov    0x74(%edx),%ecx
5011cd:	ba 01 00 00 00       	mov    $0x1,%edx
5011d2:	51                   	push   %ecx
5011d3:	8b 44 24 04          	mov    0x4(%esp),%eax
5011d7:	8b 4c 24 18          	mov    0x18(%esp),%ecx
5011db:	81 c1 00 01 00 00    	add    $0x100,%ecx
5011e1:	8b 58 04             	mov    0x4(%eax),%ebx
5011e4:	ff 53 08             	call   *0x8(%ebx)
5011e7:	8b 54 24 04          	mov    0x4(%esp),%edx
5011eb:	89 42 18             	mov    %eax,0x18(%edx)
5011ee:	8b 44 24 04          	mov    0x4(%esp),%eax
5011f2:	8b 48 14             	mov    0x14(%eax),%ecx
5011f5:	89 4c 24 10          	mov    %ecx,0x10(%esp)
5011f9:	33 ff                	xor    %edi,%edi
5011fb:	8b 44 24 04          	mov    0x4(%esp),%eax
5011ff:	8d 50 20             	lea    0x20(%eax),%edx
501202:	89 54 24 18          	mov    %edx,0x18(%esp)
501206:	e9 d4 00 00 00       	jmp    0x5012df
50120b:	8b 4c 24 18          	mov    0x18(%esp),%ecx
50120f:	8b 01                	mov    (%ecx),%eax
501211:	89 44 24 0c          	mov    %eax,0xc(%esp)
501215:	8b 44 24 10          	mov    0x10(%esp),%eax
501219:	99                   	cltd
50121a:	f7 7c 24 0c          	idivl  0xc(%esp)
50121e:	89 44 24 10          	mov    %eax,0x10(%esp)
501222:	83 7c 24 14 00       	cmpl   $0x0,0x14(%esp)
501227:	74 0e                	je     0x501237
501229:	8b 4c 24 04          	mov    0x4(%esp),%ecx
50122d:	8b 41 18             	mov    0x18(%ecx),%eax
501230:	81 04 b8 ff 00 00 00 	addl   $0xff,(%eax,%edi,4)
501237:	8b 54 24 04          	mov    0x4(%esp),%edx
50123b:	33 f6                	xor    %esi,%esi
50123d:	8b 4a 18             	mov    0x18(%edx),%ecx
501240:	8b d7                	mov    %edi,%edx
501242:	8b 04 b9             	mov    (%ecx,%edi,4),%eax
501245:	89 44 24 08          	mov    %eax,0x8(%esp)
501249:	8b 44 24 0c          	mov    0xc(%esp),%eax
50124d:	48                   	dec    %eax
50124e:	33 c9                	xor    %ecx,%ecx
501250:	50                   	push   %eax
501251:	8b 44 24 04          	mov    0x4(%esp),%eax
501255:	e8 52 fd ff ff       	call   0x500fac
50125a:	33 db                	xor    %ebx,%ebx
50125c:	8b 54 24 08          	mov    0x8(%esp),%edx
501260:	8b ca                	mov    %edx,%ecx
501262:	89 4c 24 1c          	mov    %ecx,0x1c(%esp)
501266:	3b c3                	cmp    %ebx,%eax
501268:	7d 18                	jge    0x501282
50126a:	8b 44 24 0c          	mov    0xc(%esp),%eax
50126e:	8b d7                	mov    %edi,%edx
501270:	48                   	dec    %eax
501271:	46                   	inc    %esi
501272:	50                   	push   %eax
501273:	8b ce                	mov    %esi,%ecx
501275:	8b 44 24 04          	mov    0x4(%esp),%eax
501279:	e8 2e fd ff ff       	call   0x500fac
50127e:	3b c3                	cmp    %ebx,%eax
501280:	7c e8                	jl     0x50126a
501282:	8b d6                	mov    %esi,%edx
501284:	8b 4c 24 1c          	mov    0x1c(%esp),%ecx
501288:	0f af 54 24 10       	imul   0x10(%esp),%edx
50128d:	88 11                	mov    %dl,(%ecx)
50128f:	43                   	inc    %ebx
501290:	ff 44 24 1c          	incl   0x1c(%esp)
501294:	81 fb ff 00 00 00    	cmp    $0xff,%ebx
50129a:	7e ca                	jle    0x501266
50129c:	83 7c 24 14 00       	cmpl   $0x0,0x14(%esp)
5012a1:	74 36                	je     0x5012d9
5012a3:	bb 01 00 00 00       	mov    $0x1,%ebx
5012a8:	8b 44 24 08          	mov    0x8(%esp),%eax
5012ac:	05 00 01 00 00       	add    $0x100,%eax
5012b1:	8b d3                	mov    %ebx,%edx
5012b3:	8b 4c 24 08          	mov    0x8(%esp),%ecx
5012b7:	f7 da                	neg    %edx
5012b9:	03 ca                	add    %edx,%ecx
5012bb:	8b 54 24 08          	mov    0x8(%esp),%edx
5012bf:	43                   	inc    %ebx
5012c0:	8a 12                	mov    (%edx),%dl
5012c2:	88 11                	mov    %dl,(%ecx)
5012c4:	8b 4c 24 08          	mov    0x8(%esp),%ecx
5012c8:	8a 91 ff 00 00 00    	mov    0xff(%ecx),%dl
5012ce:	88 10                	mov    %dl,(%eax)
5012d0:	40                   	inc    %eax
5012d1:	81 fb ff 00 00 00    	cmp    $0xff,%ebx
5012d7:	7e d8                	jle    0x5012b1
5012d9:	47                   	inc    %edi
5012da:	83 44 24 18 04       	addl   $0x4,0x18(%esp)
5012df:	8b 04 24             	mov    (%esp),%eax
5012e2:	3b 78 74             	cmp    0x74(%eax),%edi
5012e5:	0f 8c 20 ff ff ff    	jl     0x50120b
5012eb:	83 c4 20             	add    $0x20,%esp
5012ee:	5f                   	pop    %edi
5012ef:	5e                   	pop    %esi
5012f0:	5b                   	pop    %ebx
5012f1:	c3                   	ret
5012f2:	90                   	nop
5012f3:	90                   	nop
5012f4:	53                   	push   %ebx
5012f5:	56                   	push   %esi
5012f6:	57                   	push   %edi
5012f7:	55                   	push   %ebp
5012f8:	8b 70 04             	mov    0x4(%eax),%esi
5012fb:	8b da                	mov    %edx,%ebx
5012fd:	ba 01 00 00 00       	mov    $0x1,%edx
501302:	83 c4 f0             	add    $0xfffffff0,%esp
501305:	b9 00 04 00 00       	mov    $0x400,%ecx
50130a:	ff 16                	call   *(%esi)
50130c:	89 04 24             	mov    %eax,(%esp)
50130f:	8b eb                	mov    %ebx,%ebp
501311:	c1 e5 09             	shl    $0x9,%ebp
501314:	81 c5 00 fe ff ff    	add    $0xfffffe00,%ebp
50131a:	33 c0                	xor    %eax,%eax
50131c:	89 44 24 04          	mov    %eax,0x4(%esp)
501320:	c7 44 24 0c 98 d7 68 	movl   $0x68d798,0xc(%esp)
501327:	00
501328:	8b 14 24             	mov    (%esp),%edx
50132b:	8b ca                	mov    %edx,%ecx
50132d:	89 4c 24 08          	mov    %ecx,0x8(%esp)
501331:	33 ff                	xor    %edi,%edi
501333:	8b 44 24 08          	mov    0x8(%esp),%eax
501337:	8b f0                	mov    %eax,%esi
501339:	8b 44 24 0c          	mov    0xc(%esp),%eax
50133d:	8b d8                	mov    %eax,%ebx
50133f:	33 c0                	xor    %eax,%eax
501341:	8a 03                	mov    (%ebx),%al
501343:	03 c0                	add    %eax,%eax
501345:	ba ff 00 00 00       	mov    $0xff,%edx
50134a:	2b d0                	sub    %eax,%edx
50134c:	8b ca                	mov    %edx,%ecx
50134e:	c1 e1 08             	shl    $0x8,%ecx
501351:	2b ca                	sub    %edx,%ecx
501353:	85 c9                	test   %ecx,%ecx
501355:	7d 0b                	jge    0x501362
501357:	8b c1                	mov    %ecx,%eax
501359:	f7 d8                	neg    %eax
50135b:	99                   	cltd
50135c:	f7 fd                	idiv   %ebp
50135e:	f7 d8                	neg    %eax
501360:	eb 05                	jmp    0x501367
501362:	8b c1                	mov    %ecx,%eax
501364:	99                   	cltd
501365:	f7 fd                	idiv   %ebp
501367:	89 06                	mov    %eax,(%esi)
501369:	47                   	inc    %edi
50136a:	83 c6 04             	add    $0x4,%esi
50136d:	43                   	inc    %ebx
50136e:	83 ff 10             	cmp    $0x10,%edi
501371:	7c cc                	jl     0x50133f
501373:	ff 44 24 04          	incl   0x4(%esp)
501377:	83 44 24 0c 10       	addl   $0x10,0xc(%esp)
50137c:	83 44 24 08 40       	addl   $0x40,0x8(%esp)
501381:	83 7c 24 04 10       	cmpl   $0x10,0x4(%esp)
501386:	7c a9                	jl     0x501331
501388:	8b 04 24             	mov    (%esp),%eax
50138b:	83 c4 10             	add    $0x10,%esp
50138e:	5d                   	pop    %ebp
50138f:	5f                   	pop    %edi
501390:	5e                   	pop    %esi
501391:	5b                   	pop    %ebx
501392:	c3                   	ret
501393:	90                   	nop
501394:	53                   	push   %ebx
501395:	56                   	push   %esi
501396:	57                   	push   %edi
501397:	83 c4 f8             	add    $0xfffffff8,%esp
50139a:	89 04 24             	mov    %eax,(%esp)
50139d:	8b 04 24             	mov    (%esp),%eax
5013a0:	8b 90 c4 01 00 00    	mov    0x1c4(%eax),%edx
5013a6:	89 54 24 04          	mov    %edx,0x4(%esp)
5013aa:	33 db                	xor    %ebx,%ebx
5013ac:	8b 44 24 04          	mov    0x4(%esp),%eax
5013b0:	8d 70 20             	lea    0x20(%eax),%esi
5013b3:	eb 39                	jmp    0x5013ee
5013b5:	8b 3e                	mov    (%esi),%edi
5013b7:	33 c9                	xor    %ecx,%ecx
5013b9:	33 d2                	xor    %edx,%edx
5013bb:	8b 44 24 04          	mov    0x4(%esp),%eax
5013bf:	83 c0 20             	add    $0x20,%eax
5013c2:	3b da                	cmp    %edx,%ebx
5013c4:	7e 11                	jle    0x5013d7
5013c6:	3b 38                	cmp    (%eax),%edi
5013c8:	75 05                	jne    0x5013cf
5013ca:	8b 48 14             	mov    0x14(%eax),%ecx
5013cd:	eb 08                	jmp    0x5013d7
5013cf:	42                   	inc    %edx
5013d0:	83 c0 04             	add    $0x4,%eax
5013d3:	3b da                	cmp    %edx,%ebx
5013d5:	7f ef                	jg     0x5013c6
5013d7:	85 c9                	test   %ecx,%ecx
5013d9:	75 0c                	jne    0x5013e7
5013db:	8b d7                	mov    %edi,%edx
5013dd:	8b 04 24             	mov    (%esp),%eax
5013e0:	e8 0f ff ff ff       	call   0x5012f4
5013e5:	8b c8                	mov    %eax,%ecx
5013e7:	89 4e 14             	mov    %ecx,0x14(%esi)
5013ea:	43                   	inc    %ebx
5013eb:	83 c6 04             	add    $0x4,%esi
5013ee:	8b 14 24             	mov    (%esp),%edx
5013f1:	3b 5a 74             	cmp    0x74(%edx),%ebx
5013f4:	7c bf                	jl     0x5013b5
5013f6:	59                   	pop    %ecx
5013f7:	5a                   	pop    %edx
5013f8:	5f                   	pop    %edi
5013f9:	5e                   	pop    %esi
5013fa:	5b                   	pop    %ebx
5013fb:	c3                   	ret
5013fc:	55                   	push   %ebp
5013fd:	8b ec                	mov    %esp,%ebp
5013ff:	83 c4 e0             	add    $0xffffffe0,%esp
501402:	53                   	push   %ebx
501403:	56                   	push   %esi
501404:	57                   	push   %edi
501405:	8b 98 c4 01 00 00    	mov    0x1c4(%eax),%ebx
50140b:	8b 5b 18             	mov    0x18(%ebx),%ebx
50140e:	89 5d fc             	mov    %ebx,-0x4(%ebp)
501411:	8b 58 6c             	mov    0x6c(%eax),%ebx
501414:	89 5d ec             	mov    %ebx,-0x14(%ebp)
501417:	8b 40 74             	mov    0x74(%eax),%eax
50141a:	89 45 e8             	mov    %eax,-0x18(%ebp)
50141d:	33 c0                	xor    %eax,%eax
50141f:	89 45 f4             	mov    %eax,-0xc(%ebp)
501422:	89 4d e0             	mov    %ecx,-0x20(%ebp)
501425:	89 55 e4             	mov    %edx,-0x1c(%ebp)
501428:	8b 45 f4             	mov    -0xc(%ebp),%eax
50142b:	3b 45 08             	cmp    0x8(%ebp),%eax
50142e:	7d 61                	jge    0x501491
501430:	8b 55 e4             	mov    -0x1c(%ebp),%edx
501433:	8b 45 e0             	mov    -0x20(%ebp),%eax
501436:	8b 0a                	mov    (%edx),%ecx
501438:	8b 10                	mov    (%eax),%edx
50143a:	89 55 f8             	mov    %edx,-0x8(%ebp)
50143d:	8b 45 ec             	mov    -0x14(%ebp),%eax
501440:	89 45 f0             	mov    %eax,-0x10(%ebp)
501443:	83 7d f0 00          	cmpl   $0x0,-0x10(%ebp)
501447:	76 35                	jbe    0x50147e
501449:	33 f6                	xor    %esi,%esi
50144b:	33 d2                	xor    %edx,%edx
50144d:	8b 45 fc             	mov    -0x4(%ebp),%eax
501450:	3b 55 e8             	cmp    -0x18(%ebp),%edx
501453:	7d 16                	jge    0x50146b
501455:	33 db                	xor    %ebx,%ebx
501457:	8b 38                	mov    (%eax),%edi
501459:	8a 19                	mov    (%ecx),%bl
50145b:	41                   	inc    %ecx
50145c:	83 c0 04             	add    $0x4,%eax
50145f:	42                   	inc    %edx
501460:	0f b6 1c 1f          	movzbl (%edi,%ebx,1),%ebx
501464:	03 f3                	add    %ebx,%esi
501466:	3b 55 e8             	cmp    -0x18(%ebp),%edx
501469:	7c ea                	jl     0x501455
50146b:	8b c6                	mov    %esi,%eax
50146d:	8b 55 f8             	mov    -0x8(%ebp),%edx
501470:	88 02                	mov    %al,(%edx)
501472:	ff 45 f8             	incl   -0x8(%ebp)
501475:	ff 4d f0             	decl   -0x10(%ebp)
501478:	83 7d f0 00          	cmpl   $0x0,-0x10(%ebp)
50147c:	77 cb                	ja     0x501449
50147e:	ff 45 f4             	incl   -0xc(%ebp)
501481:	83 45 e0 04          	addl   $0x4,-0x20(%ebp)
501485:	83 45 e4 04          	addl   $0x4,-0x1c(%ebp)
501489:	8b 4d f4             	mov    -0xc(%ebp),%ecx