4178c3:	66 89 10             	mov    %dx,(%eax)
4178c6:	8b c1                	mov    %ecx,%eax
4178c8:	5d                   	pop    %ebp
4178c9:	c3                   	ret
4178ca:	8b ff                	mov    %edi,%edi
4178cc:	55                   	push   %ebp
4178cd:	8b ec                	mov    %esp,%ebp
4178cf:	85 d2                	test   %edx,%edx
4178d1:	74 2b                	je     0x4178fe
4178d3:	8b 45 0c             	mov    0xc(%ebp),%eax
4178d6:	56                   	push   %esi
4178d7:	57                   	push   %edi
4178d8:	be fe ff ff 7f       	mov    $0x7ffffffe,%esi
4178dd:	2b c1                	sub    %ecx,%eax
4178df:	85 f6                	test   %esi,%esi
4178e1:	74 15                	je     0x4178f8
4178e3:	0f b7 3c 08          	movzwl (%eax,%ecx,1),%edi
4178e7:	66 85 ff             	test   %di,%di
4178ea:	74 0c                	je     0x4178f8
4178ec:	66 89 39             	mov    %di,(%ecx)
4178ef:	83 c1 02             	add    $0x2,%ecx
4178f2:	4e                   	dec    %esi
4178f3:	83 ea 01             	sub    $0x1,%edx
4178f6:	75 e7                	jne    0x4178df
4178f8:	5f                   	pop    %edi
4178f9:	5e                   	pop    %esi
4178fa:	85 d2                	test   %edx,%edx
4178fc:	75 03                	jne    0x417901
4178fe:	83 e9 02             	sub    $0x2,%ecx
417901:	f7 da                	neg    %edx
417903:	1b d2                	sbb    %edx,%edx
417905:	81 e2 86 ff f8 7f    	and    $0x7ff8ff86,%edx
41790b:	33 c0                	xor    %eax,%eax
41790d:	66 89 01             	mov    %ax,(%ecx)
417910:	8d 82 7a 00 07 80    	lea    -0x7ff8ff86(%edx),%eax
417916:	5d                   	pop    %ebp
417917:	c2 0c 00             	ret    $0xc
41791a:	8b ff                	mov    %edi,%edi
41791c:	55                   	push   %ebp
41791d:	8b ec                	mov    %esp,%ebp
41791f:	53                   	push   %ebx
417920:	56                   	push   %esi
417921:	57                   	push   %edi
417922:	ff 75 10             	push   0x10(%ebp)
417925:	8d 72 ff             	lea    -0x1(%edx),%esi
417928:	8b f9                	mov    %ecx,%edi
41792a:	ff 75 0c             	push   0xc(%ebp)
41792d:	33 db                	xor    %ebx,%ebx
41792f:	56                   	push   %esi
417930:	57                   	push   %edi
417931:	ff 15 d4 7f 4a 00    	call   *0x4a7fd4
417937:	83 c4 10             	add    $0x10,%esp
41793a:	85 c0                	test   %eax,%eax
41793c:	78 08                	js     0x417946
41793e:	3b c6                	cmp    %esi,%eax
417940:	77 04                	ja     0x417946
417942:	75 0d                	jne    0x417951
417944:	eb 05                	jmp    0x41794b
417946:	bb 7a 00 07 80       	mov    $0x8007007a,%ebx
41794b:	33 c0                	xor    %eax,%eax
41794d:	66 89 04 77          	mov    %ax,(%edi,%esi,2)
417951:	5f                   	pop    %edi
417952:	5e                   	pop    %esi
417953:	8b c3                	mov    %ebx,%eax
417955:	5b                   	pop    %ebx
417956:	5d                   	pop    %ebp
417957:	c2 0c 00             	ret    $0xc
41795a:	8b ff                	mov    %edi,%edi
41795c:	55                   	push   %ebp
41795d:	8b ec                	mov    %esp,%ebp
41795f:	8b 55 0c             	mov    0xc(%ebp),%edx
417962:	8d 45 14             	lea    0x14(%ebp),%eax
417965:	56                   	push   %esi
417966:	8b 75 08             	mov    0x8(%ebp),%esi
417969:	2b d6                	sub    %esi,%edx
41796b:	50                   	push   %eax
41796c:	ff 75 10             	push   0x10(%ebp)
41796f:	d1 fa                	sar    $1,%edx
417971:	8b ce                	mov    %esi,%ecx
417973:	e8 d7 fe ff ff       	call   0x41784f
417978:	39 75 0c             	cmp    %esi,0xc(%ebp)
41797b:	74 17                	je     0x417994
41797d:	8b ce                	mov    %esi,%ecx
41797f:	8d 51 02             	lea    0x2(%ecx),%edx
417982:	66 8b 01             	mov    (%ecx),%ax
417985:	83 c1 02             	add    $0x2,%ecx
417988:	66 85 c0             	test   %ax,%ax
41798b:	75 f5                	jne    0x417982
41798d:	2b ca                	sub    %edx,%ecx
41798f:	d1 f9                	sar    $1,%ecx
417991:	8d 34 4e             	lea    (%esi,%ecx,2),%esi
417994:	8b c6                	mov    %esi,%eax
417996:	5e                   	pop    %esi
417997:	5d                   	pop    %ebp
417998:	c3                   	ret
417999:	8b ff                	mov    %edi,%edi
41799b:	55                   	push   %ebp
41799c:	8b ec                	mov    %esp,%ebp
41799e:	81 ec 0c 02 00 00    	sub    $0x20c,%esp
4179a4:	a1 dc 38 4a 00       	mov    0x4a38dc,%eax
4179a9:	33 c5                	xor    %ebp,%eax
4179ab:	89 45 fc             	mov    %eax,-0x4(%ebp)
4179ae:	53                   	push   %ebx
4179af:	8b d9                	mov    %ecx,%ebx
4179b1:	8b c2                	mov    %edx,%eax
4179b3:	89 85 f4 fd ff ff    	mov    %eax,-0x20c(%ebp)
4179b9:	56                   	push   %esi
4179ba:	8b 75 08             	mov    0x8(%ebp),%esi
4179bd:	85 db                	test   %ebx,%ebx
4179bf:	0f 84 c2 01 00 00    	je     0x417b87
4179c5:	57                   	push   %edi
4179c6:	8b 3d 4c 46 4a 00    	mov    0x4a464c,%edi
4179cc:	33 c9                	xor    %ecx,%ecx
4179ce:	66 89 0b             	mov    %cx,(%ebx)
4179d1:	85 ff                	test   %edi,%edi
4179d3:	74 20                	je     0x4179f5
4179d5:	38 0d 5c 46 4a 00    	cmp    %cl,0x4a465c
4179db:	74 18                	je     0x4179f5
4179dd:	50                   	push   %eax
4179de:	53                   	push   %ebx
4179df:	56                   	push   %esi
4179e0:	8b cf                	mov    %edi,%ecx
4179e2:	ff 15 2c 81 4a 00    	call   *0x4a812c
4179e8:	ff d7                	call   *%edi
4179ea:	33 c9                	xor    %ecx,%ecx
4179ec:	66 39 0b             	cmp    %cx,(%ebx)
4179ef:	0f 85 91 01 00 00    	jne    0x417b86
4179f5:	8b 06                	mov    (%esi),%eax
4179f7:	c7 85 f8 fd ff ff bc 	movl   $0x40f1bc,-0x208(%ebp)
4179fe:	f1 40 00
417a01:	2b c1                	sub    %ecx,%eax
417a03:	74 33                	je     0x417a38
417a05:	83 e8 01             	sub    $0x1,%eax
417a08:	74 22                	je     0x417a2c
417a0a:	83 e8 01             	sub    $0x1,%eax
417a0d:	74 11                	je     0x417a20
417a0f:	83 e8 01             	sub    $0x1,%eax
417a12:	75 2e                	jne    0x417a42
417a14:	c7 85 f8 fd ff ff f0 	movl   $0x40f1f0,-0x208(%ebp)
417a1b:	f1 40 00
417a1e:	eb 22                	jmp    0x417a42
417a20:	c7 85 f8 fd ff ff e8 	movl   $0x40f1e8,-0x208(%ebp)
417a27:	f1 40 00
417a2a:	eb 16                	jmp    0x417a42
417a2c:	c7 85 f8 fd ff ff dc 	movl   $0x40f1dc,-0x208(%ebp)
417a33:	f1 40 00
417a36:	eb 0a                	jmp    0x417a42
417a38:	c7 85 f8 fd ff ff d0 	movl   $0x40f1d0,-0x208(%ebp)
417a3f:	f1 40 00
417a42:	51                   	push   %ecx
417a43:	33 c0                	xor    %eax,%eax
417a45:	68 00 01 00 00       	push   $0x100
417a4a:	66 89 85 fc fd ff ff 	mov    %ax,-0x204(%ebp)
417a51:	8d 85 fc fd ff ff    	lea    -0x204(%ebp),%eax
417a57:	50                   	push   %eax
417a58:	68 00 04 00 00       	push   $0x400
417a5d:	ff 76 04             	push   0x4(%esi)
417a60:	51                   	push   %ecx
417a61:	68 00 12 00 00       	push   $0x1200
417a66:	ff 15 b4 72 4a 00    	call   *0x4a72b4
417a6c:	83 7e 1c 00          	cmpl   $0x0,0x1c(%esi)
417a70:	8b 85 f4 fd ff ff    	mov    -0x20c(%ebp),%eax
417a76:	ff 76 48             	push   0x48(%esi)
417a79:	ff 76 44             	push   0x44(%esi)
417a7c:	8d 3c 43             	lea    (%ebx,%eax,2),%edi
417a7f:	74 17                	je     0x417a98
417a81:	ff 76 20             	push   0x20(%esi)
417a84:	ff 76 1c             	push   0x1c(%esi)
417a87:	68 fc f1 40 00       	push   $0x40f1fc
417a8c:	57                   	push   %edi
417a8d:	53                   	push   %ebx
417a8e:	e8 c7 fe ff ff       	call   0x41795a
417a93:	83 c4 1c             	add    $0x1c,%esp
417a96:	eb 0f                	jmp    0x417aa7
417a98:	68 20 f2 40 00       	push   $0x40f220
417a9d:	57                   	push   %edi
417a9e:	53                   	push   %ebx
417a9f:	e8 b6 fe ff ff       	call   0x41795a
417aa4:	83 c4 14             	add    $0x14,%esp
417aa7:	83 7e 4c 00          	cmpl   $0x0,0x4c(%esi)
417aab:	8b d8                	mov    %eax,%ebx
417aad:	74 14                	je     0x417ac3
417aaf:	ff 76 4c             	push   0x4c(%esi)
417ab2:	68 34 f2 40 00       	push   $0x40f234
417ab7:	57                   	push   %edi
417ab8:	53                   	push   %ebx
417ab9:	e8 9c fe ff ff       	call   0x41795a
417abe:	83 c4 10             	add    $0x10,%esp
417ac1:	8b d8                	mov    %eax,%ebx
417ac3:	8d 85 fc fd ff ff    	lea    -0x204(%ebp),%eax
417ac9:	50                   	push   %eax
417aca:	ff 76 04             	push   0x4(%esi)
417acd:	ff 15 ac 72 4a 00    	call   *0x4a72ac
417ad3:	50                   	push   %eax
417ad4:	ff 76 24             	push   0x24(%esi)
417ad7:	ff b5 f8 fd ff ff    	push   -0x208(%ebp)
417add:	68 50 f2 40 00       	push   $0x40f250
417ae2:	57                   	push   %edi
417ae3:	53                   	push   %ebx
417ae4:	e8 71 fe ff ff       	call   0x41795a
417ae9:	33 c9                	xor    %ecx,%ecx
417aeb:	83 c4 20             	add    $0x20,%esp
417aee:	39 4e 0c             	cmp    %ecx,0xc(%esi)
417af1:	75 0e                	jne    0x417b01
417af3:	39 4e 28             	cmp    %ecx,0x28(%esi)
417af6:	75 09                	jne    0x417b01
417af8:	39 4e 18             	cmp    %ecx,0x18(%esi)
417afb:	0f 84 85 00 00 00    	je     0x417b86
417b01:	68 84 f2 40 00       	push   $0x40f284
417b06:	57                   	push   %edi
417b07:	50                   	push   %eax
417b08:	e8 4d fe ff ff       	call   0x41795a
417b0d:	83 c4 0c             	add    $0xc,%esp
417b10:	83 7e 0c 00          	cmpl   $0x0,0xc(%esi)
417b14:	74 12                	je     0x417b28
417b16:	ff 76 0c             	push   0xc(%esi)
417b19:	68 90 f2 40 00       	push   $0x40f290
417b1e:	57                   	push   %edi
417b1f:	50                   	push   %eax
417b20:	e8 35 fe ff ff       	call   0x41795a
417b25:	83 c4 10             	add    $0x10,%esp
417b28:	83 7e 28 00          	cmpl   $0x0,0x28(%esi)
417b2c:	74 12                	je     0x417b40
417b2e:	ff 76 28             	push   0x28(%esi)
417b31:	68 a8 f2 40 00       	push   $0x40f2a8
417b36:	57                   	push   %edi
417b37:	50                   	push   %eax
417b38:	e8 1d fe ff ff       	call   0x41795a
417b3d:	83 c4 10             	add    $0x10,%esp
417b40:	83 7e 14 00          	cmpl   $0x0,0x14(%esi)
417b44:	74 17                	je     0x417b5d
417b46:	ff 76 14             	push   0x14(%esi)
417b49:	ff 76 18             	push   0x18(%esi)
417b4c:	68 d0 f2 40 00       	push   $0x40f2d0
417b51:	57                   	push   %edi
417b52:	50                   	push   %eax
417b53:	e8 02 fe ff ff       	call   0x41795a
417b58:	83 c4 14             	add    $0x14,%esp
417b5b:	eb 29                	jmp    0x417b86
417b5d:	83 7e 18 00          	cmpl   $0x0,0x18(%esi)
417b61:	74 14                	je     0x417b77
417b63:	ff 76 18             	push   0x18(%esi)
417b66:	68 e8 f2 40 00       	push   $0x40f2e8
417b6b:	57                   	push   %edi
417b6c:	50                   	push   %eax
417b6d:	e8 e8 fd ff ff       	call   0x41795a
417b72:	83 c4 10             	add    $0x10,%esp
417b75:	eb 0f                	jmp    0x417b86
417b77:	68 f8 f2 40 00       	push   $0x40f2f8
417b7c:	57                   	push   %edi
417b7d:	50                   	push   %eax
417b7e:	e8 d7 fd ff ff       	call   0x41795a
417b83:	83 c4 0c             	add    $0xc,%esp
417b86:	5f                   	pop    %edi
417b87:	8b 4d fc             	mov    -0x4(%ebp),%ecx
417b8a:	33 c0                	xor    %eax,%eax
417b8c:	5e                   	pop    %esi
417b8d:	33 cd                	xor    %ebp,%ecx
417b8f:	5b                   	pop    %ebx
417b90:	e8 6b 83 07 00       	call   0x48ff00
417b95:	c9                   	leave
417b96:	c2 04 00             	ret    $0x4
417b99:	8b ff                	mov    %edi,%edi
417b9b:	57                   	push   %edi
417b9c:	52                   	push   %edx
417b9d:	51                   	push   %ecx
417b9e:	ff 15 74 72 4a 00    	call   *0x4a7274
417ba4:	50                   	push   %eax
417ba5:	ff 15 84 72 4a 00    	call   *0x4a7284
417bab:	83 3d 6c 46 4a 00 00 	cmpl   $0x0,0x4a466c
417bb2:	8b f8                	mov    %eax,%edi
417bb4:	74 1a                	je     0x417bd0
417bb6:	56                   	push   %esi
417bb7:	57                   	push   %edi
417bb8:	ff 15 74 72 4a 00    	call   *0x4a7274
417bbe:	8b 35 6c 46 4a 00    	mov    0x4a466c,%esi
417bc4:	8b ce                	mov    %esi,%ecx
417bc6:	50                   	push   %eax
417bc7:	ff 15 2c 81 4a 00    	call   *0x4a812c
417bcd:	ff d6                	call   *%esi
417bcf:	5e                   	pop    %esi
417bd0:	8b c7                	mov    %edi,%eax
417bd2:	5f                   	pop    %edi
417bd3:	c3                   	ret
417bd4:	8b ff                	mov    %edi,%edi
417bd6:	55                   	push   %ebp
417bd7:	8b ec                	mov    %esp,%ebp
417bd9:	8b 45 08             	mov    0x8(%ebp),%eax
417bdc:	53                   	push   %ebx
417bdd:	56                   	push   %esi
417bde:	8b f1                	mov    %ecx,%esi
417be0:	57                   	push   %edi
417be1:	83 26 00             	andl   $0x0,(%esi)
417be4:	83 66 04 00          	andl   $0x0,0x4(%esi)
417be8:	8b 58 04             	mov    0x4(%eax),%ebx
417beb:	8b 38                	mov    (%eax),%edi
417bed:	e8 15 00 00 00       	call   0x417c07
417bf2:	85 ff                	test   %edi,%edi
417bf4:	74 08                	je     0x417bfe
417bf6:	89 3e                	mov    %edi,(%esi)
417bf8:	89 5e 04             	mov    %ebx,0x4(%esi)
417bfb:	f0 ff 07             	lock incl (%edi)
417bfe:	5f                   	pop    %edi
417bff:	8b c6                	mov    %esi,%eax
417c01:	5e                   	pop    %esi
417c02:	5b                   	pop    %ebx
417c03:	5d                   	pop    %ebp
417c04:	c2 04 00             	ret    $0x4
417c07:	8b ff                	mov    %edi,%edi
417c09:	56                   	push   %esi
417c0a:	8b f1                	mov    %ecx,%esi
417c0c:	8b 0e                	mov    (%esi),%ecx
417c0e:	85 c9                	test   %ecx,%ecx
417c10:	74 21                	je     0x417c33
417c12:	83 c8 ff             	or     $0xffffffff,%eax
417c15:	f0 0f c1 01          	lock xadd %eax,(%ecx)
417c19:	75 11                	jne    0x417c2c
417c1b:	ff 36                	push   (%esi)
417c1d:	6a 00                	push   $0x0
417c1f:	ff 15 74 72 4a 00    	call   *0x4a7274
417c25:	50                   	push   %eax
417c26:	ff 15 94 72 4a 00    	call   *0x4a7294
417c2c:	83 26 00             	andl   $0x0,(%esi)
417c2f:	83 66 04 00          	andl   $0x0,0x4(%esi)
417c33:	5e                   	pop    %esi
417c34:	c3                   	ret
417c35:	8b ff                	mov    %edi,%edi
417c37:	55                   	push   %ebp
417c38:	8b ec                	mov    %esp,%ebp
417c3a:	53                   	push   %ebx
417c3b:	56                   	push   %esi
417c3c:	8b 75 0c             	mov    0xc(%ebp),%esi
417c3f:	8b d9                	mov    %ecx,%ebx
417c41:	85 f6                	test   %esi,%esi
417c43:	75 09                	jne    0x417c4e
417c45:	e8 bd ff ff ff       	call   0x417c07
417c4a:	b0 01                	mov    $0x1,%al
417c4c:	eb 4b                	jmp    0x417c99
417c4e:	57                   	push   %edi
417c4f:	8d 46 04             	lea    0x4(%esi),%eax
417c52:	50                   	push   %eax
417c53:	6a 00                	push   $0x0
417c55:	ff 15 74 72 4a 00    	call   *0x4a7274
417c5b:	50                   	push   %eax
417c5c:	ff 15 84 72 4a 00    	call   *0x4a7284
417c62:	8b f8                	mov    %eax,%edi
417c64:	85 ff                	test   %edi,%edi
417c66:	75 04                	jne    0x417c6c
417c68:	32 c0                	xor    %al,%al
417c6a:	eb 2c                	jmp    0x417c98