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
58a818:	e8 54 be 04 00       	call   0x5d6671
58a81d:	50                   	push   %eax
58a81e:	ff b6 e0 05 00 00    	push   0x5e0(%esi)
58a824:	e8 87 56 00 00       	call   0x58feb0
58a829:	83 c4 0c             	add    $0xc,%esp
58a82c:	5d                   	pop    %ebp
58a82d:	5e                   	pop    %esi
58a82e:	83 c4 08             	add    $0x8,%esp
58a831:	c3                   	ret
58a832:	cc                   	int3
58a833:	cc                   	int3
58a834:	cc                   	int3
58a835:	cc                   	int3
58a836:	cc                   	int3
58a837:	cc                   	int3
58a838:	cc                   	int3
58a839:	cc                   	int3
58a83a:	cc                   	int3
58a83b:	cc                   	int3
58a83c:	cc                   	int3
58a83d:	cc                   	int3
58a83e:	cc                   	int3
58a83f:	cc                   	int3
58a840:	55                   	push   %ebp
58a841:	56                   	push   %esi
58a842:	57                   	push   %edi
58a843:	8b 7c 24 10          	mov    0x10(%esp),%edi
58a847:	33 ed                	xor    %ebp,%ebp
58a849:	8b 87 74 04 00 00    	mov    0x474(%edi),%eax
58a84f:	85 c0                	test   %eax,%eax
58a851:	74 08                	je     0x58a85b
58a853:	8b 80 9c 01 00 00    	mov    0x19c(%eax),%eax
58a859:	eb 02                	jmp    0x58a85d
58a85b:	33 c0                	xor    %eax,%eax
58a85d:	8d b7 94 00 00 00    	lea    0x94(%edi),%esi
58a863:	89 44 24 10          	mov    %eax,0x10(%esp)
58a867:	39 af d0 05 00 00    	cmp    %ebp,0x5d0(%edi)
58a86d:	0f 84 a5 01 00 00    	je     0x58aa18
58a873:	85 c0                	test   %eax,%eax
58a875:	0f 84 9d 01 00 00    	je     0x58aa18
58a87b:	39 af d8 04 00 00    	cmp    %ebp,0x4d8(%edi)
58a881:	0f 85 91 01 00 00    	jne    0x58aa18
58a887:	8b 87 d4 04 00 00    	mov    0x4d4(%edi),%eax
58a88d:	85 c0                	test   %eax,%eax
58a88f:	0f 84 83 01 00 00    	je     0x58aa18
58a895:	50                   	push   %eax
58a896:	e8 25 a8 f5 ff       	call   0x4e50c0
58a89b:	83 c4 04             	add    $0x4,%esp
58a89e:	83 f8 01             	cmp    $0x1,%eax
58a8a1:	0f 8e 71 01 00 00    	jle    0x58aa18
58a8a7:	85 f6                	test   %esi,%esi
58a8a9:	74 22                	je     0x58a8cd
58a8ab:	ff 76 04             	push   0x4(%esi)
58a8ae:	e8 0d a8 f5 ff       	call   0x4e50c0
58a8b3:	83 c4 04             	add    $0x4,%esp
58a8b6:	85 c0                	test   %eax,%eax
58a8b8:	7e 13                	jle    0x58a8cd
58a8ba:	8b 46 0c             	mov    0xc(%esi),%eax
58a8bd:	85 c0                	test   %eax,%eax
58a8bf:	74 0c                	je     0x58a8cd
58a8c1:	8a 00                	mov    (%eax),%al
58a8c3:	2c 02                	sub    $0x2,%al
58a8c5:	3c 01                	cmp    $0x1,%al
58a8c7:	0f 86 4b 01 00 00    	jbe    0x58aa18
58a8cd:	53                   	push   %ebx
58a8ce:	e8 fd c1 06 00       	call   0x5f6ad0
58a8d3:	8b d8                	mov    %eax,%ebx
58a8d5:	85 db                	test   %ebx,%ebx
58a8d7:	75 33                	jne    0x58a90c
58a8d9:	68 50 13 00 00       	push   $0x1350
58a8de:	68 3c 48 66 00       	push   $0x66483c
58a8e3:	6a 41                	push   $0x41
58a8e5:	68 90 01 00 00       	push   $0x190
58a8ea:	6a 50                	push   $0x50
58a8ec:	57                   	push   %edi
58a8ed:	e8 1e 48 00 00       	call   0x58f110
58a8f2:	53                   	push   %ebx
58a8f3:	e8 a8 c1 06 00       	call   0x5f6aa0
58a8f8:	83 c4 1c             	add    $0x1c,%esp
58a8fb:	c7 87 d8 04 00 00 47 	movl   $0x47,0x4d8(%edi)
58a902:	00 00 00
58a905:	8b c5                	mov    %ebp,%eax
58a907:	5b                   	pop    %ebx
58a908:	5f                   	pop    %edi
58a909:	5e                   	pop    %esi
58a90a:	5d                   	pop    %ebp
58a90b:	c3                   	ret
58a90c:	6a 01                	push   $0x1
58a90e:	ff b7 d4 04 00 00    	push   0x4d4(%edi)
58a914:	e8 67 a9 f5 ff       	call   0x4e5280
58a919:	ff 74 24 1c          	push   0x1c(%esp)
58a91d:	8b f0                	mov    %eax,%esi
58a91f:	53                   	push   %ebx
58a920:	e8 1b c2 06 00       	call   0x5f6b40
58a925:	56                   	push   %esi
58a926:	53                   	push   %ebx
58a927:	e8 44 c2 06 00       	call   0x5f6b70
58a92c:	8b 87 d0 04 00 00    	mov    0x4d0(%edi),%eax
58a932:	ff b0 08 01 00 00    	push   0x108(%eax)
58a938:	53                   	push   %ebx
58a939:	e8 62 c2 06 00       	call   0x5f6ba0
58a93e:	57                   	push   %edi
58a93f:	e8 cc 59 00 00       	call   0x590310
58a944:	50                   	push   %eax
58a945:	e8 b6 57 00 00       	call   0x590100
58a94a:	99                   	cltd
58a94b:	be e8 03 00 00       	mov    $0x3e8,%esi
58a950:	8b c8                	mov    %eax,%ecx
58a952:	8b c2                	mov    %edx,%eax
58a954:	f7 e6                	mul    %esi
58a956:	8b f0                	mov    %eax,%esi
58a958:	8b c1                	mov    %ecx,%eax
58a95a:	b9 e8 03 00 00       	mov    $0x3e8,%ecx
58a95f:	f7 e1                	mul    %ecx
58a961:	03 f2                	add    %edx,%esi
58a963:	56                   	push   %esi
58a964:	50                   	push   %eax
58a965:	53                   	push   %ebx
58a966:	e8 45 c2 06 00       	call   0x5f6bb0
58a96b:	57                   	push   %edi
58a96c:	e8 cf e8 ff ff       	call   0x589240
58a971:	8b f0                	mov    %eax,%esi
58a973:	53                   	push   %ebx
58a974:	56                   	push   %esi
58a975:	e8 f6 a0 ff ff       	call   0x584a70
58a97a:	83 c4 40             	add    $0x40,%esp
58a97d:	85 c0                	test   %eax,%eax
58a97f:	79 36                	jns    0x58a9b7
58a981:	68 6d 13 00 00       	push   $0x136d
58a986:	68 3c 48 66 00       	push   $0x66483c
58a98b:	68 d0 00 00 00       	push   $0xd0
58a990:	68 90 01 00 00       	push   $0x190
58a995:	6a 28                	push   $0x28
58a997:	57                   	push   %edi
58a998:	e8 73 47 00 00       	call   0x58f110
58a99d:	53                   	push   %ebx
58a99e:	e8 fd c0 06 00       	call   0x5f6aa0
58a9a3:	83 c4 1c             	add    $0x1c,%esp
58a9a6:	c7 87 d8 04 00 00 47 	movl   $0x47,0x4d8(%edi)
58a9ad:	00 00 00
58a9b0:	8b c5                	mov    %ebp,%eax
58a9b2:	5b                   	pop    %ebx
58a9b3:	5f                   	pop    %edi
58a9b4:	5e                   	pop    %esi
58a9b5:	5d                   	pop    %ebp
58a9b6:	c3                   	ret
58a9b7:	ff b7 d4 05 00 00    	push   0x5d4(%edi)
58a9bd:	8b 87 d0 05 00 00    	mov    0x5d0(%edi),%eax
58a9c3:	56                   	push   %esi
58a9c4:	53                   	push   %ebx
58a9c5:	ff d0                	call   *%eax
58a9c7:	8b e8                	mov    %eax,%ebp
58a9c9:	83 c4 0c             	add    $0xc,%esp
58a9cc:	8b f5                	mov    %ebp,%esi
58a9ce:	85 ed                	test   %ebp,%ebp
58a9d0:	79 13                	jns    0x58a9e5
58a9d2:	68 76 13 00 00       	push   $0x1376
58a9d7:	68 3c 48 66 00       	push   $0x66483c
58a9dc:	33 ed                	xor    %ebp,%ebp
58a9de:	68 ea 00 00 00       	push   $0xea
58a9e3:	eb ab                	jmp    0x58a990
58a9e5:	75 11                	jne    0x58a9f8
58a9e7:	68 76 13 00 00       	push   $0x1376
58a9ec:	68 3c 48 66 00       	push   $0x66483c
58a9f1:	68 ea 00 00 00       	push   $0xea
58a9f6:	eb 98                	jmp    0x58a990
58a9f8:	53                   	push   %ebx
58a9f9:	e8 a2 c0 06 00       	call   0x5f6aa0
58a9fe:	83 c4 04             	add    $0x4,%esp
58aa01:	8b ee                	mov    %esi,%ebp
58aa03:	85 f6                	test   %esi,%esi
58aa05:	7f 0a                	jg     0x58aa11
58aa07:	c7 87 d8 04 00 00 47 	movl   $0x47,0x4d8(%edi)
58aa0e:	00 00 00
58aa11:	5b                   	pop    %ebx