5238d0:	0f bf c7             	movswl %di,%eax
5238d3:	3b 83 90 00 00 00    	cmp    0x90(%ebx),%eax
5238d9:	7e 0e                	jle    0x5238e9
5238db:	68 c4 90 6b 00       	push   $0x6b90c4
5238e0:	56                   	push   %esi
5238e1:	e8 7a f9 ff ff       	call   0x523260
5238e6:	83 c4 08             	add    $0x8,%esp
5238e9:	5b                   	pop    %ebx
5238ea:	5f                   	pop    %edi
5238eb:	5e                   	pop    %esi
5238ec:	8b e5                	mov    %ebp,%esp
5238ee:	5d                   	pop    %ebp
5238ef:	c3                   	ret
5238f0:	80 38 3f             	cmpb   $0x3f,(%eax)
5238f3:	8b 5d 10             	mov    0x10(%ebp),%ebx
5238f6:	0f 85 a0 00 00 00    	jne    0x52399c
5238fc:	83 fb 02             	cmp    $0x2,%ebx
5238ff:	75 0d                	jne    0x52390e
523901:	0f be c2             	movsbl %dl,%eax
523904:	83 e8 30             	sub    $0x30,%eax
523907:	99                   	cltd
523908:	8b c8                	mov    %eax,%ecx
52390a:	8b c2                	mov    %edx,%eax
52390c:	eb 22                	jmp    0x523930
52390e:	6a 01                	push   $0x1
523910:	8d 43 ff             	lea    -0x1(%ebx),%eax
523913:	50                   	push   %eax
523914:	8d 45 f0             	lea    -0x10(%ebp),%eax
523917:	50                   	push   %eax
523918:	51                   	push   %ecx
523919:	e8 22 5c ff ff       	call   0x519540
52391e:	83 c4 10             	add    $0x10,%esp
523921:	f7 d8                	neg    %eax
523923:	1b c0                	sbb    %eax,%eax
523925:	83 c0 01             	add    $0x1,%eax
523928:	74 57                	je     0x523981
52392a:	8b 45 f4             	mov    -0xc(%ebp),%eax
52392d:	8b 4d f0             	mov    -0x10(%ebp),%ecx
523930:	89 45 fc             	mov    %eax,-0x4(%ebp)
523933:	85 c0                	test   %eax,%eax
523935:	7c 4a                	jl     0x523981
523937:	7f 05                	jg     0x52393e
523939:	83 f9 01             	cmp    $0x1,%ecx
52393c:	72 43                	jb     0x523981
52393e:	8b 87 90 00 00 00    	mov    0x90(%edi),%eax
523944:	99                   	cltd
523945:	39 55 fc             	cmp    %edx,-0x4(%ebp)
523948:	7f 37                	jg     0x523981
52394a:	7c 04                	jl     0x523950
52394c:	3b c8                	cmp    %eax,%ecx
52394e:	77 31                	ja     0x523981
523950:	0f b7 f9             	movzwl %cx,%edi
523953:	66 3b 8e c4 00 00 00 	cmp    0xc4(%esi),%cx
52395a:	7e 09                	jle    0x523965
52395c:	66 89 8e c4 00 00 00 	mov    %cx,0xc4(%esi)
523963:	eb 61                	jmp    0x5239c6
523965:	0f bf c1             	movswl %cx,%eax
523968:	50                   	push   %eax
523969:	ff b6 d8 00 00 00    	push   0xd8(%esi)
52396f:	e8 4c dd 01 00       	call   0x5416c0
523974:	83 c4 08             	add    $0x8,%esp
523977:	85 c0                	test   %eax,%eax
523979:	0f 85 47 ff ff ff    	jne    0x5238c6
52397f:	eb 45                	jmp    0x5239c6
523981:	ff b7 90 00 00 00    	push   0x90(%edi)
523987:	68 98 90 6b 00       	push   $0x6b9098
52398c:	56                   	push   %esi
52398d:	e8 ce f8 ff ff       	call   0x523260
523992:	83 c4 0c             	add    $0xc,%esp
523995:	5b                   	pop    %ebx
523996:	5f                   	pop    %edi
523997:	5e                   	pop    %esi
523998:	8b e5                	mov    %ebp,%esp
52399a:	5d                   	pop    %ebp
52399b:	c3                   	ret
52399c:	53                   	push   %ebx
52399d:	50                   	push   %eax
52399e:	ff b6 d8 00 00 00    	push   0xd8(%esi)
5239a4:	e8 b7 dc 01 00       	call   0x541660
5239a9:	0f b7 f8             	movzwl %ax,%edi
5239ac:	83 c4 0c             	add    $0xc,%esp
5239af:	66 85 ff             	test   %di,%di
5239b2:	0f 85 0e ff ff ff    	jne    0x5238c6
5239b8:	66 ff 86 c4 00 00 00 	incw   0xc4(%esi)
5239bf:	0f b7 be c4 00 00 00 	movzwl 0xc4(%esi),%edi
5239c6:	0f bf c7             	movswl %di,%eax
5239c9:	50                   	push   %eax
5239ca:	53                   	push   %ebx
5239cb:	ff 75 f8             	push   -0x8(%ebp)
5239ce:	8b 5d 08             	mov    0x8(%ebp),%ebx
5239d1:	ff b6 d8 00 00 00    	push   0xd8(%esi)
5239d7:	53                   	push   %ebx
5239d8:	e8 d3 db 01 00       	call   0x5415b0
5239dd:	83 c4 14             	add    $0x14,%esp
5239e0:	89 86 d8 00 00 00    	mov    %eax,0xd8(%esi)
5239e6:	e9 de fe ff ff       	jmp    0x5238c9
5239eb:	cc                   	int3
5239ec:	cc                   	int3
5239ed:	cc                   	int3
5239ee:	cc                   	int3
5239ef:	cc                   	int3
5239f0:	55                   	push   %ebp
5239f1:	8b ec                	mov    %esp,%ebp
5239f3:	8b 4d 0c             	mov    0xc(%ebp),%ecx
5239f6:	85 c9                	test   %ecx,%ecx
5239f8:	75 28                	jne    0x523a22
5239fa:	8b 45 10             	mov    0x10(%ebp),%eax
5239fd:	85 c0                	test   %eax,%eax
5239ff:	74 0c                	je     0x523a0d
523a01:	50                   	push   %eax
523a02:	ff 75 08             	push   0x8(%ebp)
523a05:	e8 a6 2d 00 00       	call   0x5267b0
523a0a:	83 c4 08             	add    $0x8,%esp
523a0d:	8b 45 14             	mov    0x14(%ebp),%eax
523a10:	85 c0                	test   %eax,%eax
523a12:	74 41                	je     0x523a55
523a14:	50                   	push   %eax
523a15:	ff 75 08             	push   0x8(%ebp)
523a18:	e8 93 2d 00 00       	call   0x5267b0
523a1d:	83 c4 08             	add    $0x8,%esp
523a20:	5d                   	pop    %ebp
523a21:	c3                   	ret
523a22:	8b 45 14             	mov    0x14(%ebp),%eax
523a25:	85 c0                	test   %eax,%eax
523a27:	74 0e                	je     0x523a37
523a29:	89 41 10             	mov    %eax,0x10(%ecx)
523a2c:	8b 40 04             	mov    0x4(%eax),%eax
523a2f:	25 04 01 20 00       	and    $0x200104,%eax
523a34:	09 41 04             	or     %eax,0x4(%ecx)
523a37:	8b 45 10             	mov    0x10(%ebp),%eax
523a3a:	85 c0                	test   %eax,%eax
523a3c:	74 0e                	je     0x523a4c
523a3e:	89 41 0c             	mov    %eax,0xc(%ecx)
523a41:	8b 40 04             	mov    0x4(%eax),%eax
523a44:	25 04 01 20 00       	and    $0x200104,%eax
523a49:	09 41 04             	or     %eax,0x4(%ecx)
523a4c:	51                   	push   %ecx
523a4d:	e8 6e dc fd ff       	call   0x5016c0
523a52:	83 c4 04             	add    $0x4,%esp
523a55:	5d                   	pop    %ebp
523a56:	c3                   	ret
523a57:	cc                   	int3
523a58:	cc                   	int3
523a59:	cc                   	int3
523a5a:	cc                   	int3
523a5b:	cc                   	int3
523a5c:	cc                   	int3
523a5d:	cc                   	int3
523a5e:	cc                   	int3
523a5f:	cc                   	int3
523a60:	55                   	push   %ebp
523a61:	8b ec                	mov    %esp,%ebp
523a63:	8b 4d 08             	mov    0x8(%ebp),%ecx
523a66:	8a 01                	mov    (%ecx),%al
523a68:	3c ab                	cmp    $0xab,%al
523a6a:	74 04                	je     0x523a70
523a6c:	3c aa                	cmp    $0xaa,%al
523a6e:	75 05                	jne    0x523a75
523a70:	8b 49 0c             	mov    0xc(%ecx),%ecx
523a73:	eb f1                	jmp    0x523a66
523a75:	8a 01                	mov    (%ecx),%al
523a77:	3c ad                	cmp    $0xad,%al
523a79:	75 03                	jne    0x523a7e
523a7b:	8a 41 02             	mov    0x2(%ecx),%al
523a7e:	0f b6 c0             	movzbl %al,%eax
523a81:	83 c0 8d             	add    $0xffffff8d,%eax
523a84:	83 f8 31             	cmp    $0x31,%eax
523a87:	77 3f                	ja     0x523ac8
523a89:	0f b6 80 dc 3a 52 00 	movzbl 0x523adc(%eax),%eax
523a90:	ff 24 85 d0 3a 52 00 	jmp    *0x523ad0(,%eax,4)
523a97:	33 c0                	xor    %eax,%eax
523a99:	5d                   	pop    %ebp
523a9a:	c3                   	ret
523a9b:	f7 41 04 00 00 10 00 	testl  $0x100000,0x4(%ecx)
523aa2:	75 24                	jne    0x523ac8
523aa4:	8b 41 2c             	mov    0x2c(%ecx),%eax
523aa7:	85 c0                	test   %eax,%eax
523aa9:	74 1d                	je     0x523ac8
523aab:	0f b7 51 20          	movzwl 0x20(%ecx),%edx
523aaf:	66 85 d2             	test   %dx,%dx
523ab2:	78 e3                	js     0x523a97
523ab4:	8b 48 04             	mov    0x4(%eax),%ecx
523ab7:	85 c9                	test   %ecx,%ecx
523ab9:	74 dc                	je     0x523a97
523abb:	0f bf c2             	movswl %dx,%eax
523abe:	8d 04 80             	lea    (%eax,%eax,4),%eax
523ac1:	80 7c 81 0c 00       	cmpb   $0x0,0xc(%ecx,%eax,4)
523ac6:	75 cf                	jne    0x523a97
523ac8:	b8 01 00 00 00       	mov    $0x1,%eax
523acd:	5d                   	pop    %ebp
523ace:	c3                   	ret
523acf:	90                   	nop
523ad0:	97                   	xchg   %eax,%edi
523ad1:	3a 52 00             	cmp    0x0(%edx),%dl
523ad4:	9b                   	fwait
523ad5:	3a 52 00             	cmp    0x0(%edx),%dl
523ad8:	c8 3a 52 00          	enter  $0x523a,$0x0
523adc:	00 02                	add    %al,(%edx)
523ade:	02 02                	add    (%edx),%al
523ae0:	02 02                	add    (%edx),%al
523ae2:	02 02                	add    (%edx),%al
523ae4:	02 02                	add    (%edx),%al
523ae6:	02 02                	add    (%edx),%al
523ae8:	02 02                	add    (%edx),%al
523aea:	02 02                	add    (%edx),%al
523aec:	02 02                	add    (%edx),%al
523aee:	02 02                	add    (%edx),%al
523af0:	02 02                	add    (%edx),%al
523af2:	02 02                	add    (%edx),%al
523af4:	02 02                	add    (%edx),%al
523af6:	02 02                	add    (%edx),%al
523af8:	02 02                	add    (%edx),%al
523afa:	02 02                	add    (%edx),%al
523afc:	02 02                	add    (%edx),%al
523afe:	02 00                	add    (%eax),%al
523b00:	00 00                	add    %al,(%eax)
523b02:	02 02                	add    (%edx),%al
523b04:	02 02                	add    (%edx),%al
523b06:	02 02                	add    (%edx),%al
523b08:	02 02                	add    (%edx),%al
523b0a:	02 02                	add    (%edx),%al
523b0c:	02 01                	add    (%ecx),%al
523b0e:	cc                   	int3
523b0f:	cc                   	int3
523b10:	55                   	push   %ebp
523b11:	8b ec                	mov    %esp,%ebp
523b13:	56                   	push   %esi
523b14:	8b 75 0c             	mov    0xc(%ebp),%esi
523b17:	8b 4e 0c             	mov    0xc(%esi),%ecx
523b1a:	8a 01                	mov    (%ecx),%al
523b1c:	3c ad                	cmp    $0xad,%al
523b1e:	75 03                	jne    0x523b23
523b20:	8a 41 02             	mov    0x2(%ecx),%al
523b23:	3c ae                	cmp    $0xae,%al
523b25:	75 07                	jne    0x523b2e
523b27:	8b 41 14             	mov    0x14(%ecx),%eax
523b2a:	8b 10                	mov    (%eax),%edx
523b2c:	eb 13                	jmp    0x523b41
523b2e:	3c 88                	cmp    $0x88,%al
523b30:	75 0a                	jne    0x523b3c
523b32:	8b 41 14             	mov    0x14(%ecx),%eax
523b35:	8b 40 1c             	mov    0x1c(%eax),%eax
523b38:	8b 10                	mov    (%eax),%edx
523b3a:	eb 05                	jmp    0x523b41
523b3c:	ba 01 00 00 00       	mov    $0x1,%edx
523b41:	f7 46 04 00 08 00 00 	testl  $0x800,0x4(%esi)
523b48:	74 2d                	je     0x523b77
523b4a:	8b 46 14             	mov    0x14(%esi),%eax
523b4d:	8b 40 1c             	mov    0x1c(%eax),%eax
523b50:	8b 08                	mov    (%eax),%ecx
523b52:	3b d1                	cmp    %ecx,%edx
523b54:	74 70                	je     0x523bc6
523b56:	8b 45 08             	mov    0x8(%ebp),%eax
523b59:	83 78 24 00          	cmpl   $0x0,0x24(%eax)
523b5d:	75 10                	jne    0x523b6f
523b5f:	52                   	push   %edx
523b60:	51                   	push   %ecx
523b61:	68 78 91 6b 00       	push   $0x6b9178
523b66:	50                   	push   %eax
523b67:	e8 f4 f6 ff ff       	call   0x523260
523b6c:	83 c4 10             	add    $0x10,%esp
523b6f:	b8 01 00 00 00       	mov    $0x1,%eax
523b74:	5e                   	pop    %esi
523b75:	5d                   	pop    %ebp
523b76:	c3                   	ret
523b77:	83 fa 01             	cmp    $0x1,%edx
523b7a:	74 4a                	je     0x523bc6
523b7c:	f7 41 04 00 08 00 00 	testl  $0x800,0x4(%ecx)
523b83:	74 29                	je     0x523bae
523b85:	8b 55 08             	mov    0x8(%ebp),%edx
523b88:	83 7a 24 00          	cmpl   $0x0,0x24(%edx)
523b8c:	75 30                	jne    0x523bbe
523b8e:	8b 41 14             	mov    0x14(%ecx),%eax
523b91:	6a 01                	push   $0x1
523b93:	8b 40 1c             	mov    0x1c(%eax),%eax
523b96:	ff 30                	push   (%eax)
523b98:	68 78 91 6b 00       	push   $0x6b9178
523b9d:	52                   	push   %edx
523b9e:	e8 bd f6 ff ff       	call   0x523260
523ba3:	83 c4 10             	add    $0x10,%esp
523ba6:	b8 01 00 00 00       	mov    $0x1,%eax
523bab:	5e                   	pop    %esi
523bac:	5d                   	pop    %ebp
523bad:	c3                   	ret
523bae:	68 78 8c 6b 00       	push   $0x6b8c78
523bb3:	ff 75 08             	push   0x8(%ebp)
523bb6:	e8 a5 f6 ff ff       	call   0x523260
523bbb:	83 c4 08             	add    $0x8,%esp
523bbe:	b8 01 00 00 00       	mov    $0x1,%eax
523bc3:	5e                   	pop    %esi
523bc4:	5d                   	pop    %ebp
523bc5:	c3                   	ret
523bc6:	33 c0                	xor    %eax,%eax
523bc8:	5e                   	pop    %esi
523bc9:	5d                   	pop    %ebp
523bca:	c3                   	ret
523bcb:	cc                   	int3
523bcc:	cc                   	int3
523bcd:	cc                   	int3
523bce:	cc                   	int3
523bcf:	cc                   	int3
523bd0:	55                   	push   %ebp
523bd1:	8b ec                	mov    %esp,%ebp
523bd3:	53                   	push   %ebx
523bd4:	8b 5d 0c             	mov    0xc(%ebp),%ebx
523bd7:	56                   	push   %esi
523bd8:	8b 75 10             	mov    0x10(%ebp),%esi
523bdb:	57                   	push   %edi
523bdc:	8b 7d 08             	mov    0x8(%ebp),%edi
523bdf:	56                   	push   %esi
523be0:	53                   	push   %ebx
523be1:	57                   	push   %edi
523be2:	e8 69 16 00 00       	call   0x525250
523be7:	83 c4 0c             	add    $0xc,%esp
523bea:	3b c6                	cmp    %esi,%eax
523bec:	74 22                	je     0x523c10
523bee:	8b 4f 08             	mov    0x8(%edi),%ecx
523bf1:	85 c9                	test   %ecx,%ecx
523bf3:	74 1b                	je     0x523c10
523bf5:	56                   	push   %esi
523bf6:	50                   	push   %eax
523bf7:	8b 43 04             	mov    0x4(%ebx),%eax
523bfa:	25 00 00 20 00       	and    $0x200000,%eax
523bff:	f7 d8                	neg    %eax
523c01:	1b c0                	sbb    %eax,%eax
523c03:	83 c0 4e             	add    $0x4e,%eax
523c06:	50                   	push   %eax
523c07:	51                   	push   %ecx
523c08:	e8 d3 de 01 00       	call   0x541ae0
523c0d:	83 c4 10             	add    $0x10,%esp
523c10:	5f                   	pop    %edi
523c11:	5e                   	pop    %esi
523c12:	5b                   	pop    %ebx
523c13:	5d                   	pop    %ebp
523c14:	c3                   	ret
523c15:	cc                   	int3
523c16:	cc                   	int3
523c17:	cc                   	int3
523c18:	cc                   	int3
523c19:	cc                   	int3
523c1a:	cc                   	int3
523c1b:	cc                   	int3
523c1c:	cc                   	int3
523c1d:	cc                   	int3
523c1e:	cc                   	int3
523c1f:	cc                   	int3
523c20:	55                   	push   %ebp
523c21:	8b ec                	mov    %esp,%ebp
523c23:	8b 45 0c             	mov    0xc(%ebp),%eax
523c26:	53                   	push   %ebx