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
55f4c1:	f7 d7                	not    %edi
55f4c3:	23 f8                	and    %eax,%edi
55f4c5:	eb 02                	jmp    0x55f4c9
55f4c7:	8b 3b                	mov    (%ebx),%edi
55f4c9:	66 83 7e 2e 00       	cmpw   $0x0,0x2e(%esi)
55f4ce:	76 15                	jbe    0x55f4e5
55f4d0:	66 8b 4e 2e          	mov    0x2e(%esi),%cx
55f4d4:	b8 01 00 00 00       	mov    $0x1,%eax
55f4d9:	d3 e0                	shl    %cl,%eax
55f4db:	48                   	dec    %eax
55f4dc:	8b 53 04             	mov    0x4(%ebx),%edx
55f4df:	f7 d0                	not    %eax
55f4e1:	23 c2                	and    %edx,%eax
55f4e3:	eb 03                	jmp    0x55f4e8
55f4e5:	8b 43 04             	mov    0x4(%ebx),%eax
55f4e8:	89 44 24 0c          	mov    %eax,0xc(%esp)
55f4ec:	66 83 7e 2c 00       	cmpw   $0x0,0x2c(%esi)
55f4f1:	76 3d                	jbe    0x55f530
55f4f3:	66 83 7e 2c 00       	cmpw   $0x0,0x2c(%esi)
55f4f8:	76 23                	jbe    0x55f51d
55f4fa:	66 8b 4e 2c          	mov    0x2c(%esi),%cx
55f4fe:	ba 01 00 00 00       	mov    $0x1,%edx
55f503:	d3 e2                	shl    %cl,%edx
55f505:	66 8b 4e 2c          	mov    0x2c(%esi),%cx
55f509:	8b 43 08             	mov    0x8(%ebx),%eax
55f50c:	03 d0                	add    %eax,%edx
55f50e:	b8 01 00 00 00       	mov    $0x1,%eax
55f513:	d3 e0                	shl    %cl,%eax
55f515:	48                   	dec    %eax
55f516:	4a                   	dec    %edx
55f517:	f7 d0                	not    %eax
55f519:	23 d0                	and    %eax,%edx
55f51b:	eb 16                	jmp    0x55f533
55f51d:	66 8b 4e 2c          	mov    0x2c(%esi),%cx
55f521:	ba 01 00 00 00       	mov    $0x1,%edx
55f526:	d3 e2                	shl    %cl,%edx
55f528:	8b 43 08             	mov    0x8(%ebx),%eax
55f52b:	03 d0                	add    %eax,%edx
55f52d:	4a                   	dec    %edx
55f52e:	eb 03                	jmp    0x55f533
55f530:	8b 53 08             	mov    0x8(%ebx),%edx
55f533:	89 54 24 10          	mov    %edx,0x10(%esp)
55f537:	66 83 7e 2e 00       	cmpw   $0x0,0x2e(%esi)
55f53c:	76 3d                	jbe    0x55f57b
55f53e:	66 83 7e 2e 00       	cmpw   $0x0,0x2e(%esi)
55f543:	76 23                	jbe    0x55f568
55f545:	66 8b 4e 2e          	mov    0x2e(%esi),%cx
55f549:	bd 01 00 00 00       	mov    $0x1,%ebp
55f54e:	d3 e5                	shl    %cl,%ebp
55f550:	66 8b 4e 2e          	mov    0x2e(%esi),%cx
55f554:	ba 01 00 00 00       	mov    $0x1,%edx
55f559:	d3 e2                	shl    %cl,%edx
55f55b:	4a                   	dec    %edx
55f55c:	8b 43 0c             	mov    0xc(%ebx),%eax
55f55f:	03 e8                	add    %eax,%ebp
55f561:	f7 d2                	not    %edx
55f563:	4d                   	dec    %ebp
55f564:	23 ea                	and    %edx,%ebp
55f566:	eb 16                	jmp    0x55f57e
55f568:	66 8b 4e 2e          	mov    0x2e(%esi),%cx
55f56c:	bd 01 00 00 00       	mov    $0x1,%ebp
55f571:	d3 e5                	shl    %cl,%ebp
55f573:	8b 43 0c             	mov    0xc(%ebx),%eax
55f576:	03 e8                	add    %eax,%ebp
55f578:	4d                   	dec    %ebp
55f579:	eb 03                	jmp    0x55f57e
55f57b:	8b 6b 0c             	mov    0xc(%ebx),%ebp
55f57e:	66 83 7e 2c 00       	cmpw   $0x0,0x2c(%esi)
55f583:	77 17                	ja     0x55f59c
55f585:	68 91 09 00 00       	push   $0x991
55f58a:	68 e6 e3 69 00       	push   $0x69e3e6
55f58f:	68 b0 e3 69 00       	push   $0x69e3b0
55f594:	e8 a7 b5 ff ff       	call   0x55ab40
55f599:	83 c4 0c             	add    $0xc,%esp
55f59c:	66 8b 4e 2c          	mov    0x2c(%esi),%cx
55f5a0:	8b 44 24 10          	mov    0x10(%esp),%eax
55f5a4:	2b c7                	sub    %edi,%eax
55f5a6:	d3 e8                	shr    %cl,%eax
55f5a8:	89 43 10             	mov    %eax,0x10(%ebx)
55f5ab:	66 83 7e 2e 00       	cmpw   $0x0,0x2e(%esi)
55f5b0:	77 17                	ja     0x55f5c9
55f5b2:	68 93 09 00 00       	push   $0x993
55f5b7:	68 27 e4 69 00       	push   $0x69e427
55f5bc:	68 f0 e3 69 00       	push   $0x69e3f0
55f5c1:	e8 7a b5 ff ff       	call   0x55ab40
55f5c6:	83 c4 0c             	add    $0xc,%esp
55f5c9:	66 8b 4e 2e          	mov    0x2e(%esi),%cx
55f5cd:	8b fd                	mov    %ebp,%edi
55f5cf:	8b 44 24 0c          	mov    0xc(%esp),%eax
55f5d3:	2b f8                	sub    %eax,%edi
55f5d5:	d3 ef                	shr    %cl,%edi
55f5d7:	89 7b 14             	mov    %edi,0x14(%ebx)
55f5da:	8b 53 10             	mov    0x10(%ebx),%edx
55f5dd:	0f af d7             	imul   %edi,%edx
55f5e0:	89 53 18             	mov    %edx,0x18(%ebx)
55f5e3:	8b 53 14             	mov    0x14(%ebx),%edx
55f5e6:	8b 43 10             	mov    0x10(%ebx),%eax
55f5e9:	e8 a6 a2 01 00       	call   0x579894
55f5ee:	89 43 20             	mov    %eax,0x20(%ebx)
55f5f1:	85 c0                	test   %eax,%eax
55f5f3:	0f 84 e6 00 00 00    	je     0x55f6df
55f5f9:	8b 53 14             	mov    0x14(%ebx),%edx
55f5fc:	8b 43 10             	mov    0x10(%ebx),%eax
55f5ff:	e8 90 a2 01 00       	call   0x579894
55f604:	89 43 24             	mov    %eax,0x24(%ebx)
55f607:	85 c0                	test   %eax,%eax
55f609:	0f 84 d0 00 00 00    	je     0x55f6df
55f60f:	8b 53 14             	mov    0x14(%ebx),%edx
55f612:	8b 43 10             	mov    0x10(%ebx),%eax
55f615:	e8 7a a2 01 00       	call   0x579894
55f61a:	89 43 2c             	mov    %eax,0x2c(%ebx)
55f61d:	85 c0                	test   %eax,%eax
55f61f:	0f 84 ba 00 00 00    	je     0x55f6df
55f625:	8b 53 14             	mov    0x14(%ebx),%edx
55f628:	8b 43 10             	mov    0x10(%ebx),%eax
55f62b:	e8 64 a2 01 00       	call   0x579894
55f630:	89 43 30             	mov    %eax,0x30(%ebx)
55f633:	85 c0                	test   %eax,%eax
55f635:	0f 84 a4 00 00 00    	je     0x55f6df
55f63b:	8b 43 18             	mov    0x18(%ebx),%eax
55f63e:	c1 e0 02             	shl    $0x2,%eax
55f641:	8d 04 40             	lea    (%eax,%eax,2),%eax
55f644:	8d 04 80             	lea    (%eax,%eax,4),%eax
55f647:	e8 30 8d 01 00       	call   0x57837c
55f64c:	8b f0                	mov    %eax,%esi
55f64e:	89 73 1c             	mov    %esi,0x1c(%ebx)
55f651:	85 f6                	test   %esi,%esi
55f653:	0f 84 86 00 00 00    	je     0x55f6df
55f659:	33 ff                	xor    %edi,%edi
55f65b:	eb 20                	jmp    0x55f67d
55f65d:	33 c0                	xor    %eax,%eax
55f65f:	33 d2                	xor    %edx,%edx
55f661:	89 46 04             	mov    %eax,0x4(%esi)
55f664:	89 56 14             	mov    %edx,0x14(%esi)
55f667:	33 c9                	xor    %ecx,%ecx
55f669:	33 c0                	xor    %eax,%eax
55f66b:	89 4e 18             	mov    %ecx,0x18(%esi)
55f66e:	89 46 1c             	mov    %eax,0x1c(%esi)
55f671:	33 d2                	xor    %edx,%edx
55f673:	47                   	inc    %edi
55f674:	89 56 20             	mov    %edx,0x20(%esi)
55f677:	89 5e 2c             	mov    %ebx,0x2c(%esi)
55f67a:	83 c6 3c             	add    $0x3c,%esi
55f67d:	8b 4b 18             	mov    0x18(%ebx),%ecx
55f680:	3b f9                	cmp    %ecx,%edi
55f682:	72 d9                	jb     0x55f65d
55f684:	33 ff                	xor    %edi,%edi
55f686:	8b 73 1c             	mov    0x1c(%ebx),%esi
55f689:	eb 14                	jmp    0x55f69f
55f68b:	8b cb                	mov    %ebx,%ecx
55f68d:	8b 14 24             	mov    (%esp),%edx
55f690:	8b c6                	mov    %esi,%eax
55f692:	e8 b9 00 00 00       	call   0x55f750
55f697:	85 c0                	test   %eax,%eax
55f699:	74 44                	je     0x55f6df
55f69b:	47                   	inc    %edi
55f69c:	83 c6 3c             	add    $0x3c,%esi
55f69f:	8b 43 18             	mov    0x18(%ebx),%eax
55f6a2:	3b f8                	cmp    %eax,%edi
55f6a4:	72 e5                	jb     0x55f68b
55f6a6:	eb 33                	jmp    0x55f6db
55f6a8:	8b 53 08             	mov    0x8(%ebx),%edx
55f6ab:	33 c0                	xor    %eax,%eax
55f6ad:	89 13                	mov    %edx,(%ebx)
55f6af:	33 d2                	xor    %edx,%edx
55f6b1:	8b 4b 0c             	mov    0xc(%ebx),%ecx
55f6b4:	89 4b 04             	mov    %ecx,0x4(%ebx)
55f6b7:	89 43 18             	mov    %eax,0x18(%ebx)
55f6ba:	89 53 10             	mov    %edx,0x10(%ebx)
55f6bd:	33 c9                	xor    %ecx,%ecx
55f6bf:	89 4b 14             	mov    %ecx,0x14(%ebx)
55f6c2:	33 c0                	xor    %eax,%eax
55f6c4:	89 43 1c             	mov    %eax,0x1c(%ebx)
55f6c7:	33 d2                	xor    %edx,%edx
55f6c9:	89 53 20             	mov    %edx,0x20(%ebx)