54789a:	89 44 24 18          	mov    %eax,0x18(%esp)
54789e:	33 c0                	xor    %eax,%eax
5478a0:	0b c2                	or     %edx,%eax
5478a2:	89 44 24 14          	mov    %eax,0x14(%esp)
5478a6:	8b 84 24 90 00 00 00 	mov    0x90(%esp),%eax
5478ad:	03 84 24 a4 00 00 00 	add    0xa4(%esp),%eax
5478b4:	13 b4 24 b0 00 00 00 	adc    0xb0(%esp),%esi
5478bb:	03 84 24 08 01 00 00 	add    0x108(%esp),%eax
5478c2:	89 84 24 90 00 00 00 	mov    %eax,0x90(%esp)
5478c9:	13 b4 24 0c 01 00 00 	adc    0x10c(%esp),%esi
5478d0:	33 84 24 ac 00 00 00 	xor    0xac(%esp),%eax
5478d7:	8b de                	mov    %esi,%ebx
5478d9:	33 5c 24 64          	xor    0x64(%esp),%ebx
5478dd:	89 74 24 30          	mov    %esi,0x30(%esp)
5478e1:	33 f6                	xor    %esi,%esi
5478e3:	0b f0                	or     %eax,%esi
5478e5:	8b 44 24 28          	mov    0x28(%esp),%eax
5478e9:	03 c3                	add    %ebx,%eax
5478eb:	8b c8                	mov    %eax,%ecx
5478ed:	89 44 24 28          	mov    %eax,0x28(%esp)
5478f1:	8b 84 24 90 00 00 00 	mov    0x90(%esp),%eax
5478f8:	13 ee                	adc    %esi,%ebp
5478fa:	33 8c 24 a4 00 00 00 	xor    0xa4(%esp),%ecx
547901:	8b d5                	mov    %ebp,%edx
547903:	33 94 24 b0 00 00 00 	xor    0xb0(%esp),%edx
54790a:	33 ff                	xor    %edi,%edi
54790c:	89 6c 24 3c          	mov    %ebp,0x3c(%esp)
547910:	8b e9                	mov    %ecx,%ebp
547912:	0f ac d1 18          	shrd   $0x18,%edx,%ecx
547916:	c1 e5 08             	shl    $0x8,%ebp
547919:	c1 ea 18             	shr    $0x18,%edx
54791c:	0b f9                	or     %ecx,%edi
54791e:	8b 4c 24 30          	mov    0x30(%esp),%ecx
547922:	0b ea                	or     %edx,%ebp
547924:	03 c7                	add    %edi,%eax
547926:	13 cd                	adc    %ebp,%ecx
547928:	8b 54 24 28          	mov    0x28(%esp),%edx
54792c:	03 84 24 20 01 00 00 	add    0x120(%esp),%eax
547933:	89 84 24 90 00 00 00 	mov    %eax,0x90(%esp)
54793a:	13 8c 24 24 01 00 00 	adc    0x124(%esp),%ecx
547941:	33 d8                	xor    %eax,%ebx
547943:	33 f1                	xor    %ecx,%esi
547945:	89 4c 24 30          	mov    %ecx,0x30(%esp)
547949:	8b cb                	mov    %ebx,%ecx
54794b:	33 c0                	xor    %eax,%eax
54794d:	0f ac f3 10          	shrd   $0x10,%esi,%ebx
547951:	c1 e1 10             	shl    $0x10,%ecx
547954:	0b c3                	or     %ebx,%eax
547956:	c1 ee 10             	shr    $0x10,%esi
547959:	8b 5c 24 3c          	mov    0x3c(%esp),%ebx
54795d:	0b ce                	or     %esi,%ecx
54795f:	03 d0                	add    %eax,%edx
547961:	89 4c 24 54          	mov    %ecx,0x54(%esp)
547965:	89 54 24 28          	mov    %edx,0x28(%esp)
547969:	13 d9                	adc    %ecx,%ebx
54796b:	33 fa                	xor    %edx,%edi
54796d:	33 eb                	xor    %ebx,%ebp
54796f:	8b 54 24 20          	mov    0x20(%esp),%edx
547973:	8b cd                	mov    %ebp,%ecx
547975:	89 5c 24 3c          	mov    %ebx,0x3c(%esp)
547979:	8b 5c 24 40          	mov    0x40(%esp),%ebx
54797d:	0f a4 fd 01          	shld   $0x1,%edi,%ebp
547981:	c1 e9 1f             	shr    $0x1f,%ecx
547984:	03 ff                	add    %edi,%edi
547986:	0b cf                	or     %edi,%ecx
547988:	8b 7c 24 1c          	mov    0x1c(%esp),%edi
54798c:	89 4c 24 64          	mov    %ecx,0x64(%esp)
547990:	33 c9                	xor    %ecx,%ecx
547992:	0b cd                	or     %ebp,%ecx
547994:	8b ac 24 bc 00 00 00 	mov    0xbc(%esp),%ebp
54799b:	03 d7                	add    %edi,%edx
54799d:	89 8c 24 a0 00 00 00 	mov    %ecx,0xa0(%esp)
5479a4:	8b 4c 24 68          	mov    0x68(%esp),%ecx
5479a8:	13 dd                	adc    %ebp,%ebx
5479aa:	03 94 24 28 01 00 00 	add    0x128(%esp),%edx
5479b1:	89 54 24 20          	mov    %edx,0x20(%esp)
5479b5:	13 9c 24 2c 01 00 00 	adc    0x12c(%esp),%ebx
5479bc:	33 ca                	xor    %edx,%ecx
5479be:	8b 54 24 50          	mov    0x50(%esp),%edx
5479c2:	33 f6                	xor    %esi,%esi
5479c4:	33 d3                	xor    %ebx,%edx
5479c6:	89 5c 24 40          	mov    %ebx,0x40(%esp)
5479ca:	0b f1                	or     %ecx,%esi
5479cc:	89 54 24 50          	mov    %edx,0x50(%esp)
5479d0:	8b ca                	mov    %edx,%ecx
5479d2:	8b d6                	mov    %esi,%edx
5479d4:	03 4c 24 60          	add    0x60(%esp),%ecx
5479d8:	13 54 24 78          	adc    0x78(%esp),%edx
5479dc:	33 f9                	xor    %ecx,%edi
5479de:	33 ea                	xor    %edx,%ebp
5479e0:	89 54 24 74          	mov    %edx,0x74(%esp)
5479e4:	8b 94 24 fc 00 00 00 	mov    0xfc(%esp),%edx
5479eb:	8b df                	mov    %edi,%ebx
5479ed:	0f ac ef 18          	shrd   $0x18,%ebp,%edi
5479f1:	c1 e3 08             	shl    $0x8,%ebx
5479f4:	c1 ed 18             	shr    $0x18,%ebp
5479f7:	0b dd                	or     %ebp,%ebx
5479f9:	89 7c 24 1c          	mov    %edi,0x1c(%esp)
5479fd:	33 ff                	xor    %edi,%edi
5479ff:	89 5c 24 60          	mov    %ebx,0x60(%esp)
547a03:	0b 7c 24 1c          	or     0x1c(%esp),%edi
547a07:	8b ef                	mov    %edi,%ebp
547a09:	03 ac 24 f8 00 00 00 	add    0xf8(%esp),%ebp
547a10:	11 54 24 60          	adc    %edx,0x60(%esp)
547a14:	03 6c 24 20          	add    0x20(%esp),%ebp
547a18:	89 6c 24 78          	mov    %ebp,0x78(%esp)
547a1c:	8b 6c 24 40          	mov    0x40(%esp),%ebp
547a20:	11 6c 24 60          	adc    %ebp,0x60(%esp)
547a24:	8b 6c 24 78          	mov    0x78(%esp),%ebp
547a28:	31 6c 24 50          	xor    %ebp,0x50(%esp)
547a2c:	33 74 24 60          	xor    0x60(%esp),%esi
547a30:	8b 6c 24 50          	mov    0x50(%esp),%ebp
547a34:	0f ac 74 24 50 10    	shrd   $0x10,%esi,0x50(%esp)
547a3a:	c1 e5 10             	shl    $0x10,%ebp
547a3d:	89 6c 24 20          	mov    %ebp,0x20(%esp)
547a41:	c1 ee 10             	shr    $0x10,%esi
547a44:	09 74 24 20          	or     %esi,0x20(%esp)
547a48:	33 ed                	xor    %ebp,%ebp
547a4a:	0b 6c 24 50          	or     0x50(%esp),%ebp
547a4e:	8b 54 24 44          	mov    0x44(%esp),%edx
547a52:	89 ac 24 94 00 00 00 	mov    %ebp,0x94(%esp)
547a59:	03 e9                	add    %ecx,%ebp
547a5b:	8b 4c 24 20          	mov    0x20(%esp),%ecx
547a5f:	13 4c 24 74          	adc    0x74(%esp),%ecx
547a63:	33 fd                	xor    %ebp,%edi
547a65:	33 d9                	xor    %ecx,%ebx
547a67:	89 4c 24 74          	mov    %ecx,0x74(%esp)
547a6b:	8b cb                	mov    %ebx,%ecx
547a6d:	89 ac 24 80 00 00 00 	mov    %ebp,0x80(%esp)
547a74:	0f a4 fb 01          	shld   $0x1,%edi,%ebx
547a78:	8b 6c 24 48          	mov    0x48(%esp),%ebp
547a7c:	c1 e9 1f             	shr    $0x1f,%ecx
547a7f:	03 ff                	add    %edi,%edi
547a81:	0b cf                	or     %edi,%ecx
547a83:	8b 7c 24 6c          	mov    0x6c(%esp),%edi
547a87:	89 8c 24 bc 00 00 00 	mov    %ecx,0xbc(%esp)
547a8e:	33 c9                	xor    %ecx,%ecx
547a90:	0b cb                	or     %ebx,%ecx
547a92:	8b 5c 24 7c          	mov    0x7c(%esp),%ebx
547a96:	03 d7                	add    %edi,%edx
547a98:	89 8c 24 9c 00 00 00 	mov    %ecx,0x9c(%esp)
547a9f:	8b 8c 24 b8 00 00 00 	mov    0xb8(%esp),%ecx
547aa6:	13 eb                	adc    %ebx,%ebp
547aa8:	03 94 24 38 01 00 00 	add    0x138(%esp),%edx
547aaf:	89 54 24 44          	mov    %edx,0x44(%esp)
547ab3:	13 ac 24 3c 01 00 00 	adc    0x13c(%esp),%ebp
547aba:	33 ca                	xor    %edx,%ecx
547abc:	8b 54 24 2c          	mov    0x2c(%esp),%edx
547ac0:	33 f6                	xor    %esi,%esi
547ac2:	33 d5                	xor    %ebp,%edx
547ac4:	89 6c 24 48          	mov    %ebp,0x48(%esp)
547ac8:	0b f1                	or     %ecx,%esi
547aca:	89 54 24 2c          	mov    %edx,0x2c(%esp)
547ace:	8b ca                	mov    %edx,%ecx
547ad0:	8b d6                	mov    %esi,%edx
547ad2:	03 8c 24 8c 00 00 00 	add    0x8c(%esp),%ecx
547ad9:	13 94 24 88 00 00 00 	adc    0x88(%esp),%edx
547ae0:	33 f9                	xor    %ecx,%edi
547ae2:	33 da                	xor    %edx,%ebx
547ae4:	89 54 24 7c          	mov    %edx,0x7c(%esp)
547ae8:	8b 94 24 14 01 00 00 	mov    0x114(%esp),%edx
547aef:	8b ef                	mov    %edi,%ebp
547af1:	0f ac df 18          	shrd   $0x18,%ebx,%edi
547af5:	c1 e5 08             	shl    $0x8,%ebp
547af8:	c1 eb 18             	shr    $0x18,%ebx
547afb:	0b eb                	or     %ebx,%ebp
547afd:	89 7c 24 6c          	mov    %edi,0x6c(%esp)
547b01:	33 ff                	xor    %edi,%edi
547b03:	89 6c 24 1c          	mov    %ebp,0x1c(%esp)
547b07:	0b 7c 24 6c          	or     0x6c(%esp),%edi
547b0b:	8b df                	mov    %edi,%ebx
547b0d:	03 9c 24 10 01 00 00 	add    0x110(%esp),%ebx
547b14:	11 54 24 1c          	adc    %edx,0x1c(%esp)
547b18:	03 5c 24 44          	add    0x44(%esp),%ebx
547b1c:	89 9c 24 a8 00 00 00 	mov    %ebx,0xa8(%esp)
547b23:	8b 5c 24 48          	mov    0x48(%esp),%ebx
547b27:	11 5c 24 1c          	adc    %ebx,0x1c(%esp)
547b2b:	8b 9c 24 a8 00 00 00 	mov    0xa8(%esp),%ebx
547b32:	31 5c 24 2c          	xor    %ebx,0x2c(%esp)
547b36:	33 74 24 1c          	xor    0x1c(%esp),%esi
547b3a:	8b 5c 24 2c          	mov    0x2c(%esp),%ebx
547b3e:	0f ac 74 24 2c 10    	shrd   $0x10,%esi,0x2c(%esp)
547b44:	c1 e3 10             	shl    $0x10,%ebx
547b47:	89 5c 24 44          	mov    %ebx,0x44(%esp)
547b4b:	33 db                	xor    %ebx,%ebx
547b4d:	0b 5c 24 2c          	or     0x2c(%esp),%ebx
547b51:	c1 ee 10             	shr    $0x10,%esi
547b54:	09 74 24 44          	or     %esi,0x44(%esp)
547b58:	89 9c 24 ac 00 00 00 	mov    %ebx,0xac(%esp)
547b5f:	03 d9                	add    %ecx,%ebx
547b61:	8b 4c 24 44          	mov    0x44(%esp),%ecx
547b65:	13 4c 24 7c          	adc    0x7c(%esp),%ecx
547b69:	33 fb                	xor    %ebx,%edi
547b6b:	33 e9                	xor    %ecx,%ebp
547b6d:	89 9c 24 a4 00 00 00 	mov    %ebx,0xa4(%esp)
547b74:	89 8c 24 b0 00 00 00 	mov    %ecx,0xb0(%esp)
547b7b:	8b dd                	mov    %ebp,%ebx
547b7d:	8b 54 24 24          	mov    0x24(%esp),%edx
547b81:	33 c9                	xor    %ecx,%ecx
547b83:	0f a4 fd 01          	shld   $0x1,%edi,%ebp
547b87:	c1 eb 1f             	shr    $0x1f,%ebx
547b8a:	0b cd                	or     %ebp,%ecx
547b8c:	03 ff                	add    %edi,%edi
547b8e:	8b 6c 24 34          	mov    0x34(%esp),%ebp
547b92:	0b df                	or     %edi,%ebx
547b94:	03 d3                	add    %ebx,%edx
547b96:	13 e9                	adc    %ecx,%ebp
547b98:	03 94 24 28 01 00 00 	add    0x128(%esp),%edx
547b9f:	89 54 24 24          	mov    %edx,0x24(%esp)
547ba3:	13 ac 24 2c 01 00 00 	adc    0x12c(%esp),%ebp
547baa:	33 c2                	xor    %edx,%eax
547bac:	31 6c 24 54          	xor    %ebp,0x54(%esp)
547bb0:	33 ff                	xor    %edi,%edi
547bb2:	0b f8                	or     %eax,%edi
547bb4:	89 6c 24 34          	mov    %ebp,0x34(%esp)
547bb8:	8b 44 24 54          	mov    0x54(%esp),%eax
547bbc:	8b f7                	mov    %edi,%esi
547bbe:	8b d0                	mov    %eax,%edx
547bc0:	03 94 24 80 00 00 00 	add    0x80(%esp),%edx
547bc7:	13 74 24 74          	adc    0x74(%esp),%esi
547bcb:	33 da                	xor    %edx,%ebx
547bcd:	33 ce                	xor    %esi,%ecx
547bcf:	89 74 24 74          	mov    %esi,0x74(%esp)
547bd3:	8b b4 24 3c 01 00 00 	mov    0x13c(%esp),%esi
547bda:	8b eb                	mov    %ebx,%ebp
547bdc:	0f ac cb 18          	shrd   $0x18,%ecx,%ebx
547be0:	c1 e5 08             	shl    $0x8,%ebp
547be3:	c1 e9 18             	shr    $0x18,%ecx
547be6:	89 6c 24 7c          	mov    %ebp,0x7c(%esp)
547bea:	33 ed                	xor    %ebp,%ebp
547bec:	0b eb                	or     %ebx,%ebp
547bee:	8b 5c 24 7c          	mov    0x7c(%esp),%ebx
547bf2:	0b d9                	or     %ecx,%ebx
547bf4:	8b cd                	mov    %ebp,%ecx
547bf6:	03 8c 24 38 01 00 00 	add    0x138(%esp),%ecx
547bfd:	89 5c 24 2c          	mov    %ebx,0x2c(%esp)
547c01:	11 74 24 2c          	adc    %esi,0x2c(%esp)
547c05:	03 4c 24 24          	add    0x24(%esp),%ecx
547c09:	89 4c 24 24          	mov    %ecx,0x24(%esp)
547c0d:	8b 4c 24 34          	mov    0x34(%esp),%ecx
547c11:	11 4c 24 2c          	adc    %ecx,0x2c(%esp)
547c15:	33 44 24 24          	xor    0x24(%esp),%eax
547c19:	33 7c 24 2c          	xor    0x2c(%esp),%edi
547c1d:	8b c8                	mov    %eax,%ecx
547c1f:	0f ac f8 10          	shrd   $0x10,%edi,%eax
547c23:	c1 e1 10             	shl    $0x10,%ecx
547c26:	89 4c 24 6c          	mov    %ecx,0x6c(%esp)
547c2a:	33 c9                	xor    %ecx,%ecx
547c2c:	0b c8                	or     %eax,%ecx
547c2e:	c1 ef 10             	shr    $0x10,%edi
547c31:	8b 44 24 6c          	mov    0x6c(%esp),%eax
547c35:	0b c7                	or     %edi,%eax
547c37:	89 8c 24 b8 00 00 00 	mov    %ecx,0xb8(%esp)
547c3e:	03 ca                	add    %edx,%ecx
547c40:	89 44 24 6c          	mov    %eax,0x6c(%esp)
547c44:	89 4c 24 5c          	mov    %ecx,0x5c(%esp)
547c48:	13 44 24 74          	adc    0x74(%esp),%eax
547c4c:	33 e9                	xor    %ecx,%ebp
547c4e:	8b 4c 24 18          	mov    0x18(%esp),%ecx
547c52:	33 d8                	xor    %eax,%ebx
547c54:	89 44 24 54          	mov    %eax,0x54(%esp)
547c58:	8b c3                	mov    %ebx,%eax
547c5a:	0f a4 eb 01          	shld   $0x1,%ebp,%ebx
547c5e:	c1 e8 1f             	shr    $0x1f,%eax
547c61:	03 ed                	add    %ebp,%ebp
547c63:	0b c5                	or     %ebp,%eax
547c65:	8b 6c 24 14          	mov    0x14(%esp),%ebp
547c69:	89 44 24 10          	mov    %eax,0x10(%esp)
547c6d:	8b d5                	mov    %ebp,%edx
547c6f:	33 c0                	xor    %eax,%eax
547c71:	0b c3                	or     %ebx,%eax
547c73:	03 8c 24 08 01 00 00 	add    0x108(%esp),%ecx
547c7a:	89 44 24 68          	mov    %eax,0x68(%esp)
547c7e:	13 94 24 0c 01 00 00 	adc    0x10c(%esp),%edx
547c85:	03 8c 24 90 00 00 00 	add    0x90(%esp),%ecx
547c8c:	8b 84 24 94 00 00 00 	mov    0x94(%esp),%eax
547c93:	13 54 24 30          	adc    0x30(%esp),%edx
547c97:	33 c1                	xor    %ecx,%eax
547c99:	31 54 24 20          	xor    %edx,0x20(%esp)
547c9d:	33 db                	xor    %ebx,%ebx
547c9f:	0b d8                	or     %eax,%ebx
547ca1:	8b 44 24 20          	mov    0x20(%esp),%eax
547ca5:	8b f0                	mov    %eax,%esi
547ca7:	8b fb                	mov    %ebx,%edi
547ca9:	03 b4 24 a4 00 00 00 	add    0xa4(%esp),%esi
547cb0:	89 74 24 7c          	mov    %esi,0x7c(%esp)
547cb4:	13 bc 24 b0 00 00 00 	adc    0xb0(%esp),%edi
547cbb:	31 74 24 18          	xor    %esi,0x18(%esp)
547cbf:	33 ef                	xor    %edi,%ebp
547cc1:	89 6c 24 14          	mov    %ebp,0x14(%esp)
547cc5:	89 7c 24 74          	mov    %edi,0x74(%esp)
547cc9:	8b 7c 24 18          	mov    0x18(%esp),%edi
547ccd:	8b ef                	mov    %edi,%ebp
547ccf:	c1 e5 08             	shl    $0x8,%ebp
547cd2:	89 6c 24 18          	mov    %ebp,0x18(%esp)
547cd6:	8b 6c 24 14          	mov    0x14(%esp),%ebp
547cda:	0f ac ef 18          	shrd   $0x18,%ebp,%edi
547cde:	c1 ed 18             	shr    $0x18,%ebp
547ce1:	89 6c 24 14          	mov    %ebp,0x14(%esp)
547ce5:	33 ed                	xor    %ebp,%ebp
547ce7:	0b ef                	or     %edi,%ebp
547ce9:	8b 7c 24 14          	mov    0x14(%esp),%edi
547ced:	09 7c 24 18          	or     %edi,0x18(%esp)
547cf1:	8b fd                	mov    %ebp,%edi
547cf3:	03 bc 24 f8 00 00 00 	add    0xf8(%esp),%edi
547cfa:	8b 74 24 18          	mov    0x18(%esp),%esi
547cfe:	13 b4 24 fc 00 00 00 	adc    0xfc(%esp),%esi
547d05:	03 f9                	add    %ecx,%edi
547d07:	8b ce                	mov    %esi,%ecx
547d09:	89 b4 24 88 00 00 00 	mov    %esi,0x88(%esp)
547d10:	13 ca                	adc    %edx,%ecx
547d12:	89 7c 24 20          	mov    %edi,0x20(%esp)
547d16:	33 c7                	xor    %edi,%eax
547d18:	89 8c 24 88 00 00 00 	mov    %ecx,0x88(%esp)
547d1f:	33 d9                	xor    %ecx,%ebx
547d21:	8b 7c 24 64          	mov    0x64(%esp),%edi
547d25:	8b d0                	mov    %eax,%edx
547d27:	33 c9                	xor    %ecx,%ecx
547d29:	0f ac d8 10          	shrd   $0x10,%ebx,%eax
547d2d:	c1 e2 10             	shl    $0x10,%edx
547d30:	0b c8                	or     %eax,%ecx
547d32:	c1 eb 10             	shr    $0x10,%ebx
547d35:	0b d3                	or     %ebx,%edx
547d37:	89 8c 24 94 00 00 00 	mov    %ecx,0x94(%esp)
547d3e:	03 4c 24 7c          	add    0x7c(%esp),%ecx
547d42:	89 54 24 14          	mov    %edx,0x14(%esp)
547d46:	13 54 24 74          	adc    0x74(%esp),%edx
547d4a:	33 e9                	xor    %ecx,%ebp
547d4c:	89 4c 24 50          	mov    %ecx,0x50(%esp)
547d50:	8b 4c 24 18          	mov    0x18(%esp),%ecx
547d54:	33 ca                	xor    %edx,%ecx
547d56:	89 54 24 40          	mov    %edx,0x40(%esp)
547d5a:	33 d2                	xor    %edx,%edx
547d5c:	8b c1                	mov    %ecx,%eax
547d5e:	0f a4 e9 01          	shld   $0x1,%ebp,%ecx
547d62:	c1 e8 1f             	shr    $0x1f,%eax
547d65:	0b d1                	or     %ecx,%edx
547d67:	03 ed                	add    %ebp,%ebp
547d69:	0b c5                	or     %ebp,%eax
547d6b:	89 54 24 18          	mov    %edx,0x18(%esp)
547d6f:	8b 94 24 a0 00 00 00 	mov    0xa0(%esp),%edx
547d76:	8b cf                	mov    %edi,%ecx
547d78:	03 8c 24 58 01 00 00 	add    0x158(%esp),%ecx
547d7f:	8b 6c 24 44          	mov    0x44(%esp),%ebp
547d83:	13 94 24 5c 01 00 00 	adc    0x15c(%esp),%edx
547d8a:	03 4c 24 78          	add    0x78(%esp),%ecx
547d8e:	89 44 24 74          	mov    %eax,0x74(%esp)
547d92:	13 54 24 60          	adc    0x60(%esp),%edx
547d96:	33 f6                	xor    %esi,%esi
547d98:	8b 84 24 ac 00 00 00 	mov    0xac(%esp),%eax