56da45:	74 0c                	je     0x56da53
56da47:	8b 4c 24 04          	mov    0x4(%esp),%ecx
56da4b:	8b 14 24             	mov    (%esp),%edx
56da4e:	e8 31 26 00 00       	call   0x570084
56da53:	8b 47 14             	mov    0x14(%edi),%eax
56da56:	85 c0                	test   %eax,%eax
56da58:	0f 8e e9 00 00 00    	jle    0x56db47
56da5e:	8b 54 24 04          	mov    0x4(%esp),%edx
56da62:	8b 4a 08             	mov    0x8(%edx),%ecx
56da65:	51                   	push   %ecx
56da66:	8b 44 24 08          	mov    0x8(%esp),%eax
56da6a:	8b 50 0c             	mov    0xc(%eax),%edx
56da6d:	52                   	push   %edx
56da6e:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
56da72:	8b 41 10             	mov    0x10(%ecx),%eax
56da75:	50                   	push   %eax
56da76:	6a 04                	push   $0x4
56da78:	8d 54 24 18          	lea    0x18(%esp),%edx
56da7c:	52                   	push   %edx
56da7d:	8d 4c 24 20          	lea    0x20(%esp),%ecx
56da81:	51                   	push   %ecx
56da82:	8b 44 24 1c          	mov    0x1c(%esp),%eax
56da86:	8b 48 04             	mov    0x4(%eax),%ecx
56da89:	8b 57 0c             	mov    0xc(%edi),%edx
56da8c:	8b 47 08             	mov    0x8(%edi),%eax
56da8f:	e8 50 05 00 00       	call   0x56dfe4
56da94:	6a 00                	push   $0x0
56da96:	33 c9                	xor    %ecx,%ecx
56da98:	33 d2                	xor    %edx,%edx
56da9a:	33 c0                	xor    %eax,%eax
56da9c:	e8 b7 a1 00 00       	call   0x577c58
56daa1:	8b f0                	mov    %eax,%esi
56daa3:	85 f6                	test   %esi,%esi
56daa5:	75 17                	jne    0x56dabe
56daa7:	68 05 01 00 00       	push   $0x105
56daac:	68 86 0b 6a 00       	push   $0x6a0b86
56dab1:	68 84 0b 6a 00       	push   $0x6a0b84
56dab6:	e8 85 d0 fe ff       	call   0x55ab40
56dabb:	83 c4 0c             	add    $0xc,%esp
56dabe:	33 ed                	xor    %ebp,%ebp
56dac0:	8d 5c 24 0c          	lea    0xc(%esp),%ebx
56dac4:	8d 47 18             	lea    0x18(%edi),%eax
56dac7:	8b f8                	mov    %eax,%edi
56dac9:	8b 54 24 08          	mov    0x8(%esp),%edx
56dacd:	3b ea                	cmp    %edx,%ebp
56dacf:	7d 6f                	jge    0x56db40
56dad1:	8b 0f                	mov    (%edi),%ecx
56dad3:	85 c9                	test   %ecx,%ecx
56dad5:	74 5a                	je     0x56db31
56dad7:	8b 03                	mov    (%ebx),%eax
56dad9:	8b 53 08             	mov    0x8(%ebx),%edx
56dadc:	3b c2                	cmp    %edx,%eax
56dade:	74 51                	je     0x56db31
56dae0:	8b 4b 04             	mov    0x4(%ebx),%ecx
56dae3:	8b 43 0c             	mov    0xc(%ebx),%eax
56dae6:	3b c8                	cmp    %eax,%ecx
56dae8:	74 47                	je     0x56db31
56daea:	8b 53 14             	mov    0x14(%ebx),%edx
56daed:	52                   	push   %edx
56daee:	8b 4b 18             	mov    0x18(%ebx),%ecx
56daf1:	51                   	push   %ecx
56daf2:	8b 43 1c             	mov    0x1c(%ebx),%eax
56daf5:	50                   	push   %eax
56daf6:	8b 4b 10             	mov    0x10(%ebx),%ecx
56daf9:	8b 54 24 10          	mov    0x10(%esp),%edx
56dafd:	8b c6                	mov    %esi,%eax
56daff:	e8 88 a3 00 00       	call   0x577e8c
56db04:	8b 13                	mov    (%ebx),%edx
56db06:	89 56 04             	mov    %edx,0x4(%esi)
56db09:	8b 4b 04             	mov    0x4(%ebx),%ecx
56db0c:	89 4e 08             	mov    %ecx,0x8(%esi)
56db0f:	8b 46 04             	mov    0x4(%esi),%eax
56db12:	8b 56 18             	mov    0x18(%esi),%edx
56db15:	03 c2                	add    %edx,%eax
56db17:	89 46 0c             	mov    %eax,0xc(%esi)
56db1a:	8b 4e 08             	mov    0x8(%esi),%ecx
56db1d:	8b 46 14             	mov    0x14(%esi),%eax
56db20:	03 c8                	add    %eax,%ecx
56db22:	89 4e 10             	mov    %ecx,0x10(%esi)
56db25:	8b 07                	mov    (%edi),%eax
56db27:	8b ce                	mov    %esi,%ecx
56db29:	8b 14 24             	mov    (%esp),%edx
56db2c:	e8 e3 fe ff ff       	call   0x56da14
56db31:	83 c7 04             	add    $0x4,%edi
56db34:	45                   	inc    %ebp
56db35:	83 c3 20             	add    $0x20,%ebx
56db38:	8b 44 24 08          	mov    0x8(%esp),%eax
56db3c:	3b e8                	cmp    %eax,%ebp
56db3e:	7c 91                	jl     0x56dad1
56db40:	8b c6                	mov    %esi,%eax
56db42:	e8 4d a2 00 00       	call   0x577d94
56db47:	81 c4 8c 00 00 00    	add    $0x8c,%esp
56db4d:	5d                   	pop    %ebp
56db4e:	5f                   	pop    %edi
56db4f:	5e                   	pop    %esi
56db50:	5b                   	pop    %ebx
56db51:	c3                   	ret
56db52:	90                   	nop
56db53:	90                   	nop
56db54:	56                   	push   %esi
56db55:	8b 30                	mov    (%eax),%esi
56db57:	85 f6                	test   %esi,%esi
56db59:	74 07                	je     0x56db62
56db5b:	8b c6                	mov    %esi,%eax
56db5d:	e8 02 00 00 00       	call   0x56db64
56db62:	5e                   	pop    %esi
56db63:	c3                   	ret
56db64:	53                   	push   %ebx
56db65:	56                   	push   %esi
56db66:	57                   	push   %edi
56db67:	55                   	push   %ebp
56db68:	81 c4 70 ff ff ff    	add    $0xffffff70,%esp
56db6e:	8b e8                	mov    %eax,%ebp
56db70:	89 4c 24 04          	mov    %ecx,0x4(%esp)
56db74:	89 14 24             	mov    %edx,(%esp)
56db77:	8b 45 14             	mov    0x14(%ebp),%eax
56db7a:	85 c0                	test   %eax,%eax
56db7c:	0f 8e db 00 00 00    	jle    0x56dc5d
56db82:	8b 54 24 04          	mov    0x4(%esp),%edx
56db86:	8b 4a 08             	mov    0x8(%edx),%ecx
56db89:	51                   	push   %ecx
56db8a:	8b 44 24 08          	mov    0x8(%esp),%eax
56db8e:	8b 50 0c             	mov    0xc(%eax),%edx
56db91:	52                   	push   %edx
56db92:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
56db96:	8b 41 10             	mov    0x10(%ecx),%eax
56db99:	50                   	push   %eax
56db9a:	6a 04                	push   $0x4
56db9c:	8d 54 24 18          	lea    0x18(%esp),%edx
56dba0:	52                   	push   %edx
56dba1:	8d 4c 24 24          	lea    0x24(%esp),%ecx
56dba5:	51                   	push   %ecx
56dba6:	8b 44 24 1c          	mov    0x1c(%esp),%eax
56dbaa:	8b 48 04             	mov    0x4(%eax),%ecx
56dbad:	8b 55 0c             	mov    0xc(%ebp),%edx
56dbb0:	8b 45 08             	mov    0x8(%ebp),%eax
56dbb3:	e8 2c 04 00 00       	call   0x56dfe4
56dbb8:	6a 00                	push   $0x0
56dbba:	33 c9                	xor    %ecx,%ecx
56dbbc:	33 d2                	xor    %edx,%edx
56dbbe:	33 c0                	xor    %eax,%eax
56dbc0:	e8 93 a0 00 00       	call   0x577c58
56dbc5:	8b f0                	mov    %eax,%esi
56dbc7:	33 c0                	xor    %eax,%eax
56dbc9:	89 44 24 0c          	mov    %eax,0xc(%esp)
56dbcd:	8d 5c 24 10          	lea    0x10(%esp),%ebx
56dbd1:	8d 7d 18             	lea    0x18(%ebp),%edi
56dbd4:	8b 44 24 0c          	mov    0xc(%esp),%eax
56dbd8:	8b 54 24 08          	mov    0x8(%esp),%edx
56dbdc:	3b c2                	cmp    %edx,%eax
56dbde:	7d 76                	jge    0x56dc56
56dbe0:	8b 0f                	mov    (%edi),%ecx
56dbe2:	85 c9                	test   %ecx,%ecx
56dbe4:	74 5a                	je     0x56dc40
56dbe6:	8b 03                	mov    (%ebx),%eax
56dbe8:	8b 53 08             	mov    0x8(%ebx),%edx
56dbeb:	3b c2                	cmp    %edx,%eax
56dbed:	74 51                	je     0x56dc40
56dbef:	8b 4b 04             	mov    0x4(%ebx),%ecx
56dbf2:	8b 43 0c             	mov    0xc(%ebx),%eax
56dbf5:	3b c8                	cmp    %eax,%ecx
56dbf7:	74 47                	je     0x56dc40
56dbf9:	8b 53 14             	mov    0x14(%ebx),%edx
56dbfc:	52                   	push   %edx
56dbfd:	8b 4b 18             	mov    0x18(%ebx),%ecx
56dc00:	51                   	push   %ecx
56dc01:	8b 43 1c             	mov    0x1c(%ebx),%eax
56dc04:	50                   	push   %eax
56dc05:	8b 4b 10             	mov    0x10(%ebx),%ecx
56dc08:	8b 54 24 10          	mov    0x10(%esp),%edx
56dc0c:	8b c6                	mov    %esi,%eax
56dc0e:	e8 79 a2 00 00       	call   0x577e8c
56dc13:	8b 13                	mov    (%ebx),%edx
56dc15:	89 56 04             	mov    %edx,0x4(%esi)
56dc18:	8b 4b 04             	mov    0x4(%ebx),%ecx
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