53b4c9:	83 c4 0c             	add    $0xc,%esp
53b4cc:	eb 09                	jmp    0x53b4d7
53b4ce:	8b 49 40             	mov    0x40(%ecx),%ecx
53b4d1:	8b 43 6c             	mov    0x6c(%ebx),%eax
53b4d4:	89 04 91             	mov    %eax,(%ecx,%edx,4)
53b4d7:	8b 73 6c             	mov    0x6c(%ebx),%esi
53b4da:	8d 56 02             	lea    0x2(%esi),%edx
53b4dd:	39 73 70             	cmp    %esi,0x70(%ebx)
53b4e0:	7f 16                	jg     0x53b4f8
53b4e2:	6a 00                	push   $0x0
53b4e4:	52                   	push   %edx
53b4e5:	ff b5 24 ff ff ff    	push   -0xdc(%ebp)
53b4eb:	6a 30                	push   $0x30
53b4ed:	53                   	push   %ebx
53b4ee:	e8 0d b0 fc ff       	call   0x506500
53b4f3:	83 c4 14             	add    $0x14,%esp
53b4f6:	eb 37                	jmp    0x53b52f
53b4f8:	8b bd 24 ff ff ff    	mov    -0xdc(%ebp),%edi
53b4fe:	8d 46 01             	lea    0x1(%esi),%eax
53b501:	89 43 6c             	mov    %eax,0x6c(%ebx)
53b504:	8d 0c b6             	lea    (%esi,%esi,4),%ecx
53b507:	8b 43 68             	mov    0x68(%ebx),%eax
53b50a:	89 7c 88 04          	mov    %edi,0x4(%eax,%ecx,4)
53b50e:	8b bd 14 ff ff ff    	mov    -0xec(%ebp),%edi
53b514:	c7 04 88 30 00 00 00 	movl   $0x30,(%eax,%ecx,4)
53b51b:	89 54 88 08          	mov    %edx,0x8(%eax,%ecx,4)
53b51f:	c7 44 88 0c 00 00 00 	movl   $0x0,0xc(%eax,%ecx,4)
53b526:	00
53b527:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
53b52e:	00
53b52f:	8b 4b 6c             	mov    0x6c(%ebx),%ecx
53b532:	39 4b 70             	cmp    %ecx,0x70(%ebx)
53b535:	7f 19                	jg     0x53b550
53b537:	8b 85 0c ff ff ff    	mov    -0xf4(%ebp),%eax
53b53d:	6a 00                	push   $0x0
53b53f:	6a 00                	push   $0x0
53b541:	40                   	inc    %eax
53b542:	50                   	push   %eax
53b543:	6a 41                	push   $0x41
53b545:	53                   	push   %ebx
53b546:	e8 b5 af fc ff       	call   0x506500
53b54b:	83 c4 14             	add    $0x14,%esp
53b54e:	eb 3c                	jmp    0x53b58c
53b550:	8b 95 0c ff ff ff    	mov    -0xf4(%ebp),%edx
53b556:	8d 41 01             	lea    0x1(%ecx),%eax
53b559:	8b bd 14 ff ff ff    	mov    -0xec(%ebp),%edi
53b55f:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
53b562:	89 43 6c             	mov    %eax,0x6c(%ebx)
53b565:	42                   	inc    %edx
53b566:	8b 43 68             	mov    0x68(%ebx),%eax
53b569:	c7 04 88 41 00 00 00 	movl   $0x41,(%eax,%ecx,4)
53b570:	89 54 88 04          	mov    %edx,0x4(%eax,%ecx,4)
53b574:	c7 44 88 08 00 00 00 	movl   $0x0,0x8(%eax,%ecx,4)
53b57b:	00
53b57c:	c7 44 88 0c 00 00 00 	movl   $0x0,0xc(%eax,%ecx,4)
53b583:	00
53b584:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
53b58b:	00
53b58c:	8d 45 b4             	lea    -0x4c(%ebp),%eax
53b58f:	50                   	push   %eax
53b590:	57                   	push   %edi
53b591:	e8 0a 67 fc ff       	call   0x501ca0
53b596:	6a 10                	push   $0x10
53b598:	46                   	inc    %esi
53b599:	56                   	push   %esi
53b59a:	ff b5 18 ff ff ff    	push   -0xe8(%ebp)
53b5a0:	57                   	push   %edi
53b5a1:	e8 0a b5 fe ff       	call   0x526ab0
53b5a6:	ff b5 44 ff ff ff    	push   -0xbc(%ebp)
53b5ac:	8d 45 f0             	lea    -0x10(%ebp),%eax
53b5af:	56                   	push   %esi
53b5b0:	ff b5 f8 fe ff ff    	push   -0x108(%ebp)
53b5b6:	50                   	push   %eax
53b5b7:	8d 85 70 ff ff ff    	lea    -0x90(%ebp),%eax
53b5bd:	50                   	push   %eax
53b5be:	6a ff                	push   $0xffffffff
53b5c0:	ff b5 38 ff ff ff    	push   -0xc8(%ebp)
53b5c6:	57                   	push   %edi
53b5c7:	e8 74 a9 fd ff       	call   0x515f40
53b5cc:	8b 4b 6c             	mov    0x6c(%ebx),%ecx
53b5cf:	83 c4 38             	add    $0x38,%esp
53b5d2:	39 4b 70             	cmp    %ecx,0x70(%ebx)
53b5d5:	7f 19                	jg     0x53b5f0
53b5d7:	8b 85 0c ff ff ff    	mov    -0xf4(%ebp),%eax
53b5dd:	6a 00                	push   $0x0
53b5df:	6a 00                	push   $0x0
53b5e1:	40                   	inc    %eax
53b5e2:	50                   	push   %eax
53b5e3:	6a 41                	push   $0x41
53b5e5:	53                   	push   %ebx
53b5e6:	e8 15 af fc ff       	call   0x506500
53b5eb:	83 c4 14             	add    $0x14,%esp
53b5ee:	eb 36                	jmp    0x53b626
53b5f0:	8b 95 0c ff ff ff    	mov    -0xf4(%ebp),%edx
53b5f6:	8d 41 01             	lea    0x1(%ecx),%eax
53b5f9:	89 43 6c             	mov    %eax,0x6c(%ebx)
53b5fc:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
53b5ff:	8b 43 68             	mov    0x68(%ebx),%eax
53b602:	42                   	inc    %edx
53b603:	c7 04 88 41 00 00 00 	movl   $0x41,(%eax,%ecx,4)
53b60a:	89 54 88 04          	mov    %edx,0x4(%eax,%ecx,4)
53b60e:	c7 44 88 08 00 00 00 	movl   $0x0,0x8(%eax,%ecx,4)
53b615:	00
53b616:	c7 44 88 0c 00 00 00 	movl   $0x0,0xc(%eax,%ecx,4)
53b61d:	00
53b61e:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
53b625:	00
53b626:	8b 4b 0c             	mov    0xc(%ebx),%ecx
53b629:	8b 95 00 ff ff ff    	mov    -0x100(%ebp),%edx
53b62f:	f7 d2                	not    %edx
53b631:	8b 41 3c             	mov    0x3c(%ecx),%eax
53b634:	03 41 38             	add    0x38(%ecx),%eax
53b637:	79 0d                	jns    0x53b646
53b639:	52                   	push   %edx
53b63a:	53                   	push   %ebx
53b63b:	51                   	push   %ecx
53b63c:	e8 5f 81 fd ff       	call   0x5137a0
53b641:	83 c4 0c             	add    $0xc,%esp
53b644:	eb 09                	jmp    0x53b64f
53b646:	8b 49 40             	mov    0x40(%ecx),%ecx
53b649:	8b 43 6c             	mov    0x6c(%ebx),%eax
53b64c:	89 04 91             	mov    %eax,(%ecx,%edx,4)
53b64f:	8d 45 b4             	lea    -0x4c(%ebp),%eax
53b652:	50                   	push   %eax
53b653:	57                   	push   %edi
53b654:	e8 b7 7f fd ff       	call   0x513610
53b659:	8b 4b 6c             	mov    0x6c(%ebx),%ecx
53b65c:	83 c4 08             	add    $0x8,%esp
53b65f:	39 4b 70             	cmp    %ecx,0x70(%ebx)
53b662:	7f 17                	jg     0x53b67b
53b664:	6a 00                	push   $0x0
53b666:	ff b5 24 ff ff ff    	push   -0xdc(%ebp)
53b66c:	6a 00                	push   $0x0
53b66e:	6a 45                	push   $0x45
53b670:	53                   	push   %ebx
53b671:	e8 8a ae fc ff       	call   0x506500
53b676:	83 c4 14             	add    $0x14,%esp
53b679:	eb 35                	jmp    0x53b6b0
53b67b:	8b 95 24 ff ff ff    	mov    -0xdc(%ebp),%edx
53b681:	8d 41 01             	lea    0x1(%ecx),%eax
53b684:	89 43 6c             	mov    %eax,0x6c(%ebx)
53b687:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
53b68a:	8b 43 68             	mov    0x68(%ebx),%eax
53b68d:	c7 04 88 45 00 00 00 	movl   $0x45,(%eax,%ecx,4)
53b694:	c7 44 88 04 00 00 00 	movl   $0x0,0x4(%eax,%ecx,4)
53b69b:	00
53b69c:	89 54 88 08          	mov    %edx,0x8(%eax,%ecx,4)
53b6a0:	c7 44 88 0c 00 00 00 	movl   $0x0,0xc(%eax,%ecx,4)
53b6a7:	00
53b6a8:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
53b6af:	00
53b6b0:	8b 4b 6c             	mov    0x6c(%ebx),%ecx
53b6b3:	39 4b 70             	cmp    %ecx,0x70(%ebx)
53b6b6:	7f 1a                	jg     0x53b6d2
53b6b8:	6a 00                	push   $0x0
53b6ba:	6a 00                	push   $0x0
53b6bc:	ff b5 4c ff ff ff    	push   -0xb4(%ebp)
53b6c2:	6a 41                	push   $0x41
53b6c4:	53                   	push   %ebx
53b6c5:	e8 36 ae fc ff       	call   0x506500
53b6ca:	83 c4 14             	add    $0x14,%esp
53b6cd:	e9 58 06 00 00       	jmp    0x53bd2a
53b6d2:	8b 95 4c ff ff ff    	mov    -0xb4(%ebp),%edx
53b6d8:	8d 41 01             	lea    0x1(%ecx),%eax
53b6db:	89 43 6c             	mov    %eax,0x6c(%ebx)
53b6de:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
53b6e1:	8b 43 68             	mov    0x68(%ebx),%eax
53b6e4:	c7 04 88 41 00 00 00 	movl   $0x41,(%eax,%ecx,4)
53b6eb:	89 54 88 04          	mov    %edx,0x4(%eax,%ecx,4)
53b6ef:	c7 44 88 08 00 00 00 	movl   $0x0,0x8(%eax,%ecx,4)
53b6f6:	00
53b6f7:	c7 44 88 0c 00 00 00 	movl   $0x0,0xc(%eax,%ecx,4)
53b6fe:	00
53b6ff:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
53b706:	00
53b707:	e9 1e 06 00 00       	jmp    0x53bd2a
53b70c:	83 7e 24 00          	cmpl   $0x0,0x24(%esi)
53b710:	8b 4d dc             	mov    -0x24(%ebp),%ecx
53b713:	0f 85 f1 03 00 00    	jne    0x53bb0a
53b719:	8b 46 1c             	mov    0x1c(%esi),%eax
53b71c:	83 38 01             	cmpl   $0x1,(%eax)
53b71f:	0f 85 e5 03 00 00    	jne    0x53bb0a
53b725:	8b 46 20             	mov    0x20(%esi),%eax
53b728:	83 38 01             	cmpl   $0x1,(%eax)
53b72b:	0f 85 d9 03 00 00    	jne    0x53bb0a
53b731:	83 78 1c 00          	cmpl   $0x0,0x1c(%eax)
53b735:	0f 85 cf 03 00 00    	jne    0x53bb0a
53b73b:	8b 40 18             	mov    0x18(%eax),%eax
53b73e:	8b 9d 10 ff ff ff    	mov    -0xf0(%ebp),%ebx
53b744:	89 85 4c ff ff ff    	mov    %eax,-0xb4(%ebp)
53b74a:	83 78 38 00          	cmpl   $0x0,0x38(%eax)
53b74e:	0f 85 b6 03 00 00    	jne    0x53bb0a
53b754:	8b 5e 1c             	mov    0x1c(%esi),%ebx
53b757:	8b 43 04             	mov    0x4(%ebx),%eax
53b75a:	8b 9d 10 ff ff ff    	mov    -0xf0(%ebp),%ebx
53b760:	80 38 a5             	cmpb   $0xa5,(%eax)
53b763:	0f 85 a1 03 00 00    	jne    0x53bb0a
53b769:	85 d2                	test   %edx,%edx
53b76b:	0f 84 99 03 00 00    	je     0x53bb0a
53b771:	8b 41 04             	mov    0x4(%ecx),%eax
53b774:	f7 40 04 00 01 00 00 	testl  $0x100,0x4(%eax)
53b77b:	0f 84 89 03 00 00    	je     0x53bb0a
53b781:	8b 5e 1c             	mov    0x1c(%esi),%ebx
53b784:	8b 43 04             	mov    0x4(%ebx),%eax
53b787:	8b 9d 10 ff ff ff    	mov    -0xf0(%ebp),%ebx
53b78d:	f7 40 04 02 00 00 01 	testl  $0x1000002,0x4(%eax)
53b794:	0f 85 70 03 00 00    	jne    0x53bb0a
53b79a:	8b 85 4c ff ff ff    	mov    -0xb4(%ebp),%eax
53b7a0:	ba c0 bd f0 ff       	mov    $0xfff0bdc0,%edx
53b7a5:	89 95 24 ff ff ff    	mov    %edx,-0xdc(%ebp)
53b7ab:	8b 48 48             	mov    0x48(%eax),%ecx
53b7ae:	85 c9                	test   %ecx,%ecx
53b7b0:	74 22                	je     0x53b7d4
53b7b2:	8b 07                	mov    (%edi),%eax
53b7b4:	33 d2                	xor    %edx,%edx
53b7b6:	89 95 24 ff ff ff    	mov    %edx,-0xdc(%ebp)
53b7bc:	8b 40 10             	mov    0x10(%eax),%eax
53b7bf:	83 c0 0c             	add    $0xc,%eax
53b7c2:	39 08                	cmp    %ecx,(%eax)
53b7c4:	74 0e                	je     0x53b7d4
53b7c6:	8d 40 10             	lea    0x10(%eax),%eax
53b7c9:	42                   	inc    %edx
53b7ca:	39 08                	cmp    %ecx,(%eax)
53b7cc:	75 f8                	jne    0x53b7c6
53b7ce:	89 95 24 ff ff ff    	mov    %edx,-0xdc(%ebp)
53b7d4:	8b 47 28             	mov    0x28(%edi),%eax
53b7d7:	33 c9                	xor    %ecx,%ecx
53b7d9:	89 85 00 ff ff ff    	mov    %eax,-0x100(%ebp)
53b7df:	40                   	inc    %eax
53b7e0:	89 47 28             	mov    %eax,0x28(%edi)
53b7e3:	33 c0                	xor    %eax,%eax
53b7e5:	89 85 44 ff ff ff    	mov    %eax,-0xbc(%ebp)
53b7eb:	8b 85 4c ff ff ff    	mov    -0xb4(%ebp),%eax
53b7f1:	89 8d 28 ff ff ff    	mov    %ecx,-0xd8(%ebp)
53b7f7:	8b cf                	mov    %edi,%ecx
53b7f9:	8b 40 1c             	mov    0x1c(%eax),%eax
53b7fc:	89 85 40 ff ff ff    	mov    %eax,-0xc0(%ebp)
53b802:	8b 47 74             	mov    0x74(%edi),%eax
53b805:	85 c0                	test   %eax,%eax
53b807:	0f 45 c8             	cmovne %eax,%ecx
53b80a:	89 8d 04 ff ff ff    	mov    %ecx,-0xfc(%ebp)
53b810:	8b 41 54             	mov    0x54(%ecx),%eax
53b813:	8b ca                	mov    %edx,%ecx
53b815:	89 85 34 ff ff ff    	mov    %eax,-0xcc(%ebp)
53b81b:	b8 01 00 00 00       	mov    $0x1,%eax
53b820:	d3 e0                	shl    %cl,%eax
53b822:	8b 8d 34 ff ff ff    	mov    -0xcc(%ebp),%ecx
53b828:	85 c1                	test   %eax,%ecx
53b82a:	75 20                	jne    0x53b84c
53b82c:	8b 85 04 ff ff ff    	mov    -0xfc(%ebp),%eax
53b832:	0f ab d1             	bts    %edx,%ecx
53b835:	89 48 54             	mov    %ecx,0x54(%eax)
53b838:	83 fa 01             	cmp    $0x1,%edx
53b83b:	75 0f                	jne    0x53b84c
53b83d:	50                   	push   %eax
53b83e:	e8 4d 64 ff ff       	call   0x531c90
53b843:	8b 95 24 ff ff ff    	mov    -0xdc(%ebp),%edx
53b849:	83 c4 04             	add    $0x4,%esp
53b84c:	8b 85 4c ff ff ff    	mov    -0xb4(%ebp),%eax
53b852:	ff 30                	push   (%eax)
53b854:	6a 00                	push   $0x0
53b856:	ff 70 1c             	push   0x1c(%eax)
53b859:	52                   	push   %edx
53b85a:	57                   	push   %edi
53b85b:	e8 70 26 00 00       	call   0x53ded0
53b860:	8b 85 4c ff ff ff    	mov    -0xb4(%ebp),%eax
53b866:	83 c4 14             	add    $0x14,%esp
53b869:	f6 40 24 80          	testb  $0x80,0x24(%eax)
53b86d:	74 2f                	je     0x53b89e
53b86f:	8b 48 08             	mov    0x8(%eax),%ecx
53b872:	89 8d 28 ff ff ff    	mov    %ecx,-0xd8(%ebp)
53b878:	85 c9                	test   %ecx,%ecx
53b87a:	74 24                	je     0x53b8a0
53b87c:	0f 1f 40 00          	nopl   0x0(%eax)
53b880:	8b 41 38             	mov    0x38(%ecx),%eax
53b883:	24 03                	and    $0x3,%al
53b885:	3c 02                	cmp    $0x2,%al
53b887:	74 07                	je     0x53b890
53b889:	8b 49 14             	mov    0x14(%ecx),%ecx
53b88c:	85 c9                	test   %ecx,%ecx
53b88e:	75 f0                	jne    0x53b880
53b890:	8b 85 4c ff ff ff    	mov    -0xb4(%ebp),%eax
53b896:	89 8d 28 ff ff ff    	mov    %ecx,-0xd8(%ebp)
53b89c:	eb 02                	jmp    0x53b8a0
53b89e:	33 c9                	xor    %ecx,%ecx
53b8a0:	8b 40 08             	mov    0x8(%eax),%eax
53b8a3:	85 c0                	test   %eax,%eax
53b8a5:	74 3e                	je     0x53b8e5
53b8a7:	8b b5 4c ff ff ff    	mov    -0xb4(%ebp),%esi
53b8ad:	0f 1f 00             	nopl   (%eax)
53b8b0:	f6 40 38 04          	testb  $0x4,0x38(%eax)
53b8b4:	75 1c                	jne    0x53b8d2
53b8b6:	0f b7 50 30          	movzwl 0x30(%eax),%edx
53b8ba:	66 3b 56 30          	cmp    0x30(%esi),%dx
53b8be:	7d 12                	jge    0x53b8d2
53b8c0:	83 78 24 00          	cmpl   $0x0,0x24(%eax)
53b8c4:	75 0c                	jne    0x53b8d2
53b8c6:	85 c9                	test   %ecx,%ecx
53b8c8:	74 06                	je     0x53b8d0
53b8ca:	66 3b 51 30          	cmp    0x30(%ecx),%dx
53b8ce:	7d 02                	jge    0x53b8d2
53b8d0:	8b c8                	mov    %eax,%ecx
53b8d2:	8b 40 14             	mov    0x14(%eax),%eax
53b8d5:	85 c0                	test   %eax,%eax
53b8d7:	75 d7                	jne    0x53b8b0
53b8d9:	8b b5 38 ff ff ff    	mov    -0xc8(%ebp),%esi
53b8df:	89 8d 28 ff ff ff    	mov    %ecx,-0xd8(%ebp)
53b8e5:	85 c9                	test   %ecx,%ecx
53b8e7:	74 19                	je     0x53b902
53b8e9:	8b 41 2c             	mov    0x2c(%ecx),%eax
53b8ec:	51                   	push   %ecx
53b8ed:	57                   	push   %edi
53b8ee:	89 85 40 ff ff ff    	mov    %eax,-0xc0(%ebp)
53b8f4:	e8 07 44 ff ff       	call   0x52fd00
53b8f9:	83 c4 08             	add    $0x8,%esp
53b8fc:	89 85 44 ff ff ff    	mov    %eax,-0xbc(%ebp)
53b902:	8b 4b 6c             	mov    0x6c(%ebx),%ecx
53b905:	89 8d 34 ff ff ff    	mov    %ecx,-0xcc(%ebp)
53b90b:	39 4b 70             	cmp    %ecx,0x70(%ebx)
53b90e:	7f 24                	jg     0x53b934
53b910:	8b 95 24 ff ff ff    	mov    -0xdc(%ebp),%edx
53b916:	52                   	push   %edx
53b917:	8b 95 40 ff ff ff    	mov    -0xc0(%ebp),%edx
53b91d:	52                   	push   %edx
53b91e:	8b 95 00 ff ff ff    	mov    -0x100(%ebp),%edx
53b924:	52                   	push   %edx
53b925:	6a 60                	push   $0x60
53b927:	53                   	push   %ebx
53b928:	e8 d3 ab fc ff       	call   0x506500
53b92d:	83 c4 14             	add    $0x14,%esp
53b930:	8b c8                	mov    %eax,%ecx
53b932:	eb 3f                	jmp    0x53b973
53b934:	8b 95 00 ff ff ff    	mov    -0x100(%ebp),%edx
53b93a:	8d 41 01             	lea    0x1(%ecx),%eax
53b93d:	89 43 6c             	mov    %eax,0x6c(%ebx)
53b940:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
53b943:	8b 43 68             	mov    0x68(%ebx),%eax
53b946:	89 54 88 04          	mov    %edx,0x4(%eax,%ecx,4)
53b94a:	8b 95 40 ff ff ff    	mov    -0xc0(%ebp),%edx
53b950:	89 54 88 08          	mov    %edx,0x8(%eax,%ecx,4)
53b954:	8b 95 24 ff ff ff    	mov    -0xdc(%ebp),%edx
53b95a:	c7 04 88 60 00 00 00 	movl   $0x60,(%eax,%ecx,4)
53b961:	89 54 88 0c          	mov    %edx,0xc(%eax,%ecx,4)
53b965:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
53b96c:	00
53b96d:	8b 8d 34 ff ff ff    	mov    -0xcc(%ebp),%ecx
53b973:	8b 03                	mov    (%ebx),%eax
53b975:	80 78 51 00          	cmpb   $0x0,0x51(%eax)
53b979:	75 13                	jne    0x53b98e
53b97b:	8b 43 68             	mov    0x68(%ebx),%eax