a56be3:	55                   	push   %ebp
a56be4:	8b ec                	mov    %esp,%ebp
a56be6:	51                   	push   %ecx
a56be7:	51                   	push   %ecx
a56be8:	8d 45 f8             	lea    -0x8(%ebp),%eax
a56beb:	50                   	push   %eax
a56bec:	e8 b3 67 9c ff       	call   0x41d3a4
a56bf1:	8b 55 fc             	mov    -0x4(%ebp),%edx
a56bf4:	33 c0                	xor    %eax,%eax
a56bf6:	03 45 f8             	add    -0x8(%ebp),%eax
a56bf9:	59                   	pop    %ecx
a56bfa:	83 d2 00             	adc    $0x0,%edx
a56bfd:	2d 00 80 3e d5       	sub    $0xd53e8000,%eax
a56c02:	81 da de b1 9d 01    	sbb    $0x19db1de,%edx
a56c08:	8b e5                	mov    %ebp,%esp
a56c0a:	5d                   	pop    %ebp
a56c0b:	c3                   	ret
a56c0c:	cc                   	int3
a56c0d:	cc                   	int3
a56c0e:	cc                   	int3
a56c0f:	cc                   	int3
a56c10:	cc                   	int3
a56c11:	cc                   	int3
a56c12:	cc                   	int3
a56c13:	cc                   	int3
a56c14:	cc                   	int3
a56c15:	cc                   	int3
a56c16:	55                   	push   %ebp
a56c17:	8b ec                	mov    %esp,%ebp
a56c19:	51                   	push   %ecx
a56c1a:	51                   	push   %ecx
a56c1b:	53                   	push   %ebx
a56c1c:	56                   	push   %esi
a56c1d:	e8 6c b5 9b ff       	call   0x41218e
a56c22:	53                   	push   %ebx
a56c23:	6a 00                	push   $0x0
a56c25:	68 80 96 98 00       	push   $0x989680
a56c2a:	52                   	push   %edx
a56c2b:	50                   	push   %eax
a56c2c:	e8 90 f0 9b ff       	call   0x415cc1
a56c31:	89 5d fc             	mov    %ebx,-0x4(%ebp)
a56c34:	5b                   	pop    %ebx
a56c35:	8b 75 08             	mov    0x8(%ebp),%esi
a56c38:	89 06                	mov    %eax,(%esi)
a56c3a:	6b c1 64             	imul   $0x64,%ecx,%eax
a56c3d:	89 56 04             	mov    %edx,0x4(%esi)
a56c40:	89 46 08             	mov    %eax,0x8(%esi)
a56c43:	5e                   	pop    %esi
a56c44:	5b                   	pop    %ebx
a56c45:	8b e5                	mov    %ebp,%esp
a56c47:	5d                   	pop    %ebp
a56c48:	c3                   	ret
a56c49:	cc                   	int3
a56c4a:	cc                   	int3
a56c4b:	cc                   	int3
a56c4c:	cc                   	int3
a56c4d:	cc                   	int3
a56c4e:	cc                   	int3
a56c4f:	cc                   	int3
a56c50:	cc                   	int3
a56c51:	cc                   	int3
a56c52:	cc                   	int3
a56c53:	cc                   	int3
a56c54:	cc                   	int3
a56c55:	55                   	push   %ebp
a56c56:	8b ec                	mov    %esp,%ebp
a56c58:	8b 4d 08             	mov    0x8(%ebp),%ecx
a56c5b:	ba 00 ca 9a 3b       	mov    $0x3b9aca00,%edx
a56c60:	53                   	push   %ebx
a56c61:	56                   	push   %esi
a56c62:	8b 75 0c             	mov    0xc(%ebp),%esi
a56c65:	57                   	push   %edi
a56c66:	8b f9                	mov    %ecx,%edi
a56c68:	a5                   	movsl  %ds:(%esi),%es:(%edi)
a56c69:	a5                   	movsl  %ds:(%esi),%es:(%edi)
a56c6a:	a5                   	movsl  %ds:(%esi),%es:(%edi)
a56c6b:	a5                   	movsl  %ds:(%esi),%es:(%edi)
a56c6c:	8b 41 08             	mov    0x8(%ecx),%eax
a56c6f:	83 cf ff             	or     $0xffffffff,%edi
a56c72:	85 c0                	test   %eax,%eax
a56c74:	79 0c                	jns    0xa56c82
a56c76:	01 39                	add    %edi,(%ecx)
a56c78:	11 79 04             	adc    %edi,0x4(%ecx)
a56c7b:	03 c2                	add    %edx,%eax
a56c7d:	78 f7                	js     0xa56c76
a56c7f:	89 41 08             	mov    %eax,0x8(%ecx)
a56c82:	8b 41 08             	mov    0x8(%ecx),%eax
a56c85:	33 db                	xor    %ebx,%ebx
a56c87:	3b c2                	cmp    %edx,%eax
a56c89:	7c 0f                	jl     0xa56c9a
a56c8b:	83 01 01             	addl   $0x1,(%ecx)
a56c8e:	11 59 04             	adc    %ebx,0x4(%ecx)
a56c91:	2b c2                	sub    %edx,%eax
a56c93:	3b c2                	cmp    %edx,%eax
a56c95:	7d f4                	jge    0xa56c8b
a56c97:	89 41 08             	mov    %eax,0x8(%ecx)
a56c9a:	8b 75 10             	mov    0x10(%ebp),%esi
a56c9d:	8b 51 08             	mov    0x8(%ecx),%edx
a56ca0:	3b 56 08             	cmp    0x8(%esi),%edx
a56ca3:	7d 17                	jge    0xa56cbc
a56ca5:	8b c7                	mov    %edi,%eax
a56ca7:	2b 06                	sub    (%esi),%eax
a56ca9:	1b 7e 04             	sbb    0x4(%esi),%edi
a56cac:	01 01                	add    %eax,(%ecx)
a56cae:	11 79 04             	adc    %edi,0x4(%ecx)
a56cb1:	2b 56 08             	sub    0x8(%esi),%edx
a56cb4:	81 c2 00 ca 9a 3b    	add    $0x3b9aca00,%edx
a56cba:	eb 0d                	jmp    0xa56cc9
a56cbc:	8b 06                	mov    (%esi),%eax
a56cbe:	29 01                	sub    %eax,(%ecx)
a56cc0:	8b 46 04             	mov    0x4(%esi),%eax
a56cc3:	19 41 04             	sbb    %eax,0x4(%ecx)
a56cc6:	2b 56 08             	sub    0x8(%esi),%edx
a56cc9:	8b 01                	mov    (%ecx),%eax
a56ccb:	89 51 08             	mov    %edx,0x8(%ecx)
a56cce:	39 59 04             	cmp    %ebx,0x4(%ecx)
a56cd1:	7c 10                	jl     0xa56ce3
a56cd3:	7f 04                	jg     0xa56cd9
a56cd5:	3b c3                	cmp    %ebx,%eax
a56cd7:	72 0a                	jb     0xa56ce3
a56cd9:	0b 41 04             	or     0x4(%ecx),%eax
a56cdc:	75 0d                	jne    0xa56ceb
a56cde:	39 59 08             	cmp    %ebx,0x8(%ecx)
a56ce1:	7f 08                	jg     0xa56ceb
a56ce3:	89 19                	mov    %ebx,(%ecx)
a56ce5:	89 59 04             	mov    %ebx,0x4(%ecx)
a56ce8:	89 59 08             	mov    %ebx,0x8(%ecx)
a56ceb:	5f                   	pop    %edi
a56cec:	5e                   	pop    %esi
a56ced:	8b c1                	mov    %ecx,%eax
a56cef:	5b                   	pop    %ebx
a56cf0:	5d                   	pop    %ebp
a56cf1:	c3                   	ret
a56cf2:	cc                   	int3
a56cf3:	cc                   	int3
a56cf4:	cc                   	int3
a56cf5:	cc                   	int3
a56cf6:	cc                   	int3
a56cf7:	cc                   	int3
a56cf8:	cc                   	int3
a56cf9:	cc                   	int3
a56cfa:	cc                   	int3
a56cfb:	cc                   	int3
a56cfc:	cc                   	int3
a56cfd:	cc                   	int3
a56cfe:	cc                   	int3
a56cff:	cc                   	int3
a56d00:	cc                   	int3
a56d01:	cc                   	int3
a56d02:	cc                   	int3
a56d03:	cc                   	int3
a56d04:	cc                   	int3
a56d05:	cc                   	int3
a56d06:	cc                   	int3
a56d07:	cc                   	int3
a56d08:	cc                   	int3
a56d09:	cc                   	int3
a56d0a:	cc                   	int3
a56d0b:	cc                   	int3
a56d0c:	cc                   	int3
a56d0d:	cc                   	int3
a56d0e:	cc                   	int3
a56d0f:	cc                   	int3
a56d10:	cc                   	int3
a56d11:	cc                   	int3
a56d12:	cc                   	int3
a56d13:	cc                   	int3
a56d14:	cc                   	int3
a56d15:	cc                   	int3
a56d16:	cc                   	int3
a56d17:	cc                   	int3
a56d18:	cc                   	int3
a56d19:	55                   	push   %ebp
a56d1a:	8b ec                	mov    %esp,%ebp
a56d1c:	51                   	push   %ecx
a56d1d:	51                   	push   %ecx
a56d1e:	56                   	push   %esi
a56d1f:	8b 75 0c             	mov    0xc(%ebp),%esi
a56d22:	57                   	push   %edi
a56d23:	83 fe 01             	cmp    $0x1,%esi
a56d26:	75 2e                	jne    0xa56d56
a56d28:	8b 7d 08             	mov    0x8(%ebp),%edi
a56d2b:	85 ff                	test   %edi,%edi
a56d2d:	74 27                	je     0xa56d56
a56d2f:	53                   	push   %ebx
a56d30:	e8 59 b4 9b ff       	call   0x41218e
a56d35:	53                   	push   %ebx
a56d36:	6a 00                	push   $0x0
a56d38:	68 80 96 98 00       	push   $0x989680
a56d3d:	52                   	push   %edx
a56d3e:	50                   	push   %eax
a56d3f:	e8 7d ef 9b ff       	call   0x415cc1
a56d44:	89 5d fc             	mov    %ebx,-0x4(%ebp)
a56d47:	5b                   	pop    %ebx
a56d48:	89 07                	mov    %eax,(%edi)
a56d4a:	6b c1 64             	imul   $0x64,%ecx,%eax
a56d4d:	89 57 04             	mov    %edx,0x4(%edi)
a56d50:	5b                   	pop    %ebx
a56d51:	89 47 08             	mov    %eax,0x8(%edi)
a56d54:	eb 02                	jmp    0xa56d58
a56d56:	33 f6                	xor    %esi,%esi
a56d58:	5f                   	pop    %edi
a56d59:	8b c6                	mov    %esi,%eax
a56d5b:	5e                   	pop    %esi
a56d5c:	8b e5                	mov    %ebp,%esp
a56d5e:	5d                   	pop    %ebp
a56d5f:	c3                   	ret
a56d60:	cc                   	int3
a56d61:	cc                   	int3
a56d62:	cc                   	int3
a56d63:	cc                   	int3
a56d64:	cc                   	int3
a56d65:	cc                   	int3
a56d66:	cc                   	int3
a56d67:	cc                   	int3
a56d68:	cc                   	int3
a56d69:	cc                   	int3
a56d6a:	cc                   	int3
a56d6b:	cc                   	int3
a56d6c:	cc                   	int3
a56d6d:	cc                   	int3
a56d6e:	cc                   	int3
a56d6f:	cc                   	int3
a56d70:	cc                   	int3
a56d71:	55                   	push   %ebp
a56d72:	8b ec                	mov    %esp,%ebp
a56d74:	8b 45 08             	mov    0x8(%ebp),%eax
a56d77:	ba 00 ca 9a 3b       	mov    $0x3b9aca00,%edx
a56d7c:	8b 48 08             	mov    0x8(%eax),%ecx
a56d7f:	85 c9                	test   %ecx,%ecx
a56d81:	79 0e                	jns    0xa56d91
a56d83:	83 00 ff             	addl   $0xffffffff,(%eax)
a56d86:	83 50 04 ff          	adcl   $0xffffffff,0x4(%eax)
a56d8a:	03 ca                	add    %edx,%ecx
a56d8c:	78 f5                	js     0xa56d83
a56d8e:	89 48 08             	mov    %ecx,0x8(%eax)
a56d91:	8b 48 08             	mov    0x8(%eax),%ecx
a56d94:	3b ca                	cmp    %edx,%ecx
a56d96:	7c 10                	jl     0xa56da8
a56d98:	83 00 01             	addl   $0x1,(%eax)
a56d9b:	83 50 04 00          	adcl   $0x0,0x4(%eax)
a56d9f:	2b ca                	sub    %edx,%ecx
a56da1:	3b ca                	cmp    %edx,%ecx
a56da3:	7d f3                	jge    0xa56d98
a56da5:	89 48 08             	mov    %ecx,0x8(%eax)
a56da8:	5d                   	pop    %ebp
a56da9:	c3                   	ret
a56daa:	cc                   	int3
a56dab:	cc                   	int3
a56dac:	cc                   	int3
a56dad:	cc                   	int3
a56dae:	cc                   	int3
a56daf:	cc                   	int3
a56db0:	cc                   	int3
a56db1:	cc                   	int3
a56db2:	cc                   	int3
a56db3:	cc                   	int3
a56db4:	cc                   	int3
a56db5:	cc                   	int3
a56db6:	cc                   	int3
a56db7:	cc                   	int3
a56db8:	6a 08                	push   $0x8
a56dba:	b8 7e b8 bb 00       	mov    $0xbbb87e,%eax
a56dbf:	e8 c7 34 9b ff       	call   0x40a28b
a56dc4:	8b f1                	mov    %ecx,%esi
a56dc6:	89 75 f0             	mov    %esi,-0x10(%ebp)
a56dc9:	33 c0                	xor    %eax,%eax
a56dcb:	40                   	inc    %eax
a56dcc:	89 46 04             	mov    %eax,0x4(%esi)
a56dcf:	89 46 08             	mov    %eax,0x8(%esi)
a56dd2:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
a56dd6:	8d 4e 0c             	lea    0xc(%esi),%ecx
a56dd9:	c7 06 e4 a8 c7 00    	movl   $0xc7a8e4,(%esi)
a56ddf:	89 4d ec             	mov    %ecx,-0x14(%ebp)
a56de2:	88 45 fc             	mov    %al,-0x4(%ebp)
a56de5:	85 c9                	test   %ecx,%ecx
a56de7:	74 11                	je     0xa56dfa
a56de9:	8b 45 0c             	mov    0xc(%ebp),%eax
a56dec:	0f b6 00             	movzbl (%eax),%eax
a56def:	50                   	push   %eax
a56df0:	8b 45 08             	mov    0x8(%ebp),%eax
a56df3:	ff 30                	push   (%eax)
a56df5:	e8 89 a5 9b ff       	call   0x411383
a56dfa:	8b c6                	mov    %esi,%eax
a56dfc:	e8 16 76 9b ff       	call   0x40e417
a56e01:	c2 08 00             	ret    $0x8
a56e04:	cc                   	int3
a56e05:	cc                   	int3
a56e06:	cc                   	int3
a56e07:	cc                   	int3
a56e08:	cc                   	int3
a56e09:	cc                   	int3
a56e0a:	cc                   	int3
a56e0b:	cc                   	int3
a56e0c:	cc                   	int3
a56e0d:	cc                   	int3
a56e0e:	cc                   	int3
a56e0f:	cc                   	int3
a56e10:	cc                   	int3
a56e11:	cc                   	int3
a56e12:	cc                   	int3
a56e13:	cc                   	int3
a56e14:	cc                   	int3
a56e15:	cc                   	int3
a56e16:	cc                   	int3
a56e17:	6a 0c                	push   $0xc
a56e19:	b8 bc b8 bb 00       	mov    $0xbbb8bc,%eax
a56e1e:	e8 68 34 9b ff       	call   0x40a28b
a56e23:	8b f1                	mov    %ecx,%esi
a56e25:	89 75 f0             	mov    %esi,-0x10(%ebp)
a56e28:	33 db                	xor    %ebx,%ebx
a56e2a:	43                   	inc    %ebx
a56e2b:	89 5e 04             	mov    %ebx,0x4(%esi)
a56e2e:	89 5e 08             	mov    %ebx,0x8(%esi)
a56e31:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
a56e35:	8d 7e 0c             	lea    0xc(%esi),%edi
a56e38:	6a 54                	push   $0x54
a56e3a:	6a 00                	push   $0x0
a56e3c:	57                   	push   %edi
a56e3d:	c7 06 cc a8 c7 00    	movl   $0xc7a8cc,(%esi)
a56e43:	e8 70 d9 9b ff       	call   0x4147b8
a56e48:	89 7d ec             	mov    %edi,-0x14(%ebp)
a56e4b:	83 c4 0c             	add    $0xc,%esp
a56e4e:	89 7d e8             	mov    %edi,-0x18(%ebp)
a56e51:	88 5d fc             	mov    %bl,-0x4(%ebp)
a56e54:	85 ff                	test   %edi,%edi
a56e56:	74 13                	je     0xa56e6b
a56e58:	8b 45 10             	mov    0x10(%ebp),%eax
a56e5b:	8b cf                	mov    %edi,%ecx
a56e5d:	0f b6 00             	movzbl (%eax),%eax
a56e60:	50                   	push   %eax
a56e61:	8b 45 0c             	mov    0xc(%ebp),%eax
a56e64:	ff 30                	push   (%eax)
a56e66:	e8 18 a5 9b ff       	call   0x411383
a56e6b:	8b c6                	mov    %esi,%eax
a56e6d:	e8 a5 75 9b ff       	call   0x40e417
a56e72:	c2 0c 00             	ret    $0xc
a56e75:	cc                   	int3
a56e76:	cc                   	int3
a56e77:	cc                   	int3
a56e78:	cc                   	int3
a56e79:	cc                   	int3
a56e7a:	cc                   	int3
a56e7b:	cc                   	int3
a56e7c:	cc                   	int3
a56e7d:	cc                   	int3
a56e7e:	cc                   	int3
a56e7f:	cc                   	int3
a56e80:	cc                   	int3
a56e81:	cc                   	int3