4178bb:	e8 9d c1 ff ff       	call   0x413a5d
4178c0:	8b f0                	mov    %eax,%esi
4178c2:	83 cb ff             	or     $0xffffffff,%ebx
4178c5:	89 75 ec             	mov    %esi,-0x14(%ebp)
4178c8:	3b f3                	cmp    %ebx,%esi
4178ca:	75 07                	jne    0x4178d3
4178cc:	32 c0                	xor    %al,%al
4178ce:	e9 81 00 00 00       	jmp    0x417954
4178d3:	83 e6 07             	and    $0x7,%esi
4178d6:	46                   	inc    %esi
4178d7:	83 fe 07             	cmp    $0x7,%esi
4178da:	75 10                	jne    0x4178ec
4178dc:	8b cf                	mov    %edi,%ecx
4178de:	e8 7a c1 ff ff       	call   0x413a5d
4178e3:	3b c3                	cmp    %ebx,%eax
4178e5:	74 e5                	je     0x4178cc
4178e7:	8d 70 07             	lea    0x7(%eax),%esi
4178ea:	eb 22                	jmp    0x41790e
4178ec:	83 fe 08             	cmp    $0x8,%esi
4178ef:	75 1d                	jne    0x41790e
4178f1:	8b cf                	mov    %edi,%ecx
4178f3:	e8 65 c1 ff ff       	call   0x413a5d
4178f8:	8b f0                	mov    %eax,%esi
4178fa:	3b f3                	cmp    %ebx,%esi
4178fc:	74 ce                	je     0x4178cc
4178fe:	8b cf                	mov    %edi,%ecx
417900:	e8 58 c1 ff ff       	call   0x413a5d
417905:	3b c3                	cmp    %ebx,%eax
417907:	74 c3                	je     0x4178cc
417909:	c1 e6 08             	shl    $0x8,%esi
41790c:	03 f0                	add    %eax,%esi
41790e:	56                   	push   %esi
41790f:	8d 4d dc             	lea    -0x24(%ebp),%ecx
417912:	e8 b9 99 fe ff       	call   0x4012d0
417917:	8b 7d dc             	mov    -0x24(%ebp),%edi
41791a:	33 db                	xor    %ebx,%ebx
41791c:	3b f3                	cmp    %ebx,%esi
41791e:	89 5d fc             	mov    %ebx,-0x4(%ebp)
417921:	7e 15                	jle    0x417938
417923:	8b 4d f0             	mov    -0x10(%ebp),%ecx
417926:	e8 32 c1 ff ff       	call   0x413a5d
41792b:	83 f8 ff             	cmp    $0xffffffff,%eax
41792e:	74 33                	je     0x417963
417930:	88 04 1f             	mov    %al,(%edi,%ebx,1)
417933:	43                   	inc    %ebx
417934:	3b de                	cmp    %esi,%ebx
417936:	7c eb                	jl     0x417923
417938:	8b 4d f0             	mov    -0x10(%ebp),%ecx
41793b:	56                   	push   %esi
41793c:	57                   	push   %edi
41793d:	ff 75 ec             	push   -0x14(%ebp)
417940:	e8 67 ea ff ff       	call   0x4163ac
417945:	8a d8                	mov    %al,%bl
417947:	85 ff                	test   %edi,%edi
417949:	74 07                	je     0x417952
41794b:	57                   	push   %edi
41794c:	e8 91 25 00 00       	call   0x419ee2
417951:	59                   	pop    %ecx
417952:	8a c3                	mov    %bl,%al
417954:	8b 4d f4             	mov    -0xc(%ebp),%ecx
417957:	5f                   	pop    %edi
417958:	5e                   	pop    %esi
417959:	5b                   	pop    %ebx
41795a:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
417961:	c9                   	leave
417962:	c3                   	ret
417963:	85 ff                	test   %edi,%edi
417965:	0f 84 61 ff ff ff    	je     0x4178cc
41796b:	57                   	push   %edi
41796c:	e8 71 25 00 00       	call   0x419ee2
417971:	59                   	pop    %ecx
417972:	e9 55 ff ff ff       	jmp    0x4178cc
417977:	55                   	push   %ebp
417978:	8b ec                	mov    %esp,%ebp
41797a:	83 ec 10             	sub    $0x10,%esp
41797d:	53                   	push   %ebx
41797e:	56                   	push   %esi
41797f:	33 db                	xor    %ebx,%ebx
417981:	57                   	push   %edi
417982:	8b f1                	mov    %ecx,%esi
417984:	39 1d c4 eb 44 00    	cmp    %ebx,0x44ebc4
41798a:	75 4c                	jne    0x4179d8
41798c:	89 5d f8             	mov    %ebx,-0x8(%ebp)
41798f:	33 ff                	xor    %edi,%edi
417991:	8b 14 9d c8 f1 42 00 	mov    0x42f1c8(,%ebx,4),%edx
417998:	85 d2                	test   %edx,%edx
41799a:	7e 36                	jle    0x4179d2
41799c:	52                   	push   %edx
41799d:	8d 87 80 eb 44 00    	lea    0x44eb80(%edi),%eax
4179a3:	8b cb                	mov    %ebx,%ecx
4179a5:	53                   	push   %ebx
4179a6:	c7 45 f4 01 00 00 00 	movl   $0x1,-0xc(%ebp)
4179ad:	d3 65 f4             	shll   %cl,-0xc(%ebp)
4179b0:	50                   	push   %eax
4179b1:	89 55 fc             	mov    %edx,-0x4(%ebp)
4179b4:	e8 47 28 00 00       	call   0x41a200
4179b9:	83 c4 0c             	add    $0xc,%esp
4179bc:	8b 45 f8             	mov    -0x8(%ebp),%eax
4179bf:	89 04 bd c0 eb 44 00 	mov    %eax,0x44ebc0(,%edi,4)
4179c6:	03 45 f4             	add    -0xc(%ebp),%eax
4179c9:	47                   	inc    %edi
4179ca:	ff 4d fc             	decl   -0x4(%ebp)
4179cd:	89 45 f8             	mov    %eax,-0x8(%ebp)
4179d0:	75 ea                	jne    0x4179bc
4179d2:	43                   	inc    %ebx
4179d3:	83 fb 13             	cmp    $0x13,%ebx
4179d6:	72 b9                	jb     0x417991
4179d8:	80 be 48 4c 00 00 00 	cmpb   $0x0,0x4c48(%esi)
4179df:	c6 86 58 4c 00 00 01 	movb   $0x1,0x4c58(%esi)
4179e6:	75 37                	jne    0x417a1f
4179e8:	ff 75 08             	push   0x8(%ebp)
4179eb:	8b ce                	mov    %esi,%ecx
4179ed:	e8 00 da ff ff       	call   0x4153f2
4179f2:	8b ce                	mov    %esi,%ecx
4179f4:	e8 98 a5 ff ff       	call   0x411f91
4179f9:	84 c0                	test   %al,%al
4179fb:	0f 84 f6 0c 00 00    	je     0x4186f7
417a01:	80 7d 08 00          	cmpb   $0x0,0x8(%ebp)
417a05:	74 09                	je     0x417a10
417a07:	80 be 74 e6 00 00 00 	cmpb   $0x0,0xe674(%esi)
417a0e:	75 0f                	jne    0x417a1f
417a10:	8b ce                	mov    %esi,%ecx
417a12:	e8 f0 c0 ff ff       	call   0x413b07
417a17:	84 c0                	test   %al,%al
417a19:	0f 84 d8 0c 00 00    	je     0x4186f7
417a1f:	8d 7e 04             	lea    0x4(%esi),%edi
417a22:	8b 86 f8 e6 00 00    	mov    0xe6f8(%esi),%eax
417a28:	21 46 70             	and    %eax,0x70(%esi)
417a2b:	8b 07                	mov    (%edi),%eax
417a2d:	3b 46 7c             	cmp    0x7c(%esi),%eax
417a30:	7e 0f                	jle    0x417a41
417a32:	8b ce                	mov    %esi,%ecx
417a34:	e8 58 a5 ff ff       	call   0x411f91
417a39:	84 c0                	test   %al,%al
417a3b:	0f 84 af 0c 00 00    	je     0x4186f0
417a41:	8b 46 74             	mov    0x74(%esi),%eax
417a44:	8b 4e 70             	mov    0x70(%esi),%ecx
417a47:	8b d0                	mov    %eax,%edx
417a49:	2b d1                	sub    %ecx,%edx
417a4b:	23 96 f8 e6 00 00    	and    0xe6f8(%esi),%edx
417a51:	81 fa 04 01 00 00    	cmp    $0x104,%edx
417a57:	73 3e                	jae    0x417a97
417a59:	3b c1                	cmp    %ecx,%eax
417a5b:	74 3a                	je     0x417a97
417a5d:	8b ce                	mov    %esi,%ecx
417a5f:	e8 43 d1 ff ff       	call   0x414ba7
417a64:	8b 86 54 4c 00 00    	mov    0x4c54(%esi),%eax
417a6a:	3b 86 44 4c 00 00    	cmp    0x4c44(%esi),%eax
417a70:	0f 8f 81 0c 00 00    	jg     0x4186f7
417a76:	7c 12                	jl     0x417a8a
417a78:	8b 86 50 4c 00 00    	mov    0x4c50(%esi),%eax
417a7e:	3b 86 40 4c 00 00    	cmp    0x4c40(%esi),%eax
417a84:	0f 87 6d 0c 00 00    	ja     0x4186f7
417a8a:	80 be 48 4c 00 00 00 	cmpb   $0x0,0x4c48(%esi)
417a91:	0f 85 3e 0c 00 00    	jne    0x4186d5
417a97:	83 be 70 e6 00 00 01 	cmpl   $0x1,0xe670(%esi)
417a9e:	0f 85 59 03 00 00    	jne    0x417dfd
417aa4:	8d 8e d0 98 00 00    	lea    0x98d0(%esi),%ecx
417aaa:	e8 9e bc ff ff       	call   0x41374d
417aaf:	8b d8                	mov    %eax,%ebx
417ab1:	83 fb ff             	cmp    $0xffffffff,%ebx
417ab4:	0f 84 24 0c 00 00    	je     0x4186de
417aba:	3b 9e bc e4 00 00    	cmp    0xe4bc(%esi),%ebx
417ac0:	0f 85 26 03 00 00    	jne    0x417dec
417ac6:	8b ce                	mov    %esi,%ecx
417ac8:	e8 90 bf ff ff       	call   0x413a5d
417acd:	85 c0                	test   %eax,%eax
417acf:	75 14                	jne    0x417ae5
417ad1:	8b ce                	mov    %esi,%ecx
417ad3:	e8 2f c0 ff ff       	call   0x413b07
417ad8:	84 c0                	test   %al,%al
417ada:	0f 85 42 ff ff ff    	jne    0x417a22
417ae0:	e9 0b 0c 00 00       	jmp    0x4186f0
417ae5:	83 f8 ff             	cmp    $0xffffffff,%eax
417ae8:	0f 84 02 0c 00 00    	je     0x4186f0
417aee:	83 f8 02             	cmp    $0x2,%eax
417af1:	0f 84 f9 0b 00 00    	je     0x4186f0
417af7:	83 f8 03             	cmp    $0x3,%eax
417afa:	75 09                	jne    0x417b05
417afc:	8b ce                	mov    %esi,%ecx
417afe:	e8 a3 fd ff ff       	call   0x4178a6
417b03:	eb d3                	jmp    0x417ad8
417b05:	83 f8 04             	cmp    $0x4,%eax
417b08:	0f 85 bf 01 00 00    	jne    0x417ccd
417b0e:	33 db                	xor    %ebx,%ebx
417b10:	88 5d 0b             	mov    %bl,0xb(%ebp)
417b13:	89 5d f4             	mov    %ebx,-0xc(%ebp)
417b16:	80 7d 0b 00          	cmpb   $0x0,0xb(%ebp)
417b1a:	0f 85 d0 0b 00 00    	jne    0x4186f0
417b20:	8b ce                	mov    %esi,%ecx
417b22:	e8 36 bf ff ff       	call   0x413a5d
417b27:	83 f8 ff             	cmp    $0xffffffff,%eax
417b2a:	75 06                	jne    0x417b32
417b2c:	c6 45 0b 01          	movb   $0x1,0xb(%ebp)
417b30:	eb 13                	jmp    0x417b45
417b32:	83 7d f4 03          	cmpl   $0x3,-0xc(%ebp)
417b36:	0f b6 c0             	movzbl %al,%eax
417b39:	75 05                	jne    0x417b40
417b3b:	89 45 f0             	mov    %eax,-0x10(%ebp)
417b3e:	eb 05                	jmp    0x417b45
417b40:	c1 e3 08             	shl    $0x8,%ebx
417b43:	03 d8                	add    %eax,%ebx
417b45:	ff 45 f4             	incl   -0xc(%ebp)
417b48:	83 7d f4 04          	cmpl   $0x4,-0xc(%ebp)
417b4c:	7c c8                	jl     0x417b16
417b4e:	80 7d 0b 00          	cmpb   $0x0,0xb(%ebp)
417b52:	0f 85 98 0b 00 00    	jne    0x4186f0
417b58:	8b 45 f0             	mov    -0x10(%ebp),%eax
417b5b:	8b 4e 70             	mov    0x70(%esi),%ecx
417b5e:	83 c0 20             	add    $0x20,%eax
417b61:	8d 53 02             	lea    0x2(%ebx),%edx
417b64:	89 45 08             	mov    %eax,0x8(%ebp)
417b67:	8b c1                	mov    %ecx,%eax
417b69:	2b c2                	sub    %edx,%eax
417b6b:	89 55 f4             	mov    %edx,-0xc(%ebp)
417b6e:	8b 96 f4 e6 00 00    	mov    0xe6f4(%esi),%edx
417b74:	81 c2 ff ef ff ff    	add    $0xffffefff,%edx
417b7a:	3b c2                	cmp    %edx,%eax
417b7c:	0f 83 0c 01 00 00    	jae    0x417c8e
417b82:	3b ca                	cmp    %edx,%ecx
417b84:	0f 83 04 01 00 00    	jae    0x417c8e
417b8a:	8b 96 34 4b 00 00    	mov    0x4b34(%esi),%edx
417b90:	8d 1c 02             	lea    (%edx,%eax,1),%ebx
417b93:	8b 45 08             	mov    0x8(%ebp),%eax
417b96:	03 d1                	add    %ecx,%edx
417b98:	03 c8                	add    %eax,%ecx
417b9a:	89 55 fc             	mov    %edx,-0x4(%ebp)
417b9d:	89 4e 70             	mov    %ecx,0x70(%esi)
417ba0:	39 45 f4             	cmp    %eax,-0xc(%ebp)
417ba3:	73 4c                	jae    0x417bf1
417ba5:	83 f8 08             	cmp    $0x8,%eax
417ba8:	72 73                	jb     0x417c1d
417baa:	8b c8                	mov    %eax,%ecx
417bac:	c1 e9 03             	shr    $0x3,%ecx
417baf:	8b c2                	mov    %edx,%eax
417bb1:	8a 13                	mov    (%ebx),%dl
417bb3:	83 6d 08 08          	subl   $0x8,0x8(%ebp)
417bb7:	88 10                	mov    %dl,(%eax)
417bb9:	8a 53 01             	mov    0x1(%ebx),%dl
417bbc:	88 50 01             	mov    %dl,0x1(%eax)
417bbf:	8a 53 02             	mov    0x2(%ebx),%dl
417bc2:	88 50 02             	mov    %dl,0x2(%eax)
417bc5:	8a 53 03             	mov    0x3(%ebx),%dl
417bc8:	88 50 03             	mov    %dl,0x3(%eax)
417bcb:	8a 53 04             	mov    0x4(%ebx),%dl
417bce:	88 50 04             	mov    %dl,0x4(%eax)
417bd1:	8a 53 05             	mov    0x5(%ebx),%dl
417bd4:	88 50 05             	mov    %dl,0x5(%eax)
417bd7:	8a 53 06             	mov    0x6(%ebx),%dl
417bda:	88 50 06             	mov    %dl,0x6(%eax)
417bdd:	8a 53 07             	mov    0x7(%ebx),%dl
417be0:	88 50 07             	mov    %dl,0x7(%eax)
417be3:	83 c3 08             	add    $0x8,%ebx
417be6:	83 c0 08             	add    $0x8,%eax
417be9:	49                   	dec    %ecx
417bea:	75 c5                	jne    0x417bb1
417bec:	89 45 fc             	mov    %eax,-0x4(%ebp)
417bef:	eb 2c                	jmp    0x417c1d
417bf1:	83 f8 08             	cmp    $0x8,%eax
417bf4:	72 27                	jb     0x417c1d
417bf6:	8b 45 08             	mov    0x8(%ebp),%eax
417bf9:	c1 e8 03             	shr    $0x3,%eax
417bfc:	89 45 f4             	mov    %eax,-0xc(%ebp)
417bff:	6a 08                	push   $0x8
417c01:	53                   	push   %ebx
417c02:	ff 75 fc             	push   -0x4(%ebp)
417c05:	e8 66 40 00 00       	call   0x41bc70
417c0a:	83 45 fc 08          	addl   $0x8,-0x4(%ebp)
417c0e:	83 6d 08 08          	subl   $0x8,0x8(%ebp)
417c12:	83 c4 0c             	add    $0xc,%esp
417c15:	83 c3 08             	add    $0x8,%ebx
417c18:	ff 4d f4             	decl   -0xc(%ebp)
417c1b:	75 e2                	jne    0x417bff
417c1d:	8b 4d 08             	mov    0x8(%ebp),%ecx
417c20:	85 c9                	test   %ecx,%ecx
417c22:	0f 86 fa fd ff ff    	jbe    0x417a22
417c28:	8b 45 fc             	mov    -0x4(%ebp),%eax
417c2b:	8a 13                	mov    (%ebx),%dl
417c2d:	88 10                	mov    %dl,(%eax)
417c2f:	83 f9 01             	cmp    $0x1,%ecx
417c32:	0f 86 ea fd ff ff    	jbe    0x417a22
417c38:	8a 53 01             	mov    0x1(%ebx),%dl
417c3b:	88 50 01             	mov    %dl,0x1(%eax)
417c3e:	83 f9 02             	cmp    $0x2,%ecx
417c41:	0f 86 db fd ff ff    	jbe    0x417a22
417c47:	8a 53 02             	mov    0x2(%ebx),%dl
417c4a:	88 50 02             	mov    %dl,0x2(%eax)
417c4d:	83 f9 03             	cmp    $0x3,%ecx
417c50:	0f 86 cc fd ff ff    	jbe    0x417a22
417c56:	8a 53 03             	mov    0x3(%ebx),%dl
417c59:	88 50 03             	mov    %dl,0x3(%eax)
417c5c:	83 f9 04             	cmp    $0x4,%ecx
417c5f:	0f 86 bd fd ff ff    	jbe    0x417a22
417c65:	8a 53 04             	mov    0x4(%ebx),%dl
417c68:	88 50 04             	mov    %dl,0x4(%eax)
417c6b:	83 f9 05             	cmp    $0x5,%ecx
417c6e:	0f 86 ae fd ff ff    	jbe    0x417a22
417c74:	8a 53 05             	mov    0x5(%ebx),%dl
417c77:	88 50 05             	mov    %dl,0x5(%eax)
417c7a:	83 f9 06             	cmp    $0x6,%ecx
417c7d:	0f 86 9f fd ff ff    	jbe    0x417a22
417c83:	8a 4b 06             	mov    0x6(%ebx),%cl
417c86:	88 48 06             	mov    %cl,0x6(%eax)
417c89:	e9 94 fd ff ff       	jmp    0x417a22
417c8e:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
417c92:	0f 86 8a fd ff ff    	jbe    0x417a22
417c98:	8b 96 f8 e6 00 00    	mov    0xe6f8(%esi),%edx
417c9e:	8b 8e 34 4b 00 00    	mov    0x4b34(%esi),%ecx
417ca4:	8b 5e 70             	mov    0x70(%esi),%ebx
417ca7:	ff 4d 08             	decl   0x8(%ebp)
417caa:	23 d0                	and    %eax,%edx
417cac:	8a 14 0a             	mov    (%edx,%ecx,1),%dl
417caf:	88 14 19             	mov    %dl,(%ecx,%ebx,1)
417cb2:	8b 4e 70             	mov    0x70(%esi),%ecx
417cb5:	8b 96 f8 e6 00 00    	mov    0xe6f8(%esi),%edx
417cbb:	40                   	inc    %eax
417cbc:	41                   	inc    %ecx
417cbd:	23 ca                	and    %edx,%ecx
417cbf:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
417cc3:	89 4e 70             	mov    %ecx,0x70(%esi)
417cc6:	77 d6                	ja     0x417c9e
417cc8:	e9 55 fd ff ff       	jmp    0x417a22
417ccd:	83 f8 05             	cmp    $0x5,%eax
417cd0:	0f 85 16 01 00 00    	jne    0x417dec
417cd6:	8b ce                	mov    %esi,%ecx
417cd8:	e8 80 bd ff ff       	call   0x413a5d
417cdd:	83 f8 ff             	cmp    $0xffffffff,%eax
417ce0:	0f 84 0a 0a 00 00    	je     0x4186f0
417ce6:	8b 8e f4 e6 00 00    	mov    0xe6f4(%esi),%ecx
417cec:	83 c0 04             	add    $0x4,%eax
417cef:	89 45 08             	mov    %eax,0x8(%ebp)
417cf2:	8b 46 70             	mov    0x70(%esi),%eax
417cf5:	8d 50 ff             	lea    -0x1(%eax),%edx
417cf8:	81 c1 ff ef ff ff    	add    $0xffffefff,%ecx
417cfe:	3b d1                	cmp    %ecx,%edx
417d00:	0f 83 a7 00 00 00    	jae    0x417dad
417d06:	3b c1                	cmp    %ecx,%eax
417d08:	0f 83 9f 00 00 00    	jae    0x417dad
417d0e:	8b 8e 34 4b 00 00    	mov    0x4b34(%esi),%ecx
417d14:	8d 1c 11             	lea    (%ecx,%edx,1),%ebx
417d17:	03 c8                	add    %eax,%ecx
417d19:	89 4d fc             	mov    %ecx,-0x4(%ebp)
417d1c:	8b 4d 08             	mov    0x8(%ebp),%ecx
417d1f:	03 c1                	add    %ecx,%eax
417d21:	89 46 70             	mov    %eax,0x70(%esi)
417d24:	83 f9 01             	cmp    $0x1,%ecx
417d27:	76 4f                	jbe    0x417d78
417d29:	83 f9 08             	cmp    $0x8,%ecx
417d2c:	0f 82 eb fe ff ff    	jb     0x417c1d
417d32:	8b 45 fc             	mov    -0x4(%ebp),%eax