412926:	85 ff                	test   %edi,%edi
412928:	75 6d                	jne    0x412997
41292a:	8b c6                	mov    %esi,%eax
41292c:	b9 bf 02 00 00       	mov    $0x2bf,%ecx
412931:	c1 e8 03             	shr    $0x3,%eax
412934:	23 c3                	and    %ebx,%eax
412936:	50                   	push   %eax
412937:	6a 08                	push   $0x8
412939:	5a                   	pop    %edx
41293a:	e8 d9 fb ff ff       	call   0x412518
41293f:	8b c6                	mov    %esi,%eax
412941:	b9 c0 02 00 00       	mov    $0x2c0,%ecx
412946:	c1 e8 04             	shr    $0x4,%eax
412949:	23 c3                	and    %ebx,%eax
41294b:	50                   	push   %eax
41294c:	6a 10                	push   $0x10
41294e:	5a                   	pop    %edx
41294f:	e8 c4 fb ff ff       	call   0x412518
412954:	8b c6                	mov    %esi,%eax
412956:	b9 c1 02 00 00       	mov    $0x2c1,%ecx
41295b:	c1 e8 05             	shr    $0x5,%eax
41295e:	23 c3                	and    %ebx,%eax
412960:	50                   	push   %eax
412961:	6a 20                	push   $0x20
412963:	5a                   	pop    %edx
412964:	e8 af fb ff ff       	call   0x412518
412969:	8b c6                	mov    %esi,%eax
41296b:	ba 80 00 00 00       	mov    $0x80,%edx
412970:	c1 e8 07             	shr    $0x7,%eax
412973:	b9 c3 02 00 00       	mov    $0x2c3,%ecx
412978:	23 c3                	and    %ebx,%eax
41297a:	50                   	push   %eax
41297b:	e8 98 fb ff ff       	call   0x412518
412980:	8b c6                	mov    %esi,%eax
412982:	ba 00 01 00 00       	mov    $0x100,%edx
412987:	c1 e8 08             	shr    $0x8,%eax
41298a:	b9 c4 02 00 00       	mov    $0x2c4,%ecx
41298f:	23 c3                	and    %ebx,%eax
412991:	50                   	push   %eax
412992:	e8 81 fb ff ff       	call   0x412518
412997:	3b fb                	cmp    %ebx,%edi
412999:	75 2e                	jne    0x4129c9
41299b:	8b c6                	mov    %esi,%eax
41299d:	ba 00 02 00 00       	mov    $0x200,%edx
4129a2:	c1 e8 09             	shr    $0x9,%eax
4129a5:	b9 c5 02 00 00       	mov    $0x2c5,%ecx
4129aa:	23 c3                	and    %ebx,%eax
4129ac:	50                   	push   %eax
4129ad:	e8 66 fb ff ff       	call   0x412518
4129b2:	8b c6                	mov    %esi,%eax
4129b4:	ba 00 04 00 00       	mov    $0x400,%edx
4129b9:	c1 e8 0a             	shr    $0xa,%eax
4129bc:	b9 c6 02 00 00       	mov    $0x2c6,%ecx
4129c1:	23 c3                	and    %ebx,%eax
4129c3:	50                   	push   %eax
4129c4:	e8 4f fb ff ff       	call   0x412518
4129c9:	85 ff                	test   %edi,%edi
4129cb:	75 17                	jne    0x4129e4
4129cd:	8b c6                	mov    %esi,%eax
4129cf:	ba 00 08 00 00       	mov    $0x800,%edx
4129d4:	c1 e8 0b             	shr    $0xb,%eax
4129d7:	b9 c7 02 00 00       	mov    $0x2c7,%ecx
4129dc:	23 c3                	and    %ebx,%eax
4129de:	50                   	push   %eax
4129df:	e8 34 fb ff ff       	call   0x412518
4129e4:	83 ff 02             	cmp    $0x2,%edi
4129e7:	75 17                	jne    0x412a00
4129e9:	8b c6                	mov    %esi,%eax
4129eb:	ba 00 10 00 00       	mov    $0x1000,%edx
4129f0:	c1 e8 0c             	shr    $0xc,%eax
4129f3:	b9 c8 02 00 00       	mov    $0x2c8,%ecx
4129f8:	23 c3                	and    %ebx,%eax
4129fa:	50                   	push   %eax
4129fb:	e8 18 fb ff ff       	call   0x412518
412a00:	3b fb                	cmp    %ebx,%edi
412a02:	75 5c                	jne    0x412a60
412a04:	8b c6                	mov    %esi,%eax
412a06:	ba 00 20 00 00       	mov    $0x2000,%edx
412a0b:	c1 e8 0d             	shr    $0xd,%eax
412a0e:	b9 c9 02 00 00       	mov    $0x2c9,%ecx
412a13:	23 c3                	and    %ebx,%eax
412a15:	50                   	push   %eax
412a16:	e8 fd fa ff ff       	call   0x412518
412a1b:	8b c6                	mov    %esi,%eax
412a1d:	ba 00 40 00 00       	mov    $0x4000,%edx
412a22:	c1 e8 0e             	shr    $0xe,%eax
412a25:	b9 ca 02 00 00       	mov    $0x2ca,%ecx
412a2a:	23 c3                	and    %ebx,%eax
412a2c:	50                   	push   %eax
412a2d:	e8 e6 fa ff ff       	call   0x412518
412a32:	8b c6                	mov    %esi,%eax
412a34:	ba 00 80 00 00       	mov    $0x8000,%edx
412a39:	c1 e8 0f             	shr    $0xf,%eax
412a3c:	b9 cb 02 00 00       	mov    $0x2cb,%ecx
412a41:	23 c3                	and    %ebx,%eax
412a43:	50                   	push   %eax
412a44:	e8 cf fa ff ff       	call   0x412518
412a49:	8b c6                	mov    %esi,%eax
412a4b:	ba 00 00 01 00       	mov    $0x10000,%edx
412a50:	c1 e8 10             	shr    $0x10,%eax
412a53:	b9 cc 02 00 00       	mov    $0x2cc,%ecx
412a58:	23 c3                	and    %ebx,%eax
412a5a:	50                   	push   %eax
412a5b:	e8 b8 fa ff ff       	call   0x412518
412a60:	85 ff                	test   %edi,%edi
412a62:	75 17                	jne    0x412a7b
412a64:	8b c6                	mov    %esi,%eax
412a66:	ba 00 00 02 00       	mov    $0x20000,%edx
412a6b:	c1 e8 11             	shr    $0x11,%eax
412a6e:	b9 cd 02 00 00       	mov    $0x2cd,%ecx
412a73:	23 c3                	and    %ebx,%eax
412a75:	50                   	push   %eax
412a76:	e8 9d fa ff ff       	call   0x412518
412a7b:	3b fb                	cmp    %ebx,%edi
412a7d:	75 2e                	jne    0x412aad
412a7f:	8b c6                	mov    %esi,%eax
412a81:	ba 00 00 04 00       	mov    $0x40000,%edx
412a86:	c1 e8 12             	shr    $0x12,%eax
412a89:	b9 ce 02 00 00       	mov    $0x2ce,%ecx
412a8e:	23 c3                	and    %ebx,%eax
412a90:	50                   	push   %eax
412a91:	e8 82 fa ff ff       	call   0x412518
412a96:	8b c6                	mov    %esi,%eax
412a98:	ba 00 00 08 00       	mov    $0x80000,%edx
412a9d:	c1 e8 13             	shr    $0x13,%eax
412aa0:	b9 cf 02 00 00       	mov    $0x2cf,%ecx
412aa5:	23 c3                	and    %ebx,%eax
412aa7:	50                   	push   %eax
412aa8:	e8 6b fa ff ff       	call   0x412518
412aad:	83 ff 02             	cmp    $0x2,%edi
412ab0:	75 17                	jne    0x412ac9
412ab2:	8b c6                	mov    %esi,%eax
412ab4:	ba 00 00 10 00       	mov    $0x100000,%edx
412ab9:	c1 e8 14             	shr    $0x14,%eax
412abc:	b9 d0 02 00 00       	mov    $0x2d0,%ecx
412ac1:	23 c3                	and    %ebx,%eax
412ac3:	50                   	push   %eax
412ac4:	e8 4f fa ff ff       	call   0x412518
412ac9:	3b fb                	cmp    %ebx,%edi
412acb:	75 17                	jne    0x412ae4
412acd:	8b c6                	mov    %esi,%eax
412acf:	ba 00 00 20 00       	mov    $0x200000,%edx
412ad4:	c1 e8 15             	shr    $0x15,%eax
412ad7:	b9 d1 02 00 00       	mov    $0x2d1,%ecx
412adc:	23 c3                	and    %ebx,%eax
412ade:	50                   	push   %eax
412adf:	e8 34 fa ff ff       	call   0x412518
412ae4:	83 ff 02             	cmp    $0x2,%edi
412ae7:	75 17                	jne    0x412b00
412ae9:	8b c6                	mov    %esi,%eax
412aeb:	ba 00 00 40 00       	mov    $0x400000,%edx
412af0:	c1 e8 16             	shr    $0x16,%eax
412af3:	b9 d2 02 00 00       	mov    $0x2d2,%ecx
412af8:	23 c3                	and    %ebx,%eax
412afa:	50                   	push   %eax
412afb:	e8 18 fa ff ff       	call   0x412518
412b00:	3b fb                	cmp    %ebx,%edi
412b02:	75 43                	jne    0x412b47
412b04:	8b c6                	mov    %esi,%eax
412b06:	ba 00 00 80 00       	mov    $0x800000,%edx
412b0b:	c1 e8 17             	shr    $0x17,%eax
412b0e:	b9 d3 02 00 00       	mov    $0x2d3,%ecx
412b13:	23 c3                	and    %ebx,%eax
412b15:	50                   	push   %eax
412b16:	e8 fd f9 ff ff       	call   0x412518
412b1b:	8b c6                	mov    %esi,%eax
412b1d:	ba 00 00 00 01       	mov    $0x1000000,%edx
412b22:	c1 e8 18             	shr    $0x18,%eax
412b25:	b9 d4 02 00 00       	mov    $0x2d4,%ecx
412b2a:	23 c3                	and    %ebx,%eax
412b2c:	50                   	push   %eax
412b2d:	e8 e6 f9 ff ff       	call   0x412518
412b32:	c1 ee 19             	shr    $0x19,%esi
412b35:	ba 00 00 00 02       	mov    $0x2000000,%edx
412b3a:	23 f3                	and    %ebx,%esi
412b3c:	b9 d5 02 00 00       	mov    $0x2d5,%ecx
412b41:	56                   	push   %esi
412b42:	e8 d1 f9 ff ff       	call   0x412518
412b47:	5f                   	pop    %edi
412b48:	5e                   	pop    %esi
412b49:	5b                   	pop    %ebx
412b4a:	c3                   	ret
412b4b:	6a 0c                	push   $0xc
412b4d:	b8 fb d5 41 00       	mov    $0x41d5fb,%eax
412b52:	e8 e1 98 00 00       	call   0x41c438
412b57:	8b f2                	mov    %edx,%esi
412b59:	51                   	push   %ecx
412b5a:	8d 4d ec             	lea    -0x14(%ebp),%ecx
412b5d:	ff 15 74 31 42 00    	call   *0x423174
412b63:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
412b67:	8d 4d f0             	lea    -0x10(%ebp),%ecx
412b6a:	56                   	push   %esi
412b6b:	ff 15 74 31 42 00    	call   *0x423174
412b71:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
412b75:	8d 4d ec             	lea    -0x14(%ebp),%ecx
412b78:	33 ff                	xor    %edi,%edi
412b7a:	ff 15 78 31 42 00    	call   *0x423178
412b80:	8d 4d f0             	lea    -0x10(%ebp),%ecx
412b83:	ff 15 78 31 42 00    	call   *0x423178
412b89:	8b 45 ec             	mov    -0x14(%ebp),%eax
412b8c:	33 d2                	xor    %edx,%edx
412b8e:	6a 20                	push   $0x20
412b90:	5e                   	pop    %esi
412b91:	8b 58 f8             	mov    -0x8(%eax),%ebx
412b94:	52                   	push   %edx
412b95:	50                   	push   %eax
412b96:	8d 4d f0             	lea    -0x10(%ebp),%ecx
412b99:	ff 15 7c 31 42 00    	call   *0x42317c
412b9f:	8b d0                	mov    %eax,%edx
412ba1:	85 d2                	test   %edx,%edx
412ba3:	78 5d                	js     0x412c02
412ba5:	8b 45 f0             	mov    -0x10(%ebp),%eax
412ba8:	74 19                	je     0x412bc3
412baa:	8d 4a ff             	lea    -0x1(%edx),%ecx
412bad:	85 c9                	test   %ecx,%ecx
412baf:	78 0b                	js     0x412bbc
412bb1:	3b 48 f8             	cmp    -0x8(%eax),%ecx
412bb4:	7d 06                	jge    0x412bbc
412bb6:	0f b7 0c 48          	movzwl (%eax,%ecx,2),%ecx
412bba:	eb 02                	jmp    0x412bbe
412bbc:	33 c9                	xor    %ecx,%ecx
412bbe:	66 3b f1             	cmp    %cx,%si
412bc1:	75 36                	jne    0x412bf9
412bc3:	8d 0c 1a             	lea    (%edx,%ebx,1),%ecx
412bc6:	85 c9                	test   %ecx,%ecx
412bc8:	78 0b                	js     0x412bd5
412bca:	3b 48 f8             	cmp    -0x8(%eax),%ecx
412bcd:	7d 06                	jge    0x412bd5
412bcf:	0f b7 34 48          	movzwl (%eax,%ecx,2),%esi
412bd3:	eb 02                	jmp    0x412bd7
412bd5:	33 f6                	xor    %esi,%esi
412bd7:	21 7d e8             	and    %edi,-0x18(%ebp)
412bda:	66 39 75 e8          	cmp    %si,-0x18(%ebp)
412bde:	74 1f                	je     0x412bff
412be0:	85 c9                	test   %ecx,%ecx
412be2:	78 0b                	js     0x412bef
412be4:	3b 48 f8             	cmp    -0x8(%eax),%ecx
412be7:	7d 06                	jge    0x412bef
412be9:	0f b7 04 48          	movzwl (%eax,%ecx,2),%eax
412bed:	eb 02                	jmp    0x412bf1
412bef:	33 c0                	xor    %eax,%eax
412bf1:	6a 20                	push   $0x20
412bf3:	5e                   	pop    %esi
412bf4:	66 3b f0             	cmp    %ax,%si
412bf7:	74 06                	je     0x412bff
412bf9:	8b 45 ec             	mov    -0x14(%ebp),%eax
412bfc:	42                   	inc    %edx
412bfd:	eb 95                	jmp    0x412b94
412bff:	33 ff                	xor    %edi,%edi
412c01:	47                   	inc    %edi
412c02:	c6 45 fc 00          	movb   $0x0,-0x4(%ebp)
412c06:	8d 4d f0             	lea    -0x10(%ebp),%ecx
412c09:	ff 15 44 32 42 00    	call   *0x423244
412c0f:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
412c13:	8d 4d ec             	lea    -0x14(%ebp),%ecx
412c16:	ff 15 44 32 42 00    	call   *0x423244
412c1c:	8b c7                	mov    %edi,%eax
412c1e:	e8 e3 97 00 00       	call   0x41c406
412c23:	c3                   	ret
412c24:	6a 10                	push   $0x10
412c26:	b8 53 d6 41 00       	mov    $0x41d653,%eax
412c2b:	e8 08 98 00 00       	call   0x41c438
412c30:	8b fa                	mov    %edx,%edi
412c32:	83 65 ec 00          	andl   $0x0,-0x14(%ebp)
412c36:	51                   	push   %ecx
412c37:	8d 4d f0             	lea    -0x10(%ebp),%ecx
412c3a:	ff 15 74 31 42 00    	call   *0x423174
412c40:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
412c44:	8d 4d f0             	lea    -0x10(%ebp),%ecx
412c47:	6a 20                	push   $0x20
412c49:	ff 15 e0 33 42 00    	call   *0x4233e0
412c4f:	85 c0                	test   %eax,%eax
412c51:	79 0f                	jns    0x412c62
412c53:	6a 09                	push   $0x9
412c55:	8d 4d f0             	lea    -0x10(%ebp),%ecx
412c58:	ff 15 e0 33 42 00    	call   *0x4233e0
412c5e:	85 c0                	test   %eax,%eax
412c60:	78 65                	js     0x412cc7
412c62:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
412c66:	8d 45 f0             	lea    -0x10(%ebp),%eax
412c69:	50                   	push   %eax
412c6a:	6a 22                	push   $0x22
412c6c:	8d 45 e4             	lea    -0x1c(%ebp),%eax
412c6f:	50                   	push   %eax
412c70:	ff 15 e8 33 42 00    	call   *0x4233e8
412c76:	c7 45 ec 01 00 00 00 	movl   $0x1,-0x14(%ebp)
412c7d:	c6 45 fc 02          	movb   $0x2,-0x4(%ebp)
412c81:	6a 22                	push   $0x22
412c83:	50                   	push   %eax
412c84:	8d 45 e8             	lea    -0x18(%ebp),%eax
412c87:	50                   	push   %eax
412c88:	ff 15 e4 33 42 00    	call   *0x4233e4
412c8e:	6a 03                	push   $0x3
412c90:	5e                   	pop    %esi
412c91:	50                   	push   %eax
412c92:	8d 4d f0             	lea    -0x10(%ebp),%ecx
412c95:	89 75 ec             	mov    %esi,-0x14(%ebp)
412c98:	ff 15 80 33 42 00    	call   *0x423380
412c9e:	89 75 ec             	mov    %esi,-0x14(%ebp)
412ca1:	83 e6 fd             	and    $0xfffffffd,%esi
412ca4:	89 75 ec             	mov    %esi,-0x14(%ebp)
412ca7:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
412cab:	8d 4d e8             	lea    -0x18(%ebp),%ecx
412cae:	ff 15 44 32 42 00    	call   *0x423244
412cb4:	83 e6 fe             	and    $0xfffffffe,%esi
412cb7:	89 75 ec             	mov    %esi,-0x14(%ebp)
412cba:	c6 45 fc 00          	movb   $0x0,-0x4(%ebp)
412cbe:	8d 4d e4             	lea    -0x1c(%ebp),%ecx
412cc1:	ff 15 44 32 42 00    	call   *0x423244
412cc7:	8b 17                	mov    (%edi),%edx
412cc9:	8b 4d f0             	mov    -0x10(%ebp),%ecx
412ccc:	e8 7a fe ff ff       	call   0x412b4b
412cd1:	85 c0                	test   %eax,%eax
412cd3:	75 1e                	jne    0x412cf3
412cd5:	8b 07                	mov    (%edi),%eax
412cd7:	83 78 f8 00          	cmpl   $0x0,-0x8(%eax)
412cdb:	7e 0a                	jle    0x412ce7
412cdd:	6a 20                	push   $0x20
412cdf:	8b cf                	mov    %edi,%ecx
412ce1:	ff 15 d8 33 42 00    	call   *0x4233d8
412ce7:	8d 45 f0             	lea    -0x10(%ebp),%eax
412cea:	8b cf                	mov    %edi,%ecx
412cec:	50                   	push   %eax
412ced:	ff 15 ec 33 42 00    	call   *0x4233ec
412cf3:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
412cf7:	8d 4d f0             	lea    -0x10(%ebp),%ecx
412cfa:	ff 15 44 32 42 00    	call   *0x423244
412d00:	e8 01 97 00 00       	call   0x41c406
412d05:	c3                   	ret
412d06:	6a 08                	push   $0x8
412d08:	b8 79 d1 41 00       	mov    $0x41d179,%eax
412d0d:	e8 26 97 00 00       	call   0x41c438
412d12:	89 55 ec             	mov    %edx,-0x14(%ebp)
412d15:	8b f9                	mov    %ecx,%edi
412d17:	8d 4d f0             	lea    -0x10(%ebp),%ecx
412d1a:	33 f6                	xor    %esi,%esi
412d1c:	ff 15 40 32 42 00    	call   *0x423240
412d22:	89 75 fc             	mov    %esi,-0x4(%ebp)
412d25:	bb bf 0f 00 00       	mov    $0xfbf,%ebx
412d2a:	39 35 38 1f 42 00    	cmp    %esi,0x421f38
412d30:	74 05                	je     0x412d37
412d32:	bb bf 1f 00 00       	mov    $0x1fbf,%ebx
412d37:	8b 45 ec             	mov    -0x14(%ebp),%eax
412d3a:	85 c0                	test   %eax,%eax
412d3c:	0f 84 6a 01 00 00    	je     0x412eac
412d42:	8b 07                	mov    (%edi),%eax
412d44:	b9 00 10 00 00       	mov    $0x1000,%ecx
412d49:	85 c1                	test   %eax,%ecx
412d4b:	74 32                	je     0x412d7f
412d4d:	83 3d 30 1f 42 00 00 	cmpl   $0x0,0x421f30