56b26d:	8b 72 1c             	mov    0x1c(%edx),%esi
56b270:	eb 60                	jmp    0x56b2d2
56b272:	8b 5e 0c             	mov    0xc(%esi),%ebx
56b275:	85 db                	test   %ebx,%ebx
56b277:	74 53                	je     0x56b2cc
56b279:	8b 43 18             	mov    0x18(%ebx),%eax
56b27c:	85 c0                	test   %eax,%eax
56b27e:	75 15                	jne    0x56b295
56b280:	33 d2                	xor    %edx,%edx
56b282:	33 c0                	xor    %eax,%eax
56b284:	e8 93 d1 00 00       	call   0x57841c
56b289:	89 43 18             	mov    %eax,0x18(%ebx)
56b28c:	85 c0                	test   %eax,%eax
56b28e:	75 05                	jne    0x56b295
56b290:	83 c8 ff             	or     $0xffffffff,%eax
56b293:	eb 7c                	jmp    0x56b311
56b295:	8b 43 1c             	mov    0x1c(%ebx),%eax
56b298:	85 c0                	test   %eax,%eax
56b29a:	7e 1b                	jle    0x56b2b7
56b29c:	8b c8                	mov    %eax,%ecx
56b29e:	8b 53 18             	mov    0x18(%ebx),%edx
56b2a1:	8b 45 f4             	mov    -0xc(%ebp),%eax
56b2a4:	e8 9f c9 00 00       	call   0x577c48
56b2a9:	85 c0                	test   %eax,%eax
56b2ab:	7d 05                	jge    0x56b2b2
56b2ad:	83 c8 ff             	or     $0xffffffff,%eax
56b2b0:	eb 5f                	jmp    0x56b311
56b2b2:	33 d2                	xor    %edx,%edx
56b2b4:	89 53 1c             	mov    %edx,0x1c(%ebx)
56b2b7:	8b 4b 0c             	mov    0xc(%ebx),%ecx
56b2ba:	8b 43 10             	mov    0x10(%ebx),%eax
56b2bd:	3b c8                	cmp    %eax,%ecx
56b2bf:	7c 05                	jl     0x56b2c6
56b2c1:	8b 13                	mov    (%ebx),%edx
56b2c3:	89 56 0c             	mov    %edx,0xc(%esi)
56b2c6:	8b 1b                	mov    (%ebx),%ebx
56b2c8:	85 db                	test   %ebx,%ebx
56b2ca:	75 ad                	jne    0x56b279
56b2cc:	ff 45 a4             	incl   -0x5c(%ebp)
56b2cf:	83 c6 2c             	add    $0x2c,%esi
56b2d2:	8b 4d ac             	mov    -0x54(%ebp),%ecx
56b2d5:	8b 41 18             	mov    0x18(%ecx),%eax
56b2d8:	8b 55 a4             	mov    -0x5c(%ebp),%edx
56b2db:	3b c2                	cmp    %edx,%eax
56b2dd:	7f 93                	jg     0x56b272
56b2df:	ff 45 b0             	incl   -0x50(%ebp)
56b2e2:	83 45 e8 20          	addl   $0x20,-0x18(%ebp)
56b2e6:	8b 4d ec             	mov    -0x14(%ebp),%ecx
56b2e9:	8b 01                	mov    (%ecx),%eax
56b2eb:	8b 55 b0             	mov    -0x50(%ebp),%edx
56b2ee:	3b c2                	cmp    %edx,%eax
56b2f0:	0f 8f 44 ff ff ff    	jg     0x56b23a
56b2f6:	eb 17                	jmp    0x56b30f
56b2f8:	8b 55 a0             	mov    -0x60(%ebp),%edx
56b2fb:	8b 45 f4             	mov    -0xc(%ebp),%eax
56b2fe:	e8 b1 d7 00 00       	call   0x578ab4
56b303:	8b 4d a0             	mov    -0x60(%ebp),%ecx
56b306:	3b c1                	cmp    %ecx,%eax
56b308:	74 05                	je     0x56b30f
56b30a:	83 c8 ff             	or     $0xffffffff,%eax
56b30d:	eb 02                	jmp    0x56b311
56b30f:	33 c0                	xor    %eax,%eax
56b311:	5f                   	pop    %edi
56b312:	5e                   	pop    %esi
56b313:	5b                   	pop    %ebx
56b314:	8b e5                	mov    %ebp,%esp
56b316:	5d                   	pop    %ebp
56b317:	c2 10 00             	ret    $0x10
56b31a:	90                   	nop
56b31b:	90                   	nop
56b31c:	53                   	push   %ebx
56b31d:	56                   	push   %esi
56b31e:	57                   	push   %edi
56b31f:	55                   	push   %ebp
56b320:	83 c4 f8             	add    $0xfffffff8,%esp
56b323:	8b f0                	mov    %eax,%esi
56b325:	8b e9                	mov    %ecx,%ebp
56b327:	89 14 24             	mov    %edx,(%esp)
56b32a:	8b 7e 34             	mov    0x34(%esi),%edi
56b32d:	8b 5f 34             	mov    0x34(%edi),%ebx
56b330:	8b 47 18             	mov    0x18(%edi),%eax
56b333:	85 c0                	test   %eax,%eax
56b335:	74 22                	je     0x56b359
56b337:	8b 57 18             	mov    0x18(%edi),%edx
56b33a:	8b 4a 1c             	mov    0x1c(%edx),%ecx
56b33d:	85 c9                	test   %ecx,%ecx
56b33f:	7f 0c                	jg     0x56b34d
56b341:	8b 47 18             	mov    0x18(%edi),%eax
56b344:	33 d2                	xor    %edx,%edx
56b346:	e8 dd d9 00 00       	call   0x578d28
56b34b:	eb 09                	jmp    0x56b356
56b34d:	8b 4f 18             	mov    0x18(%edi),%ecx
56b350:	8b 41 18             	mov    0x18(%ecx),%eax
56b353:	0f b6 00             	movzbl (%eax),%eax
56b356:	40                   	inc    %eax
56b357:	75 2f                	jne    0x56b388
56b359:	8b c5                	mov    %ebp,%eax
56b35b:	e8 08 05 00 00       	call   0x56b868
56b360:	83 e8 01             	sub    $0x1,%eax
56b363:	72 23                	jb     0x56b388
56b365:	2d 8f ff 00 00       	sub    $0xff8f,%eax
56b36a:	74 0d                	je     0x56b379
56b36c:	48                   	dec    %eax
56b36d:	83 e8 02             	sub    $0x2,%eax
56b370:	72 16                	jb     0x56b388
56b372:	83 e8 46             	sub    $0x46,%eax
56b375:	74 02                	je     0x56b379
56b377:	eb 07                	jmp    0x56b380
56b379:	33 c0                	xor    %eax,%eax
56b37b:	e9 c1 01 00 00       	jmp    0x56b541
56b380:	83 c8 ff             	or     $0xffffffff,%eax
56b383:	e9 b9 01 00 00       	jmp    0x56b541
56b388:	8b c3                	mov    %ebx,%eax
56b38a:	e8 31 05 00 00       	call   0x56b8c0
56b38f:	89 44 24 04          	mov    %eax,0x4(%esp)
56b393:	85 c0                	test   %eax,%eax
56b395:	74 09                	je     0x56b3a0
56b397:	8b 44 24 04          	mov    0x4(%esp),%eax
56b39b:	e9 a1 01 00 00       	jmp    0x56b541
56b3a0:	8b 46 48             	mov    0x48(%esi),%eax
56b3a3:	85 c0                	test   %eax,%eax
56b3a5:	7c 20                	jl     0x56b3c7
56b3a7:	8b 56 4c             	mov    0x4c(%esi),%edx
56b3aa:	3b c2                	cmp    %edx,%eax
56b3ac:	7f 19                	jg     0x56b3c7
56b3ae:	68 47 fd 69 00       	push   $0x69fd47
56b3b3:	68 80 2e 6a 00       	push   $0x6a2e80
56b3b8:	e8 0f ed 00 00       	call   0x57a0cc
56b3bd:	83 c4 08             	add    $0x8,%esp
56b3c0:	33 c0                	xor    %eax,%eax
56b3c2:	e9 7a 01 00 00       	jmp    0x56b541
56b3c7:	e8 80 eb 00 00       	call   0x579f4c
56b3cc:	48                   	dec    %eax
56b3cd:	0f 8c c6 00 00 00    	jl     0x56b499
56b3d3:	8b 53 64             	mov    0x64(%ebx),%edx
56b3d6:	85 d2                	test   %edx,%edx
56b3d8:	75 17                	jne    0x56b3f1
56b3da:	68 f1 01 00 00       	push   $0x1f1
56b3df:	68 26 fe 69 00       	push   $0x69fe26
56b3e4:	68 1c fe 69 00       	push   $0x69fe1c
56b3e9:	e8 52 f7 fe ff       	call   0x55ab40
56b3ee:	83 c4 0c             	add    $0xc,%esp
56b3f1:	8b 4b 24             	mov    0x24(%ebx),%ecx
56b3f4:	51                   	push   %ecx
56b3f5:	8b 43 64             	mov    0x64(%ebx),%eax
56b3f8:	85 c0                	test   %eax,%eax
56b3fa:	75 17                	jne    0x56b413
56b3fc:	68 f1 01 00 00       	push   $0x1f1
56b401:	68 10 fe 69 00       	push   $0x69fe10
56b406:	68 06 fe 69 00       	push   $0x69fe06
56b40b:	e8 30 f7 fe ff       	call   0x55ab40
56b410:	83 c4 0c             	add    $0xc,%esp
56b413:	8b 53 20             	mov    0x20(%ebx),%edx
56b416:	52                   	push   %edx
56b417:	8b 4b 64             	mov    0x64(%ebx),%ecx
56b41a:	85 c9                	test   %ecx,%ecx
56b41c:	75 17                	jne    0x56b435
56b41e:	68 f1 01 00 00       	push   $0x1f1
56b423:	68 fa fd 69 00       	push   $0x69fdfa
56b428:	68 f0 fd 69 00       	push   $0x69fdf0
56b42d:	e8 0e f7 fe ff       	call   0x55ab40
56b432:	83 c4 0c             	add    $0xc,%esp
56b435:	8b 43 1c             	mov    0x1c(%ebx),%eax
56b438:	50                   	push   %eax
56b439:	8b 53 64             	mov    0x64(%ebx),%edx
56b43c:	85 d2                	test   %edx,%edx
56b43e:	75 17                	jne    0x56b457
56b440:	68 f0 01 00 00       	push   $0x1f0
56b445:	68 e4 fd 69 00       	push   $0x69fde4
56b44a:	68 da fd 69 00       	push   $0x69fdda
56b44f:	e8 ec f6 fe ff       	call   0x55ab40
56b454:	83 c4 0c             	add    $0xc,%esp
56b457:	8b 4b 18             	mov    0x18(%ebx),%ecx
56b45a:	51                   	push   %ecx
56b45b:	8b 43 64             	mov    0x64(%ebx),%eax
56b45e:	85 c0                	test   %eax,%eax
56b460:	75 17                	jne    0x56b479
56b462:	68 f0 01 00 00       	push   $0x1f0
56b467:	68 ce fd 69 00       	push   $0x69fdce
56b46c:	68 c4 fd 69 00       	push   $0x69fdc4
56b471:	e8 ca f6 fe ff       	call   0x55ab40
56b476:	83 c4 0c             	add    $0xc,%esp
56b479:	8b 53 48             	mov    0x48(%ebx),%edx
56b47c:	8a 0a                	mov    (%edx),%cl
56b47e:	33 c0                	xor    %eax,%eax
56b480:	8a c1                	mov    %cl,%al
56b482:	50                   	push   %eax
56b483:	8b 55 3c             	mov    0x3c(%ebp),%edx
56b486:	52                   	push   %edx
56b487:	68 7a fd 69 00       	push   $0x69fd7a
56b48c:	68 80 2e 6a 00       	push   $0x6a2e80
56b491:	e8 36 ec 00 00       	call   0x57a0cc
56b496:	83 c4 20             	add    $0x20,%esp
56b499:	8b 4b 64             	mov    0x64(%ebx),%ecx
56b49c:	85 c9                	test   %ecx,%ecx
56b49e:	75 17                	jne    0x56b4b7
56b4a0:	68 f3 01 00 00       	push   $0x1f3
56b4a5:	68 3c fe 69 00       	push   $0x69fe3c
56b4aa:	68 32 fe 69 00       	push   $0x69fe32
56b4af:	e8 8c f6 fe ff       	call   0x55ab40
56b4b4:	83 c4 0c             	add    $0xc,%esp
56b4b7:	8b 43 18             	mov    0x18(%ebx),%eax
56b4ba:	50                   	push   %eax
56b4bb:	8b 53 64             	mov    0x64(%ebx),%edx
56b4be:	85 d2                	test   %edx,%edx
56b4c0:	75 17                	jne    0x56b4d9
56b4c2:	68 f3 01 00 00       	push   $0x1f3
56b4c7:	68 52 fe 69 00       	push   $0x69fe52
56b4cc:	68 48 fe 69 00       	push   $0x69fe48
56b4d1:	e8 6a f6 fe ff       	call   0x55ab40
56b4d6:	83 c4 0c             	add    $0xc,%esp
56b4d9:	8b 4b 1c             	mov    0x1c(%ebx),%ecx
56b4dc:	51                   	push   %ecx
56b4dd:	8b 43 64             	mov    0x64(%ebx),%eax
56b4e0:	85 c0                	test   %eax,%eax
56b4e2:	75 17                	jne    0x56b4fb
56b4e4:	68 f4 01 00 00       	push   $0x1f4
56b4e9:	68 68 fe 69 00       	push   $0x69fe68
56b4ee:	68 5e fe 69 00       	push   $0x69fe5e
56b4f3:	e8 48 f6 fe ff       	call   0x55ab40
56b4f8:	83 c4 0c             	add    $0xc,%esp
56b4fb:	8b 53 20             	mov    0x20(%ebx),%edx
56b4fe:	52                   	push   %edx
56b4ff:	8b 4b 64             	mov    0x64(%ebx),%ecx
56b502:	85 c9                	test   %ecx,%ecx
56b504:	75 17                	jne    0x56b51d
56b506:	68 f4 01 00 00       	push   $0x1f4
56b50b:	68 7e fe 69 00       	push   $0x69fe7e
56b510:	68 74 fe 69 00       	push   $0x69fe74
56b515:	e8 26 f6 fe ff       	call   0x55ab40
56b51a:	83 c4 0c             	add    $0xc,%esp
56b51d:	8b 43 24             	mov    0x24(%ebx),%eax
56b520:	8b cd                	mov    %ebp,%ecx
56b522:	50                   	push   %eax
56b523:	8b c6                	mov    %esi,%eax
56b525:	8b 54 24 10          	mov    0x10(%esp),%edx
56b529:	e8 82 f7 ff ff       	call   0x56acb0
56b52e:	85 c0                	test   %eax,%eax
56b530:	74 05                	je     0x56b537
56b532:	83 c8 ff             	or     $0xffffffff,%eax
56b535:	eb 0a                	jmp    0x56b541
56b537:	ff 46 4c             	incl   0x4c(%esi)
56b53a:	e9 f1 fd ff ff       	jmp    0x56b330
56b53f:	33 c0                	xor    %eax,%eax
56b541:	59                   	pop    %ecx
56b542:	5a                   	pop    %edx
56b543:	5d                   	pop    %ebp
56b544:	5f                   	pop    %edi
56b545:	5e                   	pop    %esi
56b546:	5b                   	pop    %ebx
56b547:	c3                   	ret
56b548:	53                   	push   %ebx
56b549:	56                   	push   %esi
56b54a:	57                   	push   %edi
56b54b:	55                   	push   %ebp
56b54c:	83 c4 e8             	add    $0xffffffe8,%esp
56b54f:	89 54 24 04          	mov    %edx,0x4(%esp)
56b553:	89 04 24             	mov    %eax,(%esp)
56b556:	e8 71 16 00 00       	call   0x56cbcc
56b55b:	89 44 24 08          	mov    %eax,0x8(%esp)
56b55f:	85 c0                	test   %eax,%eax
56b561:	75 07                	jne    0x56b56a
56b563:	33 c0                	xor    %eax,%eax
56b565:	e9 f4 02 00 00       	jmp    0x56b85e
56b56a:	8b 14 24             	mov    (%esp),%edx
56b56d:	8b 44 24 08          	mov    0x8(%esp),%eax
56b571:	8b 5a 38             	mov    0x38(%edx),%ebx
56b574:	89 58 08             	mov    %ebx,0x8(%eax)
56b577:	8b c3                	mov    %ebx,%eax
56b579:	c1 e0 04             	shl    $0x4,%eax
56b57c:	e8 fb cd 00 00       	call   0x57837c
56b581:	8b 54 24 08          	mov    0x8(%esp),%edx
56b585:	85 c0                	test   %eax,%eax
56b587:	89 42 0c             	mov    %eax,0xc(%edx)
56b58a:	75 10                	jne    0x56b59c
56b58c:	8b 44 24 08          	mov    0x8(%esp),%eax
56b590:	e8 f3 15 00 00       	call   0x56cb88
56b595:	33 c0                	xor    %eax,%eax
56b597:	e9 c2 02 00 00       	jmp    0x56b85e
56b59c:	33 d2                	xor    %edx,%edx
56b59e:	89 54 24 0c          	mov    %edx,0xc(%esp)
56b5a2:	8b 4c 24 08          	mov    0x8(%esp),%ecx
56b5a6:	8b 71 0c             	mov    0xc(%ecx),%esi
56b5a9:	eb 0c                	jmp    0x56b5b7
56b5ab:	33 c0                	xor    %eax,%eax
56b5ad:	89 46 04             	mov    %eax,0x4(%esi)
56b5b0:	ff 44 24 0c          	incl   0xc(%esp)
56b5b4:	83 c6 10             	add    $0x10,%esi
56b5b7:	8b 54 24 08          	mov    0x8(%esp),%edx
56b5bb:	8b 4a 08             	mov    0x8(%edx),%ecx
56b5be:	8b 44 24 0c          	mov    0xc(%esp),%eax
56b5c2:	3b c8                	cmp    %eax,%ecx
56b5c4:	7f e5                	jg     0x56b5ab
56b5c6:	33 d2                	xor    %edx,%edx
56b5c8:	89 54 24 0c          	mov    %edx,0xc(%esp)
56b5cc:	8b 4c 24 04          	mov    0x4(%esp),%ecx
56b5d0:	8b 41 24             	mov    0x24(%ecx),%eax
56b5d3:	89 44 24 10          	mov    %eax,0x10(%esp)
56b5d7:	8b 54 24 08          	mov    0x8(%esp),%edx
56b5db:	8b 72 0c             	mov    0xc(%edx),%esi
56b5de:	e9 91 00 00 00       	jmp    0x56b674
56b5e3:	8b 44 24 10          	mov    0x10(%esp),%eax
56b5e7:	0f b7 58 14          	movzwl 0x14(%eax),%ebx
56b5eb:	89 1e                	mov    %ebx,(%esi)
56b5ed:	8b c3                	mov    %ebx,%eax
56b5ef:	c1 e0 02             	shl    $0x2,%eax
56b5f2:	8d 04 80             	lea    (%eax,%eax,4),%eax
56b5f5:	e8 82 cd 00 00       	call   0x57837c
56b5fa:	89 46 04             	mov    %eax,0x4(%esi)
56b5fd:	85 c0                	test   %eax,%eax
56b5ff:	75 10                	jne    0x56b611
56b601:	8b 44 24 08          	mov    0x8(%esp),%eax
56b605:	e8 7e 15 00 00       	call   0x56cb88
56b60a:	33 c0                	xor    %eax,%eax
56b60c:	e9 4d 02 00 00       	jmp    0x56b85e
56b611:	33 ed                	xor    %ebp,%ebp
56b613:	8b 5e 04             	mov    0x4(%esi),%ebx
56b616:	eb 09                	jmp    0x56b621
56b618:	33 c0                	xor    %eax,%eax
56b61a:	45                   	inc    %ebp
56b61b:	89 43 04             	mov    %eax,0x4(%ebx)
56b61e:	83 c3 14             	add    $0x14,%ebx
56b621:	8b 16                	mov    (%esi),%edx
56b623:	3b ea                	cmp    %edx,%ebp
56b625:	7c f1                	jl     0x56b618
56b627:	33 ed                	xor    %ebp,%ebp
56b629:	8b 5e 04             	mov    0x4(%esi),%ebx
56b62c:	8b 44 24 10          	mov    0x10(%esp),%eax
56b630:	8b 78 18             	mov    0x18(%eax),%edi
56b633:	eb 2d                	jmp    0x56b662
56b635:	8b 47 28             	mov    0x28(%edi),%eax
56b638:	89 03                	mov    %eax,(%ebx)
56b63a:	8b 03                	mov    (%ebx),%eax
56b63c:	c1 e0 02             	shl    $0x2,%eax
56b63f:	e8 38 cd 00 00       	call   0x57837c
56b644:	89 43 04             	mov    %eax,0x4(%ebx)
56b647:	85 c0                	test   %eax,%eax
56b649:	75 10                	jne    0x56b65b
56b64b:	8b 44 24 08          	mov    0x8(%esp),%eax
56b64f:	e8 34 15 00 00       	call   0x56cb88
56b654:	33 c0                	xor    %eax,%eax
56b656:	e9 03 02 00 00       	jmp    0x56b85e
56b65b:	45                   	inc    %ebp
56b65c:	83 c3 14             	add    $0x14,%ebx
56b65f:	83 c7 38             	add    $0x38,%edi
56b662:	8b 16                	mov    (%esi),%edx
56b664:	3b ea                	cmp    %edx,%ebp
56b666:	7c cd                	jl     0x56b635
56b668:	ff 44 24 0c          	incl   0xc(%esp)
56b66c:	83 44 24 10 20       	addl   $0x20,0x10(%esp)