56dc1b:	89 4e 08             	mov    %ecx,0x8(%esi)
56dc1e:	8b 46 04             	mov    0x4(%esi),%eax
56dc21:	8b 56 18             	mov    0x18(%esi),%edx
56dc24:	03 c2                	add    %edx,%eax
56dc26:	89 46 0c             	mov    %eax,0xc(%esi)
56dc29:	8b 4e 08             	mov    0x8(%esi),%ecx
56dc2c:	8b 46 14             	mov    0x14(%esi),%eax
56dc2f:	03 c8                	add    %eax,%ecx
56dc31:	89 4e 10             	mov    %ecx,0x10(%esi)
56dc34:	8b 07                	mov    (%edi),%eax
56dc36:	8b ce                	mov    %esi,%ecx
56dc38:	8b 14 24             	mov    (%esp),%edx
56dc3b:	e8 24 ff ff ff       	call   0x56db64
56dc40:	83 c7 04             	add    $0x4,%edi
56dc43:	ff 44 24 0c          	incl   0xc(%esp)
56dc47:	83 c3 20             	add    $0x20,%ebx
56dc4a:	8b 44 24 0c          	mov    0xc(%esp),%eax
56dc4e:	8b 54 24 08          	mov    0x8(%esp),%edx
56dc52:	3b c2                	cmp    %edx,%eax
56dc54:	7c 8a                	jl     0x56dbe0
56dc56:	8b c6                	mov    %esi,%eax
56dc58:	e8 37 a1 00 00       	call   0x577d94
56dc5d:	8b 45 08             	mov    0x8(%ebp),%eax
56dc60:	85 c0                	test   %eax,%eax
56dc62:	74 0c                	je     0x56dc70
56dc64:	8b 4c 24 04          	mov    0x4(%esp),%ecx
56dc68:	8b 14 24             	mov    (%esp),%edx
56dc6b:	e8 1c 24 00 00       	call   0x57008c
56dc70:	8b 45 0c             	mov    0xc(%ebp),%eax
56dc73:	85 c0                	test   %eax,%eax
56dc75:	74 12                	je     0x56dc89
56dc77:	8b 14 24             	mov    (%esp),%edx
56dc7a:	8b 4c 24 04          	mov    0x4(%esp),%ecx
56dc7e:	81 ca 00 00 01 00    	or     $0x10000,%edx
56dc84:	e8 03 24 00 00       	call   0x57008c
56dc89:	81 c4 90 00 00 00    	add    $0x90,%esp
56dc8f:	5d                   	pop    %ebp
56dc90:	5f                   	pop    %edi
56dc91:	5e                   	pop    %esi
56dc92:	5b                   	pop    %ebx
56dc93:	c3                   	ret
56dc94:	55                   	push   %ebp
56dc95:	8b ec                	mov    %esp,%ebp
56dc97:	83 c4 f8             	add    $0xfffffff8,%esp
56dc9a:	53                   	push   %ebx
56dc9b:	56                   	push   %esi
56dc9c:	89 45 fc             	mov    %eax,-0x4(%ebp)
56dc9f:	8b 45 0c             	mov    0xc(%ebp),%eax
56dca2:	8b 75 10             	mov    0x10(%ebp),%esi
56dca5:	8b 5d 08             	mov    0x8(%ebp),%ebx
56dca8:	89 5d f8             	mov    %ebx,-0x8(%ebp)
56dcab:	8b 5d fc             	mov    -0x4(%ebp),%ebx
56dcae:	8b 1b                	mov    (%ebx),%ebx
56dcb0:	85 db                	test   %ebx,%ebx
56dcb2:	75 47                	jne    0x56dcfb
56dcb4:	8b 5d 08             	mov    0x8(%ebp),%ebx
56dcb7:	89 13                	mov    %edx,(%ebx)
56dcb9:	8b 5d 08             	mov    0x8(%ebp),%ebx
56dcbc:	89 4b 04             	mov    %ecx,0x4(%ebx)
56dcbf:	8b 5d 08             	mov    0x8(%ebp),%ebx
56dcc2:	89 73 08             	mov    %esi,0x8(%ebx)
56dcc5:	8b 5d 08             	mov    0x8(%ebp),%ebx
56dcc8:	89 43 0c             	mov    %eax,0xc(%ebx)
56dccb:	8b 5d 08             	mov    0x8(%ebp),%ebx
56dcce:	89 53 14             	mov    %edx,0x14(%ebx)
56dcd1:	8b 55 08             	mov    0x8(%ebp),%edx
56dcd4:	89 4a 18             	mov    %ecx,0x18(%edx)
56dcd7:	8b 4d 08             	mov    0x8(%ebp),%ecx
56dcda:	89 71 1c             	mov    %esi,0x1c(%ecx)
56dcdd:	8b 55 08             	mov    0x8(%ebp),%edx
56dce0:	89 42 20             	mov    %eax,0x20(%edx)
56dce3:	8b 45 08             	mov    0x8(%ebp),%eax
56dce6:	33 c9                	xor    %ecx,%ecx
56dce8:	89 48 10             	mov    %ecx,0x10(%eax)
56dceb:	8b 45 08             	mov    0x8(%ebp),%eax
56dcee:	c7 40 24 00 20 00 00 	movl   $0x2000,0x24(%eax)
56dcf5:	83 45 08 28          	addl   $0x28,0x8(%ebp)
56dcf9:	eb 12                	jmp    0x56dd0d
56dcfb:	52                   	push   %edx
56dcfc:	51                   	push   %ecx
56dcfd:	56                   	push   %esi
56dcfe:	50                   	push   %eax
56dcff:	8d 45 08             	lea    0x8(%ebp),%eax
56dd02:	50                   	push   %eax
56dd03:	8b 45 fc             	mov    -0x4(%ebp),%eax
56dd06:	8b 00                	mov    (%eax),%eax
56dd08:	e8 1b 00 00 00       	call   0x56dd28
56dd0d:	8b 45 08             	mov    0x8(%ebp),%eax
56dd10:	8b 55 f8             	mov    -0x8(%ebp),%edx
56dd13:	2b c2                	sub    %edx,%eax
56dd15:	b9 28 00 00 00       	mov    $0x28,%ecx
56dd1a:	99                   	cltd
56dd1b:	f7 f9                	idiv   %ecx
56dd1d:	5e                   	pop    %esi
56dd1e:	5b                   	pop    %ebx
56dd1f:	59                   	pop    %ecx
56dd20:	59                   	pop    %ecx
56dd21:	5d                   	pop    %ebp
56dd22:	c2 0c 00             	ret    $0xc
56dd25:	90                   	nop
56dd26:	90                   	nop
56dd27:	90                   	nop
56dd28:	55                   	push   %ebp
56dd29:	8b ec                	mov    %esp,%ebp
56dd2b:	81 c4 64 ff ff ff    	add    $0xffffff64,%esp
56dd31:	53                   	push   %ebx
56dd32:	56                   	push   %esi
56dd33:	57                   	push   %edi
56dd34:	89 4d f4             	mov    %ecx,-0xc(%ebp)
56dd37:	89 55 f8             	mov    %edx,-0x8(%ebp)
56dd3a:	89 45 fc             	mov    %eax,-0x4(%ebp)
56dd3d:	8b 45 14             	mov    0x14(%ebp),%eax
56dd40:	50                   	push   %eax
56dd41:	8d 45 f0             	lea    -0x10(%ebp),%eax
56dd44:	8b 55 10             	mov    0x10(%ebp),%edx
56dd47:	52                   	push   %edx
56dd48:	8d 95 64 ff ff ff    	lea    -0x9c(%ebp),%edx
56dd4e:	8b 4d 0c             	mov    0xc(%ebp),%ecx
56dd51:	51                   	push   %ecx
56dd52:	6a 04                	push   $0x4
56dd54:	50                   	push   %eax
56dd55:	52                   	push   %edx
56dd56:	8b 4d fc             	mov    -0x4(%ebp),%ecx
56dd59:	8b 45 fc             	mov    -0x4(%ebp),%eax
56dd5c:	8b 51 0c             	mov    0xc(%ecx),%edx
56dd5f:	8b 4d 18             	mov    0x18(%ebp),%ecx
56dd62:	8b 40 08             	mov    0x8(%eax),%eax
56dd65:	e8 7a 02 00 00       	call   0x56dfe4
56dd6a:	8b 55 fc             	mov    -0x4(%ebp),%edx
56dd6d:	8b 42 14             	mov    0x14(%edx),%eax
56dd70:	85 c0                	test   %eax,%eax
56dd72:	7e 59                	jle    0x56ddcd
56dd74:	33 ff                	xor    %edi,%edi
56dd76:	8d b5 64 ff ff ff    	lea    -0x9c(%ebp),%esi
56dd7c:	8b 45 fc             	mov    -0x4(%ebp),%eax
56dd7f:	8d 58 18             	lea    0x18(%eax),%ebx
56dd82:	8b 45 f0             	mov    -0x10(%ebp),%eax
56dd85:	3b f8                	cmp    %eax,%edi
56dd87:	7d 44                	jge    0x56ddcd
56dd89:	8b 03                	mov    (%ebx),%eax
56dd8b:	85 c0                	test   %eax,%eax
56dd8d:	74 30                	je     0x56ddbf
56dd8f:	8b 16                	mov    (%esi),%edx
56dd91:	52                   	push   %edx
56dd92:	8b 4e 04             	mov    0x4(%esi),%ecx
56dd95:	51                   	push   %ecx
56dd96:	8b 56 08             	mov    0x8(%esi),%edx
56dd99:	52                   	push   %edx
56dd9a:	8b 4e 0c             	mov    0xc(%esi),%ecx
56dd9d:	51                   	push   %ecx
56dd9e:	8b 55 08             	mov    0x8(%ebp),%edx
56dda1:	52                   	push   %edx
56dda2:	8b 4d f4             	mov    -0xc(%ebp),%ecx
56dda5:	8b 56 14             	mov    0x14(%esi),%edx
56dda8:	03 ca                	add    %edx,%ecx
56ddaa:	8b 55 14             	mov    0x14(%ebp),%edx
56ddad:	2b ca                	sub    %edx,%ecx
56ddaf:	8b 55 f8             	mov    -0x8(%ebp),%edx
56ddb2:	03 56 10             	add    0x10(%esi),%edx
56ddb5:	2b 55 18             	sub    0x18(%ebp),%edx
56ddb8:	52                   	push   %edx
56ddb9:	5a                   	pop    %edx
56ddba:	e8 69 ff ff ff       	call   0x56dd28
56ddbf:	83 c3 04             	add    $0x4,%ebx
56ddc2:	47                   	inc    %edi
56ddc3:	83 c6 20             	add    $0x20,%esi
56ddc6:	8b 45 f0             	mov    -0x10(%ebp),%eax
56ddc9:	3b f8                	cmp    %eax,%edi
56ddcb:	7c bc                	jl     0x56dd89
56ddcd:	8b 4d f0             	mov    -0x10(%ebp),%ecx
56ddd0:	83 f9 04             	cmp    $0x4,%ecx
56ddd3:	74 1f                	je     0x56ddf4
56ddd5:	8b 45 f0             	mov    -0x10(%ebp),%eax
56ddd8:	83 f8 03             	cmp    $0x3,%eax
56dddb:	74 17                	je     0x56ddf4
56dddd:	68 75 01 00 00       	push   $0x175
56dde2:	68 b8 0b 6a 00       	push   $0x6a0bb8
56dde7:	68 91 0b 6a 00       	push   $0x6a0b91
56ddec:	e8 4f cd fe ff       	call   0x55ab40
56ddf1:	83 c4 0c             	add    $0xc,%esp
56ddf4:	8b 45 fc             	mov    -0x4(%ebp),%eax
56ddf7:	33 ff                	xor    %edi,%edi
56ddf9:	8d b5 64 ff ff ff    	lea    -0x9c(%ebp),%esi
56ddff:	8d 50 18             	lea    0x18(%eax),%edx
56de02:	89 55 e4             	mov    %edx,-0x1c(%ebp)
56de05:	8b 4d f0             	mov    -0x10(%ebp),%ecx
56de08:	3b f9                	cmp    %ecx,%edi
56de0a:	0f 8d 45 01 00 00    	jge    0x56df55
56de10:	8b 45 e4             	mov    -0x1c(%ebp),%eax
56de13:	8b 10                	mov    (%eax),%edx
56de15:	85 d2                	test   %edx,%edx
56de17:	0f 85 25 01 00 00    	jne    0x56df42
56de1d:	8b 4d 08             	mov    0x8(%ebp),%ecx
56de20:	8b 19                	mov    (%ecx),%ebx
56de22:	8b 06                	mov    (%esi),%eax
56de24:	89 03                	mov    %eax,(%ebx)
56de26:	8b 56 04             	mov    0x4(%esi),%edx
56de29:	89 53 04             	mov    %edx,0x4(%ebx)
56de2c:	8b 4e 08             	mov    0x8(%esi),%ecx
56de2f:	89 4b 08             	mov    %ecx,0x8(%ebx)
56de32:	8b 46 0c             	mov    0xc(%esi),%eax
56de35:	89 43 0c             	mov    %eax,0xc(%ebx)
56de38:	8b 55 f8             	mov    -0x8(%ebp),%edx
56de3b:	8b 4e 10             	mov    0x10(%esi),%ecx
56de3e:	03 d1                	add    %ecx,%edx
56de40:	8b 45 18             	mov    0x18(%ebp),%eax
56de43:	2b d0                	sub    %eax,%edx
56de45:	89 53 14             	mov    %edx,0x14(%ebx)
56de48:	8b 55 f4             	mov    -0xc(%ebp),%edx
56de4b:	8b 4e 14             	mov    0x14(%esi),%ecx
56de4e:	03 d1                	add    %ecx,%edx
56de50:	8b 45 14             	mov    0x14(%ebp),%eax
56de53:	2b d0                	sub    %eax,%edx
56de55:	89 53 18             	mov    %edx,0x18(%ebx)
56de58:	8b 53 14             	mov    0x14(%ebx),%edx
56de5b:	8b 4b 08             	mov    0x8(%ebx),%ecx
56de5e:	03 d1                	add    %ecx,%edx
56de60:	8b 03                	mov    (%ebx),%eax
56de62:	2b d0                	sub    %eax,%edx
56de64:	89 53 1c             	mov    %edx,0x1c(%ebx)
56de67:	8b 53 18             	mov    0x18(%ebx),%edx
56de6a:	8b 4b 0c             	mov    0xc(%ebx),%ecx
56de6d:	03 d1                	add    %ecx,%edx
56de6f:	8b 43 04             	mov    0x4(%ebx),%eax
56de72:	2b d0                	sub    %eax,%edx
56de74:	89 53 20             	mov    %edx,0x20(%ebx)
56de77:	8b 55 f0             	mov    -0x10(%ebp),%edx
56de7a:	83 fa 04             	cmp    $0x4,%edx
56de7d:	75 3a                	jne    0x56deb9
56de7f:	8b cf                	mov    %edi,%ecx
56de81:	83 e9 01             	sub    $0x1,%ecx
56de84:	72 0a                	jb     0x56de90
56de86:	74 0f                	je     0x56de97
56de88:	49                   	dec    %ecx
56de89:	74 15                	je     0x56dea0
56de8b:	49                   	dec    %ecx
56de8c:	74 1b                	je     0x56dea9
56de8e:	eb 22                	jmp    0x56deb2
56de90:	33 c0                	xor    %eax,%eax
56de92:	89 43 10             	mov    %eax,0x10(%ebx)
56de95:	eb 50                	jmp    0x56dee7
56de97:	c7 43 10 02 00 00 00 	movl   $0x2,0x10(%ebx)
56de9e:	eb 47                	jmp    0x56dee7
56dea0:	c7 43 10 01 00 00 00 	movl   $0x1,0x10(%ebx)
56dea7:	eb 3e                	jmp    0x56dee7
56dea9:	c7 43 10 03 00 00 00 	movl   $0x3,0x10(%ebx)
56deb0:	eb 35                	jmp    0x56dee7
56deb2:	e8 91 cc fe ff       	call   0x55ab48
56deb7:	eb 2e                	jmp    0x56dee7
56deb9:	8b d7                	mov    %edi,%edx
56debb:	83 ea 01             	sub    $0x1,%edx
56debe:	72 07                	jb     0x56dec7
56dec0:	74 0e                	je     0x56ded0
56dec2:	4a                   	dec    %edx
56dec3:	74 14                	je     0x56ded9
56dec5:	eb 1b                	jmp    0x56dee2
56dec7:	c7 43 10 02 00 00 00 	movl   $0x2,0x10(%ebx)
56dece:	eb 17                	jmp    0x56dee7
56ded0:	c7 43 10 01 00 00 00 	movl   $0x1,0x10(%ebx)
56ded7:	eb 0e                	jmp    0x56dee7
56ded9:	c7 43 10 03 00 00 00 	movl   $0x3,0x10(%ebx)
56dee0:	eb 05                	jmp    0x56dee7
56dee2:	e8 61 cc fe ff       	call   0x55ab48
56dee7:	8b 4b 0c             	mov    0xc(%ebx),%ecx
56deea:	8b 43 04             	mov    0x4(%ebx),%eax
56deed:	2b c8                	sub    %eax,%ecx
56deef:	8d 55 ec             	lea    -0x14(%ebp),%edx
56def2:	51                   	push   %ecx
56def3:	8d 4d e8             	lea    -0x18(%ebp),%ecx
56def6:	52                   	push   %edx
56def7:	51                   	push   %ecx
56def8:	8b 4b 08             	mov    0x8(%ebx),%ecx
56defb:	8b 03                	mov    (%ebx),%eax
56defd:	2b c8                	sub    %eax,%ecx
56deff:	8b 45 fc             	mov    -0x4(%ebp),%eax
56df02:	8b d7                	mov    %edi,%edx
56df04:	e8 5f 02 00 00       	call   0x56e168
56df09:	8b 45 e8             	mov    -0x18(%ebp),%eax
56df0c:	e8 1f b8 00 00       	call   0x579730
56df11:	99                   	cltd
56df12:	52                   	push   %edx
56df13:	50                   	push   %eax
56df14:	8b 45 ec             	mov    -0x14(%ebp),%eax
56df17:	e8 14 b8 00 00       	call   0x579730
56df1c:	99                   	cltd
56df1d:	e8 62 d1 fe ff       	call   0x55b084
56df22:	0f ac d0 0d          	shrd   $0xd,%edx,%eax
56df26:	c1 fa 0d             	sar    $0xd,%edx
56df29:	89 43 24             	mov    %eax,0x24(%ebx)
56df2c:	8b 45 ec             	mov    -0x14(%ebp),%eax
56df2f:	e8 60 9e 00 00       	call   0x577d94
56df34:	8b 45 e8             	mov    -0x18(%ebp),%eax
56df37:	e8 58 9e 00 00       	call   0x577d94
56df3c:	8b 55 08             	mov    0x8(%ebp),%edx
56df3f:	83 02 28             	addl   $0x28,(%edx)
56df42:	83 45 e4 04          	addl   $0x4,-0x1c(%ebp)
56df46:	47                   	inc    %edi
56df47:	83 c6 20             	add    $0x20,%esi
56df4a:	8b 4d f0             	mov    -0x10(%ebp),%ecx
56df4d:	3b f9                	cmp    %ecx,%edi
56df4f:	0f 8c bb fe ff ff    	jl     0x56de10
56df55:	5f                   	pop    %edi
56df56:	5e                   	pop    %esi
56df57:	5b                   	pop    %ebx
56df58:	8b e5                	mov    %ebp,%esp
56df5a:	5d                   	pop    %ebp
56df5b:	c2 14 00             	ret    $0x14
56df5e:	90                   	nop
56df5f:	90                   	nop
56df60:	53                   	push   %ebx
56df61:	b8 2c 00 00 00       	mov    $0x2c,%eax
56df66:	e8 11 a4 00 00       	call   0x57837c
56df6b:	8b d8                	mov    %eax,%ebx
56df6d:	85 c0                	test   %eax,%eax
56df6f:	75 04                	jne    0x56df75
56df71:	33 c0                	xor    %eax,%eax
56df73:	5b                   	pop    %ebx
56df74:	c3                   	ret
56df75:	33 d2                	xor    %edx,%edx
56df77:	33 c9                	xor    %ecx,%ecx
56df79:	89 13                	mov    %edx,(%ebx)
56df7b:	89 4b 04             	mov    %ecx,0x4(%ebx)
56df7e:	33 c0                	xor    %eax,%eax
56df80:	33 d2                	xor    %edx,%edx
56df82:	89 43 14             	mov    %eax,0x14(%ebx)
56df85:	89 53 10             	mov    %edx,0x10(%ebx)
56df88:	33 c9                	xor    %ecx,%ecx
56df8a:	33 c0                	xor    %eax,%eax
56df8c:	89 4b 08             	mov    %ecx,0x8(%ebx)
56df8f:	89 43 0c             	mov    %eax,0xc(%ebx)
56df92:	33 d2                	xor    %edx,%edx
56df94:	8b c3                	mov    %ebx,%eax
56df96:	89 53 28             	mov    %edx,0x28(%ebx)
56df99:	5b                   	pop    %ebx
56df9a:	c3                   	ret
56df9b:	90                   	nop
56df9c:	53                   	push   %ebx
56df9d:	56                   	push   %esi
56df9e:	57                   	push   %edi
56df9f:	8b f0                	mov    %eax,%esi
56dfa1:	33 ff                	xor    %edi,%edi
56dfa3:	8d 5e 18             	lea    0x18(%esi),%ebx
56dfa6:	eb 0f                	jmp    0x56dfb7
56dfa8:	8b 03                	mov    (%ebx),%eax
56dfaa:	85 c0                	test   %eax,%eax
56dfac:	74 05                	je     0x56dfb3
56dfae:	e8 e9 ff ff ff       	call   0x56df9c
56dfb3:	47                   	inc    %edi
56dfb4:	83 c3 04             	add    $0x4,%ebx
56dfb7:	8b 56 10             	mov    0x10(%esi),%edx