5008b3:	e8 a8 dd ff ff       	call   0x4fe660
5008b8:	53                   	push   %ebx
5008b9:	ff 77 0c             	push   0xc(%edi)
5008bc:	8b f0                	mov    %eax,%esi
5008be:	e8 9d dd ff ff       	call   0x4fe660
5008c3:	03 45 ec             	add    -0x14(%ebp),%eax
5008c6:	83 c4 10             	add    $0x10,%esp
5008c9:	03 c6                	add    %esi,%eax
5008cb:	99                   	cltd
5008cc:	52                   	push   %edx
5008cd:	50                   	push   %eax
5008ce:	ff 75 f4             	push   -0xc(%ebp)
5008d1:	e8 0a 0b 02 00       	call   0x5213e0
5008d6:	83 c4 0c             	add    $0xc,%esp
5008d9:	c7 45 e4 00 00 00 00 	movl   $0x0,-0x1c(%ebp)
5008e0:	8b f0                	mov    %eax,%esi
5008e2:	89 75 f8             	mov    %esi,-0x8(%ebp)
5008e5:	85 f6                	test   %esi,%esi
5008e7:	0f 84 1a 02 00 00    	je     0x500b07
5008ed:	85 db                	test   %ebx,%ebx
5008ef:	74 28                	je     0x500919
5008f1:	80 3f af             	cmpb   $0xaf,(%edi)
5008f4:	74 23                	je     0x500919
5008f6:	f7 47 04 00 00 00 01 	testl  $0x1000000,0x4(%edi)
5008fd:	75 1a                	jne    0x500919
5008ff:	83 7f 0c 00          	cmpl   $0x0,0xc(%edi)
500903:	75 0d                	jne    0x500912
500905:	83 7f 14 00          	cmpl   $0x0,0x14(%edi)
500909:	75 07                	jne    0x500912
50090b:	b8 0c 40 00 00       	mov    $0x400c,%eax
500910:	eb 0c                	jmp    0x50091e
500912:	b8 1c 20 00 00       	mov    $0x201c,%eax
500917:	eb 05                	jmp    0x50091e
500919:	b8 34 00 00 00       	mov    $0x34,%eax
50091e:	8b 5f 04             	mov    0x4(%edi),%ebx
500921:	89 45 e8             	mov    %eax,-0x18(%ebp)
500924:	25 ff 0f 00 00       	and    $0xfff,%eax
500929:	89 45 ec             	mov    %eax,-0x14(%ebp)
50092c:	f7 c3 00 04 00 00    	test   $0x400,%ebx
500932:	75 26                	jne    0x50095a
500934:	8b 4f 08             	mov    0x8(%edi),%ecx
500937:	85 c9                	test   %ecx,%ecx
500939:	74 1f                	je     0x50095a
50093b:	8d 51 01             	lea    0x1(%ecx),%edx
50093e:	66 90                	xchg   %ax,%ax
500940:	8a 01                	mov    (%ecx),%al
500942:	41                   	inc    %ecx
500943:	84 c0                	test   %al,%al
500945:	75 f9                	jne    0x500940
500947:	2b ca                	sub    %edx,%ecx
500949:	81 e1 ff ff ff 3f    	and    $0x3fffffff,%ecx
50094f:	8d 41 01             	lea    0x1(%ecx),%eax
500952:	89 45 e0             	mov    %eax,-0x20(%ebp)
500955:	8b 45 ec             	mov    -0x14(%ebp),%eax
500958:	eb 07                	jmp    0x500961
50095a:	c7 45 e0 00 00 00 00 	movl   $0x0,-0x20(%ebp)
500961:	83 7d f0 00          	cmpl   $0x0,-0x10(%ebp)
500965:	74 0a                	je     0x500971
500967:	50                   	push   %eax
500968:	57                   	push   %edi
500969:	56                   	push   %esi
50096a:	e8 91 25 0e 00       	call   0x5e2f00
50096f:	eb 44                	jmp    0x5009b5
500971:	f7 c3 00 40 00 00    	test   $0x4000,%ebx
500977:	74 07                	je     0x500980
500979:	bb 0c 00 00 00       	mov    $0xc,%ebx
50097e:	eb 10                	jmp    0x500990
500980:	81 e3 00 20 00 00    	and    $0x2000,%ebx
500986:	f7 db                	neg    %ebx
500988:	1b db                	sbb    %ebx,%ebx
50098a:	83 e3 e8             	and    $0xffffffe8,%ebx
50098d:	83 c3 34             	add    $0x34,%ebx
500990:	53                   	push   %ebx
500991:	57                   	push   %edi
500992:	56                   	push   %esi
500993:	e8 68 25 0e 00       	call   0x5e2f00
500998:	83 c4 0c             	add    $0xc,%esp
50099b:	83 fb 34             	cmp    $0x34,%ebx
50099e:	73 18                	jae    0x5009b8
5009a0:	b8 34 00 00 00       	mov    $0x34,%eax
5009a5:	2b c3                	sub    %ebx,%eax
5009a7:	50                   	push   %eax
5009a8:	8b 45 f8             	mov    -0x8(%ebp),%eax
5009ab:	03 c3                	add    %ebx,%eax
5009ad:	6a 00                	push   $0x0
5009af:	50                   	push   %eax
5009b0:	e8 4b 30 0e 00       	call   0x5e3a00
5009b5:	83 c4 0c             	add    $0xc,%esp
5009b8:	8b 46 04             	mov    0x4(%esi),%eax
5009bb:	8b 4d e8             	mov    -0x18(%ebp),%ecx
5009be:	25 ff 9f fe f7       	and    $0xf7fe9fff,%eax
5009c3:	81 e1 00 60 00 00    	and    $0x6000,%ecx
5009c9:	0b c8                	or     %eax,%ecx
5009cb:	0b 4d e4             	or     -0x1c(%ebp),%ecx
5009ce:	89 4e 04             	mov    %ecx,0x4(%esi)
5009d1:	8b 4d e0             	mov    -0x20(%ebp),%ecx
5009d4:	85 c9                	test   %ecx,%ecx
5009d6:	74 16                	je     0x5009ee
5009d8:	8b 45 f8             	mov    -0x8(%ebp),%eax
5009db:	03 45 ec             	add    -0x14(%ebp),%eax
5009de:	51                   	push   %ecx
5009df:	89 46 08             	mov    %eax,0x8(%esi)
5009e2:	ff 77 08             	push   0x8(%edi)
5009e5:	50                   	push   %eax
5009e6:	e8 15 25 0e 00       	call   0x5e2f00
5009eb:	83 c4 0c             	add    $0xc,%esp
5009ee:	8b 46 04             	mov    0x4(%esi),%eax
5009f1:	8b 4f 04             	mov    0x4(%edi),%ecx
5009f4:	0b c1                	or     %ecx,%eax
5009f6:	8b 5d f0             	mov    -0x10(%ebp),%ebx
5009f9:	a9 00 40 80 00       	test   $0x804000,%eax
5009fe:	75 21                	jne    0x500a21
500a00:	53                   	push   %ebx
500a01:	ff 77 14             	push   0x14(%edi)
500a04:	ff 75 f4             	push   -0xc(%ebp)
500a07:	f7 c1 00 08 00 00    	test   $0x800,%ecx
500a0d:	74 07                	je     0x500a16
500a0f:	e8 cc b7 03 00       	call   0x53c1e0
500a14:	eb 05                	jmp    0x500a1b
500a16:	e8 a5 6e 02 00       	call   0x5278c0
500a1b:	89 46 14             	mov    %eax,0x14(%esi)
500a1e:	83 c4 0c             	add    $0xc,%esp
500a21:	f7 46 04 00 60 00 01 	testl  $0x1006000,0x4(%esi)
500a28:	0f 84 8f 00 00 00    	je     0x500abd
500a2e:	53                   	push   %ebx
500a2f:	57                   	push   %edi
500a30:	e8 bb db ff ff       	call   0x4fe5f0
500a35:	01 45 f8             	add    %eax,-0x8(%ebp)
500a38:	83 c4 08             	add    $0x8,%esp
500a3b:	f7 46 04 00 40 80 00 	testl  $0x804000,0x4(%esi)
500a42:	75 3f                	jne    0x500a83
500a44:	8b 47 0c             	mov    0xc(%edi),%eax
500a47:	8b 5d f4             	mov    -0xc(%ebp),%ebx
500a4a:	85 c0                	test   %eax,%eax
500a4c:	74 12                	je     0x500a60
500a4e:	8d 4d f8             	lea    -0x8(%ebp),%ecx
500a51:	51                   	push   %ecx
500a52:	6a 01                	push   $0x1
500a54:	50                   	push   %eax
500a55:	53                   	push   %ebx
500a56:	e8 05 fe ff ff       	call   0x500860
500a5b:	83 c4 10             	add    $0x10,%esp
500a5e:	eb 02                	jmp    0x500a62
500a60:	33 c0                	xor    %eax,%eax
500a62:	89 46 0c             	mov    %eax,0xc(%esi)
500a65:	8b 47 10             	mov    0x10(%edi),%eax
500a68:	85 c0                	test   %eax,%eax
500a6a:	74 12                	je     0x500a7e
500a6c:	8d 4d f8             	lea    -0x8(%ebp),%ecx
500a6f:	51                   	push   %ecx
500a70:	6a 01                	push   $0x1
500a72:	50                   	push   %eax
500a73:	53                   	push   %ebx
500a74:	e8 e7 fd ff ff       	call   0x500860
500a79:	83 c4 10             	add    $0x10,%esp
500a7c:	eb 02                	jmp    0x500a80
500a7e:	33 c0                	xor    %eax,%eax
500a80:	89 46 10             	mov    %eax,0x10(%esi)
500a83:	f7 47 04 00 00 00 01 	testl  $0x1000000,0x4(%edi)
500a8a:	74 12                	je     0x500a9e
500a8c:	ff 77 2c             	push   0x2c(%edi)
500a8f:	56                   	push   %esi
500a90:	ff 75 f4             	push   -0xc(%ebp)
500a93:	e8 18 51 05 00       	call   0x555bb0
500a98:	83 c4 0c             	add    $0xc,%esp
500a9b:	89 46 2c             	mov    %eax,0x2c(%esi)
500a9e:	8b 45 dc             	mov    -0x24(%ebp),%eax
500aa1:	85 c0                	test   %eax,%eax
500aa3:	74 62                	je     0x500b07
500aa5:	8b 4d f8             	mov    -0x8(%ebp),%ecx
500aa8:	5f                   	pop    %edi
500aa9:	89 08                	mov    %ecx,(%eax)
500aab:	8b c6                	mov    %esi,%eax
500aad:	5e                   	pop    %esi
500aae:	5b                   	pop    %ebx
500aaf:	8b 4d fc             	mov    -0x4(%ebp),%ecx
500ab2:	33 cd                	xor    %ebp,%ecx
500ab4:	e8 21 0a 0e 00       	call   0x5e14da
500ab9:	8b e5                	mov    %ebp,%esp
500abb:	5d                   	pop    %ebp
500abc:	c3                   	ret
500abd:	f7 47 04 00 40 80 00 	testl  $0x804000,0x4(%edi)
500ac4:	75 41                	jne    0x500b07
500ac6:	80 3e af             	cmpb   $0xaf,(%esi)
500ac9:	8b 47 0c             	mov    0xc(%edi),%eax
500acc:	74 18                	je     0x500ae6
500ace:	85 c0                	test   %eax,%eax
500ad0:	74 12                	je     0x500ae4
500ad2:	6a 00                	push   $0x0
500ad4:	6a 00                	push   $0x0
500ad6:	50                   	push   %eax
500ad7:	ff 75 f4             	push   -0xc(%ebp)
500ada:	e8 81 fd ff ff       	call   0x500860
500adf:	83 c4 10             	add    $0x10,%esp
500ae2:	eb 02                	jmp    0x500ae6
500ae4:	33 c0                	xor    %eax,%eax
500ae6:	89 46 0c             	mov    %eax,0xc(%esi)
500ae9:	8b 47 10             	mov    0x10(%edi),%eax
500aec:	85 c0                	test   %eax,%eax
500aee:	74 12                	je     0x500b02
500af0:	6a 00                	push   $0x0
500af2:	6a 00                	push   $0x0
500af4:	50                   	push   %eax
500af5:	ff 75 f4             	push   -0xc(%ebp)
500af8:	e8 63 fd ff ff       	call   0x500860
500afd:	83 c4 10             	add    $0x10,%esp
500b00:	eb 02                	jmp    0x500b04
500b02:	33 c0                	xor    %eax,%eax
500b04:	89 46 10             	mov    %eax,0x10(%esi)
500b07:	8b 4d fc             	mov    -0x4(%ebp),%ecx
500b0a:	8b c6                	mov    %esi,%eax
500b0c:	5f                   	pop    %edi
500b0d:	5e                   	pop    %esi
500b0e:	33 cd                	xor    %ebp,%ecx
500b10:	5b                   	pop    %ebx
500b11:	e8 c4 09 0e 00       	call   0x5e14da
500b16:	8b e5                	mov    %ebp,%esp
500b18:	5d                   	pop    %ebp
500b19:	c3                   	ret
500b1a:	cc                   	int3
500b1b:	cc                   	int3
500b1c:	cc                   	int3
500b1d:	cc                   	int3
500b1e:	cc                   	int3
500b1f:	cc                   	int3
500b20:	55                   	push   %ebp
500b21:	8b ec                	mov    %esp,%ebp
500b23:	8b 4d 0c             	mov    0xc(%ebp),%ecx
500b26:	83 ec 08             	sub    $0x8,%esp
500b29:	53                   	push   %ebx
500b2a:	56                   	push   %esi
500b2b:	8b 71 0c             	mov    0xc(%ecx),%esi
500b2e:	8a 06                	mov    (%esi),%al
500b30:	3c ad                	cmp    $0xad,%al
500b32:	75 03                	jne    0x500b37
500b34:	8a 46 02             	mov    0x2(%esi),%al
500b37:	3c ae                	cmp    $0xae,%al
500b39:	75 07                	jne    0x500b42
500b3b:	8b 46 14             	mov    0x14(%esi),%eax
500b3e:	8b 18                	mov    (%eax),%ebx
500b40:	eb 13                	jmp    0x500b55
500b42:	3c 88                	cmp    $0x88,%al
500b44:	75 0a                	jne    0x500b50
500b46:	8b 46 14             	mov    0x14(%esi),%eax
500b49:	8b 40 1c             	mov    0x1c(%eax),%eax
500b4c:	8b 18                	mov    (%eax),%ebx
500b4e:	eb 05                	jmp    0x500b55
500b50:	bb 01 00 00 00       	mov    $0x1,%ebx
500b55:	f7 41 04 00 08 00 00 	testl  $0x800,0x4(%ecx)
500b5c:	89 5d fc             	mov    %ebx,-0x4(%ebp)
500b5f:	74 05                	je     0x500b66
500b61:	8b 41 14             	mov    0x14(%ecx),%eax
500b64:	eb 02                	jmp    0x500b68
500b66:	33 c0                	xor    %eax,%eax
500b68:	8b 4d 08             	mov    0x8(%ebp),%ecx
500b6b:	89 45 f8             	mov    %eax,-0x8(%ebp)
500b6e:	8d 43 01             	lea    0x1(%ebx),%eax
500b71:	99                   	cltd
500b72:	52                   	push   %edx
500b73:	8b 09                	mov    (%ecx),%ecx
500b75:	50                   	push   %eax
500b76:	85 c9                	test   %ecx,%ecx
500b78:	74 0b                	je     0x500b85
500b7a:	51                   	push   %ecx
500b7b:	e8 60 08 02 00       	call   0x5213e0
500b80:	83 c4 0c             	add    $0xc,%esp
500b83:	eb 08                	jmp    0x500b8d
500b85:	e8 d6 03 03 00       	call   0x530f60
500b8a:	83 c4 08             	add    $0x8,%esp
500b8d:	89 45 0c             	mov    %eax,0xc(%ebp)
500b90:	85 c0                	test   %eax,%eax
500b92:	0f 84 df 00 00 00    	je     0x500c77
500b98:	57                   	push   %edi
500b99:	33 ff                	xor    %edi,%edi
500b9b:	85 db                	test   %ebx,%ebx
500b9d:	0f 8e cf 00 00 00    	jle    0x500c72
500ba3:	33 d2                	xor    %edx,%edx
500ba5:	89 55 08             	mov    %edx,0x8(%ebp)
500ba8:	8a 1e                	mov    (%esi),%bl
500baa:	8a c3                	mov    %bl,%al
500bac:	3c ad                	cmp    $0xad,%al
500bae:	75 03                	jne    0x500bb3
500bb0:	8a 46 02             	mov    0x2(%esi),%al
500bb3:	3c ae                	cmp    $0xae,%al
500bb5:	75 07                	jne    0x500bbe
500bb7:	8b 4e 14             	mov    0x14(%esi),%ecx
500bba:	8b 01                	mov    (%ecx),%eax
500bbc:	eb 0c                	jmp    0x500bca
500bbe:	3c 88                	cmp    $0x88,%al
500bc0:	75 27                	jne    0x500be9
500bc2:	8b 4e 14             	mov    0x14(%esi),%ecx
500bc5:	8b 41 1c             	mov    0x1c(%ecx),%eax
500bc8:	8b 00                	mov    (%eax),%eax
500bca:	83 f8 01             	cmp    $0x1,%eax
500bcd:	7e 1a                	jle    0x500be9
500bcf:	80 fb 88             	cmp    $0x88,%bl
500bd2:	74 0c                	je     0x500be0
500bd4:	80 7e 02 88          	cmpb   $0x88,0x2(%esi)
500bd8:	74 06                	je     0x500be0
500bda:	8b 44 0a 04          	mov    0x4(%edx,%ecx,1),%eax
500bde:	eb 0b                	jmp    0x500beb
500be0:	8b 41 1c             	mov    0x1c(%ecx),%eax
500be3:	8b 44 10 04          	mov    0x4(%eax,%edx,1),%eax
500be7:	eb 02                	jmp    0x500beb
500be9:	8b c6                	mov    %esi,%eax
500beb:	50                   	push   %eax
500bec:	e8 bf 29 02 00       	call   0x5235b0
500bf1:	8a d8                	mov    %al,%bl
500bf3:	83 c4 04             	add    $0x4,%esp
500bf6:	8b 45 f8             	mov    -0x8(%ebp),%eax
500bf9:	85 c0                	test   %eax,%eax
500bfb:	74 5a                	je     0x500c57
500bfd:	8b 48 1c             	mov    0x1c(%eax),%ecx
500c00:	8b 45 08             	mov    0x8(%ebp),%eax
500c03:	ff 74 01 04          	push   0x4(%ecx,%eax,1)
500c07:	e8 a4 29 02 00       	call   0x5235b0
500c0c:	83 c4 04             	add    $0x4,%esp
500c0f:	3c 40                	cmp    $0x40,%al
500c11:	7e 35                	jle    0x500c48
500c13:	80 fb 40             	cmp    $0x40,%bl
500c16:	7e 21                	jle    0x500c39
500c18:	3c 43                	cmp    $0x43,%al
500c1a:	7d 11                	jge    0x500c2d
500c1c:	80 fb 43             	cmp    $0x43,%bl
500c1f:	7d 0c                	jge    0x500c2d
500c21:	8b 4d 0c             	mov    0xc(%ebp),%ecx
500c24:	b0 41                	mov    $0x41,%al
500c26:	88 04 0f             	mov    %al,(%edi,%ecx,1)
500c29:	8b c1                	mov    %ecx,%eax
500c2b:	eb 30                	jmp    0x500c5d
500c2d:	8b 4d 0c             	mov    0xc(%ebp),%ecx
500c30:	b0 43                	mov    $0x43,%al
500c32:	88 04 0f             	mov    %al,(%edi,%ecx,1)
500c35:	8b c1                	mov    %ecx,%eax
500c37:	eb 24                	jmp    0x500c5d
500c39:	8b 4d 0c             	mov    0xc(%ebp),%ecx
500c3c:	0f be c0             	movsbl %al,%eax
500c3f:	0c 40                	or     $0x40,%al
500c41:	88 04 0f             	mov    %al,(%edi,%ecx,1)
500c44:	8b c1                	mov    %ecx,%eax
500c46:	eb 15                	jmp    0x500c5d
500c48:	8b 4d 0c             	mov    0xc(%ebp),%ecx
500c4b:	0f be c3             	movsbl %bl,%eax
500c4e:	0c 40                	or     $0x40,%al
500c50:	88 04 0f             	mov    %al,(%edi,%ecx,1)
500c53:	8b c1                	mov    %ecx,%eax
500c55:	eb 06                	jmp    0x500c5d
500c57:	8b 45 0c             	mov    0xc(%ebp),%eax
500c5a:	88 1c 07             	mov    %bl,(%edi,%eax,1)
500c5d:	8b 55 08             	mov    0x8(%ebp),%edx