5f87b9:	83 c4 0c             	add    $0xc,%esp
5f87bc:	85 c0                	test   %eax,%eax
5f87be:	75 63                	jne    0x5f8823
5f87c0:	8d 04 3f             	lea    (%edi,%edi,1),%eax
5f87c3:	56                   	push   %esi
5f87c4:	50                   	push   %eax
5f87c5:	e8 2b d6 00 00       	call   0x605df5
5f87ca:	8b f0                	mov    %eax,%esi
5f87cc:	59                   	pop    %ecx
5f87cd:	85 f6                	test   %esi,%esi
5f87cf:	74 4a                	je     0x5f881b
5f87d1:	ff 75 1c             	push   0x1c(%ebp)
5f87d4:	ff 75 18             	push   0x18(%ebp)
5f87d7:	ff 75 14             	push   0x14(%ebp)
5f87da:	ff 75 dc             	push   -0x24(%ebp)
5f87dd:	57                   	push   %edi
5f87de:	56                   	push   %esi
5f87df:	e8 82 5e 00 00       	call   0x5fe666
5f87e4:	83 c4 18             	add    $0x18,%esp
5f87e7:	85 c0                	test   %eax,%eax
5f87e9:	74 30                	je     0x5f881b
5f87eb:	8b 45 08             	mov    0x8(%ebp),%eax
5f87ee:	ff 75 fc             	push   -0x4(%ebp)
5f87f1:	89 45 bc             	mov    %eax,-0x44(%ebp)
5f87f4:	89 45 c4             	mov    %eax,-0x3c(%ebp)
5f87f7:	8d 45 bc             	lea    -0x44(%ebp),%eax
5f87fa:	50                   	push   %eax
5f87fb:	56                   	push   %esi
5f87fc:	89 7d c0             	mov    %edi,-0x40(%ebp)
5f87ff:	89 7d c8             	mov    %edi,-0x38(%ebp)
5f8802:	89 5d cc             	mov    %ebx,-0x34(%ebp)
5f8805:	88 5d d0             	mov    %bl,-0x30(%ebp)
5f8808:	e8 95 fc ff ff       	call   0x5f84a2
5f880d:	83 c4 0c             	add    $0xc,%esp
5f8810:	8b d8                	mov    %eax,%ebx
5f8812:	f7 db                	neg    %ebx
5f8814:	1b db                	sbb    %ebx,%ebx
5f8816:	f7 d3                	not    %ebx
5f8818:	23 5d cc             	and    -0x34(%ebp),%ebx
5f881b:	56                   	push   %esi
5f881c:	e8 07 c0 00 00       	call   0x604828
5f8821:	59                   	pop    %ecx
5f8822:	5e                   	pop    %esi
5f8823:	80 7d e8 00          	cmpb   $0x0,-0x18(%ebp)
5f8827:	74 09                	je     0x5f8832
5f8829:	ff 75 dc             	push   -0x24(%ebp)
5f882c:	e8 f7 bf 00 00       	call   0x604828
5f8831:	59                   	pop    %ecx
5f8832:	80 7d f8 00          	cmpb   $0x0,-0x8(%ebp)
5f8836:	74 0a                	je     0x5f8842
5f8838:	8b 4d ec             	mov    -0x14(%ebp),%ecx
5f883b:	83 a1 50 03 00 00 fd 	andl   $0xfffffffd,0x350(%ecx)
5f8842:	5f                   	pop    %edi
5f8843:	8b c3                	mov    %ebx,%eax
5f8845:	5b                   	pop    %ebx
5f8846:	c9                   	leave
5f8847:	c3                   	ret
5f8848:	8b ff                	mov    %edi,%edi
5f884a:	55                   	push   %ebp
5f884b:	8b ec                	mov    %esp,%ebp
5f884d:	51                   	push   %ecx
5f884e:	51                   	push   %ecx
5f884f:	56                   	push   %esi
5f8850:	8b 75 08             	mov    0x8(%ebp),%esi
5f8853:	85 f6                	test   %esi,%esi
5f8855:	75 15                	jne    0x5f886c
5f8857:	e8 9d 47 ff ff       	call   0x5ecff9
5f885c:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
5f8862:	e8 b8 46 ff ff       	call   0x5ecf1f
5f8867:	33 c0                	xor    %eax,%eax
5f8869:	5e                   	pop    %esi
5f886a:	c9                   	leave
5f886b:	c3                   	ret
5f886c:	83 7d 0c 01          	cmpl   $0x1,0xc(%ebp)
5f8870:	75 f5                	jne    0x5f8867
5f8872:	83 65 f8 00          	andl   $0x0,-0x8(%ebp)
5f8876:	8d 45 f8             	lea    -0x8(%ebp),%eax
5f8879:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
5f887d:	50                   	push   %eax
5f887e:	e8 02 ee 00 00       	call   0x607685
5f8883:	8b 45 f8             	mov    -0x8(%ebp),%eax
5f8886:	8b 4d fc             	mov    -0x4(%ebp),%ecx
5f8889:	2d 00 80 3e d5       	sub    $0xd53e8000,%eax
5f888e:	81 d9 de b1 9d 01    	sbb    $0x19db1de,%ecx
5f8894:	81 f9 78 f0 83 04    	cmp    $0x483f078,%ecx
5f889a:	7f cb                	jg     0x5f8867
5f889c:	7c 07                	jl     0x5f88a5
5f889e:	3d 00 80 47 dd       	cmp    $0xdd478000,%eax
5f88a3:	73 c2                	jae    0x5f8867
5f88a5:	53                   	push   %ebx
5f88a6:	53                   	push   %ebx
5f88a7:	6a 00                	push   $0x0
5f88a9:	68 80 96 98 00       	push   $0x989680
5f88ae:	51                   	push   %ecx
5f88af:	50                   	push   %eax
5f88b0:	e8 3b 98 fe ff       	call   0x5e20f0
5f88b5:	89 5d fc             	mov    %ebx,-0x4(%ebp)
5f88b8:	5b                   	pop    %ebx
5f88b9:	90                   	nop
5f88ba:	6b c9 64             	imul   $0x64,%ecx,%ecx
5f88bd:	89 06                	mov    %eax,(%esi)
5f88bf:	33 c0                	xor    %eax,%eax
5f88c1:	89 56 04             	mov    %edx,0x4(%esi)
5f88c4:	40                   	inc    %eax
5f88c5:	5b                   	pop    %ebx
5f88c6:	89 4e 08             	mov    %ecx,0x8(%esi)
5f88c9:	eb 9e                	jmp    0x5f8869
5f88cb:	8b ff                	mov    %edi,%edi
5f88cd:	55                   	push   %ebp
5f88ce:	8b ec                	mov    %esp,%ebp
5f88d0:	83 ec 10             	sub    $0x10,%esp
5f88d3:	33 c0                	xor    %eax,%eax
5f88d5:	57                   	push   %edi
5f88d6:	8d 7d f0             	lea    -0x10(%ebp),%edi
5f88d9:	ab                   	stos   %eax,%es:(%edi)
5f88da:	6a 01                	push   $0x1
5f88dc:	ab                   	stos   %eax,%es:(%edi)
5f88dd:	ab                   	stos   %eax,%es:(%edi)
5f88de:	ab                   	stos   %eax,%es:(%edi)
5f88df:	8d 45 f0             	lea    -0x10(%ebp),%eax
5f88e2:	50                   	push   %eax
5f88e3:	e8 60 ff ff ff       	call   0x5f8848
5f88e8:	59                   	pop    %ecx
5f88e9:	59                   	pop    %ecx
5f88ea:	5f                   	pop    %edi
5f88eb:	83 f8 01             	cmp    $0x1,%eax
5f88ee:	74 07                	je     0x5f88f7
5f88f0:	83 c8 ff             	or     $0xffffffff,%eax
5f88f3:	8b d0                	mov    %eax,%edx
5f88f5:	eb 06                	jmp    0x5f88fd
5f88f7:	8b 55 f4             	mov    -0xc(%ebp),%edx
5f88fa:	8b 45 f0             	mov    -0x10(%ebp),%eax
5f88fd:	8b 4d 08             	mov    0x8(%ebp),%ecx
5f8900:	85 c9                	test   %ecx,%ecx
5f8902:	74 05                	je     0x5f8909
5f8904:	89 01                	mov    %eax,(%ecx)
5f8906:	89 51 04             	mov    %edx,0x4(%ecx)
5f8909:	c9                   	leave
5f890a:	c3                   	ret
5f890b:	8b ff                	mov    %edi,%edi
5f890d:	55                   	push   %ebp
5f890e:	8b ec                	mov    %esp,%ebp
5f8910:	8b 55 08             	mov    0x8(%ebp),%edx
5f8913:	56                   	push   %esi
5f8914:	85 d2                	test   %edx,%edx
5f8916:	74 11                	je     0x5f8929
5f8918:	8b 4d 0c             	mov    0xc(%ebp),%ecx
5f891b:	85 c9                	test   %ecx,%ecx
5f891d:	74 0a                	je     0x5f8929
5f891f:	8b 75 10             	mov    0x10(%ebp),%esi
5f8922:	85 f6                	test   %esi,%esi
5f8924:	75 17                	jne    0x5f893d
5f8926:	c6 02 00             	movb   $0x0,(%edx)
5f8929:	e8 cb 46 ff ff       	call   0x5ecff9
5f892e:	6a 16                	push   $0x16
5f8930:	5e                   	pop    %esi
5f8931:	89 30                	mov    %esi,(%eax)
5f8933:	e8 e7 45 ff ff       	call   0x5ecf1f
5f8938:	8b c6                	mov    %esi,%eax
5f893a:	5e                   	pop    %esi
5f893b:	5d                   	pop    %ebp
5f893c:	c3                   	ret
5f893d:	57                   	push   %edi
5f893e:	8b fa                	mov    %edx,%edi
5f8940:	2b f2                	sub    %edx,%esi
5f8942:	8a 04 3e             	mov    (%esi,%edi,1),%al
5f8945:	88 07                	mov    %al,(%edi)
5f8947:	47                   	inc    %edi
5f8948:	84 c0                	test   %al,%al
5f894a:	74 05                	je     0x5f8951
5f894c:	83 e9 01             	sub    $0x1,%ecx
5f894f:	75 f1                	jne    0x5f8942
5f8951:	5f                   	pop    %edi
5f8952:	85 c9                	test   %ecx,%ecx
5f8954:	75 0b                	jne    0x5f8961
5f8956:	88 0a                	mov    %cl,(%edx)
5f8958:	e8 9c 46 ff ff       	call   0x5ecff9
5f895d:	6a 22                	push   $0x22
5f895f:	eb cf                	jmp    0x5f8930
5f8961:	33 f6                	xor    %esi,%esi
5f8963:	eb d3                	jmp    0x5f8938
5f8965:	8b ff                	mov    %edi,%edi
5f8967:	55                   	push   %ebp
5f8968:	8b ec                	mov    %esp,%ebp
5f896a:	8b 4d 08             	mov    0x8(%ebp),%ecx
5f896d:	53                   	push   %ebx
5f896e:	8b 5d 10             	mov    0x10(%ebp),%ebx
5f8971:	56                   	push   %esi
5f8972:	8b 75 14             	mov    0x14(%ebp),%esi
5f8975:	85 f6                	test   %esi,%esi
5f8977:	75 1e                	jne    0x5f8997
5f8979:	85 c9                	test   %ecx,%ecx
5f897b:	75 1e                	jne    0x5f899b
5f897d:	39 75 0c             	cmp    %esi,0xc(%ebp)
5f8980:	74 27                	je     0x5f89a9
5f8982:	e8 72 46 ff ff       	call   0x5ecff9
5f8987:	6a 16                	push   $0x16
5f8989:	5e                   	pop    %esi
5f898a:	89 30                	mov    %esi,(%eax)
5f898c:	e8 8e 45 ff ff       	call   0x5ecf1f
5f8991:	8b c6                	mov    %esi,%eax
5f8993:	5e                   	pop    %esi
5f8994:	5b                   	pop    %ebx
5f8995:	5d                   	pop    %ebp
5f8996:	c3                   	ret
5f8997:	85 c9                	test   %ecx,%ecx
5f8999:	74 e7                	je     0x5f8982
5f899b:	8b 45 0c             	mov    0xc(%ebp),%eax
5f899e:	85 c0                	test   %eax,%eax
5f89a0:	74 e0                	je     0x5f8982
5f89a2:	85 f6                	test   %esi,%esi
5f89a4:	75 07                	jne    0x5f89ad
5f89a6:	c6 01 00             	movb   $0x0,(%ecx)
5f89a9:	33 c0                	xor    %eax,%eax
5f89ab:	eb e6                	jmp    0x5f8993
5f89ad:	85 db                	test   %ebx,%ebx
5f89af:	75 04                	jne    0x5f89b5
5f89b1:	88 19                	mov    %bl,(%ecx)
5f89b3:	eb cd                	jmp    0x5f8982
5f89b5:	2b d9                	sub    %ecx,%ebx
5f89b7:	8b d1                	mov    %ecx,%edx
5f89b9:	57                   	push   %edi
5f89ba:	8b f8                	mov    %eax,%edi
5f89bc:	83 fe ff             	cmp    $0xffffffff,%esi
5f89bf:	75 11                	jne    0x5f89d2
5f89c1:	8a 04 13             	mov    (%ebx,%edx,1),%al
5f89c4:	88 02                	mov    %al,(%edx)
5f89c6:	42                   	inc    %edx
5f89c7:	84 c0                	test   %al,%al
5f89c9:	74 27                	je     0x5f89f2
5f89cb:	83 ef 01             	sub    $0x1,%edi
5f89ce:	75 f1                	jne    0x5f89c1
5f89d0:	eb 20                	jmp    0x5f89f2
5f89d2:	8b ce                	mov    %esi,%ecx
5f89d4:	8a 04 13             	mov    (%ebx,%edx,1),%al
5f89d7:	88 02                	mov    %al,(%edx)
5f89d9:	42                   	inc    %edx
5f89da:	84 c0                	test   %al,%al
5f89dc:	74 0a                	je     0x5f89e8
5f89de:	83 ef 01             	sub    $0x1,%edi
5f89e1:	74 05                	je     0x5f89e8
5f89e3:	83 e9 01             	sub    $0x1,%ecx
5f89e6:	75 ec                	jne    0x5f89d4
5f89e8:	85 c9                	test   %ecx,%ecx
5f89ea:	8b 4d 08             	mov    0x8(%ebp),%ecx
5f89ed:	75 03                	jne    0x5f89f2
5f89ef:	c6 02 00             	movb   $0x0,(%edx)
5f89f2:	85 ff                	test   %edi,%edi
5f89f4:	5f                   	pop    %edi
5f89f5:	75 b2                	jne    0x5f89a9
5f89f7:	83 fe ff             	cmp    $0xffffffff,%esi
5f89fa:	75 0d                	jne    0x5f8a09
5f89fc:	8b 45 0c             	mov    0xc(%ebp),%eax
5f89ff:	6a 50                	push   $0x50
5f8a01:	c6 44 01 ff 00       	movb   $0x0,-0x1(%ecx,%eax,1)
5f8a06:	58                   	pop    %eax
5f8a07:	eb 8a                	jmp    0x5f8993
5f8a09:	c6 01 00             	movb   $0x0,(%ecx)
5f8a0c:	e8 e8 45 ff ff       	call   0x5ecff9
5f8a11:	6a 22                	push   $0x22
5f8a13:	e9 71 ff ff ff       	jmp    0x5f8989
5f8a18:	8b ff                	mov    %edi,%edi
5f8a1a:	55                   	push   %ebp
5f8a1b:	8b ec                	mov    %esp,%ebp
5f8a1d:	5d                   	pop    %ebp
5f8a1e:	e9 42 ff ff ff       	jmp    0x5f8965
5f8a23:	6a 10                	push   $0x10
5f8a25:	68 30 1b 70 00       	push   $0x701b30
5f8a2a:	e8 e1 9a fe ff       	call   0x5e2510
5f8a2f:	8b 75 08             	mov    0x8(%ebp),%esi
5f8a32:	85 f6                	test   %esi,%esi
5f8a34:	75 14                	jne    0x5f8a4a
5f8a36:	e8 be 45 ff ff       	call   0x5ecff9
5f8a3b:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
5f8a41:	e8 d9 44 ff ff       	call   0x5ecf1f
5f8a46:	33 c0                	xor    %eax,%eax
5f8a48:	eb 66                	jmp    0x5f8ab0
5f8a4a:	8b 7d 0c             	mov    0xc(%ebp),%edi
5f8a4d:	85 ff                	test   %edi,%edi
5f8a4f:	74 e5                	je     0x5f8a36
5f8a51:	80 3f 00             	cmpb   $0x0,(%edi)
5f8a54:	74 e0                	je     0x5f8a36
5f8a56:	80 3e 00             	cmpb   $0x0,(%esi)
5f8a59:	75 0d                	jne    0x5f8a68
5f8a5b:	e8 99 45 ff ff       	call   0x5ecff9
5f8a60:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
5f8a66:	eb de                	jmp    0x5f8a46
5f8a68:	8d 45 e4             	lea    -0x1c(%ebp),%eax
5f8a6b:	50                   	push   %eax
5f8a6c:	e8 a6 bf 00 00       	call   0x604a17
5f8a71:	59                   	pop    %ecx
5f8a72:	83 7d e4 00          	cmpl   $0x0,-0x1c(%ebp)
5f8a76:	75 0d                	jne    0x5f8a85
5f8a78:	e8 7c 45 ff ff       	call   0x5ecff9
5f8a7d:	c7 00 18 00 00 00    	movl   $0x18,(%eax)
5f8a83:	eb c1                	jmp    0x5f8a46
5f8a85:	83 65 e0 00          	andl   $0x0,-0x20(%ebp)
5f8a89:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
5f8a8d:	ff 75 e4             	push   -0x1c(%ebp)
5f8a90:	ff 75 10             	push   0x10(%ebp)
5f8a93:	57                   	push   %edi
5f8a94:	56                   	push   %esi
5f8a95:	e8 6d 03 01 00       	call   0x608e07
5f8a9a:	83 c4 10             	add    $0x10,%esp
5f8a9d:	8b f0                	mov    %eax,%esi
5f8a9f:	89 75 e0             	mov    %esi,-0x20(%ebp)
5f8aa2:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
5f8aa9:	e8 15 00 00 00       	call   0x5f8ac3
5f8aae:	8b c6                	mov    %esi,%eax
5f8ab0:	8b 4d f0             	mov    -0x10(%ebp),%ecx
5f8ab3:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
5f8aba:	59                   	pop    %ecx
5f8abb:	5f                   	pop    %edi
5f8abc:	5e                   	pop    %esi
5f8abd:	5b                   	pop    %ebx
5f8abe:	c9                   	leave
5f8abf:	c3                   	ret
5f8ac0:	8b 75 e0             	mov    -0x20(%ebp),%esi
5f8ac3:	85 f6                	test   %esi,%esi
5f8ac5:	75 09                	jne    0x5f8ad0
5f8ac7:	ff 75 e4             	push   -0x1c(%ebp)
5f8aca:	e8 b1 bf 00 00       	call   0x604a80
5f8acf:	59                   	pop    %ecx
5f8ad0:	ff 75 e4             	push   -0x1c(%ebp)
5f8ad3:	e8 de 36 00 00       	call   0x5fc1b6
5f8ad8:	59                   	pop    %ecx
5f8ad9:	c3                   	ret
5f8ada:	6a 10                	push   $0x10
5f8adc:	68 50 1b 70 00       	push   $0x701b50
5f8ae1:	e8 2a 9a fe ff       	call   0x5e2510
5f8ae6:	8b 75 08             	mov    0x8(%ebp),%esi
5f8ae9:	85 f6                	test   %esi,%esi
5f8aeb:	75 14                	jne    0x5f8b01
5f8aed:	e8 07 45 ff ff       	call   0x5ecff9
5f8af2:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
5f8af8:	e8 22 44 ff ff       	call   0x5ecf1f
5f8afd:	33 c0                	xor    %eax,%eax
5f8aff:	eb 65                	jmp    0x5f8b66
5f8b01:	8b 7d 0c             	mov    0xc(%ebp),%edi
5f8b04:	85 ff                	test   %edi,%edi
5f8b06:	74 e5                	je     0x5f8aed
5f8b08:	33 db                	xor    %ebx,%ebx
5f8b0a:	66 39 1f             	cmp    %bx,(%edi)
5f8b0d:	74 de                	je     0x5f8aed
5f8b0f:	66 39 1e             	cmp    %bx,(%esi)
5f8b12:	75 0d                	jne    0x5f8b21
5f8b14:	e8 e0 44 ff ff       	call   0x5ecff9
5f8b19:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
5f8b1f:	eb dc                	jmp    0x5f8afd
5f8b21:	8d 45 e4             	lea    -0x1c(%ebp),%eax