53f109:	8b 4c 24 08          	mov    0x8(%esp),%ecx
53f10d:	89 11                	mov    %edx,(%ecx)
53f10f:	8b 56 04             	mov    0x4(%esi),%edx
53f112:	8b 4c 24 08          	mov    0x8(%esp),%ecx
53f116:	8b 49 04             	mov    0x4(%ecx),%ecx
53f119:	89 4e 04             	mov    %ecx,0x4(%esi)
53f11c:	8b 4c 24 08          	mov    0x8(%esp),%ecx
53f120:	89 51 04             	mov    %edx,0x4(%ecx)
53f123:	8b 56 08             	mov    0x8(%esi),%edx
53f126:	8b 4c 24 08          	mov    0x8(%esp),%ecx
53f12a:	8b 49 08             	mov    0x8(%ecx),%ecx
53f12d:	89 4e 08             	mov    %ecx,0x8(%esi)
53f130:	8b 4c 24 08          	mov    0x8(%esp),%ecx
53f134:	89 51 08             	mov    %edx,0x8(%ecx)
53f137:	8b 56 0c             	mov    0xc(%esi),%edx
53f13a:	8b 4c 24 08          	mov    0x8(%esp),%ecx
53f13e:	8b 49 0c             	mov    0xc(%ecx),%ecx
53f141:	89 4e 0c             	mov    %ecx,0xc(%esi)
53f144:	8b 4c 24 08          	mov    0x8(%esp),%ecx
53f148:	89 51 0c             	mov    %edx,0xc(%ecx)
53f14b:	3b 7c 24 0c          	cmp    0xc(%esp),%edi
53f14f:	74 38                	je     0x53f189
53f151:	8b 54 24 0c          	mov    0xc(%esp),%edx
53f155:	8b 4c 24 10          	mov    0x10(%esp),%ecx
53f159:	03 0c 24             	add    (%esp),%ecx
53f15c:	d1 e9                	shr    $1,%ecx
53f15e:	89 4c 90 24          	mov    %ecx,0x24(%eax,%edx,4)
53f162:	8b 54 24 0c          	mov    0xc(%esp),%edx
53f166:	42                   	inc    %edx
53f167:	8b cf                	mov    %edi,%ecx
53f169:	49                   	dec    %ecx
53f16a:	2b ca                	sub    %edx,%ecx
53f16c:	7c 10                	jl     0x53f17e
53f16e:	41                   	inc    %ecx
53f16f:	8d 54 90 24          	lea    0x24(%eax,%edx,4),%edx
53f173:	8b 1c 24             	mov    (%esp),%ebx
53f176:	89 1a                	mov    %ebx,(%edx)
53f178:	83 c2 04             	add    $0x4,%edx
53f17b:	49                   	dec    %ecx
53f17c:	75 f5                	jne    0x53f173
53f17e:	89 7c 24 0c          	mov    %edi,0xc(%esp)
53f182:	8b 14 24             	mov    (%esp),%edx
53f185:	89 54 24 10          	mov    %edx,0x10(%esp)
53f189:	ff 04 24             	incl   (%esp)
53f18c:	ff 4c 24 14          	decl   0x14(%esp)
53f190:	0f 85 10 ff ff ff    	jne    0x53f0a6
53f196:	8b 54 24 0c          	mov    0xc(%esp),%edx
53f19a:	8b 48 04             	mov    0x4(%eax),%ecx
53f19d:	03 4c 24 10          	add    0x10(%esp),%ecx
53f1a1:	d1 e9                	shr    $1,%ecx
53f1a3:	89 4c 90 24          	mov    %ecx,0x24(%eax,%edx,4)
53f1a7:	8b 54 24 0c          	mov    0xc(%esp),%edx
53f1ab:	42                   	inc    %edx
53f1ac:	81 fa ff 00 00 00    	cmp    $0xff,%edx
53f1b2:	7f 15                	jg     0x53f1c9
53f1b4:	8d 4c 90 24          	lea    0x24(%eax,%edx,4),%ecx
53f1b8:	8b 58 04             	mov    0x4(%eax),%ebx
53f1bb:	89 19                	mov    %ebx,(%ecx)
53f1bd:	42                   	inc    %edx
53f1be:	83 c1 04             	add    $0x4,%ecx
53f1c1:	81 fa 00 01 00 00    	cmp    $0x100,%edx
53f1c7:	75 ef                	jne    0x53f1b8
53f1c9:	83 c4 18             	add    $0x18,%esp
53f1cc:	5d                   	pop    %ebp
53f1cd:	5f                   	pop    %edi
53f1ce:	5e                   	pop    %esi
53f1cf:	5b                   	pop    %ebx
53f1d0:	c3                   	ret
53f1d1:	8d 40 00             	lea    0x0(%eax),%eax
53f1d4:	55                   	push   %ebp
53f1d5:	8b ec                	mov    %esp,%ebp
53f1d7:	83 c4 ec             	add    $0xffffffec,%esp
53f1da:	53                   	push   %ebx
53f1db:	56                   	push   %esi
53f1dc:	89 4d f8             	mov    %ecx,-0x8(%ebp)
53f1df:	89 55 fc             	mov    %edx,-0x4(%ebp)
53f1e2:	c7 45 f4 e8 03 00 00 	movl   $0x3e8,-0xc(%ebp)
53f1e9:	c7 45 ec ff ff ff ff 	movl   $0xffffffff,-0x14(%ebp)
53f1f0:	8b 55 f8             	mov    -0x8(%ebp),%edx
53f1f3:	8b 74 90 24          	mov    0x24(%eax,%edx,4),%esi
53f1f7:	8b d6                	mov    %esi,%edx
53f1f9:	4a                   	dec    %edx
53f1fa:	e9 c3 00 00 00       	jmp    0x53f2c2
53f1ff:	3b 30                	cmp    (%eax),%esi
53f201:	7d 5d                	jge    0x53f260
53f203:	8b ce                	mov    %esi,%ecx
53f205:	03 c9                	add    %ecx,%ecx
53f207:	8b 58 20             	mov    0x20(%eax),%ebx
53f20a:	8d 0c cb             	lea    (%ebx,%ecx,8),%ecx
53f20d:	89 4d f0             	mov    %ecx,-0x10(%ebp)
53f210:	8b 4d f0             	mov    -0x10(%ebp),%ecx
53f213:	8b 59 04             	mov    0x4(%ecx),%ebx
53f216:	2b 5d f8             	sub    -0x8(%ebp),%ebx
53f219:	3b 5d f4             	cmp    -0xc(%ebp),%ebx
53f21c:	7c 04                	jl     0x53f222
53f21e:	8b 30                	mov    (%eax),%esi
53f220:	eb 3e                	jmp    0x53f260
53f222:	46                   	inc    %esi
53f223:	85 db                	test   %ebx,%ebx
53f225:	7d 02                	jge    0x53f229
53f227:	f7 db                	neg    %ebx
53f229:	8b 4d f0             	mov    -0x10(%ebp),%ecx
53f22c:	8b 09                	mov    (%ecx),%ecx
53f22e:	2b 4d fc             	sub    -0x4(%ebp),%ecx
53f231:	85 c9                	test   %ecx,%ecx
53f233:	7d 02                	jge    0x53f237
53f235:	f7 d9                	neg    %ecx
53f237:	03 d9                	add    %ecx,%ebx
53f239:	3b 5d f4             	cmp    -0xc(%ebp),%ebx
53f23c:	7d 22                	jge    0x53f260
53f23e:	8b 4d f0             	mov    -0x10(%ebp),%ecx
53f241:	8b 49 08             	mov    0x8(%ecx),%ecx
53f244:	2b 4d 08             	sub    0x8(%ebp),%ecx
53f247:	85 c9                	test   %ecx,%ecx
53f249:	7d 02                	jge    0x53f24d
53f24b:	f7 d9                	neg    %ecx
53f24d:	03 d9                	add    %ecx,%ebx
53f24f:	3b 5d f4             	cmp    -0xc(%ebp),%ebx
53f252:	7d 0c                	jge    0x53f260
53f254:	89 5d f4             	mov    %ebx,-0xc(%ebp)
53f257:	8b 4d f0             	mov    -0x10(%ebp),%ecx
53f25a:	8b 49 0c             	mov    0xc(%ecx),%ecx
53f25d:	89 4d ec             	mov    %ecx,-0x14(%ebp)
53f260:	85 d2                	test   %edx,%edx
53f262:	7c 5e                	jl     0x53f2c2
53f264:	8b ca                	mov    %edx,%ecx
53f266:	03 c9                	add    %ecx,%ecx
53f268:	8b 58 20             	mov    0x20(%eax),%ebx
53f26b:	8d 0c cb             	lea    (%ebx,%ecx,8),%ecx
53f26e:	89 4d f0             	mov    %ecx,-0x10(%ebp)
53f271:	8b 4d f0             	mov    -0x10(%ebp),%ecx
53f274:	8b 5d f8             	mov    -0x8(%ebp),%ebx
53f277:	2b 59 04             	sub    0x4(%ecx),%ebx
53f27a:	3b 5d f4             	cmp    -0xc(%ebp),%ebx
53f27d:	7c 05                	jl     0x53f284
53f27f:	83 ca ff             	or     $0xffffffff,%edx
53f282:	eb 3e                	jmp    0x53f2c2
53f284:	4a                   	dec    %edx
53f285:	85 db                	test   %ebx,%ebx
53f287:	7d 02                	jge    0x53f28b
53f289:	f7 db                	neg    %ebx
53f28b:	8b 4d f0             	mov    -0x10(%ebp),%ecx
53f28e:	8b 09                	mov    (%ecx),%ecx
53f290:	2b 4d fc             	sub    -0x4(%ebp),%ecx
53f293:	85 c9                	test   %ecx,%ecx
53f295:	7d 02                	jge    0x53f299
53f297:	f7 d9                	neg    %ecx
53f299:	03 d9                	add    %ecx,%ebx
53f29b:	3b 5d f4             	cmp    -0xc(%ebp),%ebx
53f29e:	7d 22                	jge    0x53f2c2
53f2a0:	8b 4d f0             	mov    -0x10(%ebp),%ecx
53f2a3:	8b 49 08             	mov    0x8(%ecx),%ecx
53f2a6:	2b 4d 08             	sub    0x8(%ebp),%ecx
53f2a9:	85 c9                	test   %ecx,%ecx
53f2ab:	7d 02                	jge    0x53f2af
53f2ad:	f7 d9                	neg    %ecx
53f2af:	03 d9                	add    %ecx,%ebx
53f2b1:	3b 5d f4             	cmp    -0xc(%ebp),%ebx
53f2b4:	7d 0c                	jge    0x53f2c2
53f2b6:	89 5d f4             	mov    %ebx,-0xc(%ebp)
53f2b9:	8b 4d f0             	mov    -0x10(%ebp),%ecx
53f2bc:	8b 49 0c             	mov    0xc(%ecx),%ecx
53f2bf:	89 4d ec             	mov    %ecx,-0x14(%ebp)
53f2c2:	3b 30                	cmp    (%eax),%esi
53f2c4:	0f 8c 35 ff ff ff    	jl     0x53f1ff
53f2ca:	85 d2                	test   %edx,%edx
53f2cc:	0f 8d 2d ff ff ff    	jge    0x53f1ff
53f2d2:	8b 45 ec             	mov    -0x14(%ebp),%eax
53f2d5:	5e                   	pop    %esi
53f2d6:	5b                   	pop    %ebx
53f2d7:	8b e5                	mov    %ebp,%esp
53f2d9:	5d                   	pop    %ebp
53f2da:	c2 04 00             	ret    $0x4
53f2dd:	8d 40 00             	lea    0x0(%eax),%eax
53f2e0:	55                   	push   %ebp
53f2e1:	8b ec                	mov    %esp,%ebp
53f2e3:	83 c4 dc             	add    $0xffffffdc,%esp
53f2e6:	53                   	push   %ebx
53f2e7:	56                   	push   %esi
53f2e8:	89 4d fc             	mov    %ecx,-0x4(%ebp)
53f2eb:	c7 45 ec ff ff ff 7f 	movl   $0x7fffffff,-0x14(%ebp)
53f2f2:	8b 4d ec             	mov    -0x14(%ebp),%ecx
53f2f5:	89 4d e8             	mov    %ecx,-0x18(%ebp)
53f2f8:	c7 45 f4 ff ff ff ff 	movl   $0xffffffff,-0xc(%ebp)
53f2ff:	8b 4d f4             	mov    -0xc(%ebp),%ecx
53f302:	89 4d f0             	mov    %ecx,-0x10(%ebp)
53f305:	8b 88 24 04 00 00    	mov    0x424(%eax),%ecx
53f30b:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
53f30e:	8b 88 28 04 00 00    	mov    0x428(%eax),%ecx
53f314:	89 4d e0             	mov    %ecx,-0x20(%ebp)
53f317:	8b 08                	mov    (%eax),%ecx
53f319:	49                   	dec    %ecx
53f31a:	85 c9                	test   %ecx,%ecx
53f31c:	0f 8c 87 00 00 00    	jl     0x53f3a9
53f322:	41                   	inc    %ecx
53f323:	89 4d dc             	mov    %ecx,-0x24(%ebp)
53f326:	c7 45 f8 00 00 00 00 	movl   $0x0,-0x8(%ebp)
53f32d:	8b 4d f8             	mov    -0x8(%ebp),%ecx
53f330:	03 c9                	add    %ecx,%ecx
53f332:	8b 58 20             	mov    0x20(%eax),%ebx
53f335:	8d 34 cb             	lea    (%ebx,%ecx,8),%esi
53f338:	8b 0e                	mov    (%esi),%ecx
53f33a:	2b ca                	sub    %edx,%ecx
53f33c:	85 c9                	test   %ecx,%ecx
53f33e:	7d 02                	jge    0x53f342
53f340:	f7 d9                	neg    %ecx
53f342:	8b 5e 04             	mov    0x4(%esi),%ebx
53f345:	2b 5d fc             	sub    -0x4(%ebp),%ebx
53f348:	85 db                	test   %ebx,%ebx
53f34a:	7d 02                	jge    0x53f34e
53f34c:	f7 db                	neg    %ebx
53f34e:	03 cb                	add    %ebx,%ecx
53f350:	8b 5e 08             	mov    0x8(%esi),%ebx
53f353:	2b 5d 08             	sub    0x8(%ebp),%ebx
53f356:	85 db                	test   %ebx,%ebx
53f358:	7d 02                	jge    0x53f35c
53f35a:	f7 db                	neg    %ebx
53f35c:	03 cb                	add    %ebx,%ecx
53f35e:	3b 4d ec             	cmp    -0x14(%ebp),%ecx
53f361:	7d 09                	jge    0x53f36c
53f363:	89 4d ec             	mov    %ecx,-0x14(%ebp)
53f366:	8b 5d f8             	mov    -0x8(%ebp),%ebx
53f369:	89 5d f4             	mov    %ebx,-0xc(%ebp)
53f36c:	8b 5d e4             	mov    -0x1c(%ebp),%ebx
53f36f:	8b 1b                	mov    (%ebx),%ebx
53f371:	c1 eb 0c             	shr    $0xc,%ebx
53f374:	2b cb                	sub    %ebx,%ecx
53f376:	3b 4d e8             	cmp    -0x18(%ebp),%ecx
53f379:	7d 09                	jge    0x53f384
53f37b:	89 4d e8             	mov    %ecx,-0x18(%ebp)
53f37e:	8b 4d f8             	mov    -0x8(%ebp),%ecx
53f381:	89 4d f0             	mov    %ecx,-0x10(%ebp)
53f384:	8b 4d e0             	mov    -0x20(%ebp),%ecx
53f387:	8b 09                	mov    (%ecx),%ecx
53f389:	c1 e9 0a             	shr    $0xa,%ecx
53f38c:	8b 5d e0             	mov    -0x20(%ebp),%ebx
53f38f:	29 0b                	sub    %ecx,(%ebx)
53f391:	83 45 e0 04          	addl   $0x4,-0x20(%ebp)
53f395:	c1 e1 0a             	shl    $0xa,%ecx
53f398:	8b 5d e4             	mov    -0x1c(%ebp),%ebx
53f39b:	01 0b                	add    %ecx,(%ebx)
53f39d:	83 45 e4 04          	addl   $0x4,-0x1c(%ebp)
53f3a1:	ff 45 f8             	incl   -0x8(%ebp)
53f3a4:	ff 4d dc             	decl   -0x24(%ebp)
53f3a7:	75 84                	jne    0x53f32d
53f3a9:	8b 90 28 04 00 00    	mov    0x428(%eax),%edx
53f3af:	8b 4d f4             	mov    -0xc(%ebp),%ecx
53f3b2:	83 04 8a 40          	addl   $0x40,(%edx,%ecx,4)
53f3b6:	8b 80 24 04 00 00    	mov    0x424(%eax),%eax
53f3bc:	8b 55 f4             	mov    -0xc(%ebp),%edx
53f3bf:	81 2c 90 00 00 01 00 	subl   $0x10000,(%eax,%edx,4)
53f3c6:	8b 45 f0             	mov    -0x10(%ebp),%eax
53f3c9:	5e                   	pop    %esi
53f3ca:	5b                   	pop    %ebx
53f3cb:	8b e5                	mov    %ebp,%esp
53f3cd:	5d                   	pop    %ebp
53f3ce:	c2 04 00             	ret    $0x4
53f3d1:	8d 40 00             	lea    0x0(%eax),%eax
53f3d4:	55                   	push   %ebp
53f3d5:	8b ec                	mov    %esp,%ebp
53f3d7:	03 c9                	add    %ecx,%ecx
53f3d9:	8b 40 20             	mov    0x20(%eax),%eax
53f3dc:	8d 04 c8             	lea    (%eax,%ecx,8),%eax
53f3df:	8b 08                	mov    (%eax),%ecx
53f3e1:	2b 4d 10             	sub    0x10(%ebp),%ecx
53f3e4:	0f af ca             	imul   %edx,%ecx
53f3e7:	85 c9                	test   %ecx,%ecx
53f3e9:	79 06                	jns    0x53f3f1
53f3eb:	81 c1 ff 03 00 00    	add    $0x3ff,%ecx
53f3f1:	c1 f9 0a             	sar    $0xa,%ecx
53f3f4:	29 08                	sub    %ecx,(%eax)
53f3f6:	8b 48 04             	mov    0x4(%eax),%ecx
53f3f9:	2b 4d 0c             	sub    0xc(%ebp),%ecx
53f3fc:	0f af ca             	imul   %edx,%ecx
53f3ff:	85 c9                	test   %ecx,%ecx
53f401:	79 06                	jns    0x53f409
53f403:	81 c1 ff 03 00 00    	add    $0x3ff,%ecx
53f409:	c1 f9 0a             	sar    $0xa,%ecx
53f40c:	29 48 04             	sub    %ecx,0x4(%eax)
53f40f:	8b 48 08             	mov    0x8(%eax),%ecx
53f412:	2b 4d 08             	sub    0x8(%ebp),%ecx
53f415:	0f af ca             	imul   %edx,%ecx
53f418:	85 c9                	test   %ecx,%ecx
53f41a:	79 06                	jns    0x53f422
53f41c:	81 c1 ff 03 00 00    	add    $0x3ff,%ecx
53f422:	c1 f9 0a             	sar    $0xa,%ecx
53f425:	29 48 08             	sub    %ecx,0x8(%eax)
53f428:	5d                   	pop    %ebp
53f429:	c2 0c 00             	ret    $0xc
53f42c:	55                   	push   %ebp
53f42d:	8b ec                	mov    %esp,%ebp
53f42f:	83 c4 f0             	add    $0xfffffff0,%esp
53f432:	53                   	push   %ebx
53f433:	56                   	push   %esi
53f434:	89 45 fc             	mov    %eax,-0x4(%ebp)
53f437:	8b c1                	mov    %ecx,%eax
53f439:	2b c2                	sub    %edx,%eax
53f43b:	89 45 f8             	mov    %eax,-0x8(%ebp)
53f43e:	83 7d f8 ff          	cmpl   $0xffffffff,-0x8(%ebp)
53f442:	7d 07                	jge    0x53f44b
53f444:	c7 45 f8 ff ff ff ff 	movl   $0xffffffff,-0x8(%ebp)
53f44b:	03 d1                	add    %ecx,%edx
53f44d:	89 55 f4             	mov    %edx,-0xc(%ebp)
53f450:	8b 45 fc             	mov    -0x4(%ebp),%eax
53f453:	8b 00                	mov    (%eax),%eax
53f455:	3b 45 f4             	cmp    -0xc(%ebp),%eax
53f458:	7d 06                	jge    0x53f460
53f45a:	8b 55 fc             	mov    -0x4(%ebp),%edx
53f45d:	89 45 f4             	mov    %eax,-0xc(%ebp)
53f460:	8d 71 01             	lea    0x1(%ecx),%esi
53f463:	8b c1                	mov    %ecx,%eax
53f465:	48                   	dec    %eax
53f466:	8b 55 fc             	mov    -0x4(%ebp),%edx
53f469:	8b 92 2c 04 00 00    	mov    0x42c(%edx),%edx
53f46f:	89 55 f0             	mov    %edx,-0x10(%ebp)
53f472:	e9 c1 00 00 00       	jmp    0x53f538
53f477:	83 45 f0 04          	addl   $0x4,-0x10(%ebp)
53f47b:	8b 55 f0             	mov    -0x10(%ebp),%edx
53f47e:	8b 0a                	mov    (%edx),%ecx
53f480:	3b 75 f4             	cmp    -0xc(%ebp),%esi
53f483:	7d 57                	jge    0x53f4dc
53f485:	8b d6                	mov    %esi,%edx
53f487:	03 d2                	add    %edx,%edx
53f489:	8b 5d fc             	mov    -0x4(%ebp),%ebx
53f48c:	8b 5b 20             	mov    0x20(%ebx),%ebx
53f48f:	8d 14 d3             	lea    (%ebx,%edx,8),%edx
53f492:	8b 1a                	mov    (%edx),%ebx
53f494:	2b 5d 10             	sub    0x10(%ebp),%ebx
53f497:	0f af d9             	imul   %ecx,%ebx
53f49a:	85 db                	test   %ebx,%ebx
53f49c:	79 06                	jns    0x53f4a4
53f49e:	81 c3 ff ff 03 00    	add    $0x3ffff,%ebx
53f4a4:	c1 fb 12             	sar    $0x12,%ebx
53f4a7:	29 1a                	sub    %ebx,(%edx)
53f4a9:	8b 5a 04             	mov    0x4(%edx),%ebx
53f4ac:	2b 5d 0c             	sub    0xc(%ebp),%ebx
53f4af:	0f af d9             	imul   %ecx,%ebx
53f4b2:	85 db                	test   %ebx,%ebx
53f4b4:	79 06                	jns    0x53f4bc
53f4b6:	81 c3 ff ff 03 00    	add    $0x3ffff,%ebx
53f4bc:	c1 fb 12             	sar    $0x12,%ebx
53f4bf:	29 5a 04             	sub    %ebx,0x4(%edx)
53f4c2:	8b 5a 08             	mov    0x8(%edx),%ebx
53f4c5:	2b 5d 08             	sub    0x8(%ebp),%ebx
53f4c8:	0f af d9             	imul   %ecx,%ebx
53f4cb:	85 db                	test   %ebx,%ebx
53f4cd:	79 06                	jns    0x53f4d5
53f4cf:	81 c3 ff ff 03 00    	add    $0x3ffff,%ebx
53f4d5:	c1 fb 12             	sar    $0x12,%ebx
53f4d8:	29 5a 08             	sub    %ebx,0x8(%edx)