55f14f:	5f                   	pop    %edi
55f150:	5e                   	pop    %esi
55f151:	5b                   	pop    %ebx
55f152:	c3                   	ret
55f153:	90                   	nop
55f154:	55                   	push   %ebp
55f155:	8b ec                	mov    %esp,%ebp
55f157:	83 c4 f0             	add    $0xfffffff0,%esp
55f15a:	53                   	push   %ebx
55f15b:	56                   	push   %esi
55f15c:	57                   	push   %edi
55f15d:	8b f9                	mov    %ecx,%edi
55f15f:	89 55 fc             	mov    %edx,-0x4(%ebp)
55f162:	8b d8                	mov    %eax,%ebx
55f164:	8b 47 38             	mov    0x38(%edi),%eax
55f167:	89 45 f4             	mov    %eax,-0xc(%ebp)
55f16a:	33 d2                	xor    %edx,%edx
55f16c:	89 53 04             	mov    %edx,0x4(%ebx)
55f16f:	33 c9                	xor    %ecx,%ecx
55f171:	89 0b                	mov    %ecx,(%ebx)
55f173:	89 7b 20             	mov    %edi,0x20(%ebx)
55f176:	8b 47 38             	mov    0x38(%edi),%eax
55f179:	ff 70 04             	push   0x4(%eax)
55f17c:	8b c7                	mov    %edi,%eax
55f17e:	5a                   	pop    %edx
55f17f:	2b c2                	sub    %edx,%eax
55f181:	b9 3c 00 00 00       	mov    $0x3c,%ecx
55f186:	99                   	cltd
55f187:	f7 f9                	idiv   %ecx
55f189:	66 89 45 fa          	mov    %ax,-0x6(%ebp)
55f18d:	8b c3                	mov    %ebx,%eax
55f18f:	8b 57 34             	mov    0x34(%edi),%edx
55f192:	2b c2                	sub    %edx,%eax
55f194:	b9 24 00 00 00       	mov    $0x24,%ecx
55f199:	99                   	cltd
55f19a:	f7 f9                	idiv   %ecx
55f19c:	66 83 7d fa 00       	cmpw   $0x0,-0x6(%ebp)
55f1a1:	75 04                	jne    0x55f1a7
55f1a3:	33 d2                	xor    %edx,%edx
55f1a5:	eb 0f                	jmp    0x55f1b6
55f1a7:	0f b7 4d fa          	movzwl -0x6(%ebp),%ecx
55f1ab:	8d 14 49             	lea    (%ecx,%ecx,2),%edx
55f1ae:	66 03 d0             	add    %ax,%dx
55f1b1:	66 81 c2 fe ff       	add    $0xfffe,%dx
55f1b6:	8b c2                	mov    %edx,%eax
55f1b8:	0f b7 c0             	movzwl %ax,%eax
55f1bb:	8b f0                	mov    %eax,%esi
55f1bd:	c1 e6 03             	shl    $0x3,%esi
55f1c0:	8d 34 b6             	lea    (%esi,%esi,4),%esi
55f1c3:	8b 45 08             	mov    0x8(%ebp),%eax
55f1c6:	03 f0                	add    %eax,%esi
55f1c8:	8b 16                	mov    (%esi),%edx
55f1ca:	8b 4e 08             	mov    0x8(%esi),%ecx
55f1cd:	3b d1                	cmp    %ecx,%edx
55f1cf:	74 63                	je     0x55f234
55f1d1:	8b 46 04             	mov    0x4(%esi),%eax
55f1d4:	8b 56 0c             	mov    0xc(%esi),%edx
55f1d7:	3b c2                	cmp    %edx,%eax
55f1d9:	74 59                	je     0x55f234
55f1db:	6a 00                	push   $0x0
55f1dd:	33 c9                	xor    %ecx,%ecx
55f1df:	33 d2                	xor    %edx,%edx
55f1e1:	33 c0                	xor    %eax,%eax
55f1e3:	e8 70 8a 01 00       	call   0x577c58
55f1e8:	89 43 04             	mov    %eax,0x4(%ebx)
55f1eb:	85 c0                	test   %eax,%eax
55f1ed:	0f 84 fb 00 00 00    	je     0x55f2ee
55f1f3:	8b 56 18             	mov    0x18(%esi),%edx
55f1f6:	52                   	push   %edx
55f1f7:	8b 4e 1c             	mov    0x1c(%esi),%ecx
55f1fa:	51                   	push   %ecx
55f1fb:	8b 46 20             	mov    0x20(%esi),%eax
55f1fe:	50                   	push   %eax
55f1ff:	8b 4e 14             	mov    0x14(%esi),%ecx
55f202:	8b 55 f4             	mov    -0xc(%ebp),%edx
55f205:	8b 52 08             	mov    0x8(%edx),%edx
55f208:	8b 43 04             	mov    0x4(%ebx),%eax
55f20b:	e8 7c 8c 01 00       	call   0x577e8c
55f210:	8b 0e                	mov    (%esi),%ecx
55f212:	8b 43 04             	mov    0x4(%ebx),%eax
55f215:	89 48 04             	mov    %ecx,0x4(%eax)
55f218:	8b 56 04             	mov    0x4(%esi),%edx
55f21b:	89 50 08             	mov    %edx,0x8(%eax)
55f21e:	8b 48 04             	mov    0x4(%eax),%ecx
55f221:	8b 50 18             	mov    0x18(%eax),%edx
55f224:	03 ca                	add    %edx,%ecx
55f226:	89 48 0c             	mov    %ecx,0xc(%eax)
55f229:	8b 48 08             	mov    0x8(%eax),%ecx
55f22c:	8b 50 14             	mov    0x14(%eax),%edx
55f22f:	03 ca                	add    %edx,%ecx
55f231:	89 48 10             	mov    %ecx,0x10(%eax)
55f234:	8b 46 10             	mov    0x10(%esi),%eax
55f237:	89 43 08             	mov    %eax,0x8(%ebx)
55f23a:	8b 4b 08             	mov    0x8(%ebx),%ecx
55f23d:	51                   	push   %ecx
55f23e:	0f b7 4d fa          	movzwl -0x6(%ebp),%ecx
55f242:	8b 45 f4             	mov    -0xc(%ebp),%eax
55f245:	0f b7 10             	movzwl (%eax),%edx
55f248:	8b 45 fc             	mov    -0x4(%ebp),%eax
55f24b:	0f b6 40 4f          	movzbl 0x4f(%eax),%eax
55f24f:	e8 24 dc 00 00       	call   0x56ce78
55f254:	89 43 1c             	mov    %eax,0x1c(%ebx)
55f257:	33 d2                	xor    %edx,%edx
55f259:	89 53 0c             	mov    %edx,0xc(%ebx)
55f25c:	33 c9                	xor    %ecx,%ecx
55f25e:	89 4b 10             	mov    %ecx,0x10(%ebx)
55f261:	33 c0                	xor    %eax,%eax
55f263:	89 43 14             	mov    %eax,0x14(%ebx)
55f266:	8b 56 24             	mov    0x24(%esi),%edx
55f269:	89 53 18             	mov    %edx,0x18(%ebx)
55f26c:	8b 4b 04             	mov    0x4(%ebx),%ecx
55f26f:	85 c9                	test   %ecx,%ecx
55f271:	74 77                	je     0x55f2ea
55f273:	8b 47 20             	mov    0x20(%edi),%eax
55f276:	8b d0                	mov    %eax,%edx
55f278:	8d 04 42             	lea    (%edx,%eax,2),%eax
55f27b:	8d 04 82             	lea    (%edx,%eax,4),%eax
55f27e:	c1 e0 02             	shl    $0x2,%eax
55f281:	e8 f6 90 01 00       	call   0x57837c
55f286:	8b f0                	mov    %eax,%esi
55f288:	89 33                	mov    %esi,(%ebx)
55f28a:	85 f6                	test   %esi,%esi
55f28c:	74 60                	je     0x55f2ee
55f28e:	33 c0                	xor    %eax,%eax
55f290:	89 45 f0             	mov    %eax,-0x10(%ebp)
55f293:	eb 22                	jmp    0x55f2b7
55f295:	33 d2                	xor    %edx,%edx
55f297:	89 56 1c             	mov    %edx,0x1c(%esi)
55f29a:	33 c9                	xor    %ecx,%ecx
55f29c:	89 4e 20             	mov    %ecx,0x20(%esi)
55f29f:	33 c0                	xor    %eax,%eax
55f2a1:	89 46 24             	mov    %eax,0x24(%esi)
55f2a4:	33 d2                	xor    %edx,%edx
55f2a6:	89 56 2c             	mov    %edx,0x2c(%esi)
55f2a9:	33 c9                	xor    %ecx,%ecx
55f2ab:	89 4e 30             	mov    %ecx,0x30(%esi)
55f2ae:	89 5e 28             	mov    %ebx,0x28(%esi)
55f2b1:	ff 45 f0             	incl   -0x10(%ebp)
55f2b4:	83 c6 34             	add    $0x34,%esi
55f2b7:	8b 47 20             	mov    0x20(%edi),%eax
55f2ba:	8b 55 f0             	mov    -0x10(%ebp),%edx
55f2bd:	3b c2                	cmp    %edx,%eax
55f2bf:	77 d4                	ja     0x55f295
55f2c1:	33 c9                	xor    %ecx,%ecx
55f2c3:	89 4d f0             	mov    %ecx,-0x10(%ebp)
55f2c6:	8b 33                	mov    (%ebx),%esi
55f2c8:	eb 16                	jmp    0x55f2e0
55f2ca:	8b cb                	mov    %ebx,%ecx
55f2cc:	8b 55 fc             	mov    -0x4(%ebp),%edx
55f2cf:	8b c6                	mov    %esi,%eax
55f2d1:	e8 6a 00 00 00       	call   0x55f340
55f2d6:	85 c0                	test   %eax,%eax
55f2d8:	74 14                	je     0x55f2ee
55f2da:	ff 45 f0             	incl   -0x10(%ebp)
55f2dd:	83 c6 34             	add    $0x34,%esi
55f2e0:	8b 47 20             	mov    0x20(%edi),%eax
55f2e3:	8b 55 f0             	mov    -0x10(%ebp),%edx
55f2e6:	3b c2                	cmp    %edx,%eax
55f2e8:	77 e0                	ja     0x55f2ca
55f2ea:	8b c3                	mov    %ebx,%eax
55f2ec:	eb 09                	jmp    0x55f2f7
55f2ee:	8b c3                	mov    %ebx,%eax
55f2f0:	e8 0b 00 00 00       	call   0x55f300
55f2f5:	33 c0                	xor    %eax,%eax
55f2f7:	5f                   	pop    %edi
55f2f8:	5e                   	pop    %esi
55f2f9:	5b                   	pop    %ebx
55f2fa:	8b e5                	mov    %ebp,%esp
55f2fc:	5d                   	pop    %ebp
55f2fd:	c2 04 00             	ret    $0x4
55f300:	53                   	push   %ebx
55f301:	56                   	push   %esi
55f302:	57                   	push   %edi
55f303:	8b f8                	mov    %eax,%edi
55f305:	55                   	push   %ebp
55f306:	8b 07                	mov    (%edi),%eax
55f308:	85 c0                	test   %eax,%eax
55f30a:	74 22                	je     0x55f32e
55f30c:	8b 6f 20             	mov    0x20(%edi),%ebp
55f30f:	33 f6                	xor    %esi,%esi
55f311:	8b d8                	mov    %eax,%ebx
55f313:	eb 0b                	jmp    0x55f320
55f315:	8b c3                	mov    %ebx,%eax
55f317:	e8 d4 03 00 00       	call   0x55f6f0
55f31c:	46                   	inc    %esi
55f31d:	83 c3 34             	add    $0x34,%ebx
55f320:	8b 55 20             	mov    0x20(%ebp),%edx
55f323:	3b f2                	cmp    %edx,%esi
55f325:	72 ee                	jb     0x55f315
55f327:	8b 07                	mov    (%edi),%eax
55f329:	e8 56 90 01 00       	call   0x578384
55f32e:	8b 47 04             	mov    0x4(%edi),%eax
55f331:	85 c0                	test   %eax,%eax
55f333:	74 05                	je     0x55f33a
55f335:	e8 5a 8a 01 00       	call   0x577d94
55f33a:	5d                   	pop    %ebp
55f33b:	5f                   	pop    %edi
55f33c:	5e                   	pop    %esi
55f33d:	5b                   	pop    %ebx
55f33e:	c3                   	ret
55f33f:	90                   	nop
55f340:	53                   	push   %ebx
55f341:	56                   	push   %esi
55f342:	57                   	push   %edi
55f343:	55                   	push   %ebp
55f344:	83 c4 ec             	add    $0xffffffec,%esp
55f347:	8b d8                	mov    %eax,%ebx
55f349:	33 c0                	xor    %eax,%eax
55f34b:	8b f9                	mov    %ecx,%edi
55f34d:	89 14 24             	mov    %edx,(%esp)
55f350:	33 d2                	xor    %edx,%edx
55f352:	89 43 1c             	mov    %eax,0x1c(%ebx)
55f355:	89 53 20             	mov    %edx,0x20(%ebx)
55f358:	33 c9                	xor    %ecx,%ecx
55f35a:	33 c0                	xor    %eax,%eax
55f35c:	89 4b 2c             	mov    %ecx,0x2c(%ebx)
55f35f:	89 43 24             	mov    %eax,0x24(%ebx)
55f362:	33 d2                	xor    %edx,%edx
55f364:	89 53 30             	mov    %edx,0x30(%ebx)
55f367:	8b 77 20             	mov    0x20(%edi),%esi
55f36a:	8b c6                	mov    %esi,%eax
55f36c:	8b 4e 38             	mov    0x38(%esi),%ecx
55f36f:	8b 51 04             	mov    0x4(%ecx),%edx
55f372:	b9 3c 00 00 00       	mov    $0x3c,%ecx
55f377:	2b c2                	sub    %edx,%eax
55f379:	99                   	cltd
55f37a:	f7 f9                	idiv   %ecx
55f37c:	8b e8                	mov    %eax,%ebp
55f37e:	8b 17                	mov    (%edi),%edx
55f380:	8b c3                	mov    %ebx,%eax
55f382:	b9 34 00 00 00       	mov    $0x34,%ecx
55f387:	2b c2                	sub    %edx,%eax
55f389:	99                   	cltd
55f38a:	f7 f9                	idiv   %ecx
55f38c:	8b c8                	mov    %eax,%ecx
55f38e:	33 d2                	xor    %edx,%edx
55f390:	8b c1                	mov    %ecx,%eax
55f392:	f7 76 18             	divl   0x18(%esi)
55f395:	89 54 24 04          	mov    %edx,0x4(%esp)
55f399:	33 d2                	xor    %edx,%edx
55f39b:	8b c1                	mov    %ecx,%eax
55f39d:	f7 76 18             	divl   0x18(%esi)
55f3a0:	89 44 24 08          	mov    %eax,0x8(%esp)
55f3a4:	89 7b 28             	mov    %edi,0x28(%ebx)
55f3a7:	8b 4e 10             	mov    0x10(%esi),%ecx
55f3aa:	85 c9                	test   %ecx,%ecx
55f3ac:	7e 13                	jle    0x55f3c1
55f3ae:	8b 4e 10             	mov    0x10(%esi),%ecx
55f3b1:	b8 01 00 00 00       	mov    $0x1,%eax
55f3b6:	d3 e0                	shl    %cl,%eax
55f3b8:	48                   	dec    %eax
55f3b9:	8b 16                	mov    (%esi),%edx
55f3bb:	f7 d0                	not    %eax
55f3bd:	23 c2                	and    %edx,%eax
55f3bf:	eb 02                	jmp    0x55f3c3
55f3c1:	8b 06                	mov    (%esi),%eax
55f3c3:	8b 56 14             	mov    0x14(%esi),%edx
55f3c6:	85 d2                	test   %edx,%edx
55f3c8:	7e 14                	jle    0x55f3de
55f3ca:	8b 4e 14             	mov    0x14(%esi),%ecx
55f3cd:	ba 01 00 00 00       	mov    $0x1,%edx
55f3d2:	d3 e2                	shl    %cl,%edx
55f3d4:	4a                   	dec    %edx
55f3d5:	8b 4e 04             	mov    0x4(%esi),%ecx
55f3d8:	f7 d2                	not    %edx
55f3da:	23 d1                	and    %ecx,%edx
55f3dc:	eb 03                	jmp    0x55f3e1
55f3de:	8b 56 04             	mov    0x4(%esi),%edx
55f3e1:	66 85 ed             	test   %bp,%bp
55f3e4:	74 0c                	je     0x55f3f2
55f3e6:	83 c0 02             	add    $0x2,%eax
55f3e9:	83 c2 02             	add    $0x2,%edx
55f3ec:	48                   	dec    %eax
55f3ed:	4a                   	dec    %edx
55f3ee:	d1 e8                	shr    $1,%eax
55f3f0:	d1 ea                	shr    $1,%edx
55f3f2:	8b 4e 24             	mov    0x24(%esi),%ecx
55f3f5:	8b 6c 24 04          	mov    0x4(%esp),%ebp
55f3f9:	d3 e5                	shl    %cl,%ebp
55f3fb:	03 c5                	add    %ebp,%eax
55f3fd:	8b 4e 28             	mov    0x28(%esi),%ecx
55f400:	8b 6c 24 08          	mov    0x8(%esp),%ebp
55f404:	d3 e5                	shl    %cl,%ebp
55f406:	03 d5                	add    %ebp,%edx
55f408:	8b 4f 04             	mov    0x4(%edi),%ecx
55f40b:	8b 49 04             	mov    0x4(%ecx),%ecx
55f40e:	3b c1                	cmp    %ecx,%eax
55f410:	73 08                	jae    0x55f41a
55f412:	8b 4f 04             	mov    0x4(%edi),%ecx
55f415:	8b 49 04             	mov    0x4(%ecx),%ecx
55f418:	eb 02                	jmp    0x55f41c
55f41a:	8b c8                	mov    %eax,%ecx
55f41c:	89 0b                	mov    %ecx,(%ebx)
55f41e:	8b 4f 04             	mov    0x4(%edi),%ecx
55f421:	8b 49 08             	mov    0x8(%ecx),%ecx
55f424:	3b d1                	cmp    %ecx,%edx
55f426:	73 08                	jae    0x55f430
55f428:	8b 4f 04             	mov    0x4(%edi),%ecx
55f42b:	8b 49 08             	mov    0x8(%ecx),%ecx
55f42e:	eb 02                	jmp    0x55f432
55f430:	8b ca                	mov    %edx,%ecx
55f432:	89 4b 04             	mov    %ecx,0x4(%ebx)
55f435:	8b 4e 24             	mov    0x24(%esi),%ecx
55f438:	bd 01 00 00 00       	mov    $0x1,%ebp
55f43d:	d3 e5                	shl    %cl,%ebp
55f43f:	03 e8                	add    %eax,%ebp
55f441:	8b 4f 04             	mov    0x4(%edi),%ecx
55f444:	8b 49 0c             	mov    0xc(%ecx),%ecx
55f447:	3b e9                	cmp    %ecx,%ebp
55f449:	76 08                	jbe    0x55f453
55f44b:	8b 4f 04             	mov    0x4(%edi),%ecx
55f44e:	8b 49 0c             	mov    0xc(%ecx),%ecx
55f451:	eb 0e                	jmp    0x55f461
55f453:	8b 4e 24             	mov    0x24(%esi),%ecx
55f456:	bd 01 00 00 00       	mov    $0x1,%ebp
55f45b:	d3 e5                	shl    %cl,%ebp
55f45d:	8b cd                	mov    %ebp,%ecx
55f45f:	03 c8                	add    %eax,%ecx
55f461:	89 4b 08             	mov    %ecx,0x8(%ebx)
55f464:	8b 4e 28             	mov    0x28(%esi),%ecx
55f467:	b8 01 00 00 00       	mov    $0x1,%eax
55f46c:	d3 e0                	shl    %cl,%eax
55f46e:	03 c2                	add    %edx,%eax
55f470:	8b 4f 04             	mov    0x4(%edi),%ecx
55f473:	8b 49 10             	mov    0x10(%ecx),%ecx
55f476:	3b c1                	cmp    %ecx,%eax
55f478:	76 08                	jbe    0x55f482
55f47a:	8b 47 04             	mov    0x4(%edi),%eax
55f47d:	8b 40 10             	mov    0x10(%eax),%eax
55f480:	eb 0c                	jmp    0x55f48e
55f482:	8b 4e 28             	mov    0x28(%esi),%ecx
55f485:	b8 01 00 00 00       	mov    $0x1,%eax
55f48a:	d3 e0                	shl    %cl,%eax
55f48c:	03 c2                	add    %edx,%eax
55f48e:	89 43 0c             	mov    %eax,0xc(%ebx)
55f491:	8b 13                	mov    (%ebx),%edx
55f493:	8b 4b 08             	mov    0x8(%ebx),%ecx
55f496:	3b d1                	cmp    %ecx,%edx
55f498:	0f 83 0a 02 00 00    	jae    0x55f6a8
55f49e:	8b 43 04             	mov    0x4(%ebx),%eax
55f4a1:	8b 53 0c             	mov    0xc(%ebx),%edx
55f4a4:	3b c2                	cmp    %edx,%eax
55f4a6:	0f 83 fc 01 00 00    	jae    0x55f6a8
55f4ac:	66 83 7e 2c 00       	cmpw   $0x0,0x2c(%esi)
55f4b1:	76 14                	jbe    0x55f4c7
55f4b3:	66 8b 4e 2c          	mov    0x2c(%esi),%cx
55f4b7:	bf 01 00 00 00       	mov    $0x1,%edi
55f4bc:	d3 e7                	shl    %cl,%edi
55f4be:	4f                   	dec    %edi
55f4bf:	8b 03                	mov    (%ebx),%eax