59f63e:	5b                   	pop    %ebx
59f63f:	8b 4c 24 4c          	mov    0x4c(%esp),%ecx
59f643:	33 cc                	xor    %esp,%ecx
59f645:	e8 dc 23 03 00       	call   0x5d1a26
59f64a:	83 c4 50             	add    $0x50,%esp
59f64d:	c3                   	ret
59f64e:	8b 06                	mov    (%esi),%eax
59f650:	89 44 24 18          	mov    %eax,0x18(%esp)
59f654:	8b 46 04             	mov    0x4(%esi),%eax
59f657:	89 44 24 1c          	mov    %eax,0x1c(%esp)
59f65b:	57                   	push   %edi
59f65c:	e8 6f b5 f3 ff       	call   0x4dabd0
59f661:	83 c4 04             	add    $0x4,%esp
59f664:	83 f8 30             	cmp    $0x30,%eax
59f667:	7d 11                	jge    0x59f67a
59f669:	68 d3 0b 00 00       	push   $0xbd3
59f66e:	68 e0 7b 66 00       	push   $0x667be0
59f673:	6a 78                	push   $0x78
59f675:	e9 53 ff ff ff       	jmp    0x59f5cd
59f67a:	68 d7 0b 00 00       	push   $0xbd7
59f67f:	68 e0 7b 66 00       	push   $0x667be0
59f684:	57                   	push   %edi
59f685:	e8 46 b5 f3 ff       	call   0x4dabd0
59f68a:	83 c4 04             	add    $0x4,%esp
59f68d:	50                   	push   %eax
59f68e:	e8 bd 10 f4 ff       	call   0x4e0750
59f693:	8b f0                	mov    %eax,%esi
59f695:	83 c4 0c             	add    $0xc,%esp
59f698:	89 74 24 28          	mov    %esi,0x28(%esp)
59f69c:	85 f6                	test   %esi,%esi
59f69e:	75 11                	jne    0x59f6b1
59f6a0:	68 da 0b 00 00       	push   $0xbda
59f6a5:	68 e0 7b 66 00       	push   $0x667be0
59f6aa:	6a 41                	push   $0x41
59f6ac:	e9 1c ff ff ff       	jmp    0x59f5cd
59f6b1:	8d 44 24 2c          	lea    0x2c(%esp),%eax
59f6b5:	6a 30                	push   $0x30
59f6b7:	50                   	push   %eax
59f6b8:	e8 53 1c f4 ff       	call   0x4e1310
59f6bd:	83 c4 08             	add    $0x8,%esp
59f6c0:	85 c0                	test   %eax,%eax
59f6c2:	7f 21                	jg     0x59f6e5
59f6c4:	68 e9 0b 00 00       	push   $0xbe9
59f6c9:	68 e0 7b 66 00       	push   $0x667be0
59f6ce:	6a 44                	push   $0x44
59f6d0:	68 9f 01 00 00       	push   $0x19f
59f6d5:	6a 50                	push   $0x50
59f6d7:	55                   	push   %ebp
59f6d8:	e8 33 fa fe ff       	call   0x58f110
59f6dd:	83 c4 18             	add    $0x18,%esp
59f6e0:	e9 69 01 00 00       	jmp    0x59f84e
59f6e5:	6a 03                	push   $0x3
59f6e7:	57                   	push   %edi
59f6e8:	56                   	push   %esi
59f6e9:	ff 74 24 24          	push   0x24(%esp)
59f6ed:	ff 74 24 2c          	push   0x2c(%esp)
59f6f1:	e8 8a b2 f3 ff       	call   0x4da980
59f6f6:	83 c4 14             	add    $0x14,%esp
59f6f9:	85 c0                	test   %eax,%eax
59f6fb:	79 21                	jns    0x59f71e
59f6fd:	68 f7 0b 00 00       	push   $0xbf7
59f702:	68 e0 7b 66 00       	push   $0x667be0
59f707:	6a 44                	push   $0x44
59f709:	68 9f 01 00 00       	push   $0x19f
59f70e:	6a 33                	push   $0x33
59f710:	55                   	push   %ebp
59f711:	e8 fa f9 fe ff       	call   0x58f110
59f716:	83 c4 18             	add    $0x18,%esp
59f719:	e9 30 01 00 00       	jmp    0x59f84e
59f71e:	83 f8 3b             	cmp    $0x3b,%eax
59f721:	7d 11                	jge    0x59f734
59f723:	68 04 0c 00 00       	push   $0xc04
59f728:	68 e0 7b 66 00       	push   $0x667be0
59f72d:	68 93 00 00 00       	push   $0x93
59f732:	eb d5                	jmp    0x59f709
59f734:	0f b6 5e 01          	movzbl 0x1(%esi),%ebx
59f738:	8d 78 d0             	lea    -0x30(%eax),%edi
59f73b:	0f b6 06             	movzbl (%esi),%eax
59f73e:	8d 57 ff             	lea    -0x1(%edi),%edx
59f741:	83 f3 02             	xor    $0x2,%ebx
59f744:	48                   	dec    %eax
59f745:	4b                   	dec    %ebx
59f746:	c1 e8 1f             	shr    $0x1f,%eax
59f749:	c1 eb 1f             	shr    $0x1f,%ebx
59f74c:	f6 d8                	neg    %al
59f74e:	f6 db                	neg    %bl
59f750:	b9 02 00 00 00       	mov    $0x2,%ecx
59f755:	22 d8                	and    %al,%bl
59f757:	3b d1                	cmp    %ecx,%edx
59f759:	76 16                	jbe    0x59f771
59f75b:	0f 1f 44 00 00       	nopl   0x0(%eax,%eax,1)
59f760:	0f b6 04 31          	movzbl (%ecx,%esi,1),%eax
59f764:	41                   	inc    %ecx
59f765:	48                   	dec    %eax
59f766:	c1 e8 1f             	shr    $0x1f,%eax
59f769:	fe c8                	dec    %al
59f76b:	22 d8                	and    %al,%bl
59f76d:	3b ca                	cmp    %edx,%ecx
59f76f:	72 ef                	jb     0x59f760
59f771:	0f b6 44 37 ff       	movzbl -0x1(%edi,%esi,1),%eax
59f776:	03 fe                	add    %esi,%edi
59f778:	48                   	dec    %eax
59f779:	89 7c 24 20          	mov    %edi,0x20(%esp)
59f77d:	c1 e8 1f             	shr    $0x1f,%eax
59f780:	f6 d8                	neg    %al
59f782:	0f b6 37             	movzbl (%edi),%esi
59f785:	22 d8                	and    %al,%bl
59f787:	8b 85 04 05 00 00    	mov    0x504(%ebp),%eax
59f78d:	8b c8                	mov    %eax,%ecx
59f78f:	0f b6 57 01          	movzbl 0x1(%edi),%edx
59f793:	c1 f9 08             	sar    $0x8,%ecx
59f796:	33 ce                	xor    %esi,%ecx
59f798:	0f b6 c0             	movzbl %al,%eax
59f79b:	33 c2                	xor    %edx,%eax
59f79d:	89 54 24 10          	mov    %edx,0x10(%esp)
59f7a1:	48                   	dec    %eax
59f7a2:	c1 e8 1f             	shr    $0x1f,%eax
59f7a5:	8d 51 ff             	lea    -0x1(%ecx),%edx
59f7a8:	f6 d8                	neg    %al
59f7aa:	c1 ea 1f             	shr    $0x1f,%edx
59f7ad:	f7 d1                	not    %ecx
59f7af:	c1 e9 1f             	shr    $0x1f,%ecx
59f7b2:	22 d1                	and    %cl,%dl
59f7b4:	f6 da                	neg    %dl
59f7b6:	22 d0                	and    %al,%dl
59f7b8:	f7 85 ec 04 00 00 00 	testl  $0x800000,0x4ec(%ebp)
59f7bf:	00 80 00
59f7c2:	89 54 24 14          	mov    %edx,0x14(%esp)
59f7c6:	74 2e                	je     0x59f7f6
59f7c8:	8b 45 00             	mov    0x0(%ebp),%eax
59f7cb:	8b c8                	mov    %eax,%ecx
59f7cd:	c1 f9 08             	sar    $0x8,%ecx
59f7d0:	33 ce                	xor    %esi,%ecx
59f7d2:	0f b6 d0             	movzbl %al,%edx
59f7d5:	33 54 24 10          	xor    0x10(%esp),%edx
59f7d9:	4a                   	dec    %edx
59f7da:	c1 ea 1f             	shr    $0x1f,%edx
59f7dd:	8d 41 ff             	lea    -0x1(%ecx),%eax
59f7e0:	f6 da                	neg    %dl
59f7e2:	c1 e8 1f             	shr    $0x1f,%eax
59f7e5:	f7 d1                	not    %ecx
59f7e7:	c1 e9 1f             	shr    $0x1f,%ecx
59f7ea:	22 c1                	and    %cl,%al
59f7ec:	f6 d8                	neg    %al
59f7ee:	22 c2                	and    %dl,%al
59f7f0:	8b 54 24 14          	mov    0x14(%esp),%edx
59f7f4:	0a d0                	or     %al,%dl
59f7f6:	22 da                	and    %dl,%bl
59f7f8:	33 f6                	xor    %esi,%esi
59f7fa:	0f b6 eb             	movzbl %bl,%ebp
59f7fd:	8b dd                	mov    %ebp,%ebx
59f7ff:	f7 d3                	not    %ebx
59f801:	8a 07                	mov    (%edi),%al
59f803:	8d 7f 01             	lea    0x1(%edi),%edi
59f806:	89 6c 24 14          	mov    %ebp,0x14(%esp)
59f80a:	89 5c 24 10          	mov    %ebx,0x10(%esp)
59f80e:	8b 54 24 14          	mov    0x14(%esp),%edx
59f812:	22 d0                	and    %al,%dl
59f814:	8b 44 24 10          	mov    0x10(%esp),%eax
59f818:	8a 4c 34 2c          	mov    0x2c(%esp,%esi,1),%cl
59f81c:	46                   	inc    %esi
59f81d:	22 c8                	and    %al,%cl
59f81f:	0a ca                	or     %dl,%cl
59f821:	88 4f ff             	mov    %cl,-0x1(%edi)
59f824:	83 fe 30             	cmp    $0x30,%esi
59f827:	72 d8                	jb     0x59f801
59f829:	8b 6c 24 24          	mov    0x24(%esp),%ebp
59f82d:	6a 00                	push   $0x0
59f82f:	6a 30                	push   $0x30
59f831:	ff 74 24 28          	push   0x28(%esp)
59f835:	55                   	push   %ebp
59f836:	e8 45 e3 fe ff       	call   0x58db80
59f83b:	8b 74 24 38          	mov    0x38(%esp),%esi
59f83f:	33 db                	xor    %ebx,%ebx
59f841:	83 c4 10             	add    $0x10,%esp
59f844:	b9 01 00 00 00       	mov    $0x1,%ecx
59f849:	85 c0                	test   %eax,%eax
59f84b:	0f 45 d9             	cmovne %ecx,%ebx
59f84e:	68 4d 0c 00 00       	push   $0xc4d
59f853:	68 e0 7b 66 00       	push   $0x667be0
59f858:	56                   	push   %esi
59f859:	e8 22 0f f4 ff       	call   0x4e0780
59f85e:	8b 4c 24 68          	mov    0x68(%esp),%ecx
59f862:	83 c4 0c             	add    $0xc,%esp
59f865:	8b c3                	mov    %ebx,%eax
59f867:	5f                   	pop    %edi
59f868:	5e                   	pop    %esi
59f869:	5d                   	pop    %ebp
59f86a:	5b                   	pop    %ebx
59f86b:	33 cc                	xor    %esp,%ecx
59f86d:	e8 b4 21 03 00       	call   0x5d1a26
59f872:	83 c4 50             	add    $0x50,%esp
59f875:	c3                   	ret
59f876:	cc                   	int3
59f877:	cc                   	int3
59f878:	cc                   	int3
59f879:	cc                   	int3
59f87a:	cc                   	int3
59f87b:	cc                   	int3
59f87c:	cc                   	int3
59f87d:	cc                   	int3
59f87e:	cc                   	int3
59f87f:	cc                   	int3
59f880:	b8 20 00 00 00       	mov    $0x20,%eax
59f885:	e8 26 1f 03 00       	call   0x5d17b0
59f88a:	55                   	push   %ebp
59f88b:	56                   	push   %esi
59f88c:	8b 74 24 2c          	mov    0x2c(%esp),%esi
59f890:	33 ed                	xor    %ebp,%ebp
59f892:	c7 44 24 1c 00 00 00 	movl   $0x0,0x1c(%esp)
59f899:	00
59f89a:	89 6e 64             	mov    %ebp,0x64(%esi)
59f89d:	e8 7e 57 f4 ff       	call   0x4e5020
59f8a2:	89 44 24 08          	mov    %eax,0x8(%esp)
59f8a6:	85 c0                	test   %eax,%eax
59f8a8:	75 21                	jne    0x59f8cb
59f8aa:	68 12 0e 00 00       	push   $0xe12
59f8af:	68 e0 7b 66 00       	push   $0x667be0
59f8b4:	6a 41                	push   $0x41
59f8b6:	68 7c 01 00 00       	push   $0x17c
59f8bb:	6a 50                	push   $0x50
59f8bd:	56                   	push   %esi
59f8be:	e8 4d f8 fe ff       	call   0x58f110
59f8c3:	83 c4 18             	add    $0x18,%esp
59f8c6:	e9 5a 05 00 00       	jmp    0x59fe25
59f8cb:	8b 4e 04             	mov    0x4(%esi),%ecx
59f8ce:	8b 41 64             	mov    0x64(%ecx),%eax
59f8d1:	f6 40 30 08          	testb  $0x8,0x30(%eax)
59f8d5:	75 41                	jne    0x59f918
59f8d7:	8b 01                	mov    (%ecx),%eax
59f8d9:	3d 04 03 00 00       	cmp    $0x304,%eax
59f8de:	7c 38                	jl     0x59f918
59f8e0:	3d 00 00 01 00       	cmp    $0x10000,%eax
59f8e5:	74 31                	je     0x59f918
59f8e7:	8d 44 24 10          	lea    0x10(%esp),%eax
59f8eb:	50                   	push   %eax
59f8ec:	ff 74 24 34          	push   0x34(%esp)
59f8f0:	e8 cb bb ff ff       	call   0x59b4c0
59f8f5:	83 c4 08             	add    $0x8,%esp
59f8f8:	85 c0                	test   %eax,%eax
59f8fa:	0f 84 c0 01 00 00    	je     0x59fac0
59f900:	8b 86 fc 05 00 00    	mov    0x5fc(%esi),%eax
59f906:	85 c0                	test   %eax,%eax
59f908:	0f 85 96 01 00 00    	jne    0x59faa4
59f90e:	39 6c 24 14          	cmp    %ebp,0x14(%esp)
59f912:	0f 85 a8 01 00 00    	jne    0x59fac0
59f918:	8b 4c 24 30          	mov    0x30(%esp),%ecx
59f91c:	53                   	push   %ebx
59f91d:	57                   	push   %edi
59f91e:	8b 51 04             	mov    0x4(%ecx),%edx
59f921:	8b 19                	mov    (%ecx),%ebx
59f923:	83 fa 03             	cmp    $0x3,%edx
59f926:	0f 82 d8 04 00 00    	jb     0x59fe04
59f92c:	0f b6 3b             	movzbl (%ebx),%edi
59f92f:	83 c2 fd             	add    $0xfffffffd,%edx
59f932:	0f b6 43 01          	movzbl 0x1(%ebx),%eax
59f936:	c1 e7 08             	shl    $0x8,%edi
59f939:	0b f8                	or     %eax,%edi
59f93b:	89 54 24 2c          	mov    %edx,0x2c(%esp)
59f93f:	0f b6 43 02          	movzbl 0x2(%ebx),%eax
59f943:	83 c3 03             	add    $0x3,%ebx
59f946:	c1 e7 08             	shl    $0x8,%edi
59f949:	0b f8                	or     %eax,%edi
59f94b:	3b d7                	cmp    %edi,%edx
59f94d:	0f 82 b1 04 00 00    	jb     0x59fe04
59f953:	2b d7                	sub    %edi,%edx
59f955:	8d 04 3b             	lea    (%ebx,%edi,1),%eax
59f958:	89 01                	mov    %eax,(%ecx)
59f95a:	89 51 04             	mov    %edx,0x4(%ecx)
59f95d:	3b d5                	cmp    %ebp,%edx
59f95f:	0f 85 9f 04 00 00    	jne    0x59fe04
59f965:	89 6c 24 18          	mov    %ebp,0x18(%esp)
59f969:	85 ff                	test   %edi,%edi
59f96b:	0f 84 98 01 00 00    	je     0x59fb09
59f971:	83 ff 03             	cmp    $0x3,%edi
59f974:	0f 82 3f 02 00 00    	jb     0x59fbb9
59f97a:	0f b6 03             	movzbl (%ebx),%eax
59f97d:	83 ef 03             	sub    $0x3,%edi
59f980:	0f b6 6b 01          	movzbl 0x1(%ebx),%ebp
59f984:	c1 e0 08             	shl    $0x8,%eax
59f987:	0b e8                	or     %eax,%ebp
59f989:	0f b6 43 02          	movzbl 0x2(%ebx),%eax
59f98d:	c1 e5 08             	shl    $0x8,%ebp
59f990:	83 c3 03             	add    $0x3,%ebx
59f993:	0b e8                	or     %eax,%ebp
59f995:	89 5c 24 14          	mov    %ebx,0x14(%esp)
59f999:	3b fd                	cmp    %ebp,%edi
59f99b:	0f 82 18 02 00 00    	jb     0x59fbb9
59f9a1:	55                   	push   %ebp
59f9a2:	8d 44 24 24          	lea    0x24(%esp),%eax
59f9a6:	89 5c 24 24          	mov    %ebx,0x24(%esp)
59f9aa:	50                   	push   %eax
59f9ab:	6a 00                	push   $0x0
59f9ad:	03 dd                	add    %ebp,%ebx
59f9af:	2b fd                	sub    %ebp,%edi
59f9b1:	e8 6a 78 fb ff       	call   0x557220
59f9b6:	83 c4 0c             	add    $0xc,%esp
59f9b9:	89 44 24 34          	mov    %eax,0x34(%esp)
59f9bd:	85 c0                	test   %eax,%eax
59f9bf:	0f 84 e6 01 00 00    	je     0x59fbab
59f9c5:	8b 44 24 14          	mov    0x14(%esp),%eax
59f9c9:	03 c5                	add    %ebp,%eax
59f9cb:	39 44 24 20          	cmp    %eax,0x20(%esp)
59f9cf:	0f 85 c5 01 00 00    	jne    0x59fb9a
59f9d5:	8b 4e 04             	mov    0x4(%esi),%ecx
59f9d8:	8b 41 64             	mov    0x64(%ecx),%eax
59f9db:	f6 40 30 08          	testb  $0x8,0x30(%eax)
59f9df:	0f 85 ff 00 00 00    	jne    0x59fae4
59f9e5:	8b 01                	mov    (%ecx),%eax
59f9e7:	3d 04 03 00 00       	cmp    $0x304,%eax
59f9ec:	0f 8c f2 00 00 00    	jl     0x59fae4
59f9f2:	3d 00 00 01 00       	cmp    $0x10000,%eax
59f9f7:	0f 84 e7 00 00 00    	je     0x59fae4
59f9fd:	c7 44 24 14 00 00 00 	movl   $0x0,0x14(%esp)
59fa04:	00
59fa05:	83 ff 02             	cmp    $0x2,%edi
59fa08:	0f 82 4f 01 00 00    	jb     0x59fb5d
59fa0e:	0f b6 03             	movzbl (%ebx),%eax
59fa11:	83 c7 fe             	add    $0xfffffffe,%edi
59fa14:	0f b6 4b 01          	movzbl 0x1(%ebx),%ecx
59fa18:	83 c3 02             	add    $0x2,%ebx
59fa1b:	c1 e0 08             	shl    $0x8,%eax
59fa1e:	0b c8                	or     %eax,%ecx
59fa20:	3b f9                	cmp    %ecx,%edi
59fa22:	0f 82 35 01 00 00    	jb     0x59fb5d
59fa28:	8b 6c 24 18          	mov    0x18(%esp),%ebp
59fa2c:	8b c3                	mov    %ebx,%eax
59fa2e:	89 44 24 28          	mov    %eax,0x28(%esp)
59fa32:	03 d9                	add    %ecx,%ebx
59fa34:	33 c0                	xor    %eax,%eax
59fa36:	89 4c 24 2c          	mov    %ecx,0x2c(%esp)
59fa3a:	2b f9                	sub    %ecx,%edi
59fa3c:	85 ed                	test   %ebp,%ebp
59fa3e:	0f 94 c0             	sete   %al
59fa41:	50                   	push   %eax
59fa42:	6a 00                	push   $0x0
59fa44:	8d 44 24 1c          	lea    0x1c(%esp),%eax
59fa48:	50                   	push   %eax
59fa49:	68 00 10 00 00       	push   $0x1000
59fa4e:	8d 44 24 38          	lea    0x38(%esp),%eax
59fa52:	50                   	push   %eax
59fa53:	56                   	push   %esi
59fa54:	e8 a7 5a 00 00       	call   0x5a5500
59fa59:	83 c4 18             	add    $0x18,%esp
59fa5c:	85 c0                	test   %eax,%eax
59fa5e:	0f 84 da 00 00 00    	je     0x59fb3e
59fa64:	33 c0                	xor    %eax,%eax
59fa66:	85 ff                	test   %edi,%edi
59fa68:	0f 94 c0             	sete   %al
59fa6b:	50                   	push   %eax