59a81f:	55                   	push   %ebp
59a820:	56                   	push   %esi
59a821:	57                   	push   %edi
59a822:	83 7b 1c 00          	cmpl   $0x0,0x1c(%ebx)
59a826:	0f 84 66 01 00 00    	je     0x59a992
59a82c:	83 7c 24 28 fe       	cmpl   $0xfffffffe,0x28(%esp)
59a831:	75 4f                	jne    0x59a882
59a833:	8b 83 04 04 00 00    	mov    0x404(%ebx),%eax
59a839:	f7 40 10 00 00 03 00 	testl  $0x30000,0x10(%eax)
59a840:	74 38                	je     0x59a87a
59a842:	8b 43 7c             	mov    0x7c(%ebx),%eax
59a845:	8b 80 10 02 00 00    	mov    0x210(%eax),%eax
59a84b:	8b 40 0c             	mov    0xc(%eax),%eax
59a84e:	3d 2b c0 00 03       	cmp    $0x300c02b,%eax
59a853:	75 0d                	jne    0x59a862
59a855:	5f                   	pop    %edi
59a856:	5e                   	pop    %esi
59a857:	5d                   	pop    %ebp
59a858:	b8 17 00 00 00       	mov    $0x17,%eax
59a85d:	5b                   	pop    %ebx
59a85e:	83 c4 10             	add    $0x10,%esp
59a861:	c3                   	ret
59a862:	3d 2c c0 00 03       	cmp    $0x300c02c,%eax
59a867:	0f 85 25 01 00 00    	jne    0x59a992
59a86d:	5f                   	pop    %edi
59a86e:	5e                   	pop    %esi
59a86f:	5d                   	pop    %ebp
59a870:	b8 18 00 00 00       	mov    $0x18,%eax
59a875:	5b                   	pop    %ebx
59a876:	83 c4 10             	add    $0x10,%esp
59a879:	c3                   	ret
59a87a:	c7 44 24 28 00 00 00 	movl   $0x0,0x28(%esp)
59a881:	00
59a882:	f7 83 ec 04 00 00 00 	testl  $0x400000,0x4ec(%ebx)
59a889:	00 40 00
59a88c:	74 2e                	je     0x59a8bc
59a88e:	8d 44 24 1c          	lea    0x1c(%esp),%eax
59a892:	50                   	push   %eax
59a893:	8d 44 24 1c          	lea    0x1c(%esp),%eax
59a897:	50                   	push   %eax
59a898:	53                   	push   %ebx
59a899:	e8 c2 f2 ff ff       	call   0x599b60
59a89e:	8b 44 24 28          	mov    0x28(%esp),%eax
59a8a2:	8b 4c 24 24          	mov    0x24(%esp),%ecx
59a8a6:	8b ab 7c 05 00 00    	mov    0x57c(%ebx),%ebp
59a8ac:	8b b3 78 05 00 00    	mov    0x578(%ebx),%esi
59a8b2:	89 44 24 28          	mov    %eax,0x28(%esp)
59a8b6:	89 4c 24 24          	mov    %ecx,0x24(%esp)
59a8ba:	eb 30                	jmp    0x59a8ec
59a8bc:	8b 83 7c 05 00 00    	mov    0x57c(%ebx),%eax
59a8c2:	89 44 24 18          	mov    %eax,0x18(%esp)
59a8c6:	8b 83 78 05 00 00    	mov    0x578(%ebx),%eax
59a8cc:	89 44 24 1c          	mov    %eax,0x1c(%esp)
59a8d0:	8d 44 24 14          	lea    0x14(%esp),%eax
59a8d4:	50                   	push   %eax
59a8d5:	8d 44 24 14          	lea    0x14(%esp),%eax
59a8d9:	50                   	push   %eax
59a8da:	53                   	push   %ebx
59a8db:	e8 80 f2 ff ff       	call   0x599b60
59a8e0:	8b 74 24 20          	mov    0x20(%esp),%esi
59a8e4:	8b 6c 24 1c          	mov    0x1c(%esp),%ebp
59a8e8:	8b 4c 24 24          	mov    0x24(%esp),%ecx
59a8ec:	33 c0                	xor    %eax,%eax
59a8ee:	83 c4 0c             	add    $0xc,%esp
59a8f1:	33 ff                	xor    %edi,%edi
59a8f3:	89 44 24 14          	mov    %eax,0x14(%esp)
59a8f7:	39 44 24 1c          	cmp    %eax,0x1c(%esp)
59a8fb:	0f 86 8a 00 00 00    	jbe    0x59a98b
59a901:	0f b7 1c 79          	movzwl (%ecx,%edi,2),%ebx
59a905:	33 c0                	xor    %eax,%eax
59a907:	85 f6                	test   %esi,%esi
59a909:	74 71                	je     0x59a97c
59a90b:	0f 1f 44 00 00       	nopl   0x0(%eax,%eax,1)
59a910:	66 39 5c 45 00       	cmp    %bx,0x0(%ebp,%eax,2)
59a915:	74 07                	je     0x59a91e
59a917:	40                   	inc    %eax
59a918:	3b c6                	cmp    %esi,%eax
59a91a:	72 f4                	jb     0x59a910
59a91c:	eb 5e                	jmp    0x59a97c
59a91e:	8d 43 ff             	lea    -0x1(%ebx),%eax
59a921:	66 83 f8 1d          	cmp    $0x1d,%ax
59a925:	77 55                	ja     0x59a97c
59a927:	8b c3                	mov    %ebx,%eax
59a929:	8d 04 40             	lea    (%eax,%eax,2),%eax
59a92c:	8d 0c 85 fc 74 66 00 	lea    0x6674fc(,%eax,4),%ecx
59a933:	85 c9                	test   %ecx,%ecx
59a935:	74 41                	je     0x59a978
59a937:	8b c3                	mov    %ebx,%eax
59a939:	88 5c 24 11          	mov    %bl,0x11(%esp)
59a93d:	c1 e8 08             	shr    $0x8,%eax
59a940:	88 44 24 10          	mov    %al,0x10(%esp)
59a944:	8d 44 24 10          	lea    0x10(%esp),%eax
59a948:	50                   	push   %eax
59a949:	ff 31                	push   (%ecx)
59a94b:	ff 71 04             	push   0x4(%ecx)
59a94e:	68 05 00 02 00       	push   $0x20005
59a953:	ff 74 24 34          	push   0x34(%esp)
59a957:	e8 24 0c ff ff       	call   0x58b580
59a95c:	83 c4 14             	add    $0x14,%esp
59a95f:	85 c0                	test   %eax,%eax
59a961:	74 15                	je     0x59a978
59a963:	8b 44 24 14          	mov    0x14(%esp),%eax
59a967:	39 44 24 28          	cmp    %eax,0x28(%esp)
59a96b:	74 2f                	je     0x59a99c
59a96d:	8b 4c 24 18          	mov    0x18(%esp),%ecx
59a971:	40                   	inc    %eax
59a972:	89 44 24 14          	mov    %eax,0x14(%esp)
59a976:	eb 08                	jmp    0x59a980
59a978:	8b 4c 24 18          	mov    0x18(%esp),%ecx
59a97c:	8b 44 24 14          	mov    0x14(%esp),%eax
59a980:	47                   	inc    %edi
59a981:	3b 7c 24 1c          	cmp    0x1c(%esp),%edi
59a985:	0f 82 76 ff ff ff    	jb     0x59a901
59a98b:	83 7c 24 28 ff       	cmpl   $0xffffffff,0x28(%esp)
59a990:	74 02                	je     0x59a994
59a992:	33 c0                	xor    %eax,%eax
59a994:	5f                   	pop    %edi
59a995:	5e                   	pop    %esi
59a996:	5d                   	pop    %ebp
59a997:	5b                   	pop    %ebx
59a998:	83 c4 10             	add    $0x10,%esp
59a99b:	c3                   	ret
59a99c:	5f                   	pop    %edi
59a99d:	5e                   	pop    %esi
59a99e:	5d                   	pop    %ebp
59a99f:	66 8b c3             	mov    %bx,%ax
59a9a2:	5b                   	pop    %ebx
59a9a3:	83 c4 10             	add    $0x10,%esp
59a9a6:	c3                   	ret
59a9a7:	cc                   	int3
59a9a8:	cc                   	int3
59a9a9:	cc                   	int3
59a9aa:	cc                   	int3
59a9ab:	cc                   	int3
59a9ac:	cc                   	int3
59a9ad:	cc                   	int3
59a9ae:	cc                   	int3
59a9af:	cc                   	int3
59a9b0:	8b 44 24 04          	mov    0x4(%esp),%eax
59a9b4:	53                   	push   %ebx
59a9b5:	55                   	push   %ebp
59a9b6:	56                   	push   %esi
59a9b7:	8b 80 04 04 00 00    	mov    0x404(%eax),%eax
59a9bd:	57                   	push   %edi
59a9be:	8b 98 d0 00 00 00    	mov    0xd0(%eax),%ebx
59a9c4:	85 db                	test   %ebx,%ebx
59a9c6:	74 11                	je     0x59a9d9
59a9c8:	8b b8 d4 00 00 00    	mov    0xd4(%eax),%edi
59a9ce:	85 ff                	test   %edi,%edi
59a9d0:	75 11                	jne    0x59a9e3
59a9d2:	5f                   	pop    %edi
59a9d3:	5e                   	pop    %esi
59a9d4:	5d                   	pop    %ebp
59a9d5:	33 c0                	xor    %eax,%eax
59a9d7:	5b                   	pop    %ebx
59a9d8:	c3                   	ret
59a9d9:	bb 84 76 66 00       	mov    $0x667684,%ebx
59a9de:	bf 17 00 00 00       	mov    $0x17,%edi
59a9e3:	8b 6c 24 18          	mov    0x18(%esp),%ebp
59a9e7:	33 d2                	xor    %edx,%edx
59a9e9:	0f 1f 80 00 00 00 00 	nopl   0x0(%eax)
59a9f0:	0f b7 34 53          	movzwl (%ebx,%edx,2),%esi
59a9f4:	33 c9                	xor    %ecx,%ecx
59a9f6:	b8 b8 76 66 00       	mov    $0x6676b8,%eax
59a9fb:	0f 1f 44 00 00       	nopl   0x0(%eax,%eax,1)
59aa00:	66 39 70 04          	cmp    %si,0x4(%eax)
59aa04:	74 0b                	je     0x59aa11
59aa06:	41                   	inc    %ecx
59aa07:	83 c0 20             	add    $0x20,%eax
59aa0a:	83 f9 17             	cmp    $0x17,%ecx
59aa0d:	72 f1                	jb     0x59aa00
59aa0f:	eb 14                	jmp    0x59aa25
59aa11:	81 78 10 98 01 00 00 	cmpl   $0x198,0x10(%eax)
59aa18:	75 0b                	jne    0x59aa25
59aa1a:	8b 40 1c             	mov    0x1c(%eax),%eax
59aa1d:	85 c0                	test   %eax,%eax
59aa1f:	74 04                	je     0x59aa25
59aa21:	3b e8                	cmp    %eax,%ebp
59aa23:	74 0c                	je     0x59aa31
59aa25:	42                   	inc    %edx
59aa26:	3b d7                	cmp    %edi,%edx
59aa28:	72 c6                	jb     0x59a9f0
59aa2a:	5f                   	pop    %edi
59aa2b:	5e                   	pop    %esi
59aa2c:	5d                   	pop    %ebp
59aa2d:	33 c0                	xor    %eax,%eax
59aa2f:	5b                   	pop    %ebx
59aa30:	c3                   	ret
59aa31:	5f                   	pop    %edi
59aa32:	5e                   	pop    %esi
59aa33:	5d                   	pop    %ebp
59aa34:	b8 01 00 00 00       	mov    $0x1,%eax
59aa39:	5b                   	pop    %ebx
59aa3a:	c3                   	ret
59aa3b:	cc                   	int3
59aa3c:	cc                   	int3
59aa3d:	cc                   	int3
59aa3e:	cc                   	int3
59aa3f:	cc                   	int3
59aa40:	b8 08 00 00 00       	mov    $0x8,%eax
59aa45:	e8 66 6d 03 00       	call   0x5d17b0
59aa4a:	53                   	push   %ebx
59aa4b:	55                   	push   %ebp
59aa4c:	56                   	push   %esi
59aa4d:	57                   	push   %edi
59aa4e:	8b 7c 24 1c          	mov    0x1c(%esp),%edi
59aa52:	33 db                	xor    %ebx,%ebx
59aa54:	83 cd ff             	or     $0xffffffff,%ebp
59aa57:	8b 47 7c             	mov    0x7c(%edi),%eax
59aa5a:	89 98 64 02 00 00    	mov    %ebx,0x264(%eax)
59aa60:	8b 47 7c             	mov    0x7c(%edi),%eax
59aa63:	89 98 60 02 00 00    	mov    %ebx,0x260(%eax)
59aa69:	8b 4f 04             	mov    0x4(%edi),%ecx
59aa6c:	8b 41 64             	mov    0x64(%ecx),%eax
59aa6f:	8b 40 30             	mov    0x30(%eax),%eax
59aa72:	89 44 24 1c          	mov    %eax,0x1c(%esp)
59aa76:	a8 08                	test   $0x8,%al
59aa78:	75 55                	jne    0x59aacf
59aa7a:	8b 01                	mov    (%ecx),%eax
59aa7c:	3d 04 03 00 00       	cmp    $0x304,%eax
59aa81:	7c 4c                	jl     0x59aacf
59aa83:	3d 00 00 01 00       	cmp    $0x10000,%eax
59aa88:	74 45                	je     0x59aacf
59aa8a:	53                   	push   %ebx
59aa8b:	53                   	push   %ebx
59aa8c:	57                   	push   %edi
59aa8d:	e8 6e cd ff ff       	call   0x597800
59aa92:	8b d8                	mov    %eax,%ebx
59aa94:	83 c4 0c             	add    $0xc,%esp
59aa97:	85 db                	test   %ebx,%ebx
59aa99:	0f 85 72 02 00 00    	jne    0x59ad11
59aa9f:	39 44 24 20          	cmp    %eax,0x20(%esp)
59aaa3:	0f 84 9d 02 00 00    	je     0x59ad46
59aaa9:	68 c1 0a 00 00       	push   $0xac1
59aaae:	68 30 7b 66 00       	push   $0x667b30
59aab3:	6a 76                	push   $0x76
59aab5:	68 01 02 00 00       	push   $0x201
59aaba:	6a 28                	push   $0x28
59aabc:	57                   	push   %edi
59aabd:	e8 4e 46 ff ff       	call   0x58f110
59aac2:	83 c4 18             	add    $0x18,%esp
59aac5:	33 c0                	xor    %eax,%eax
59aac7:	5f                   	pop    %edi
59aac8:	5e                   	pop    %esi
59aac9:	5d                   	pop    %ebp
59aaca:	5b                   	pop    %ebx
59aacb:	83 c4 08             	add    $0x8,%esp
59aace:	c3                   	ret
59aacf:	8b 77 7c             	mov    0x7c(%edi),%esi
59aad2:	8b 86 10 02 00 00    	mov    0x210(%esi),%eax
59aad8:	f6 40 14 ab          	testb  $0xab,0x14(%eax)
59aadc:	0f 84 64 02 00 00    	je     0x59ad46
59aae2:	39 5f 1c             	cmp    %ebx,0x1c(%edi)
59aae5:	75 44                	jne    0x59ab2b
59aae7:	8b 87 04 04 00 00    	mov    0x404(%edi),%eax
59aaed:	8b 08                	mov    (%eax),%ecx
59aaef:	2b c8                	sub    %eax,%ecx
59aaf1:	b8 67 66 66 66       	mov    $0x66666667,%eax
59aaf6:	83 e9 14             	sub    $0x14,%ecx
59aaf9:	f7 e9                	imul   %ecx
59aafb:	c1 fa 03             	sar    $0x3,%edx
59aafe:	8b c2                	mov    %edx,%eax
59ab00:	c1 e8 1f             	shr    $0x1f,%eax
59ab03:	03 c2                	add    %edx,%eax
59ab05:	83 f8 08             	cmp    $0x8,%eax
59ab08:	0f 87 38 02 00 00    	ja     0x59ad46
59ab0e:	8b 8f 04 04 00 00    	mov    0x404(%edi),%ecx
59ab14:	8d 04 80             	lea    (%eax,%eax,4),%eax
59ab17:	39 5c 81 14          	cmp    %ebx,0x14(%ecx,%eax,4)
59ab1b:	0f 84 25 02 00 00    	je     0x59ad46
59ab21:	39 5c 81 18          	cmp    %ebx,0x18(%ecx,%eax,4)
59ab25:	0f 84 1b 02 00 00    	je     0x59ad46
59ab2b:	f6 44 24 1c 02       	testb  $0x2,0x1c(%esp)
59ab30:	0f 84 01 03 00 00    	je     0x59ae37
59ab36:	39 9e 68 02 00 00    	cmp    %ebx,0x268(%esi)
59ab3c:	0f 84 11 02 00 00    	je     0x59ad53
59ab42:	8b 87 04 04 00 00    	mov    0x404(%edi),%eax
59ab48:	f7 40 10 00 00 03 00 	testl  $0x30000,0x10(%eax)
59ab4f:	74 19                	je     0x59ab6a
59ab51:	ff 70 54             	push   0x54(%eax)
59ab54:	e8 77 62 f5 ff       	call   0x4f0dd0
59ab59:	50                   	push   %eax
59ab5a:	e8 e1 c6 f4 ff       	call   0x4e7240
59ab5f:	50                   	push   %eax
59ab60:	e8 4b 57 f5 ff       	call   0x4f02b0
59ab65:	83 c4 0c             	add    $0xc,%esp
59ab68:	eb 03                	jmp    0x59ab6d
59ab6a:	83 c8 ff             	or     $0xffffffff,%eax
59ab6d:	33 c9                	xor    %ecx,%ecx
59ab6f:	89 44 24 10          	mov    %eax,0x10(%esp)
59ab73:	89 4c 24 1c          	mov    %ecx,0x1c(%esp)
59ab77:	3b 8f 8c 0f 00 00    	cmp    0xf8c(%edi),%ecx
59ab7d:	0f 83 5a 01 00 00    	jae    0x59acdd
59ab83:	83 7f 1c 00          	cmpl   $0x0,0x1c(%edi)
59ab87:	8b 87 88 0f 00 00    	mov    0xf88(%edi),%eax
59ab8d:	8b 1c 88             	mov    (%eax,%ecx,4),%ebx
59ab90:	8b 6b 14             	mov    0x14(%ebx),%ebp
59ab93:	8b f5                	mov    %ebp,%esi
59ab95:	74 51                	je     0x59abe8
59ab97:	56                   	push   %esi
59ab98:	e8 f3 06 ff ff       	call   0x58b290
59ab9d:	83 c4 04             	add    $0x4,%esp
59aba0:	85 c0                	test   %eax,%eax
59aba2:	74 3c                	je     0x59abe0
59aba4:	8b 6f 7c             	mov    0x7c(%edi),%ebp
59aba7:	8b 95 10 02 00 00    	mov    0x210(%ebp),%edx
59abad:	8b 4a 14             	mov    0x14(%edx),%ecx
59abb0:	85 48 04             	test   %ecx,0x4(%eax)
59abb3:	74 2b                	je     0x59abe0
59abb5:	81 38 90 03 00 00    	cmpl   $0x390,(%eax)
59abbb:	75 06                	jne    0x59abc3
59abbd:	f6 42 10 01          	testb  $0x1,0x10(%edx)
59abc1:	75 1d                	jne    0x59abe0
59abc3:	f6 84 b5 7c 02 00 00 	testb  $0x1,0x27c(%ebp,%esi,4)
59abca:	01
59abcb:	bd ff ff ff ff       	mov    $0xffffffff,%ebp
59abd0:	0f 45 ee             	cmovne %esi,%ebp
59abd3:	83 fd ff             	cmp    $0xffffffff,%ebp
59abd6:	0f 84 e0 00 00 00    	je     0x59acbc
59abdc:	8b c5                	mov    %ebp,%eax
59abde:	eb 3a                	jmp    0x59ac1a
59abe0:	83 cd ff             	or     $0xffffffff,%ebp
59abe3:	e9 d4 00 00 00       	jmp    0x59acbc
59abe8:	8b 87 04 04 00 00    	mov    0x404(%edi),%eax
59abee:	8b 08                	mov    (%eax),%ecx
59abf0:	2b c8                	sub    %eax,%ecx
59abf2:	b8 67 66 66 66       	mov    $0x66666667,%eax
59abf7:	83 e9 14             	sub    $0x14,%ecx
59abfa:	f7 e9                	imul   %ecx
59abfc:	c1 fa 03             	sar    $0x3,%edx
59abff:	8b c2                	mov    %edx,%eax
59ac01:	c1 e8 1f             	shr    $0x1f,%eax
59ac04:	03 c2                	add    %edx,%eax
59ac06:	3b c5                	cmp    %ebp,%eax
59ac08:	0f 85 ae 00 00 00    	jne    0x59acbc
59ac0e:	8b c6                	mov    %esi,%eax
59ac10:	8b ee                	mov    %esi,%ebp
59ac12:	83 fe ff             	cmp    $0xffffffff,%esi
59ac15:	75 03                	jne    0x59ac1a
59ac17:	8b 43 14             	mov    0x14(%ebx),%eax
59ac1a:	83 f8 08             	cmp    $0x8,%eax
59ac1d:	0f 87 99 00 00 00    	ja     0x59acbc
59ac23:	8d 0c 80             	lea    (%eax,%eax,4),%ecx
59ac26:	8b 87 04 04 00 00    	mov    0x404(%edi),%eax
59ac2c:	8b 54 88 14          	mov    0x14(%eax,%ecx,4),%edx
59ac30:	85 d2                	test   %edx,%edx
59ac32:	0f 84 84 00 00 00    	je     0x59acbc
59ac38:	8b 44 88 18          	mov    0x18(%eax,%ecx,4),%eax
59ac3c:	85 c0                	test   %eax,%eax
59ac3e:	74 7c                	je     0x59acbc