43581c:	55                   	push   %ebp
43581d:	8b ec                	mov    %esp,%ebp
43581f:	83 ec 0c             	sub    $0xc,%esp
435822:	56                   	push   %esi
435823:	dd 7d fc             	fnstsw -0x4(%ebp)
435826:	db e2                	fnclex
435828:	33 f6                	xor    %esi,%esi
43582a:	46                   	inc    %esi
43582b:	39 35 bc 68 45 00    	cmp    %esi,0x4568bc
435831:	0f 8c 82 00 00 00    	jl     0x4358b9
435837:	66 8b 45 fc          	mov    -0x4(%ebp),%ax
43583b:	33 c9                	xor    %ecx,%ecx
43583d:	8b d1                	mov    %ecx,%edx
43583f:	57                   	push   %edi
435840:	bf 00 00 08 00       	mov    $0x80000,%edi
435845:	a8 3f                	test   $0x3f,%al
435847:	74 29                	je     0x435872
435849:	0f b7 d0             	movzwl %ax,%edx
43584c:	23 d6                	and    %esi,%edx
43584e:	c1 e2 04             	shl    $0x4,%edx
435851:	a8 04                	test   $0x4,%al
435853:	74 03                	je     0x435858
435855:	83 ca 08             	or     $0x8,%edx
435858:	a8 08                	test   $0x8,%al
43585a:	74 03                	je     0x43585f
43585c:	83 ca 04             	or     $0x4,%edx
43585f:	a8 10                	test   $0x10,%al
435861:	74 03                	je     0x435866
435863:	83 ca 02             	or     $0x2,%edx
435866:	a8 20                	test   $0x20,%al
435868:	74 02                	je     0x43586c
43586a:	0b d6                	or     %esi,%edx
43586c:	a8 02                	test   $0x2,%al
43586e:	74 02                	je     0x435872
435870:	0b d7                	or     %edi,%edx
435872:	0f ae 5d f8          	stmxcsr -0x8(%ebp)
435876:	8b 45 f8             	mov    -0x8(%ebp),%eax
435879:	83 e0 c0             	and    $0xffffffc0,%eax
43587c:	89 45 f4             	mov    %eax,-0xc(%ebp)
43587f:	0f ae 55 f4          	ldmxcsr -0xc(%ebp)
435883:	8b 45 f8             	mov    -0x8(%ebp),%eax
435886:	a8 3f                	test   $0x3f,%al
435888:	74 28                	je     0x4358b2
43588a:	8b c8                	mov    %eax,%ecx
43588c:	23 ce                	and    %esi,%ecx
43588e:	c1 e1 04             	shl    $0x4,%ecx
435891:	a8 04                	test   $0x4,%al
435893:	74 03                	je     0x435898
435895:	83 c9 08             	or     $0x8,%ecx
435898:	a8 08                	test   $0x8,%al
43589a:	74 03                	je     0x43589f
43589c:	83 c9 04             	or     $0x4,%ecx
43589f:	a8 10                	test   $0x10,%al
4358a1:	74 03                	je     0x4358a6
4358a3:	83 c9 02             	or     $0x2,%ecx
4358a6:	a8 20                	test   $0x20,%al
4358a8:	74 02                	je     0x4358ac
4358aa:	0b ce                	or     %esi,%ecx
4358ac:	a8 02                	test   $0x2,%al
4358ae:	74 02                	je     0x4358b2
4358b0:	0b cf                	or     %edi,%ecx
4358b2:	0b ca                	or     %edx,%ecx
4358b4:	8b c1                	mov    %ecx,%eax
4358b6:	5f                   	pop    %edi
4358b7:	eb 3c                	jmp    0x4358f5
4358b9:	66 8b 4d fc          	mov    -0x4(%ebp),%cx
4358bd:	33 c0                	xor    %eax,%eax
4358bf:	f6 c1 3f             	test   $0x3f,%cl
4358c2:	74 31                	je     0x4358f5
4358c4:	0f b7 c1             	movzwl %cx,%eax
4358c7:	23 c6                	and    %esi,%eax
4358c9:	c1 e0 04             	shl    $0x4,%eax
4358cc:	f6 c1 04             	test   $0x4,%cl
4358cf:	74 03                	je     0x4358d4
4358d1:	83 c8 08             	or     $0x8,%eax
4358d4:	f6 c1 08             	test   $0x8,%cl
4358d7:	74 03                	je     0x4358dc
4358d9:	83 c8 04             	or     $0x4,%eax
4358dc:	f6 c1 10             	test   $0x10,%cl
4358df:	74 03                	je     0x4358e4
4358e1:	83 c8 02             	or     $0x2,%eax
4358e4:	f6 c1 20             	test   $0x20,%cl
4358e7:	74 02                	je     0x4358eb
4358e9:	0b c6                	or     %esi,%eax
4358eb:	f6 c1 02             	test   $0x2,%cl
4358ee:	74 05                	je     0x4358f5
4358f0:	0d 00 00 08 00       	or     $0x80000,%eax
4358f5:	5e                   	pop    %esi
4358f6:	c9                   	leave
4358f7:	c3                   	ret
4358f8:	8b ff                	mov    %edi,%edi
4358fa:	55                   	push   %ebp
4358fb:	8b ec                	mov    %esp,%ebp
4358fd:	83 ec 10             	sub    $0x10,%esp
435900:	9b d9 7d f8          	fstcw  -0x8(%ebp)
435904:	66 8b 45 f8          	mov    -0x8(%ebp),%ax
435908:	0f b7 c8             	movzwl %ax,%ecx
43590b:	83 e1 01             	and    $0x1,%ecx
43590e:	c1 e1 04             	shl    $0x4,%ecx
435911:	a8 04                	test   $0x4,%al
435913:	74 03                	je     0x435918
435915:	83 c9 08             	or     $0x8,%ecx
435918:	a8 08                	test   $0x8,%al
43591a:	74 03                	je     0x43591f
43591c:	83 c9 04             	or     $0x4,%ecx
43591f:	a8 10                	test   $0x10,%al
435921:	74 03                	je     0x435926
435923:	83 c9 02             	or     $0x2,%ecx
435926:	a8 20                	test   $0x20,%al
435928:	74 03                	je     0x43592d
43592a:	83 c9 01             	or     $0x1,%ecx
43592d:	a8 02                	test   $0x2,%al
43592f:	74 06                	je     0x435937
435931:	81 c9 00 00 08 00    	or     $0x80000,%ecx
435937:	53                   	push   %ebx
435938:	56                   	push   %esi
435939:	0f b7 f0             	movzwl %ax,%esi
43593c:	bb 00 0c 00 00       	mov    $0xc00,%ebx
435941:	8b d6                	mov    %esi,%edx
435943:	57                   	push   %edi
435944:	bf 00 02 00 00       	mov    $0x200,%edi
435949:	23 d3                	and    %ebx,%edx
43594b:	74 26                	je     0x435973
43594d:	81 fa 00 04 00 00    	cmp    $0x400,%edx
435953:	74 18                	je     0x43596d
435955:	81 fa 00 08 00 00    	cmp    $0x800,%edx
43595b:	74 0c                	je     0x435969
43595d:	3b d3                	cmp    %ebx,%edx
43595f:	75 12                	jne    0x435973
435961:	81 c9 00 03 00 00    	or     $0x300,%ecx
435967:	eb 0a                	jmp    0x435973
435969:	0b cf                	or     %edi,%ecx
43596b:	eb 06                	jmp    0x435973
43596d:	81 c9 00 01 00 00    	or     $0x100,%ecx
435973:	81 e6 00 03 00 00    	and    $0x300,%esi
435979:	74 0c                	je     0x435987
43597b:	3b f7                	cmp    %edi,%esi
43597d:	75 0e                	jne    0x43598d
43597f:	81 c9 00 00 01 00    	or     $0x10000,%ecx
435985:	eb 06                	jmp    0x43598d
435987:	81 c9 00 00 02 00    	or     $0x20000,%ecx
43598d:	0f b7 c0             	movzwl %ax,%eax
435990:	ba 00 10 00 00       	mov    $0x1000,%edx
435995:	85 c2                	test   %eax,%edx
435997:	74 06                	je     0x43599f
435999:	81 c9 00 00 04 00    	or     $0x40000,%ecx
43599f:	8b 7d 0c             	mov    0xc(%ebp),%edi
4359a2:	8b f7                	mov    %edi,%esi
4359a4:	8b 45 08             	mov    0x8(%ebp),%eax
4359a7:	f7 d6                	not    %esi
4359a9:	23 f1                	and    %ecx,%esi
4359ab:	23 c7                	and    %edi,%eax
4359ad:	0b f0                	or     %eax,%esi
4359af:	3b f1                	cmp    %ecx,%esi
4359b1:	0f 84 a8 00 00 00    	je     0x435a5f
4359b7:	56                   	push   %esi
4359b8:	e8 3c 02 00 00       	call   0x435bf9
4359bd:	59                   	pop    %ecx
4359be:	66 89 45 fc          	mov    %ax,-0x4(%ebp)
4359c2:	d9 6d fc             	fldcw  -0x4(%ebp)
4359c5:	9b d9 7d fc          	fstcw  -0x4(%ebp)
4359c9:	66 8b 45 fc          	mov    -0x4(%ebp),%ax
4359cd:	0f b7 f0             	movzwl %ax,%esi
4359d0:	83 e6 01             	and    $0x1,%esi
4359d3:	c1 e6 04             	shl    $0x4,%esi
4359d6:	a8 04                	test   $0x4,%al
4359d8:	74 03                	je     0x4359dd
4359da:	83 ce 08             	or     $0x8,%esi
4359dd:	a8 08                	test   $0x8,%al
4359df:	74 03                	je     0x4359e4
4359e1:	83 ce 04             	or     $0x4,%esi
4359e4:	a8 10                	test   $0x10,%al
4359e6:	74 03                	je     0x4359eb
4359e8:	83 ce 02             	or     $0x2,%esi
4359eb:	a8 20                	test   $0x20,%al
4359ed:	74 03                	je     0x4359f2
4359ef:	83 ce 01             	or     $0x1,%esi
4359f2:	a8 02                	test   $0x2,%al
4359f4:	74 06                	je     0x4359fc
4359f6:	81 ce 00 00 08 00    	or     $0x80000,%esi
4359fc:	0f b7 d0             	movzwl %ax,%edx
4359ff:	8b ca                	mov    %edx,%ecx
435a01:	23 cb                	and    %ebx,%ecx
435a03:	74 2a                	je     0x435a2f
435a05:	81 f9 00 04 00 00    	cmp    $0x400,%ecx
435a0b:	74 1c                	je     0x435a29
435a0d:	81 f9 00 08 00 00    	cmp    $0x800,%ecx
435a13:	74 0c                	je     0x435a21
435a15:	3b cb                	cmp    %ebx,%ecx
435a17:	75 16                	jne    0x435a2f
435a19:	81 ce 00 03 00 00    	or     $0x300,%esi
435a1f:	eb 0e                	jmp    0x435a2f
435a21:	81 ce 00 02 00 00    	or     $0x200,%esi
435a27:	eb 06                	jmp    0x435a2f
435a29:	81 ce 00 01 00 00    	or     $0x100,%esi
435a2f:	81 e2 00 03 00 00    	and    $0x300,%edx
435a35:	74 10                	je     0x435a47
435a37:	81 fa 00 02 00 00    	cmp    $0x200,%edx
435a3d:	75 0e                	jne    0x435a4d
435a3f:	81 ce 00 00 01 00    	or     $0x10000,%esi
435a45:	eb 06                	jmp    0x435a4d
435a47:	81 ce 00 00 02 00    	or     $0x20000,%esi
435a4d:	0f b7 c0             	movzwl %ax,%eax
435a50:	ba 00 10 00 00       	mov    $0x1000,%edx
435a55:	85 c2                	test   %eax,%edx
435a57:	74 06                	je     0x435a5f
435a59:	81 ce 00 00 04 00    	or     $0x40000,%esi
435a5f:	83 3d bc 68 45 00 01 	cmpl   $0x1,0x4568bc
435a66:	0f 8c 86 01 00 00    	jl     0x435bf2
435a6c:	81 e7 1f 03 08 03    	and    $0x308031f,%edi
435a72:	0f ae 5d f0          	stmxcsr -0x10(%ebp)
435a76:	8b 4d f0             	mov    -0x10(%ebp),%ecx
435a79:	8b c1                	mov    %ecx,%eax
435a7b:	c1 e8 03             	shr    $0x3,%eax
435a7e:	83 e0 10             	and    $0x10,%eax
435a81:	f7 c1 00 02 00 00    	test   $0x200,%ecx
435a87:	74 03                	je     0x435a8c
435a89:	83 c8 08             	or     $0x8,%eax
435a8c:	f7 c1 00 04 00 00    	test   $0x400,%ecx
435a92:	74 03                	je     0x435a97
435a94:	83 c8 04             	or     $0x4,%eax
435a97:	f7 c1 00 08 00 00    	test   $0x800,%ecx
435a9d:	74 03                	je     0x435aa2
435a9f:	83 c8 02             	or     $0x2,%eax
435aa2:	85 ca                	test   %ecx,%edx
435aa4:	74 03                	je     0x435aa9
435aa6:	83 c8 01             	or     $0x1,%eax
435aa9:	f7 c1 00 01 00 00    	test   $0x100,%ecx
435aaf:	74 05                	je     0x435ab6
435ab1:	0d 00 00 08 00       	or     $0x80000,%eax
435ab6:	8b d1                	mov    %ecx,%edx
435ab8:	bb 00 60 00 00       	mov    $0x6000,%ebx
435abd:	23 d3                	and    %ebx,%edx
435abf:	74 27                	je     0x435ae8
435ac1:	81 fa 00 20 00 00    	cmp    $0x2000,%edx
435ac7:	74 1a                	je     0x435ae3
435ac9:	81 fa 00 40 00 00    	cmp    $0x4000,%edx
435acf:	74 0b                	je     0x435adc
435ad1:	3b d3                	cmp    %ebx,%edx
435ad3:	75 13                	jne    0x435ae8
435ad5:	0d 00 03 00 00       	or     $0x300,%eax
435ada:	eb 0c                	jmp    0x435ae8
435adc:	0d 00 02 00 00       	or     $0x200,%eax
435ae1:	eb 05                	jmp    0x435ae8
435ae3:	0d 00 01 00 00       	or     $0x100,%eax
435ae8:	6a 40                	push   $0x40
435aea:	81 e1 40 80 00 00    	and    $0x8040,%ecx
435af0:	5b                   	pop    %ebx
435af1:	2b cb                	sub    %ebx,%ecx
435af3:	74 1a                	je     0x435b0f
435af5:	81 e9 c0 7f 00 00    	sub    $0x7fc0,%ecx
435afb:	74 0b                	je     0x435b08
435afd:	2b cb                	sub    %ebx,%ecx
435aff:	75 13                	jne    0x435b14
435b01:	0d 00 00 00 01       	or     $0x1000000,%eax
435b06:	eb 0c                	jmp    0x435b14
435b08:	0d 00 00 00 03       	or     $0x3000000,%eax
435b0d:	eb 05                	jmp    0x435b14
435b0f:	0d 00 00 00 02       	or     $0x2000000,%eax
435b14:	8b cf                	mov    %edi,%ecx
435b16:	23 7d 08             	and    0x8(%ebp),%edi
435b19:	f7 d1                	not    %ecx
435b1b:	23 c8                	and    %eax,%ecx
435b1d:	0b cf                	or     %edi,%ecx
435b1f:	3b c8                	cmp    %eax,%ecx
435b21:	0f 84 b4 00 00 00    	je     0x435bdb
435b27:	51                   	push   %ecx
435b28:	e8 46 fc ff ff       	call   0x435773
435b2d:	50                   	push   %eax
435b2e:	89 45 f4             	mov    %eax,-0xc(%ebp)
435b31:	e8 b2 93 ff ff       	call   0x42eee8
435b36:	59                   	pop    %ecx
435b37:	59                   	pop    %ecx
435b38:	0f ae 5d f4          	stmxcsr -0xc(%ebp)
435b3c:	8b 4d f4             	mov    -0xc(%ebp),%ecx
435b3f:	8b c1                	mov    %ecx,%eax
435b41:	c1 e8 03             	shr    $0x3,%eax
435b44:	83 e0 10             	and    $0x10,%eax
435b47:	f7 c1 00 02 00 00    	test   $0x200,%ecx
435b4d:	74 03                	je     0x435b52
435b4f:	83 c8 08             	or     $0x8,%eax
435b52:	f7 c1 00 04 00 00    	test   $0x400,%ecx
435b58:	74 03                	je     0x435b5d
435b5a:	83 c8 04             	or     $0x4,%eax
435b5d:	f7 c1 00 08 00 00    	test   $0x800,%ecx
435b63:	74 03                	je     0x435b68
435b65:	83 c8 02             	or     $0x2,%eax
435b68:	f7 c1 00 10 00 00    	test   $0x1000,%ecx
435b6e:	74 03                	je     0x435b73
435b70:	83 c8 01             	or     $0x1,%eax
435b73:	f7 c1 00 01 00 00    	test   $0x100,%ecx
435b79:	74 05                	je     0x435b80
435b7b:	0d 00 00 08 00       	or     $0x80000,%eax
435b80:	8b d1                	mov    %ecx,%edx
435b82:	bf 00 60 00 00       	mov    $0x6000,%edi
435b87:	23 d7                	and    %edi,%edx
435b89:	74 27                	je     0x435bb2
435b8b:	81 fa 00 20 00 00    	cmp    $0x2000,%edx
435b91:	74 1a                	je     0x435bad
435b93:	81 fa 00 40 00 00    	cmp    $0x4000,%edx
435b99:	74 0b                	je     0x435ba6
435b9b:	3b d7                	cmp    %edi,%edx
435b9d:	75 13                	jne    0x435bb2
435b9f:	0d 00 03 00 00       	or     $0x300,%eax
435ba4:	eb 0c                	jmp    0x435bb2
435ba6:	0d 00 02 00 00       	or     $0x200,%eax
435bab:	eb 05                	jmp    0x435bb2
435bad:	0d 00 01 00 00       	or     $0x100,%eax
435bb2:	81 e1 40 80 00 00    	and    $0x8040,%ecx
435bb8:	2b cb                	sub    %ebx,%ecx
435bba:	74 1a                	je     0x435bd6
435bbc:	81 e9 c0 7f 00 00    	sub    $0x7fc0,%ecx
435bc2:	74 0b                	je     0x435bcf
435bc4:	2b cb                	sub    %ebx,%ecx
435bc6:	75 13                	jne    0x435bdb
435bc8:	0d 00 00 00 01       	or     $0x1000000,%eax
435bcd:	eb 0c                	jmp    0x435bdb
435bcf:	0d 00 00 00 03       	or     $0x3000000,%eax
435bd4:	eb 05                	jmp    0x435bdb
435bd6:	0d 00 00 00 02       	or     $0x2000000,%eax
435bdb:	8b c8                	mov    %eax,%ecx
435bdd:	33 c6                	xor    %esi,%eax
435bdf:	0b ce                	or     %esi,%ecx
435be1:	a9 1f 03 08 00       	test   $0x8031f,%eax
435be6:	74 06                	je     0x435bee
435be8:	81 c9 00 00 00 80    	or     $0x80000000,%ecx
435bee:	8b c1                	mov    %ecx,%eax
435bf0:	eb 02                	jmp    0x435bf4
435bf2:	8b c6                	mov    %esi,%eax
435bf4:	5f                   	pop    %edi
435bf5:	5e                   	pop    %esi
435bf6:	5b                   	pop    %ebx
435bf7:	c9                   	leave
435bf8:	c3                   	ret
435bf9:	8b ff                	mov    %edi,%edi
435bfb:	55                   	push   %ebp
435bfc:	8b ec                	mov    %esp,%ebp
435bfe:	8b 4d 08             	mov    0x8(%ebp),%ecx
435c01:	8b d1                	mov    %ecx,%edx
435c03:	c1 ea 04             	shr    $0x4,%edx
435c06:	83 e2 01             	and    $0x1,%edx
435c09:	8b c2                	mov    %edx,%eax
435c0b:	f6 c1 08             	test   $0x8,%cl
435c0e:	74 06                	je     0x435c16
435c10:	83 ca 04             	or     $0x4,%edx
435c13:	0f b7 c2             	movzwl %dx,%eax
435c16:	f6 c1 04             	test   $0x4,%cl
435c19:	74 03                	je     0x435c1e
435c1b:	83 c8 08             	or     $0x8,%eax
435c1e:	f6 c1 02             	test   $0x2,%cl