58a3ca:	ff 77 0c             	push   0xc(%edi)
58a3cd:	89 77 10             	mov    %esi,0x10(%edi)
58a3d0:	56                   	push   %esi
58a3d1:	e8 aa ee f6 ff       	call   0x4f9280
58a3d6:	83 c4 08             	add    $0x8,%esp
58a3d9:	89 47 0c             	mov    %eax,0xc(%edi)
58a3dc:	b8 01 00 00 00       	mov    $0x1,%eax
58a3e1:	5e                   	pop    %esi
58a3e2:	5f                   	pop    %edi
58a3e3:	c3                   	ret
58a3e4:	56                   	push   %esi
58a3e5:	e8 66 e8 f6 ff       	call   0x4f8c50
58a3ea:	68 88 0f 00 00       	push   $0xf88
58a3ef:	68 3c 48 66 00       	push   $0x66483c
58a3f4:	6a 07                	push   $0x7
58a3f6:	68 b8 00 00 00       	push   $0xb8
58a3fb:	6a 14                	push   $0x14
58a3fd:	e8 7e eb f4 ff       	call   0x4d8f80
58a402:	83 c4 18             	add    $0x18,%esp
58a405:	33 c0                	xor    %eax,%eax
58a407:	5e                   	pop    %esi
58a408:	5f                   	pop    %edi
58a409:	c3                   	ret
58a40a:	cc                   	int3
58a40b:	cc                   	int3
58a40c:	cc                   	int3
58a40d:	cc                   	int3
58a40e:	cc                   	int3
58a40f:	cc                   	int3
58a410:	83 7c 24 0c 08       	cmpl   $0x8,0xc(%esp)
58a415:	73 22                	jae    0x58a439
58a417:	68 8c 14 00 00       	push   $0x148c
58a41c:	68 3c 48 66 00       	push   $0x66483c
58a421:	6a 44                	push   $0x44
58a423:	68 f3 01 00 00       	push   $0x1f3
58a428:	6a 50                	push   $0x50
58a42a:	ff 74 24 18          	push   0x18(%esp)
58a42e:	e8 dd 4c 00 00       	call   0x58f110
58a433:	83 c4 18             	add    $0x18,%esp
58a436:	33 c0                	xor    %eax,%eax
58a438:	c3                   	ret
58a439:	ff 74 24 14          	push   0x14(%esp)
58a43d:	ff 74 24 14          	push   0x14(%esp)
58a441:	6a 08                	push   $0x8
58a443:	ff 74 24 14          	push   0x14(%esp)
58a447:	ff 74 24 14          	push   0x14(%esp)
58a44b:	68 34 1f 62 00       	push   $0x621f34
58a450:	e8 cb f8 ff ff       	call   0x589d20
58a455:	83 c4 18             	add    $0x18,%esp
58a458:	c3                   	ret
58a459:	cc                   	int3
58a45a:	cc                   	int3
58a45b:	cc                   	int3
58a45c:	cc                   	int3
58a45d:	cc                   	int3
58a45e:	cc                   	int3
58a45f:	cc                   	int3
58a460:	ff 74 24 10          	push   0x10(%esp)
58a464:	8b 4c 24 08          	mov    0x8(%esp),%ecx
58a468:	ff 74 24 10          	push   0x10(%esp)
58a46c:	6a 20                	push   $0x20
58a46e:	8b 41 7c             	mov    0x7c(%ecx),%eax
58a471:	05 ac 00 00 00       	add    $0xac,%eax
58a476:	50                   	push   %eax
58a477:	51                   	push   %ecx
58a478:	ff 74 24 1c          	push   0x1c(%esp)
58a47c:	e8 9f f8 ff ff       	call   0x589d20
58a481:	83 c4 18             	add    $0x18,%esp
58a484:	c3                   	ret
58a485:	cc                   	int3
58a486:	cc                   	int3
58a487:	cc                   	int3
58a488:	cc                   	int3
58a489:	cc                   	int3
58a48a:	cc                   	int3
58a48b:	cc                   	int3
58a48c:	cc                   	int3
58a48d:	cc                   	int3
58a48e:	cc                   	int3
58a48f:	cc                   	int3
58a490:	56                   	push   %esi
58a491:	8b 74 24 08          	mov    0x8(%esp),%esi
58a495:	ff 36                	push   (%esi)
58a497:	e8 54 0c f9 ff       	call   0x51b0f0
58a49c:	83 c4 04             	add    $0x4,%esp
58a49f:	c7 06 00 00 00 00    	movl   $0x0,(%esi)
58a4a5:	e8 66 0c f9 ff       	call   0x51b110
58a4aa:	89 06                	mov    %eax,(%esi)
58a4ac:	85 c0                	test   %eax,%eax
58a4ae:	74 1c                	je     0x58a4cc
58a4b0:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
58a4b4:	85 c9                	test   %ecx,%ecx
58a4b6:	74 10                	je     0x58a4c8
58a4b8:	6a 00                	push   $0x0
58a4ba:	51                   	push   %ecx
58a4bb:	50                   	push   %eax
58a4bc:	e8 5f 07 f9 ff       	call   0x51ac20
58a4c1:	83 c4 0c             	add    $0xc,%esp
58a4c4:	85 c0                	test   %eax,%eax
58a4c6:	7e 04                	jle    0x58a4cc
58a4c8:	8b 06                	mov    (%esi),%eax
58a4ca:	5e                   	pop    %esi
58a4cb:	c3                   	ret
58a4cc:	ff 36                	push   (%esi)
58a4ce:	e8 1d 0c f9 ff       	call   0x51b0f0
58a4d3:	83 c4 04             	add    $0x4,%esp
58a4d6:	c7 06 00 00 00 00    	movl   $0x0,(%esi)
58a4dc:	33 c0                	xor    %eax,%eax
58a4de:	5e                   	pop    %esi
58a4df:	c3                   	ret
58a4e0:	b8 08 00 00 00       	mov    $0x8,%eax
58a4e5:	e8 c6 72 04 00       	call   0x5d17b0
58a4ea:	56                   	push   %esi
58a4eb:	8b 74 24 10          	mov    0x10(%esp),%esi
58a4ef:	57                   	push   %edi
58a4f0:	8b 7e 7c             	mov    0x7c(%esi),%edi
58a4f3:	8b 96 04 04 00 00    	mov    0x404(%esi),%edx
58a4f9:	81 c7 7c 02 00 00    	add    $0x27c,%edi
58a4ff:	85 d2                	test   %edx,%edx
58a501:	0f 84 8d 01 00 00    	je     0x58a694
58a507:	83 7a 04 00          	cmpl   $0x0,0x4(%edx)
58a50b:	75 10                	jne    0x58a51d
58a50d:	83 7a 08 00          	cmpl   $0x0,0x8(%edx)
58a511:	75 0a                	jne    0x58a51d
58a513:	83 7a 0c 00          	cmpl   $0x0,0xc(%edx)
58a517:	75 04                	jne    0x58a51d
58a519:	33 c0                	xor    %eax,%eax
58a51b:	eb 05                	jmp    0x58a522
58a51d:	b8 01 00 00 00       	mov    $0x1,%eax
58a522:	8b 4f 08             	mov    0x8(%edi),%ecx
58a525:	83 e1 01             	and    $0x1,%ecx
58a528:	89 4c 24 08          	mov    %ecx,0x8(%esp)
58a52c:	8b 4f 0c             	mov    0xc(%edi),%ecx
58a52f:	83 e1 01             	and    $0x1,%ecx
58a532:	89 4c 24 0c          	mov    %ecx,0xc(%esp)
58a536:	33 c9                	xor    %ecx,%ecx
58a538:	f6 07 01             	testb  $0x1,(%edi)
58a53b:	53                   	push   %ebx
58a53c:	55                   	push   %ebp
58a53d:	74 0e                	je     0x58a54d
58a53f:	8d 2c 45 01 00 00 00 	lea    0x1(,%eax,2),%ebp
58a546:	b9 01 00 00 00       	mov    $0x1,%ecx
58a54b:	eb 48                	jmp    0x58a595
58a54d:	8d 1c 00             	lea    (%eax,%eax,1),%ebx
58a550:	39 4a 28             	cmp    %ecx,0x28(%edx)
58a553:	74 3a                	je     0x58a58f
58a555:	39 4a 2c             	cmp    %ecx,0x2c(%edx)
58a558:	74 35                	je     0x58a58f
58a55a:	f7 47 04 00 01 00 00 	testl  $0x100,0x4(%edi)
58a561:	8b eb                	mov    %ebx,%ebp
58a563:	74 30                	je     0x58a595
58a565:	8b 0e                	mov    (%esi),%ecx
58a567:	8b c1                	mov    %ecx,%eax
58a569:	25 00 ff ff ff       	and    $0xffffff00,%eax
58a56e:	c7 44 24 1c 00 00 00 	movl   $0x0,0x1c(%esp)
58a575:	00
58a576:	3d 00 03 00 00       	cmp    $0x300,%eax
58a57b:	0f 45 4c 24 1c       	cmovne 0x1c(%esp),%ecx
58a580:	81 f9 03 03 00 00    	cmp    $0x303,%ecx
58a586:	75 0b                	jne    0x58a593
58a588:	b9 01 00 00 00       	mov    $0x1,%ecx
58a58d:	eb 06                	jmp    0x58a595
58a58f:	8b eb                	mov    %ebx,%ebp
58a591:	eb 02                	jmp    0x58a595
58a593:	33 c9                	xor    %ecx,%ecx
58a595:	8b d9                	mov    %ecx,%ebx
58a597:	83 cb 02             	or     $0x2,%ebx
58a59a:	83 7c 24 10 00       	cmpl   $0x0,0x10(%esp)
58a59f:	0f 44 d9             	cmove  %ecx,%ebx
58a5a2:	83 cb 04             	or     $0x4,%ebx
58a5a5:	83 7c 24 14 00       	cmpl   $0x0,0x14(%esp)
58a5aa:	74 23                	je     0x58a5cf
58a5ac:	ff 72 50             	push   0x50(%edx)
58a5af:	e8 0c 20 fd ff       	call   0x55c5c0
58a5b4:	25 80 00 00 00       	and    $0x80,%eax
58a5b9:	83 c4 04             	add    $0x4,%esp
58a5bc:	f6 47 0c 02          	testb  $0x2,0xc(%edi)
58a5c0:	b9 00 00 00 00       	mov    $0x0,%ecx
58a5c5:	0f 45 c8             	cmovne %eax,%ecx
58a5c8:	85 c9                	test   %ecx,%ecx
58a5ca:	74 03                	je     0x58a5cf
58a5cc:	83 cb 08             	or     $0x8,%ebx
58a5cf:	f6 c3 08             	test   $0x8,%bl
58a5d2:	0f 85 83 00 00 00    	jne    0x58a65b
58a5d8:	8b 86 04 04 00 00    	mov    0x404(%esi),%eax
58a5de:	83 b8 a0 00 00 00 00 	cmpl   $0x0,0xa0(%eax)
58a5e5:	74 30                	je     0x58a617
58a5e7:	83 b8 a4 00 00 00 00 	cmpl   $0x0,0xa4(%eax)
58a5ee:	74 27                	je     0x58a617
58a5f0:	f7 47 1c 00 01 00 00 	testl  $0x100,0x1c(%edi)
58a5f7:	74 1e                	je     0x58a617
58a5f9:	8b 0e                	mov    (%esi),%ecx
58a5fb:	33 d2                	xor    %edx,%edx
58a5fd:	8b c1                	mov    %ecx,%eax
58a5ff:	25 00 ff ff ff       	and    $0xffffff00,%eax
58a604:	3d 00 03 00 00       	cmp    $0x300,%eax
58a609:	0f 45 ca             	cmovne %edx,%ecx
58a60c:	81 f9 03 03 00 00    	cmp    $0x303,%ecx
58a612:	75 03                	jne    0x58a617
58a614:	83 cb 08             	or     $0x8,%ebx
58a617:	f6 c3 08             	test   $0x8,%bl
58a61a:	75 3f                	jne    0x58a65b
58a61c:	8b 86 04 04 00 00    	mov    0x404(%esi),%eax
58a622:	83 b8 b4 00 00 00 00 	cmpl   $0x0,0xb4(%eax)
58a629:	74 30                	je     0x58a65b
58a62b:	83 b8 b8 00 00 00 00 	cmpl   $0x0,0xb8(%eax)
58a632:	74 27                	je     0x58a65b
58a634:	f7 47 20 00 01 00 00 	testl  $0x100,0x20(%edi)
58a63b:	74 1e                	je     0x58a65b
58a63d:	8b 0e                	mov    (%esi),%ecx
58a63f:	33 d2                	xor    %edx,%edx
58a641:	8b c1                	mov    %ecx,%eax
58a643:	25 00 ff ff ff       	and    $0xffffff00,%eax
58a648:	3d 00 03 00 00       	cmp    $0x300,%eax
58a64d:	0f 45 ca             	cmovne %edx,%ecx
58a650:	81 f9 03 03 00 00    	cmp    $0x303,%ecx
58a656:	75 03                	jne    0x58a65b
58a658:	83 cb 08             	or     $0x8,%ebx
58a65b:	8b d5                	mov    %ebp,%edx
58a65d:	83 cb 10             	or     $0x10,%ebx
58a660:	83 e2 01             	and    $0x1,%edx
58a663:	c1 e2 06             	shl    $0x6,%edx
58a666:	83 c2 0c             	add    $0xc,%edx
58a669:	0b d5                	or     %ebp,%edx
58a66b:	8b c2                	mov    %edx,%eax
58a66d:	8b ca                	mov    %edx,%ecx
58a66f:	81 c9 00 01 00 00    	or     $0x100,%ecx
58a675:	24 02                	and    $0x2,%al
58a677:	8b 46 7c             	mov    0x7c(%esi),%eax
58a67a:	0f 44 ca             	cmove  %edx,%ecx
58a67d:	81 c9 80 00 00 00    	or     $0x80,%ecx
58a683:	5d                   	pop    %ebp
58a684:	89 88 a0 02 00 00    	mov    %ecx,0x2a0(%eax)
58a68a:	8b 46 7c             	mov    0x7c(%esi),%eax
58a68d:	89 98 a4 02 00 00    	mov    %ebx,0x2a4(%eax)
58a693:	5b                   	pop    %ebx
58a694:	5f                   	pop    %edi
58a695:	5e                   	pop    %esi
58a696:	83 c4 08             	add    $0x8,%esp
58a699:	c3                   	ret
58a69a:	cc                   	int3
58a69b:	cc                   	int3
58a69c:	cc                   	int3
58a69d:	cc                   	int3
58a69e:	cc                   	int3
58a69f:	cc                   	int3
58a6a0:	68 71 0e 00 00       	push   $0xe71
58a6a5:	68 3c 48 66 00       	push   $0x66483c
58a6aa:	6a 42                	push   $0x42
58a6ac:	68 f4 00 00 00       	push   $0xf4
58a6b1:	6a 14                	push   $0x14
58a6b3:	e8 c8 e8 f4 ff       	call   0x4d8f80
58a6b8:	83 c4 14             	add    $0x14,%esp
58a6bb:	33 c0                	xor    %eax,%eax
58a6bd:	c3                   	ret
58a6be:	cc                   	int3
58a6bf:	cc                   	int3
58a6c0:	b8 08 00 00 00       	mov    $0x8,%eax
58a6c5:	e8 e6 70 04 00       	call   0x5d17b0
58a6ca:	56                   	push   %esi
58a6cb:	8b 74 24 10          	mov    0x10(%esp),%esi
58a6cf:	8b 8e 74 04 00 00    	mov    0x474(%esi),%ecx
58a6d5:	83 b9 48 01 00 00 00 	cmpl   $0x0,0x148(%ecx)
58a6dc:	0f 84 4b 01 00 00    	je     0x58a82d
58a6e2:	83 7e 1c 00          	cmpl   $0x0,0x1c(%esi)
58a6e6:	74 16                	je     0x58a6fe
58a6e8:	83 b9 6c 01 00 00 00 	cmpl   $0x0,0x16c(%ecx)
58a6ef:	75 0d                	jne    0x58a6fe
58a6f1:	f6 86 ac 04 00 00 01 	testb  $0x1,0x4ac(%esi)
58a6f8:	0f 85 2f 01 00 00    	jne    0x58a82d
58a6fe:	8b 96 e0 05 00 00    	mov    0x5e0(%esi),%edx
58a704:	55                   	push   %ebp
58a705:	8b 42 24             	mov    0x24(%edx),%eax
58a708:	8b e8                	mov    %eax,%ebp
58a70a:	89 44 24 14          	mov    %eax,0x14(%esp)
58a70e:	8b 44 24 18          	mov    0x18(%esp),%eax
58a712:	23 e8                	and    %eax,%ebp
58a714:	0f 84 d6 00 00 00    	je     0x58a7f0
58a71a:	83 be 8c 00 00 00 00 	cmpl   $0x0,0x8c(%esi)
58a721:	53                   	push   %ebx
58a722:	74 28                	je     0x58a74c
58a724:	8b 5e 04             	mov    0x4(%esi),%ebx
58a727:	8b 43 64             	mov    0x64(%ebx),%eax
58a72a:	f6 40 30 08          	testb  $0x8,0x30(%eax)
58a72e:	0f 85 b7 00 00 00    	jne    0x58a7eb
58a734:	8b 03                	mov    (%ebx),%eax
58a736:	3d 04 03 00 00       	cmp    $0x304,%eax
58a73b:	0f 8c aa 00 00 00    	jl     0x58a7eb
58a741:	3d 00 00 01 00       	cmp    $0x10000,%eax
58a746:	0f 84 9f 00 00 00    	je     0x58a7eb
58a74c:	f7 44 24 18 00 02 00 	testl  $0x200,0x18(%esp)
58a753:	00
58a754:	8b c2                	mov    %edx,%eax
58a756:	75 5b                	jne    0x58a7b3
58a758:	8b 5e 04             	mov    0x4(%esi),%ebx
58a75b:	8b 43 64             	mov    0x64(%ebx),%eax
58a75e:	f6 40 30 08          	testb  $0x8,0x30(%eax)
58a762:	75 3f                	jne    0x58a7a3
58a764:	8b 03                	mov    (%ebx),%eax
58a766:	3d 04 03 00 00       	cmp    $0x304,%eax
58a76b:	7c 36                	jl     0x58a7a3
58a76d:	3d 00 00 01 00       	cmp    $0x10000,%eax
58a772:	74 2f                	je     0x58a7a3
58a774:	83 7e 1c 00          	cmpl   $0x0,0x1c(%esi)
58a778:	74 29                	je     0x58a7a3
58a77a:	83 be 50 0f 00 00 00 	cmpl   $0x0,0xf50(%esi)
58a781:	76 0c                	jbe    0x58a78f
58a783:	f7 86 ec 04 00 00 00 	testl  $0x1000000,0x4ec(%esi)
58a78a:	00 00 01
58a78d:	74 14                	je     0x58a7a3
58a78f:	83 7a 30 00          	cmpl   $0x0,0x30(%edx)
58a793:	75 0e                	jne    0x58a7a3
58a795:	f7 86 ec 04 00 00 00 	testl  $0x4000,0x4ec(%esi)
58a79c:	40 00 00
58a79f:	8b c2                	mov    %edx,%eax
58a7a1:	74 10                	je     0x58a7b3
58a7a3:	51                   	push   %ecx
58a7a4:	52                   	push   %edx
58a7a5:	e8 46 55 00 00       	call   0x58fcf0
58a7aa:	8b 86 e0 05 00 00    	mov    0x5e0(%esi),%eax
58a7b0:	83 c4 08             	add    $0x8,%esp
58a7b3:	83 78 2c 00          	cmpl   $0x0,0x2c(%eax)
58a7b7:	74 32                	je     0x58a7eb
58a7b9:	ff b6 74 04 00 00    	push   0x474(%esi)
58a7bf:	e8 2c 5b 00 00       	call   0x5902f0
58a7c4:	8b 86 e0 05 00 00    	mov    0x5e0(%esi),%eax
58a7ca:	ff b6 74 04 00 00    	push   0x474(%esi)
58a7d0:	56                   	push   %esi
58a7d1:	8b 40 2c             	mov    0x2c(%eax),%eax
58a7d4:	ff d0                	call   *%eax
58a7d6:	83 c4 0c             	add    $0xc,%esp
58a7d9:	85 c0                	test   %eax,%eax
58a7db:	75 0e                	jne    0x58a7eb
58a7dd:	ff b6 74 04 00 00    	push   0x474(%esi)
58a7e3:	e8 d8 57 00 00       	call   0x58ffc0
58a7e8:	83 c4 04             	add    $0x4,%esp
58a7eb:	8b 44 24 1c          	mov    0x1c(%esp),%eax
58a7ef:	5b                   	pop    %ebx
58a7f0:	f6 44 24 14 80       	testb  $0x80,0x14(%esp)
58a7f5:	75 35                	jne    0x58a82c
58a7f7:	3b e8                	cmp    %eax,%ebp
58a7f9:	75 31                	jne    0x58a82c
58a7fb:	a8 01                	test   $0x1,%al
58a7fd:	b9 40 00 00 00       	mov    $0x40,%ecx
58a802:	b8 4c 00 00 00       	mov    $0x4c,%eax
58a807:	0f 44 c8             	cmove  %eax,%ecx
58a80a:	8b 86 e0 05 00 00    	mov    0x5e0(%esi),%eax
58a810:	80 3c 01 ff          	cmpb   $0xff,(%ecx,%eax,1)
58a814:	75 16                	jne    0x58a82c
58a816:	6a 00                	push   $0x0