4399e0:	e8 5c ff ff ff       	call   0x439941
4399e5:	8b 45 d4             	mov    -0x2c(%ebp),%eax
4399e8:	23 45 d8             	and    -0x28(%ebp),%eax
4399eb:	83 f8 ff             	cmp    $0xffffffff,%eax
4399ee:	0f 84 40 01 00 00    	je     0x439b34
4399f4:	8b 45 dc             	mov    -0x24(%ebp),%eax
4399f7:	23 45 e0             	and    -0x20(%ebp),%eax
4399fa:	83 f8 ff             	cmp    $0xffffffff,%eax
4399fd:	0f 84 31 01 00 00    	je     0x439b34
439a03:	8b 4d e8             	mov    -0x18(%ebp),%ecx
439a06:	8b 45 e4             	mov    -0x1c(%ebp),%eax
439a09:	89 4d f8             	mov    %ecx,-0x8(%ebp)
439a0c:	89 45 fc             	mov    %eax,-0x4(%ebp)
439a0f:	85 c9                	test   %ecx,%ecx
439a11:	0f 8c d2 00 00 00    	jl     0x439ae9
439a17:	7f 08                	jg     0x439a21
439a19:	85 c0                	test   %eax,%eax
439a1b:	0f 84 be 00 00 00    	je     0x439adf
439a21:	6a 01                	push   $0x1
439a23:	68 00 10 00 00       	push   $0x1000
439a28:	e8 ed 36 ff ff       	call   0x42d11a
439a2d:	8b f0                	mov    %eax,%esi
439a2f:	59                   	pop    %ecx
439a30:	59                   	pop    %ecx
439a31:	85 f6                	test   %esi,%esi
439a33:	75 0f                	jne    0x439a44
439a35:	6a 0c                	push   $0xc
439a37:	5b                   	pop    %ebx
439a38:	c6 47 1c 01          	movb   $0x1,0x1c(%edi)
439a3c:	89 5f 18             	mov    %ebx,0x18(%edi)
439a3f:	e9 92 00 00 00       	jmp    0x439ad6
439a44:	68 00 80 00 00       	push   $0x8000
439a49:	53                   	push   %ebx
439a4a:	e8 56 e8 fe ff       	call   0x4282a5
439a4f:	59                   	pop    %ecx
439a50:	59                   	pop    %ecx
439a51:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
439a54:	89 45 f4             	mov    %eax,-0xc(%ebp)
439a57:	8b 45 e8             	mov    -0x18(%ebp),%eax
439a5a:	85 c0                	test   %eax,%eax
439a5c:	7c 0f                	jl     0x439a6d
439a5e:	7f 08                	jg     0x439a68
439a60:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
439a66:	72 05                	jb     0x439a6d
439a68:	b9 00 10 00 00       	mov    $0x1000,%ecx
439a6d:	57                   	push   %edi
439a6e:	51                   	push   %ecx
439a6f:	56                   	push   %esi
439a70:	53                   	push   %ebx
439a71:	e8 b6 30 ff ff       	call   0x42cb2c
439a76:	83 c4 10             	add    $0x10,%esp
439a79:	83 f8 ff             	cmp    $0xffffffff,%eax
439a7c:	74 34                	je     0x439ab2
439a7e:	8b 4d fc             	mov    -0x4(%ebp),%ecx
439a81:	99                   	cltd
439a82:	2b c8                	sub    %eax,%ecx
439a84:	8b 45 f8             	mov    -0x8(%ebp),%eax
439a87:	89 4d fc             	mov    %ecx,-0x4(%ebp)
439a8a:	1b c2                	sbb    %edx,%eax
439a8c:	89 45 f8             	mov    %eax,-0x8(%ebp)
439a8f:	85 c0                	test   %eax,%eax
439a91:	7f d5                	jg     0x439a68
439a93:	7c 04                	jl     0x439a99
439a95:	85 c9                	test   %ecx,%ecx
439a97:	75 c1                	jne    0x439a5a
439a99:	ff 75 f4             	push   -0xc(%ebp)
439a9c:	53                   	push   %ebx
439a9d:	e8 03 e8 fe ff       	call   0x4282a5
439aa2:	56                   	push   %esi
439aa3:	e8 12 0e ff ff       	call   0x42a8ba
439aa8:	83 c4 0c             	add    $0xc,%esp
439aab:	33 db                	xor    %ebx,%ebx
439aad:	e9 90 00 00 00       	jmp    0x439b42
439ab2:	80 7f 24 00          	cmpb   $0x0,0x24(%edi)
439ab6:	74 11                	je     0x439ac9
439ab8:	83 7f 20 05          	cmpl   $0x5,0x20(%edi)
439abc:	75 0b                	jne    0x439ac9
439abe:	c6 47 1c 01          	movb   $0x1,0x1c(%edi)
439ac2:	c7 47 18 0d 00 00 00 	movl   $0xd,0x18(%edi)
439ac9:	80 7f 1c 00          	cmpb   $0x0,0x1c(%edi)
439acd:	74 05                	je     0x439ad4
439acf:	8b 5f 18             	mov    0x18(%edi),%ebx
439ad2:	eb 02                	jmp    0x439ad6
439ad4:	33 db                	xor    %ebx,%ebx
439ad6:	56                   	push   %esi
439ad7:	e8 de 0d ff ff       	call   0x42a8ba
439adc:	59                   	pop    %ecx
439add:	eb 63                	jmp    0x439b42
439adf:	85 c9                	test   %ecx,%ecx
439ae1:	7f c8                	jg     0x439aab
439ae3:	7c 04                	jl     0x439ae9
439ae5:	85 c0                	test   %eax,%eax
439ae7:	73 c2                	jae    0x439aab
439ae9:	6a 00                	push   $0x0
439aeb:	ff 75 10             	push   0x10(%ebp)
439aee:	ff 75 0c             	push   0xc(%ebp)
439af1:	53                   	push   %ebx
439af2:	e8 19 4a ff ff       	call   0x42e510
439af7:	23 c2                	and    %edx,%eax
439af9:	83 c4 10             	add    $0x10,%esp
439afc:	83 f8 ff             	cmp    $0xffffffff,%eax
439aff:	75 08                	jne    0x439b09
439b01:	80 7f 1c 00          	cmpb   $0x0,0x1c(%edi)
439b05:	74 a4                	je     0x439aab
439b07:	eb 31                	jmp    0x439b3a
439b09:	53                   	push   %ebx
439b0a:	e8 52 98 ff ff       	call   0x433361
439b0f:	59                   	pop    %ecx
439b10:	50                   	push   %eax
439b11:	ff 15 74 e0 43 00    	call   *0x43e074
439b17:	85 c0                	test   %eax,%eax
439b19:	75 90                	jne    0x439aab
439b1b:	ff 15 6c e0 43 00    	call   *0x43e06c
439b21:	6a 0d                	push   $0xd
439b23:	c6 47 24 01          	movb   $0x1,0x24(%edi)
439b27:	89 47 20             	mov    %eax,0x20(%edi)
439b2a:	5b                   	pop    %ebx
439b2b:	c6 47 1c 01          	movb   $0x1,0x1c(%edi)
439b2f:	89 5f 18             	mov    %ebx,0x18(%edi)
439b32:	eb 0e                	jmp    0x439b42
439b34:	80 7f 1c 00          	cmpb   $0x0,0x1c(%edi)
439b38:	74 05                	je     0x439b3f
439b3a:	8b 5f 18             	mov    0x18(%edi),%ebx
439b3d:	eb 03                	jmp    0x439b42
439b3f:	6a 16                	push   $0x16
439b41:	5b                   	pop    %ebx
439b42:	6a 00                	push   $0x0
439b44:	ff 75 d8             	push   -0x28(%ebp)
439b47:	ff 75 d4             	push   -0x2c(%ebp)
439b4a:	ff 75 ec             	push   -0x14(%ebp)
439b4d:	e8 be 49 ff ff       	call   0x42e510
439b52:	83 c4 10             	add    $0x10,%esp
439b55:	8b c3                	mov    %ebx,%eax
439b57:	5f                   	pop    %edi
439b58:	5e                   	pop    %esi
439b59:	5b                   	pop    %ebx
439b5a:	c9                   	leave
439b5b:	c3                   	ret
439b5c:	33 c0                	xor    %eax,%eax
439b5e:	50                   	push   %eax
439b5f:	50                   	push   %eax
439b60:	6a 03                	push   $0x3
439b62:	50                   	push   %eax
439b63:	6a 03                	push   $0x3
439b65:	68 00 00 00 40       	push   $0x40000000
439b6a:	68 18 92 44 00       	push   $0x449218
439b6f:	ff 15 b8 e0 43 00    	call   *0x43e0b8
439b75:	a3 90 5a 45 00       	mov    %eax,0x455a90
439b7a:	c3                   	ret
439b7b:	8b 0d 90 5a 45 00    	mov    0x455a90,%ecx
439b81:	83 f9 fe             	cmp    $0xfffffffe,%ecx
439b84:	75 0b                	jne    0x439b91
439b86:	e8 d1 ff ff ff       	call   0x439b5c
439b8b:	8b 0d 90 5a 45 00    	mov    0x455a90,%ecx
439b91:	33 c0                	xor    %eax,%eax
439b93:	83 f9 ff             	cmp    $0xffffffff,%ecx
439b96:	0f 95 c0             	setne  %al
439b99:	c3                   	ret
439b9a:	cc                   	int3
439b9b:	cc                   	int3
439b9c:	cc                   	int3
439b9d:	cc                   	int3
439b9e:	cc                   	int3
439b9f:	cc                   	int3
439ba0:	a1 90 5a 45 00       	mov    0x455a90,%eax
439ba5:	83 f8 ff             	cmp    $0xffffffff,%eax
439ba8:	74 0c                	je     0x439bb6
439baa:	83 f8 fe             	cmp    $0xfffffffe,%eax
439bad:	74 07                	je     0x439bb6
439baf:	50                   	push   %eax
439bb0:	ff 15 68 e0 43 00    	call   *0x43e068
439bb6:	c3                   	ret
439bb7:	8b ff                	mov    %edi,%edi
439bb9:	55                   	push   %ebp
439bba:	8b ec                	mov    %esp,%ebp
439bbc:	56                   	push   %esi
439bbd:	6a 00                	push   $0x0
439bbf:	ff 75 10             	push   0x10(%ebp)
439bc2:	ff 75 0c             	push   0xc(%ebp)
439bc5:	ff 75 08             	push   0x8(%ebp)
439bc8:	ff 35 90 5a 45 00    	push   0x455a90
439bce:	ff 15 70 e0 43 00    	call   *0x43e070
439bd4:	8b f0                	mov    %eax,%esi
439bd6:	85 f6                	test   %esi,%esi
439bd8:	75 2d                	jne    0x439c07
439bda:	ff 15 6c e0 43 00    	call   *0x43e06c
439be0:	83 f8 06             	cmp    $0x6,%eax
439be3:	75 22                	jne    0x439c07
439be5:	e8 b6 ff ff ff       	call   0x439ba0
439bea:	e8 6d ff ff ff       	call   0x439b5c
439bef:	56                   	push   %esi
439bf0:	ff 75 10             	push   0x10(%ebp)
439bf3:	ff 75 0c             	push   0xc(%ebp)
439bf6:	ff 75 08             	push   0x8(%ebp)
439bf9:	ff 35 90 5a 45 00    	push   0x455a90
439bff:	ff 15 70 e0 43 00    	call   *0x43e070
439c05:	8b f0                	mov    %eax,%esi
439c07:	8b c6                	mov    %esi,%eax
439c09:	5e                   	pop    %esi
439c0a:	5d                   	pop    %ebp
439c0b:	c3                   	ret
439c0c:	8b ff                	mov    %edi,%edi
439c0e:	55                   	push   %ebp
439c0f:	8b ec                	mov    %esp,%ebp
439c11:	51                   	push   %ecx
439c12:	51                   	push   %ecx
439c13:	8b 55 0c             	mov    0xc(%ebp),%edx
439c16:	56                   	push   %esi
439c17:	8b 75 10             	mov    0x10(%ebp),%esi
439c1a:	0f b7 ca             	movzwl %dx,%ecx
439c1d:	57                   	push   %edi
439c1e:	85 f6                	test   %esi,%esi
439c20:	75 05                	jne    0x439c27
439c22:	be bc 71 45 00       	mov    $0x4571bc,%esi
439c27:	83 3e 00             	cmpl   $0x0,(%esi)
439c2a:	8d 81 00 24 00 00    	lea    0x2400(%ecx),%eax
439c30:	0f b7 c0             	movzwl %ax,%eax
439c33:	75 47                	jne    0x439c7c
439c35:	bf ff 03 00 00       	mov    $0x3ff,%edi
439c3a:	66 3b c7             	cmp    %di,%ax
439c3d:	77 0d                	ja     0x439c4c
439c3f:	ff 75 14             	push   0x14(%ebp)
439c42:	56                   	push   %esi
439c43:	e8 b9 fa ff ff       	call   0x439701
439c48:	59                   	pop    %ecx
439c49:	59                   	pop    %ecx
439c4a:	eb 66                	jmp    0x439cb2
439c4c:	8d 82 00 28 00 00    	lea    0x2800(%edx),%eax
439c52:	66 3b c7             	cmp    %di,%ax
439c55:	8b c1                	mov    %ecx,%eax
439c57:	77 11                	ja     0x439c6a
439c59:	25 ff 27 ff ff       	and    $0xffff27ff,%eax
439c5e:	83 c0 40             	add    $0x40,%eax
439c61:	c1 e0 0a             	shl    $0xa,%eax
439c64:	89 06                	mov    %eax,(%esi)
439c66:	33 c0                	xor    %eax,%eax
439c68:	eb 48                	jmp    0x439cb2
439c6a:	ff 75 14             	push   0x14(%ebp)
439c6d:	56                   	push   %esi
439c6e:	50                   	push   %eax
439c6f:	ff 75 08             	push   0x8(%ebp)
439c72:	e8 ff d7 ff ff       	call   0x437476
439c77:	83 c4 10             	add    $0x10,%esp
439c7a:	eb 36                	jmp    0x439cb2
439c7c:	ff 75 14             	push   0x14(%ebp)
439c7f:	b9 ff 03 00 00       	mov    $0x3ff,%ecx
439c84:	66 3b c1             	cmp    %cx,%ax
439c87:	77 b9                	ja     0x439c42
439c89:	83 65 f8 00          	andl   $0x0,-0x8(%ebp)
439c8d:	8d 45 f8             	lea    -0x8(%ebp),%eax
439c90:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
439c94:	50                   	push   %eax
439c95:	0f b7 c2             	movzwl %dx,%eax
439c98:	25 ff 23 ff ff       	and    $0xffff23ff,%eax
439c9d:	03 06                	add    (%esi),%eax
439c9f:	50                   	push   %eax
439ca0:	ff 75 08             	push   0x8(%ebp)
439ca3:	e8 ce d7 ff ff       	call   0x437476
439ca8:	56                   	push   %esi
439ca9:	50                   	push   %eax
439caa:	e8 3e fa ff ff       	call   0x4396ed
439caf:	83 c4 18             	add    $0x18,%esp
439cb2:	5f                   	pop    %edi
439cb3:	5e                   	pop    %esi
439cb4:	c9                   	leave
439cb5:	c3                   	ret
439cb6:	8b ff                	mov    %edi,%edi
439cb8:	55                   	push   %ebp
439cb9:	8b ec                	mov    %esp,%ebp
439cbb:	56                   	push   %esi
439cbc:	8b 75 14             	mov    0x14(%ebp),%esi
439cbf:	85 f6                	test   %esi,%esi
439cc1:	7e 0d                	jle    0x439cd0
439cc3:	56                   	push   %esi
439cc4:	ff 75 10             	push   0x10(%ebp)
439cc7:	e8 0f d8 fe ff       	call   0x4274db
439ccc:	59                   	pop    %ecx
439ccd:	59                   	pop    %ecx
439cce:	8b f0                	mov    %eax,%esi
439cd0:	8b 45 1c             	mov    0x1c(%ebp),%eax
439cd3:	85 c0                	test   %eax,%eax
439cd5:	7e 0b                	jle    0x439ce2
439cd7:	50                   	push   %eax
439cd8:	ff 75 18             	push   0x18(%ebp)
439cdb:	e8 fb d7 fe ff       	call   0x4274db
439ce0:	59                   	pop    %ecx
439ce1:	59                   	pop    %ecx
439ce2:	85 f6                	test   %esi,%esi
439ce4:	74 1e                	je     0x439d04
439ce6:	85 c0                	test   %eax,%eax
439ce8:	74 1a                	je     0x439d04
439cea:	33 c9                	xor    %ecx,%ecx
439cec:	51                   	push   %ecx
439ced:	51                   	push   %ecx
439cee:	51                   	push   %ecx
439cef:	50                   	push   %eax
439cf0:	ff 75 18             	push   0x18(%ebp)
439cf3:	56                   	push   %esi
439cf4:	ff 75 10             	push   0x10(%ebp)
439cf7:	ff 75 0c             	push   0xc(%ebp)
439cfa:	ff 75 08             	push   0x8(%ebp)
439cfd:	e8 07 38 ff ff       	call   0x42d509
439d02:	eb 14                	jmp    0x439d18
439d04:	2b f0                	sub    %eax,%esi
439d06:	75 05                	jne    0x439d0d
439d08:	6a 02                	push   $0x2
439d0a:	5e                   	pop    %esi
439d0b:	eb 09                	jmp    0x439d16
439d0d:	c1 fe 1f             	sar    $0x1f,%esi
439d10:	83 e6 fe             	and    $0xfffffffe,%esi
439d13:	83 c6 03             	add    $0x3,%esi
439d16:	8b c6                	mov    %esi,%eax
439d18:	5e                   	pop    %esi
439d19:	5d                   	pop    %ebp
439d1a:	c3                   	ret
439d1b:	cc                   	int3
439d1c:	cc                   	int3
439d1d:	cc                   	int3
439d1e:	cc                   	int3
439d1f:	cc                   	int3
439d20:	55                   	push   %ebp
439d21:	8b ec                	mov    %esp,%ebp
439d23:	83 ec 08             	sub    $0x8,%esp
439d26:	83 e4 f0             	and    $0xfffffff0,%esp
439d29:	dd 1c 24             	fstpl  (%esp)
439d2c:	f3 0f 7e 04 24       	movq   (%esp),%xmm0
439d31:	e8 08 00 00 00       	call   0x439d3e
439d36:	c9                   	leave
439d37:	c3                   	ret
439d38:	66 0f 12 44 24 04    	movlpd 0x4(%esp),%xmm0
439d3e:	ba 00 00 00 00       	mov    $0x0,%edx
439d43:	66 0f 28 e8          	movapd %xmm0,%xmm5
439d47:	66 0f 14 c0          	unpcklpd %xmm0,%xmm0
439d4b:	66 0f 73 d5 34       	psrlq  $0x34,%xmm5
439d50:	66 0f c5 cd 00       	pextrw $0x0,%xmm5,%ecx
439d55:	66 0f 28 0d 30 92 44 	movapd 0x449230,%xmm1
439d5c:	00
439d5d:	66 0f 28 15 40 92 44 	movapd 0x449240,%xmm2
439d64:	00
439d65:	66 0f 28 1d a0 92 44 	movapd 0x4492a0,%xmm3
439d6c:	00
439d6d:	66 0f 28 25 50 92 44 	movapd 0x449250,%xmm4
439d74:	00
439d75:	66 0f 28 35 60 92 44 	movapd 0x449260,%xmm6
439d7c:	00
439d7d:	66 0f 54 c1          	andpd  %xmm1,%xmm0
439d81:	66 0f 56 c3          	orpd   %xmm3,%xmm0
439d85:	66 0f 58 e0          	addpd  %xmm0,%xmm4
439d89:	66 0f c5 c4 00       	pextrw $0x0,%xmm4,%eax
439d8e:	25 f0 07 00 00       	and    $0x7f0,%eax