4518ad:	50                   	push   %eax
4518ae:	e8 2d ee ff ff       	call   0x4506e0
4518b3:	f6 46 08 01          	testb  $0x1,0x8(%esi)
4518b7:	74 1c                	je     0x4518d5
4518b9:	8b cf                	mov    %edi,%ecx
4518bb:	e8 d0 08 00 00       	call   0x452190
4518c0:	8b 4e 10             	mov    0x10(%esi),%ecx
4518c3:	ba 50 d0 68 00       	mov    $0x68d050,%edx
4518c8:	85 c9                	test   %ecx,%ecx
4518ca:	0f 45 d1             	cmovne %ecx,%edx
4518cd:	8b c8                	mov    %eax,%ecx
4518cf:	52                   	push   %edx
4518d0:	e8 eb f5 ff ff       	call   0x450ec0
4518d5:	5f                   	pop    %edi
4518d6:	5e                   	pop    %esi
4518d7:	8b e5                	mov    %ebp,%esp
4518d9:	5d                   	pop    %ebp
4518da:	c2 04 00             	ret    $0x4
4518dd:	cc                   	int3
4518de:	cc                   	int3
4518df:	cc                   	int3
4518e0:	55                   	push   %ebp
4518e1:	8b ec                	mov    %esp,%ebp
4518e3:	51                   	push   %ecx
4518e4:	56                   	push   %esi
4518e5:	57                   	push   %edi
4518e6:	8b 7d 08             	mov    0x8(%ebp),%edi
4518e9:	8b f1                	mov    %ecx,%esi
4518eb:	f6 47 04 01          	testb  $0x1,0x4(%edi)
4518ef:	8d 4e 04             	lea    0x4(%esi),%ecx
4518f2:	74 0f                	je     0x451903
4518f4:	8b 47 04             	mov    0x4(%edi),%eax
4518f7:	83 e0 fc             	and    $0xfffffffc,%eax
4518fa:	83 c0 04             	add    $0x4,%eax
4518fd:	50                   	push   %eax
4518fe:	e8 dd ed ff ff       	call   0x4506e0
451903:	8b 4f 08             	mov    0x8(%edi),%ecx
451906:	f6 c1 07             	test   $0x7,%cl
451909:	74 24                	je     0x45192f
45190b:	f6 c1 01             	test   $0x1,%cl
45190e:	74 06                	je     0x451916
451910:	8b 47 10             	mov    0x10(%edi),%eax
451913:	89 46 10             	mov    %eax,0x10(%esi)
451916:	f6 c1 02             	test   $0x2,%cl
451919:	74 06                	je     0x451921
45191b:	8b 47 14             	mov    0x14(%edi),%eax
45191e:	89 46 14             	mov    %eax,0x14(%esi)
451921:	f6 c1 04             	test   $0x4,%cl
451924:	74 06                	je     0x45192c
451926:	8b 47 18             	mov    0x18(%edi),%eax
451929:	89 46 18             	mov    %eax,0x18(%esi)
45192c:	09 4e 08             	or     %ecx,0x8(%esi)
45192f:	5f                   	pop    %edi
451930:	5e                   	pop    %esi
451931:	8b e5                	mov    %ebp,%esp
451933:	5d                   	pop    %ebp
451934:	c2 04 00             	ret    $0x4
451937:	cc                   	int3
451938:	cc                   	int3
451939:	cc                   	int3
45193a:	cc                   	int3
45193b:	cc                   	int3
45193c:	cc                   	int3
45193d:	cc                   	int3
45193e:	cc                   	int3
45193f:	cc                   	int3
451940:	55                   	push   %ebp
451941:	8b ec                	mov    %esp,%ebp
451943:	51                   	push   %ecx
451944:	53                   	push   %ebx
451945:	56                   	push   %esi
451946:	57                   	push   %edi
451947:	8b 7d 08             	mov    0x8(%ebp),%edi
45194a:	8b f1                	mov    %ecx,%esi
45194c:	f6 47 04 01          	testb  $0x1,0x4(%edi)
451950:	8d 4e 04             	lea    0x4(%esi),%ecx
451953:	74 12                	je     0x451967
451955:	8b 47 04             	mov    0x4(%edi),%eax
451958:	83 e0 fc             	and    $0xfffffffc,%eax
45195b:	83 c0 04             	add    $0x4,%eax
45195e:	50                   	push   %eax
45195f:	e8 7c ed ff ff       	call   0x4506e0
451964:	8d 4e 04             	lea    0x4(%esi),%ecx
451967:	8b 5f 08             	mov    0x8(%edi),%ebx
45196a:	f6 c3 03             	test   $0x3,%bl
45196d:	74 50                	je     0x4519bf
45196f:	f6 c3 01             	test   $0x1,%bl
451972:	74 3d                	je     0x4519b1
451974:	8b 57 10             	mov    0x10(%edi),%edx
451977:	8d 46 10             	lea    0x10(%esi),%eax
45197a:	83 4e 08 01          	orl    $0x1,0x8(%esi)
45197e:	83 e2 fe             	and    $0xfffffffe,%edx
451981:	8b 09                	mov    (%ecx),%ecx
451983:	f6 c1 03             	test   $0x3,%cl
451986:	75 05                	jne    0x45198d
451988:	83 e1 fc             	and    $0xfffffffc,%ecx
45198b:	eb 14                	jmp    0x4519a1
45198d:	8b c1                	mov    %ecx,%eax
45198f:	d1 e8                	shr    $1,%eax
451991:	a8 01                	test   $0x1,%al
451993:	8d 46 10             	lea    0x10(%esi),%eax
451996:	74 04                	je     0x45199c
451998:	33 c9                	xor    %ecx,%ecx
45199a:	eb 05                	jmp    0x4519a1
45199c:	83 e1 fc             	and    $0xfffffffc,%ecx
45199f:	8b 09                	mov    (%ecx),%ecx
4519a1:	51                   	push   %ecx
4519a2:	52                   	push   %edx
4519a3:	c6 45 08 00          	movb   $0x0,0x8(%ebp)
4519a7:	8b c8                	mov    %eax,%ecx
4519a9:	ff 75 08             	push   0x8(%ebp)
4519ac:	e8 6f a2 00 00       	call   0x45bc20
4519b1:	f6 c3 02             	test   $0x2,%bl
4519b4:	74 06                	je     0x4519bc
4519b6:	8b 47 14             	mov    0x14(%edi),%eax
4519b9:	89 46 14             	mov    %eax,0x14(%esi)
4519bc:	09 5e 08             	or     %ebx,0x8(%esi)
4519bf:	5f                   	pop    %edi
4519c0:	5e                   	pop    %esi
4519c1:	5b                   	pop    %ebx
4519c2:	8b e5                	mov    %ebp,%esp
4519c4:	5d                   	pop    %ebp
4519c5:	c2 04 00             	ret    $0x4
4519c8:	cc                   	int3
4519c9:	cc                   	int3
4519ca:	cc                   	int3
4519cb:	cc                   	int3
4519cc:	cc                   	int3
4519cd:	cc                   	int3
4519ce:	cc                   	int3
4519cf:	cc                   	int3
4519d0:	55                   	push   %ebp
4519d1:	8b ec                	mov    %esp,%ebp
4519d3:	51                   	push   %ecx
4519d4:	56                   	push   %esi
4519d5:	57                   	push   %edi
4519d6:	8b 7d 08             	mov    0x8(%ebp),%edi
4519d9:	8b f1                	mov    %ecx,%esi
4519db:	f6 47 04 01          	testb  $0x1,0x4(%edi)
4519df:	8d 4e 04             	lea    0x4(%esi),%ecx
4519e2:	74 0f                	je     0x4519f3
4519e4:	8b 47 04             	mov    0x4(%edi),%eax
4519e7:	83 e0 fc             	and    $0xfffffffc,%eax
4519ea:	83 c0 04             	add    $0x4,%eax
4519ed:	50                   	push   %eax
4519ee:	e8 ed ec ff ff       	call   0x4506e0
4519f3:	8b 4f 08             	mov    0x8(%edi),%ecx
4519f6:	f6 c1 03             	test   $0x3,%cl
4519f9:	74 19                	je     0x451a14
4519fb:	f6 c1 01             	test   $0x1,%cl
4519fe:	74 06                	je     0x451a06
451a00:	8b 47 10             	mov    0x10(%edi),%eax
451a03:	89 46 10             	mov    %eax,0x10(%esi)
451a06:	f6 c1 02             	test   $0x2,%cl
451a09:	74 06                	je     0x451a11
451a0b:	8b 47 14             	mov    0x14(%edi),%eax
451a0e:	89 46 14             	mov    %eax,0x14(%esi)
451a11:	09 4e 08             	or     %ecx,0x8(%esi)
451a14:	5f                   	pop    %edi
451a15:	5e                   	pop    %esi
451a16:	8b e5                	mov    %ebp,%esp
451a18:	5d                   	pop    %ebp
451a19:	c2 04 00             	ret    $0x4
451a1c:	cc                   	int3
451a1d:	cc                   	int3
451a1e:	cc                   	int3
451a1f:	cc                   	int3
451a20:	55                   	push   %ebp
451a21:	8b ec                	mov    %esp,%ebp
451a23:	8b 55 08             	mov    0x8(%ebp),%edx
451a26:	83 ec 08             	sub    $0x8,%esp
451a29:	56                   	push   %esi
451a2a:	0f b6 32             	movzbl (%edx),%esi
451a2d:	8d 42 01             	lea    0x1(%edx),%eax
451a30:	81 fe 80 00 00 00    	cmp    $0x80,%esi
451a36:	73 0a                	jae    0x451a42
451a38:	8b 4d 0c             	mov    0xc(%ebp),%ecx
451a3b:	89 31                	mov    %esi,(%ecx)
451a3d:	5e                   	pop    %esi
451a3e:	8b e5                	mov    %ebp,%esp
451a40:	5d                   	pop    %ebp
451a41:	c3                   	ret
451a42:	0f b6 08             	movzbl (%eax),%ecx
451a45:	83 c6 80             	add    $0xffffff80,%esi
451a48:	8b c1                	mov    %ecx,%eax
451a4a:	c1 e0 07             	shl    $0x7,%eax
451a4d:	03 f0                	add    %eax,%esi
451a4f:	81 f9 80 00 00 00    	cmp    $0x80,%ecx
451a55:	73 0d                	jae    0x451a64
451a57:	8b 45 0c             	mov    0xc(%ebp),%eax
451a5a:	89 30                	mov    %esi,(%eax)
451a5c:	8d 42 02             	lea    0x2(%edx),%eax
451a5f:	5e                   	pop    %esi
451a60:	8b e5                	mov    %ebp,%esp
451a62:	5d                   	pop    %ebp
451a63:	c3                   	ret
451a64:	56                   	push   %esi
451a65:	52                   	push   %edx
451a66:	8d 45 f8             	lea    -0x8(%ebp),%eax
451a69:	50                   	push   %eax
451a6a:	e8 71 df 00 00       	call   0x45f9e0
451a6f:	8b 4d 0c             	mov    0xc(%ebp),%ecx
451a72:	83 c4 0c             	add    $0xc,%esp
451a75:	8b 45 fc             	mov    -0x4(%ebp),%eax
451a78:	89 01                	mov    %eax,(%ecx)
451a7a:	8b 45 f8             	mov    -0x8(%ebp),%eax
451a7d:	5e                   	pop    %esi
451a7e:	8b e5                	mov    %ebp,%esp
451a80:	5d                   	pop    %ebp
451a81:	c3                   	ret
451a82:	cc                   	int3
451a83:	cc                   	int3
451a84:	cc                   	int3
451a85:	cc                   	int3
451a86:	cc                   	int3
451a87:	cc                   	int3
451a88:	cc                   	int3
451a89:	cc                   	int3
451a8a:	cc                   	int3
451a8b:	cc                   	int3
451a8c:	cc                   	int3
451a8d:	cc                   	int3
451a8e:	cc                   	int3
451a8f:	cc                   	int3
451a90:	55                   	push   %ebp
451a91:	8b ec                	mov    %esp,%ebp
451a93:	8b 45 08             	mov    0x8(%ebp),%eax
451a96:	ff 75 10             	push   0x10(%ebp)
451a99:	c1 e0 03             	shl    $0x3,%eax
451a9c:	50                   	push   %eax
451a9d:	e8 1e f0 ff ff       	call   0x450ac0
451aa2:	50                   	push   %eax
451aa3:	0f b6 45 0c          	movzbl 0xc(%ebp),%eax
451aa7:	50                   	push   %eax
451aa8:	e8 13 f0 ff ff       	call   0x450ac0
451aad:	83 c4 10             	add    $0x10,%esp
451ab0:	5d                   	pop    %ebp
451ab1:	c3                   	ret
451ab2:	cc                   	int3
451ab3:	cc                   	int3
451ab4:	cc                   	int3
451ab5:	cc                   	int3
451ab6:	cc                   	int3
451ab7:	cc                   	int3
451ab8:	cc                   	int3
451ab9:	cc                   	int3
451aba:	cc                   	int3
451abb:	cc                   	int3
451abc:	cc                   	int3
451abd:	cc                   	int3
451abe:	cc                   	int3
451abf:	cc                   	int3
451ac0:	55                   	push   %ebp
451ac1:	8b ec                	mov    %esp,%ebp
451ac3:	8b 45 08             	mov    0x8(%ebp),%eax
451ac6:	ff 75 10             	push   0x10(%ebp)
451ac9:	c1 e0 03             	shl    $0x3,%eax
451acc:	50                   	push   %eax
451acd:	e8 ee ef ff ff       	call   0x450ac0
451ad2:	83 c4 08             	add    $0x8,%esp
451ad5:	89 45 10             	mov    %eax,0x10(%ebp)
451ad8:	8b 45 0c             	mov    0xc(%ebp),%eax
451adb:	99                   	cltd
451adc:	89 55 0c             	mov    %edx,0xc(%ebp)
451adf:	89 45 08             	mov    %eax,0x8(%ebp)
451ae2:	5d                   	pop    %ebp
451ae3:	e9 e8 00 00 00       	jmp    0x451bd0
451ae8:	cc                   	int3
451ae9:	cc                   	int3
451aea:	cc                   	int3
451aeb:	cc                   	int3
451aec:	cc                   	int3
451aed:	cc                   	int3
451aee:	cc                   	int3
451aef:	cc                   	int3
451af0:	55                   	push   %ebp
451af1:	8b ec                	mov    %esp,%ebp
451af3:	51                   	push   %ecx
451af4:	53                   	push   %ebx
451af5:	56                   	push   %esi
451af6:	8b 75 0c             	mov    0xc(%ebp),%esi
451af9:	8b c1                	mov    %ecx,%eax
451afb:	57                   	push   %edi
451afc:	8b 7d 10             	mov    0x10(%ebp),%edi
451aff:	89 45 fc             	mov    %eax,-0x4(%ebp)
451b02:	8b 5e 10             	mov    0x10(%esi),%ebx
451b05:	81 fb 80 00 00 00    	cmp    $0x80,%ebx
451b0b:	7d 7f                	jge    0x451b8c
451b0d:	8b 55 08             	mov    0x8(%ebp),%edx
451b10:	c1 e2 03             	shl    $0x3,%edx
451b13:	81 fa 80 00 00 00    	cmp    $0x80,%edx
451b19:	73 07                	jae    0x451b22
451b1b:	b9 01 00 00 00       	mov    $0x1,%ecx
451b20:	eb 29                	jmp    0x451b4b
451b22:	81 fa 00 40 00 00    	cmp    $0x4000,%edx
451b28:	73 07                	jae    0x451b31
451b2a:	b9 02 00 00 00       	mov    $0x2,%ecx
451b2f:	eb 1a                	jmp    0x451b4b
451b31:	81 fa 00 00 20 00    	cmp    $0x200000,%edx
451b37:	73 07                	jae    0x451b40
451b39:	b9 03 00 00 00       	mov    $0x3,%ecx
451b3e:	eb 0b                	jmp    0x451b4b
451b40:	81 fa 00 00 00 10    	cmp    $0x10000000,%edx
451b46:	1b c9                	sbb    %ecx,%ecx
451b48:	83 c1 05             	add    $0x5,%ecx
451b4b:	8b 00                	mov    (%eax),%eax
451b4d:	2b c1                	sub    %ecx,%eax
451b4f:	2b c7                	sub    %edi,%eax
451b51:	83 c0 0f             	add    $0xf,%eax
451b54:	3b c3                	cmp    %ebx,%eax
451b56:	7c 31                	jl     0x451b89
451b58:	83 ca 02             	or     $0x2,%edx
451b5b:	57                   	push   %edi
451b5c:	52                   	push   %edx
451b5d:	e8 5e ef ff ff       	call   0x450ac0
451b62:	8b f8                	mov    %eax,%edi
451b64:	83 c4 08             	add    $0x8,%esp
451b67:	88 1f                	mov    %bl,(%edi)
451b69:	47                   	inc    %edi
451b6a:	83 7e 14 0f          	cmpl   $0xf,0x14(%esi)
451b6e:	76 02                	jbe    0x451b72
451b70:	8b 36                	mov    (%esi),%esi
451b72:	53                   	push   %ebx
451b73:	56                   	push   %esi
451b74:	57                   	push   %edi
451b75:	e8 56 12 18 00       	call   0x5d2dd0
451b7a:	83 c4 0c             	add    $0xc,%esp
451b7d:	8d 04 3b             	lea    (%ebx,%edi,1),%eax
451b80:	5f                   	pop    %edi
451b81:	5e                   	pop    %esi
451b82:	5b                   	pop    %ebx
451b83:	8b e5                	mov    %ebp,%esp
451b85:	5d                   	pop    %ebp
451b86:	c2 0c 00             	ret    $0xc
451b89:	8b 45 fc             	mov    -0x4(%ebp),%eax
451b8c:	57                   	push   %edi
451b8d:	56                   	push   %esi
451b8e:	ff 75 08             	push   0x8(%ebp)
451b91:	8b c8                	mov    %eax,%ecx
451b93:	e8 68 8f 00 00       	call   0x45ab00
451b98:	5f                   	pop    %edi
451b99:	5e                   	pop    %esi
451b9a:	5b                   	pop    %ebx
451b9b:	8b e5                	mov    %ebp,%esp
451b9d:	5d                   	pop    %ebp
451b9e:	c2 0c 00             	ret    $0xc
451ba1:	cc                   	int3
451ba2:	cc                   	int3
451ba3:	cc                   	int3
451ba4:	cc                   	int3