56c210:	89 46 04             	mov    %eax,0x4(%esi)
56c213:	b0 01                	mov    $0x1,%al
56c215:	8b 0e                	mov    (%esi),%ecx
56c217:	8d 0c 79             	lea    (%ecx,%edi,2),%ecx
56c21a:	89 4e 08             	mov    %ecx,0x8(%esi)
56c21d:	5f                   	pop    %edi
56c21e:	5e                   	pop    %esi
56c21f:	5d                   	pop    %ebp
56c220:	c2 04 00             	ret    $0x4
56c223:	68 50 59 6e 00       	push   $0x6e5950
56c228:	e8 5d 21 06 00       	call   0x5ce38a
56c22d:	cc                   	int3
56c22e:	56                   	push   %esi
56c22f:	8b f1                	mov    %ecx,%esi
56c231:	83 3e 00             	cmpl   $0x0,(%esi)
56c234:	74 1c                	je     0x56c252
56c236:	8b 46 08             	mov    0x8(%esi),%eax
56c239:	2b 06                	sub    (%esi),%eax
56c23b:	6a 01                	push   $0x1
56c23d:	50                   	push   %eax
56c23e:	ff 36                	push   (%esi)
56c240:	e8 bb b5 ec ff       	call   0x437800
56c245:	83 c4 0c             	add    $0xc,%esp
56c248:	33 c0                	xor    %eax,%eax
56c24a:	89 06                	mov    %eax,(%esi)
56c24c:	89 46 04             	mov    %eax,0x4(%esi)
56c24f:	89 46 08             	mov    %eax,0x8(%esi)
56c252:	5e                   	pop    %esi
56c253:	c3                   	ret
56c254:	56                   	push   %esi
56c255:	8b f1                	mov    %ecx,%esi
56c257:	83 3e 00             	cmpl   $0x0,(%esi)
56c25a:	74 1e                	je     0x56c27a
56c25c:	8b 46 08             	mov    0x8(%esi),%eax
56c25f:	2b 06                	sub    (%esi),%eax
56c261:	6a 02                	push   $0x2
56c263:	d1 f8                	sar    $1,%eax
56c265:	50                   	push   %eax
56c266:	ff 36                	push   (%esi)
56c268:	e8 93 b5 ec ff       	call   0x437800
56c26d:	83 c4 0c             	add    $0xc,%esp
56c270:	33 c0                	xor    %eax,%eax
56c272:	89 06                	mov    %eax,(%esi)
56c274:	89 46 04             	mov    %eax,0x4(%esi)
56c277:	89 46 08             	mov    %eax,0x8(%esi)
56c27a:	5e                   	pop    %esi
56c27b:	c3                   	ret
56c27c:	cc                   	int3
56c27d:	cc                   	int3
56c27e:	cc                   	int3
56c27f:	cc                   	int3
56c280:	8b 4c 24 04          	mov    0x4(%esp),%ecx
56c284:	8b 44 24 08          	mov    0x8(%esp),%eax
56c288:	f7 d0                	not    %eax
56c28a:	21 41 1c             	and    %eax,0x1c(%ecx)
56c28d:	c3                   	ret
56c28e:	cc                   	int3
56c28f:	cc                   	int3
56c290:	53                   	push   %ebx
56c291:	8b 5c 24 08          	mov    0x8(%esp),%ebx
56c295:	57                   	push   %edi
56c296:	85 db                	test   %ebx,%ebx
56c298:	0f 84 22 01 00 00    	je     0x56c3c0
56c29e:	8b 7c 24 10          	mov    0x10(%esp),%edi
56c2a2:	85 ff                	test   %edi,%edi
56c2a4:	0f 84 16 01 00 00    	je     0x56c3c0
56c2aa:	8b 47 04             	mov    0x4(%edi),%eax
56c2ad:	56                   	push   %esi
56c2ae:	85 c0                	test   %eax,%eax
56c2b0:	74 3b                	je     0x56c2ed
56c2b2:	50                   	push   %eax
56c2b3:	e8 68 4d f2 ff       	call   0x491020
56c2b8:	8b f0                	mov    %eax,%esi
56c2ba:	83 c4 04             	add    $0x4,%esp
56c2bd:	8b 43 04             	mov    0x4(%ebx),%eax
56c2c0:	85 c0                	test   %eax,%eax
56c2c2:	74 09                	je     0x56c2cd
56c2c4:	50                   	push   %eax
56c2c5:	e8 96 f5 00 00       	call   0x57b860
56c2ca:	83 c4 04             	add    $0x4,%esp
56c2cd:	56                   	push   %esi
56c2ce:	e8 dd f7 00 00       	call   0x57bab0
56c2d3:	83 c4 04             	add    $0x4,%esp
56c2d6:	89 43 04             	mov    %eax,0x4(%ebx)
56c2d9:	85 c0                	test   %eax,%eax
56c2db:	74 78                	je     0x56c355
56c2dd:	ff 77 04             	push   0x4(%edi)
56c2e0:	50                   	push   %eax
56c2e1:	e8 0a f3 00 00       	call   0x57b5f0
56c2e6:	83 c4 08             	add    $0x8,%esp
56c2e9:	85 c0                	test   %eax,%eax
56c2eb:	74 68                	je     0x56c355
56c2ed:	83 7f 08 00          	cmpl   $0x0,0x8(%edi)
56c2f1:	74 38                	je     0x56c32b
56c2f3:	83 7f 04 00          	cmpl   $0x0,0x4(%edi)
56c2f7:	74 32                	je     0x56c32b
56c2f9:	8b 43 08             	mov    0x8(%ebx),%eax
56c2fc:	85 c0                	test   %eax,%eax
56c2fe:	74 09                	je     0x56c309
56c300:	50                   	push   %eax
56c301:	e8 da fc 00 00       	call   0x57bfe0
56c306:	83 c4 04             	add    $0x4,%esp
56c309:	ff 77 04             	push   0x4(%edi)
56c30c:	e8 df ff 00 00       	call   0x57c2f0
56c311:	83 c4 04             	add    $0x4,%esp
56c314:	89 43 08             	mov    %eax,0x8(%ebx)
56c317:	85 c0                	test   %eax,%eax
56c319:	74 3a                	je     0x56c355
56c31b:	ff 77 08             	push   0x8(%edi)
56c31e:	50                   	push   %eax
56c31f:	e8 8c fb 00 00       	call   0x57beb0
56c324:	83 c4 08             	add    $0x8,%esp
56c327:	85 c0                	test   %eax,%eax
56c329:	74 2a                	je     0x56c355
56c32b:	83 7f 0c 00          	cmpl   $0x0,0xc(%edi)
56c32f:	74 2a                	je     0x56c35b
56c331:	83 7b 0c 00          	cmpl   $0x0,0xc(%ebx)
56c335:	75 0c                	jne    0x56c343
56c337:	e8 d4 6f f4 ff       	call   0x4b3310
56c33c:	89 43 0c             	mov    %eax,0xc(%ebx)
56c33f:	85 c0                	test   %eax,%eax
56c341:	74 12                	je     0x56c355
56c343:	ff 77 0c             	push   0xc(%edi)
56c346:	ff 73 0c             	push   0xc(%ebx)
56c349:	e8 82 6d f4 ff       	call   0x4b30d0
56c34e:	83 c4 08             	add    $0x8,%esp
56c351:	85 c0                	test   %eax,%eax
56c353:	75 06                	jne    0x56c35b
56c355:	5e                   	pop    %esi
56c356:	5f                   	pop    %edi
56c357:	33 c0                	xor    %eax,%eax
56c359:	5b                   	pop    %ebx
56c35a:	c3                   	ret
56c35b:	55                   	push   %ebp
56c35c:	8d 6b 20             	lea    0x20(%ebx),%ebp
56c35f:	55                   	push   %ebp
56c360:	e8 3b ee 00 00       	call   0x57b1a0
56c365:	8b 77 20             	mov    0x20(%edi),%esi
56c368:	83 c4 04             	add    $0x4,%esp
56c36b:	85 f6                	test   %esi,%esi
56c36d:	74 2d                	je     0x56c39c
56c36f:	90                   	nop
56c370:	ff 76 04             	push   0x4(%esi)
56c373:	8b 46 08             	mov    0x8(%esi),%eax
56c376:	ff d0                	call   *%eax
56c378:	83 c4 04             	add    $0x4,%esp
56c37b:	85 c0                	test   %eax,%eax
56c37d:	74 3a                	je     0x56c3b9
56c37f:	ff 76 10             	push   0x10(%esi)
56c382:	ff 76 0c             	push   0xc(%esi)
56c385:	ff 76 08             	push   0x8(%esi)
56c388:	50                   	push   %eax
56c389:	55                   	push   %ebp
56c38a:	e8 f1 ee 00 00       	call   0x57b280
56c38f:	83 c4 14             	add    $0x14,%esp
56c392:	85 c0                	test   %eax,%eax
56c394:	74 23                	je     0x56c3b9
56c396:	8b 36                	mov    (%esi),%esi
56c398:	85 f6                	test   %esi,%esi
56c39a:	75 d4                	jne    0x56c370
56c39c:	8b 4f 10             	mov    0x10(%edi),%ecx
56c39f:	8b c3                	mov    %ebx,%eax
56c3a1:	89 4b 10             	mov    %ecx,0x10(%ebx)
56c3a4:	8b 4f 14             	mov    0x14(%edi),%ecx
56c3a7:	89 4b 14             	mov    %ecx,0x14(%ebx)
56c3aa:	8b 0f                	mov    (%edi),%ecx
56c3ac:	5d                   	pop    %ebp
56c3ad:	89 0b                	mov    %ecx,(%ebx)
56c3af:	8b 4f 1c             	mov    0x1c(%edi),%ecx
56c3b2:	5e                   	pop    %esi
56c3b3:	5f                   	pop    %edi
56c3b4:	89 4b 1c             	mov    %ecx,0x1c(%ebx)
56c3b7:	5b                   	pop    %ebx
56c3b8:	c3                   	ret
56c3b9:	5d                   	pop    %ebp
56c3ba:	5e                   	pop    %esi
56c3bb:	5f                   	pop    %edi
56c3bc:	33 c0                	xor    %eax,%eax
56c3be:	5b                   	pop    %ebx
56c3bf:	c3                   	ret
56c3c0:	68 91 00 00 00       	push   $0x91
56c3c5:	68 a0 c6 6b 00       	push   $0x6bc6a0
56c3ca:	6a 43                	push   $0x43
56c3cc:	68 b2 00 00 00       	push   $0xb2
56c3d1:	6a 10                	push   $0x10
56c3d3:	e8 c8 50 f3 ff       	call   0x4a14a0
56c3d8:	83 c4 14             	add    $0x14,%esp
56c3db:	33 c0                	xor    %eax,%eax
56c3dd:	5f                   	pop    %edi
56c3de:	5b                   	pop    %ebx
56c3df:	c3                   	ret
56c3e0:	56                   	push   %esi
56c3e1:	e8 9a 02 00 00       	call   0x56c680
56c3e6:	8b f0                	mov    %eax,%esi
56c3e8:	85 f6                	test   %esi,%esi
56c3ea:	74 1a                	je     0x56c406
56c3ec:	ff 74 24 08          	push   0x8(%esp)
56c3f0:	56                   	push   %esi
56c3f1:	e8 9a fe ff ff       	call   0x56c290
56c3f6:	83 c4 08             	add    $0x8,%esp
56c3f9:	85 c0                	test   %eax,%eax
56c3fb:	75 0d                	jne    0x56c40a
56c3fd:	56                   	push   %esi
56c3fe:	e8 0d 00 00 00       	call   0x56c410
56c403:	83 c4 04             	add    $0x4,%esp
56c406:	33 c0                	xor    %eax,%eax
56c408:	5e                   	pop    %esi
56c409:	c3                   	ret
56c40a:	8b c6                	mov    %esi,%eax
56c40c:	5e                   	pop    %esi
56c40d:	c3                   	ret
56c40e:	cc                   	int3
56c40f:	cc                   	int3
56c410:	56                   	push   %esi
56c411:	8b 74 24 08          	mov    0x8(%esp),%esi
56c415:	85 f6                	test   %esi,%esi
56c417:	74 65                	je     0x56c47e
56c419:	6a 71                	push   $0x71
56c41b:	68 a0 c6 6b 00       	push   $0x6bc6a0
56c420:	6a 21                	push   $0x21
56c422:	8d 46 18             	lea    0x18(%esi),%eax
56c425:	6a ff                	push   $0xffffffff
56c427:	50                   	push   %eax
56c428:	e8 f3 3f f3 ff       	call   0x4a0420
56c42d:	83 c4 14             	add    $0x14,%esp
56c430:	85 c0                	test   %eax,%eax
56c432:	7f 4a                	jg     0x56c47e
56c434:	8b 46 04             	mov    0x4(%esi),%eax
56c437:	85 c0                	test   %eax,%eax
56c439:	74 09                	je     0x56c444
56c43b:	50                   	push   %eax
56c43c:	e8 1f f4 00 00       	call   0x57b860
56c441:	83 c4 04             	add    $0x4,%esp
56c444:	8b 46 08             	mov    0x8(%esi),%eax
56c447:	85 c0                	test   %eax,%eax
56c449:	74 09                	je     0x56c454
56c44b:	50                   	push   %eax
56c44c:	e8 8f fb 00 00       	call   0x57bfe0
56c451:	83 c4 04             	add    $0x4,%esp
56c454:	8b 46 0c             	mov    0xc(%esi),%eax
56c457:	85 c0                	test   %eax,%eax
56c459:	74 09                	je     0x56c464
56c45b:	50                   	push   %eax
56c45c:	e8 0f 69 f4 ff       	call   0x4b2d70
56c461:	83 c4 04             	add    $0x4,%esp
56c464:	8d 46 20             	lea    0x20(%esi),%eax
56c467:	50                   	push   %eax
56c468:	e8 33 ed 00 00       	call   0x57b1a0
56c46d:	6a 24                	push   $0x24
56c46f:	56                   	push   %esi
56c470:	e8 db 3e f3 ff       	call   0x4a0350
56c475:	56                   	push   %esi
56c476:	e8 b5 3c f3 ff       	call   0x4a0130
56c47b:	83 c4 10             	add    $0x10,%esp
56c47e:	5e                   	pop    %esi
56c47f:	c3                   	ret
56c480:	b8 04 00 00 00       	mov    $0x4,%eax
56c485:	e8 66 50 07 00       	call   0x5e14f0
56c48a:	53                   	push   %ebx
56c48b:	56                   	push   %esi
56c48c:	57                   	push   %edi
56c48d:	8b 7c 24 14          	mov    0x14(%esp),%edi
56c491:	33 f6                	xor    %esi,%esi
56c493:	33 db                	xor    %ebx,%ebx
56c495:	c7 44 24 0c 00 00 00 	movl   $0x0,0xc(%esp)
56c49c:	00
56c49d:	85 ff                	test   %edi,%edi
56c49f:	0f 84 e9 00 00 00    	je     0x56c58e
56c4a5:	39 5f 04             	cmp    %ebx,0x4(%edi)
56c4a8:	0f 84 e0 00 00 00    	je     0x56c58e
56c4ae:	55                   	push   %ebp
56c4af:	e8 5c 6e f4 ff       	call   0x4b3310
56c4b4:	8b e8                	mov    %eax,%ebp
56c4b6:	85 ed                	test   %ebp,%ebp
56c4b8:	0f 84 c6 00 00 00    	je     0x56c584
56c4be:	e8 5d b9 f6 ff       	call   0x4d7e20
56c4c3:	89 44 24 18          	mov    %eax,0x18(%esp)
56c4c7:	85 c0                	test   %eax,%eax
56c4c9:	74 79                	je     0x56c544
56c4cb:	8b 77 0c             	mov    0xc(%edi),%esi
56c4ce:	85 f6                	test   %esi,%esi
56c4d0:	75 0f                	jne    0x56c4e1
56c4d2:	e8 39 6e f4 ff       	call   0x4b3310
56c4d7:	8b f0                	mov    %eax,%esi
56c4d9:	85 f6                	test   %esi,%esi
56c4db:	74 67                	je     0x56c544
56c4dd:	8b 44 24 18          	mov    0x18(%esp),%eax
56c4e1:	50                   	push   %eax
56c4e2:	55                   	push   %ebp
56c4e3:	ff 77 04             	push   0x4(%edi)
56c4e6:	e8 55 f5 00 00       	call   0x57ba40
56c4eb:	83 c4 0c             	add    $0xc,%esp
56c4ee:	85 c0                	test   %eax,%eax
56c4f0:	74 52                	je     0x56c544
56c4f2:	55                   	push   %ebp
56c4f3:	56                   	push   %esi
56c4f4:	e8 97 21 00 00       	call   0x56e690
56c4f9:	83 c4 08             	add    $0x8,%esp
56c4fc:	85 c0                	test   %eax,%eax
56c4fe:	74 44                	je     0x56c544
56c500:	39 5e 04             	cmp    %ebx,0x4(%esi)
56c503:	74 ed                	je     0x56c4f2
56c505:	8b 5f 08             	mov    0x8(%edi),%ebx
56c508:	85 db                	test   %ebx,%ebx
56c50a:	75 11                	jne    0x56c51d
56c50c:	ff 77 04             	push   0x4(%edi)
56c50f:	e8 dc fd 00 00       	call   0x57c2f0
56c514:	8b d8                	mov    %eax,%ebx
56c516:	83 c4 04             	add    $0x4,%esp
56c519:	85 db                	test   %ebx,%ebx
56c51b:	74 27                	je     0x56c544
56c51d:	ff 74 24 18          	push   0x18(%esp)
56c521:	6a 00                	push   $0x0
56c523:	6a 00                	push   $0x0
56c525:	56                   	push   %esi
56c526:	53                   	push   %ebx
56c527:	ff 77 04             	push   0x4(%edi)
56c52a:	e8 41 fd 00 00       	call   0x57c270
56c52f:	83 c4 18             	add    $0x18,%esp
56c532:	85 c0                	test   %eax,%eax
56c534:	74 0e                	je     0x56c544
56c536:	89 77 0c             	mov    %esi,0xc(%edi)
56c539:	89 5f 08             	mov    %ebx,0x8(%edi)
56c53c:	c7 44 24 10 01 00 00 	movl   $0x1,0x10(%esp)
56c543:	00
56c544:	55                   	push   %ebp
56c545:	e8 96 6c f4 ff       	call   0x4b31e0
56c54a:	83 c4 04             	add    $0x4,%esp
56c54d:	85 db                	test   %ebx,%ebx
56c54f:	74 0f                	je     0x56c560
56c551:	83 7f 08 00          	cmpl   $0x0,0x8(%edi)
56c555:	75 09                	jne    0x56c560
56c557:	53                   	push   %ebx
56c558:	e8 83 fa 00 00       	call   0x57bfe0
56c55d:	83 c4 04             	add    $0x4,%esp
56c560:	85 f6                	test   %esi,%esi
56c562:	74 0f                	je     0x56c573
56c564:	83 7f 0c 00          	cmpl   $0x0,0xc(%edi)
56c568:	75 09                	jne    0x56c573
56c56a:	56                   	push   %esi
56c56b:	e8 70 6c f4 ff       	call   0x4b31e0
56c570:	83 c4 04             	add    $0x4,%esp
56c573:	8b 44 24 18          	mov    0x18(%esp),%eax
56c577:	85 c0                	test   %eax,%eax
56c579:	74 09                	je     0x56c584
56c57b:	50                   	push   %eax
56c57c:	e8 0f b8 f6 ff       	call   0x4d7d90
56c581:	83 c4 04             	add    $0x4,%esp
56c584:	8b 44 24 10          	mov    0x10(%esp),%eax
56c588:	5d                   	pop    %ebp